From owner-svn-src-all@freebsd.org Sun Jul 17 08:31:22 2016 Return-Path: Delivered-To: svn-src-all@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 9786CB9BF7B; Sun, 17 Jul 2016 08:31:22 +0000 (UTC) (envelope-from tuexen@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 5D8DD1ACA; Sun, 17 Jul 2016 08:31:22 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6H8VLXY009006; Sun, 17 Jul 2016 08:31:21 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6H8VLVl009005; Sun, 17 Jul 2016 08:31:21 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201607170831.u6H8VLVl009005@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 17 Jul 2016 08:31:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302942 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 08:31:22 -0000 Author: tuexen Date: Sun Jul 17 08:31:21 2016 New Revision: 302942 URL: https://svnweb.freebsd.org/changeset/base/302942 Log: Add missing sctps_reasmusrmsgs counter. Joint work with rrs@. MFC after: 3 days Modified: head/sys/netinet/sctp_indata.c Modified: head/sys/netinet/sctp_indata.c ============================================================================== --- head/sys/netinet/sctp_indata.c Sat Jul 16 19:35:04 2016 (r302941) +++ head/sys/netinet/sctp_indata.c Sun Jul 17 08:31:21 2016 (r302942) @@ -823,6 +823,7 @@ restart: if (control->on_strm_q) { TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm); control->on_strm_q = 0; + SCTP_STAT_INCR_COUNTER64(sctps_reasmusrmsgs); } if (control->on_read_q == 0) { sctp_add_to_readq(stcb->sctp_ep, stcb, control, @@ -1028,6 +1029,7 @@ sctp_deliver_reasm_check(struct sctp_tcb control, control->on_strm_q); } #endif + SCTP_STAT_INCR_COUNTER64(sctps_reasmusrmsgs); TAILQ_REMOVE(&strm->uno_inqueue, control, next_instrm); control->on_strm_q = 0; } @@ -1082,6 +1084,7 @@ done_un: control, control->on_strm_q); } #endif + SCTP_STAT_INCR_COUNTER64(sctps_reasmusrmsgs); TAILQ_REMOVE(&strm->inqueue, control, next_instrm); control->on_strm_q = 0; } @@ -1127,6 +1130,7 @@ deliver_more: control, control->on_strm_q); } #endif + SCTP_STAT_INCR_COUNTER64(sctps_reasmusrmsgs); TAILQ_REMOVE(&strm->inqueue, control, next_instrm); control->on_strm_q = 0; } From owner-svn-src-all@freebsd.org Sun Jul 17 09:40:00 2016 Return-Path: Delivered-To: svn-src-all@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 7BCF9B9AC86; Sun, 17 Jul 2016 09:40:00 +0000 (UTC) (envelope-from ache@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 3A71C1315; Sun, 17 Jul 2016 09:40:00 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6H9dxOO034666; Sun, 17 Jul 2016 09:39:59 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6H9dxtm034665; Sun, 17 Jul 2016 09:39:59 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607170939.u6H9dxtm034665@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Sun, 17 Jul 2016 09:39:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302943 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 09:40:00 -0000 Author: ache Date: Sun Jul 17 09:39:59 2016 New Revision: 302943 URL: https://svnweb.freebsd.org/changeset/base/302943 Log: 1) This file full of direct char <-> wchar_t assignment, not converted, cut them down. This hack still remains: * 2. Illegal byte sequences in filenames are handled by treating them as * single-byte characters with a values of such bytes of the sequence * cast to wchar_t. 2) Reword the comment in the hack above to reflect implementation. 3) Protect signed wchar_t from sign extension when a signed char is assigned to it in the hack above. 3) Corresponding backward hack in g_Ctoc() was not implemented, so all pathes with illegal byte sequences are skipped as result, implement it now. 4) globtilde() forget to convert expanded user home dir from multibyte to wchar. 5) Protect globtilde() from long expansion truncation. 6) Results was not sorted according to collate as POSIX requires. Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Sun Jul 17 08:31:21 2016 (r302942) +++ head/lib/libc/gen/glob.c Sun Jul 17 09:39:59 2016 (r302943) @@ -71,7 +71,7 @@ __FBSDID("$FreeBSD$"); * 1. Patterns with illegal byte sequences match nothing - even if * GLOB_NOCHECK is specified. * 2. Illegal byte sequences in filenames are handled by treating them as - * single-byte characters with a value of the first byte of the sequence + * single-byte characters with a values of such bytes of the sequence * cast to wchar_t. * 3. State-dependent encodings are not currently supported. */ @@ -113,23 +113,21 @@ struct glob_limit { size_t l_string_cnt; }; -#define DOLLAR '$' -#define DOT '.' -#define EOS '\0' -#define LBRACKET '[' -#define NOT '!' -#define QUESTION '?' -#define QUOTE '\\' -#define RANGE '-' -#define RBRACKET ']' -#define SEP '/' -#define STAR '*' -#define TILDE '~' -#define UNDERSCORE '_' -#define LBRACE '{' -#define RBRACE '}' -#define SLASH '/' -#define COMMA ',' +#define DOT L'.' +#define EOS L'\0' +#define LBRACKET L'[' +#define NOT L'!' +#define QUESTION L'?' +#define QUOTE L'\\' +#define RANGE L'-' +#define RBRACKET L']' +#define SEP L'/' +#define STAR L'*' +#define TILDE L'~' +#define LBRACE L'{' +#define RBRACE L'}' +#define SLASH L'/' +#define COMMA L',' #ifndef DEBUG @@ -154,12 +152,12 @@ typedef char Char; #define CHAR(c) ((Char)((c)&M_CHAR)) #define META(c) ((Char)((c)|M_QUOTE)) -#define M_ALL META('*') -#define M_END META(']') -#define M_NOT META('!') -#define M_ONE META('?') -#define M_RNG META('-') -#define M_SET META('[') +#define M_ALL META(L'*') +#define M_END META(L']') +#define M_NOT META(L'!') +#define M_ONE META(L'?') +#define M_RNG META(L'-') +#define M_SET META(L'[') #define ismeta(c) (((c)&M_QUOTE) != 0) @@ -233,8 +231,8 @@ glob(const char * __restrict pattern, in /* Protect the quoted characters. */ memset(&mbs, 0, sizeof(mbs)); while (bufend - bufnext >= MB_CUR_MAX) { - if (*patnext == QUOTE) { - if (*++patnext == EOS) { + if (*patnext == '\\') { + if (*++patnext == '\0') { *bufnext++ = QUOTE | M_PROTECT; continue; } @@ -401,9 +399,15 @@ static const Char * globtilde(const Char *pattern, Char *patbuf, size_t patbuf_len, glob_t *pglob) { struct passwd *pwd; - char *h; + char *h, *sc; const Char *p; Char *b, *eb; + wchar_t wc; + wchar_t wbuf[MAXPATHLEN]; + wchar_t *wbufend, *dc; + size_t clen; + mbstate_t mbs; + int too_long; if (*pattern != TILDE || !(pglob->gl_flags & GLOB_TILDE)) return (pattern); @@ -412,13 +416,17 @@ globtilde(const Char *pattern, Char *pat * Copy up to the end of the string or / */ eb = &patbuf[patbuf_len - 1]; - for (p = pattern + 1, h = (char *) patbuf; - h < (char *)eb && *p && *p != SLASH; *h++ = *p++) + for (p = pattern + 1, b = patbuf; + b < eb && *p != EOS && *p != SLASH; *b++ = *p++) continue; - *h = EOS; + if (*p != EOS && *p != SLASH) + return (pattern); + + *b = EOS; + h = NULL; - if (((char *) patbuf)[0] == EOS) { + if (patbuf[0] == EOS) { /* * handle a plain ~ or ~/ by expanding $HOME first (iff * we're not running setuid or setgid) and then trying @@ -438,20 +446,55 @@ globtilde(const Char *pattern, Char *pat /* * Expand a ~user */ - if ((pwd = getpwnam((char*) patbuf)) == NULL) + if (g_Ctoc(patbuf, (char *)wbuf, sizeof(wbuf)) || + (pwd = getpwnam((char *)wbuf)) == NULL) return (pattern); else h = pwd->pw_dir; } /* Copy the home directory */ - for (b = patbuf; b < eb && *h; *b++ = *h++) + dc = wbuf; + sc = h; + wbufend = wbuf + MAXPATHLEN - 1; + too_long = 1; + memset(&mbs, 0, sizeof(mbs)); + while (dc <= wbufend) { + clen = mbrtowc(&wc, sc, MB_LEN_MAX, &mbs); + if (clen == (size_t)-1 || clen == (size_t)-2) { + /* XXX See initial comment #2. */ + wc = (unsigned char)*sc; + clen = 1; + memset(&mbs, 0, sizeof(mbs)); + } + if ((*dc++ = wc) == EOS) { + too_long = 0; + break; + } + sc += clen; + } + if (too_long) + return (pattern); + + dc = wbuf; + for (b = patbuf; b < eb && *dc != EOS; *b++ = *dc++) continue; + if (*dc != EOS) + return (pattern); /* Append the rest of the pattern */ - while (b < eb && (*b++ = *p++) != EOS) - continue; - *b = EOS; + if (*p != EOS) { + too_long = 1; + while (b <= eb) { + if ((*b++ = *p++) == EOS) { + too_long = 0; + break; + } + } + if (too_long) + return (pattern); + } else + *b = EOS; return (patbuf); } @@ -553,7 +596,7 @@ glob0(const Char *pattern, glob_t *pglob static int compare(const void *p, const void *q) { - return (strcmp(*(char **)p, *(char **)q)); + return (strcoll(*(char **)p, *(char **)q)); } static int @@ -699,7 +742,7 @@ glob3(Char *pathbuf, Char *pathend, Char } /* Initial DOT must be matched literally. */ - if (dp->d_name[0] == DOT && *pattern != DOT) + if (dp->d_name[0] == '.' && *pattern != DOT) continue; memset(&mbs, 0, sizeof(mbs)); dc = pathend; @@ -707,7 +750,8 @@ glob3(Char *pathbuf, Char *pathend, Char while (dc < pathend_last) { clen = mbrtowc(&wc, sc, MB_LEN_MAX, &mbs); if (clen == (size_t)-1 || clen == (size_t)-2) { - wc = *sc; + /* XXX See initial comment #2. */ + wc = (unsigned char)*sc; clen = 1; memset(&mbs, 0, sizeof(mbs)); } @@ -831,10 +875,12 @@ match(Char *name, Char *pat, Char *paten while (((c = *pat++) & M_MASK) != M_END) if ((*pat & M_MASK) == M_RNG) { if (table->__collate_load_error ? - CHAR(c) <= CHAR(k) && CHAR(k) <= CHAR(pat[1]) : - __wcollate_range_cmp(CHAR(c), CHAR(k)) <= 0 - && __wcollate_range_cmp(CHAR(k), CHAR(pat[1])) <= 0 - ) + CHAR(c) <= CHAR(k) && + CHAR(k) <= CHAR(pat[1]) : + __wcollate_range_cmp(CHAR(c), + CHAR(k)) <= 0 && + __wcollate_range_cmp(CHAR(k), + CHAR(pat[1])) <= 0) ok = 1; pat += 2; } else if (c == k) @@ -873,7 +919,7 @@ g_opendir(Char *str, glob_t *pglob) { char buf[MAXPATHLEN]; - if (!*str) + if (*str == EOS) strcpy(buf, "."); else { if (g_Ctoc(str, buf, sizeof(buf))) @@ -934,9 +980,13 @@ g_Ctoc(const Char *str, char *buf, size_ memset(&mbs, 0, sizeof(mbs)); while (len >= MB_CUR_MAX) { clen = wcrtomb(buf, *str, &mbs); - if (clen == (size_t)-1) - return (1); - if (*str == L'\0') + if (clen == (size_t)-1) { + /* XXX See initial comment #2. */ + *buf = (char)*str; + clen = 1; + memset(&mbs, 0, sizeof(mbs)); + } + if (*buf == '\0') return (0); str++; buf += clen; From owner-svn-src-all@freebsd.org Sun Jul 17 11:25:25 2016 Return-Path: Delivered-To: svn-src-all@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 C6862B9CACD; Sun, 17 Jul 2016 11:25:25 +0000 (UTC) (envelope-from ache@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 8E95D15D6; Sun, 17 Jul 2016 11:25:25 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HBPOX4074624; Sun, 17 Jul 2016 11:25:24 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HBPOpJ074623; Sun, 17 Jul 2016 11:25:24 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607171125.u6HBPOpJ074623@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Sun, 17 Jul 2016 11:25:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302944 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 11:25:25 -0000 Author: ache Date: Sun Jul 17 11:25:24 2016 New Revision: 302944 URL: https://svnweb.freebsd.org/changeset/base/302944 Log: In g_Ctoc() apply CHAR() macro to *str to strip all flags. It gains nothing right now, but some architectures theoretically may 64-bit wchar_t and the code looks more correct. Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Sun Jul 17 09:39:59 2016 (r302943) +++ head/lib/libc/gen/glob.c Sun Jul 17 11:25:24 2016 (r302944) @@ -979,14 +979,14 @@ g_Ctoc(const Char *str, char *buf, size_ memset(&mbs, 0, sizeof(mbs)); while (len >= MB_CUR_MAX) { - clen = wcrtomb(buf, *str, &mbs); + clen = wcrtomb(buf, CHAR(*str), &mbs); if (clen == (size_t)-1) { /* XXX See initial comment #2. */ - *buf = (char)*str; + *buf = (char)CHAR(*str); clen = 1; memset(&mbs, 0, sizeof(mbs)); } - if (*buf == '\0') + if (CHAR(*str) == EOS) return (0); str++; buf += clen; From owner-svn-src-all@freebsd.org Sun Jul 17 11:43:28 2016 Return-Path: Delivered-To: svn-src-all@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 BB848B9CF47; Sun, 17 Jul 2016 11:43:28 +0000 (UTC) (envelope-from tuexen@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 7EFC21E15; Sun, 17 Jul 2016 11:43:28 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HBhRNg082115; Sun, 17 Jul 2016 11:43:27 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HBhRH6082114; Sun, 17 Jul 2016 11:43:27 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201607171143.u6HBhRH6082114@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 17 Jul 2016 11:43:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302945 - head/usr.bin/netstat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 11:43:28 -0000 Author: tuexen Date: Sun Jul 17 11:43:27 2016 New Revision: 302945 URL: https://svnweb.freebsd.org/changeset/base/302945 Log: Don't duplicate code for SCTP, just use the ones used for UDP and TCP. This fixes a bug with link local addresses. This will require and upcoming change in the kernel to bring SCTP to the same behaviour as UDP and TCP. MFC after: 3 days Modified: head/usr.bin/netstat/sctp.c Modified: head/usr.bin/netstat/sctp.c ============================================================================== --- head/usr.bin/netstat/sctp.c Sun Jul 17 11:25:24 2016 (r302944) +++ head/usr.bin/netstat/sctp.c Sun Jul 17 11:43:27 2016 (r302945) @@ -104,93 +104,14 @@ struct xraddr_entry { LIST_ENTRY(xraddr_entry) xraddr_entries; }; -/* - * Construct an Internet address representation. - * If numeric_addr has been supplied, give - * numeric value, otherwise try for symbolic name. - */ #ifdef INET -static char * -inetname(struct in_addr *inp) -{ - char *cp; - static char line[MAXHOSTNAMELEN]; - struct hostent *hp; - struct netent *np; - - cp = 0; - if (!numeric_addr && inp->s_addr != INADDR_ANY) { - int net = inet_netof(*inp); - int lna = inet_lnaof(*inp); - - if (lna == INADDR_ANY) { - np = getnetbyaddr(net, AF_INET); - if (np) - cp = np->n_name; - } - if (cp == NULL) { - hp = gethostbyaddr((char *)inp, sizeof (*inp), AF_INET); - if (hp) { - cp = hp->h_name; - trimdomain(cp, strlen(cp)); - } - } - } - if (inp->s_addr == INADDR_ANY) - strcpy(line, "*"); - else if (cp) { - strlcpy(line, cp, sizeof(line)); - } else { - inp->s_addr = ntohl(inp->s_addr); -#define C(x) ((u_int)((x) & 0xff)) - sprintf(line, "%u.%u.%u.%u", C(inp->s_addr >> 24), - C(inp->s_addr >> 16), C(inp->s_addr >> 8), C(inp->s_addr)); - inp->s_addr = htonl(inp->s_addr); - } - return (line); -} +char * +inetname(struct in_addr *inp); #endif #ifdef INET6 -static char ntop_buf[INET6_ADDRSTRLEN]; - -static char * -inet6name(struct in6_addr *in6p) -{ - char *cp; - static char line[50]; - struct hostent *hp; - static char domain[MAXHOSTNAMELEN]; - static int first = 1; - - if (first && !numeric_addr) { - first = 0; - if (gethostname(domain, MAXHOSTNAMELEN) == 0 && - (cp = strchr(domain, '.'))) - (void) strcpy(domain, cp + 1); - else - domain[0] = 0; - } - cp = 0; - if (!numeric_addr && !IN6_IS_ADDR_UNSPECIFIED(in6p)) { - hp = gethostbyaddr((char *)in6p, sizeof(*in6p), AF_INET6); - if (hp) { - if ((cp = strchr(hp->h_name, '.')) && - !strcmp(cp + 1, domain)) - *cp = 0; - cp = hp->h_name; - } - } - if (IN6_IS_ADDR_UNSPECIFIED(in6p)) - strcpy(line, "*"); - else if (cp) - strcpy(line, cp); - else - sprintf(line, "%s", - inet_ntop(AF_INET6, (void *)in6p, ntop_buf, - sizeof(ntop_buf))); - return (line); -} +char * +inet6name(struct in6_addr *in6p); #endif static void From owner-svn-src-all@freebsd.org Sun Jul 17 12:31:32 2016 Return-Path: Delivered-To: svn-src-all@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 5EA37B9A618; Sun, 17 Jul 2016 12:31:32 +0000 (UTC) (envelope-from mav@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 2B8861701; Sun, 17 Jul 2016 12:31:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HCVVP9000706; Sun, 17 Jul 2016 12:31:31 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HCVVbb000705; Sun, 17 Jul 2016 12:31:31 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607171231.u6HCVVbb000705@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sun, 17 Jul 2016 12:31:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302946 - head/sys/dev/ahci X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 12:31:32 -0000 Author: mav Date: Sun Jul 17 12:31:31 2016 New Revision: 302946 URL: https://svnweb.freebsd.org/changeset/base/302946 Log: Do not consider the last interrupt shared if there are enough interrupts for all channels. Modified: head/sys/dev/ahci/ahci.c Modified: head/sys/dev/ahci/ahci.c ============================================================================== --- head/sys/dev/ahci/ahci.c Sun Jul 17 11:43:27 2016 (r302945) +++ head/sys/dev/ahci/ahci.c Sun Jul 17 12:31:31 2016 (r302946) @@ -416,7 +416,8 @@ ahci_setup_interrupt(device_t dev) else if (ctlr->numirqs == 1 || i >= ctlr->channels || (ctlr->ccc && i == ctlr->cccv)) ctlr->irqs[i].mode = AHCI_IRQ_MODE_ALL; - else if (i == ctlr->numirqs - 1) + else if (ctlr->channels > ctlr->numirqs && + i == ctlr->numirqs - 1) ctlr->irqs[i].mode = AHCI_IRQ_MODE_AFTER; else ctlr->irqs[i].mode = AHCI_IRQ_MODE_ONE; From owner-svn-src-all@freebsd.org Sun Jul 17 12:45:59 2016 Return-Path: Delivered-To: svn-src-all@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 2ADE7B9AAC2; Sun, 17 Jul 2016 12:45:59 +0000 (UTC) (envelope-from mav@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 F11C51DB2; Sun, 17 Jul 2016 12:45:58 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HCjwe9004576; Sun, 17 Jul 2016 12:45:58 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HCjwGa004575; Sun, 17 Jul 2016 12:45:58 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607171245.u6HCjwGa004575@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sun, 17 Jul 2016 12:45:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302947 - head/sys/dev/ahci X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 12:45:59 -0000 Author: mav Date: Sun Jul 17 12:45:58 2016 New Revision: 302947 URL: https://svnweb.freebsd.org/changeset/base/302947 Log: In AHCI_IRQ_MODE_AFTER mode do not clear interrupts below. This is probably a NOP change since IS register is not activery used for interrupts below the shared, but it looked odd to clear interrupts we did not handle. Modified: head/sys/dev/ahci/ahci.c Modified: head/sys/dev/ahci/ahci.c ============================================================================== --- head/sys/dev/ahci/ahci.c Sun Jul 17 12:31:31 2016 (r302946) +++ head/sys/dev/ahci/ahci.c Sun Jul 17 12:45:58 2016 (r302947) @@ -466,6 +466,7 @@ ahci_intr(void *data) } else { /* AHCI_IRQ_MODE_AFTER */ unit = irq->r_irq_rid - 1; is = ATA_INL(ctlr->r_mem, AHCI_IS); + is &= (0xffffffff << unit); } /* CCC interrupt is edge triggered. */ if (ctlr->ccc) From owner-svn-src-all@freebsd.org Sun Jul 17 13:10:59 2016 Return-Path: Delivered-To: svn-src-all@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 1BAA3B9C0FB; Sun, 17 Jul 2016 13:10:59 +0000 (UTC) (envelope-from ache@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 D8F2B18A6; Sun, 17 Jul 2016 13:10:58 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HDAwNA012606; Sun, 17 Jul 2016 13:10:58 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HDAw0E012605; Sun, 17 Jul 2016 13:10:58 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607171310.u6HDAw0E012605@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Sun, 17 Jul 2016 13:10:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302948 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 13:10:59 -0000 Author: ache Date: Sun Jul 17 13:10:57 2016 New Revision: 302948 URL: https://svnweb.freebsd.org/changeset/base/302948 Log: Reflect pathnames sorting in collation order. Modified: head/lib/libc/gen/glob.3 Modified: head/lib/libc/gen/glob.3 ============================================================================== --- head/lib/libc/gen/glob.3 Sun Jul 17 12:45:58 2016 (r302947) +++ head/lib/libc/gen/glob.3 Sun Jul 17 13:10:57 2016 (r302948) @@ -194,7 +194,7 @@ If is set, backslash escaping is disabled. .It Dv GLOB_NOSORT By default, the pathnames are sorted in ascending -.Tn ASCII +collation order; this flag prevents that sorting (speeding up .Fn glob ) . From owner-svn-src-all@freebsd.org Sun Jul 17 13:14:53 2016 Return-Path: Delivered-To: svn-src-all@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 65DBDB9C22C; Sun, 17 Jul 2016 13:14:53 +0000 (UTC) (envelope-from tuexen@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 237521C4C; Sun, 17 Jul 2016 13:14:53 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HDEqf3015352; Sun, 17 Jul 2016 13:14:52 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HDEpbx015348; Sun, 17 Jul 2016 13:14:51 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201607171314.u6HDEpbx015348@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 17 Jul 2016 13:14:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302949 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 13:14:53 -0000 Author: tuexen Date: Sun Jul 17 13:14:51 2016 New Revision: 302949 URL: https://svnweb.freebsd.org/changeset/base/302949 Log: Fix the PR-SCTP behaviour. This is done by rrs@. MFC after: 3 days Modified: head/sys/netinet/sctp_constants.h head/sys/netinet/sctp_header.h head/sys/netinet/sctp_indata.c head/sys/netinet/sctp_output.c Modified: head/sys/netinet/sctp_constants.h ============================================================================== --- head/sys/netinet/sctp_constants.h Sun Jul 17 13:10:57 2016 (r302948) +++ head/sys/netinet/sctp_constants.h Sun Jul 17 13:14:51 2016 (r302949) @@ -345,6 +345,7 @@ __FBSDID("$FreeBSD$"); #define SCTP_RTT_FROM_NON_DATA 0 #define SCTP_RTT_FROM_DATA 1 +#define PR_SCTP_UNORDERED_FLAG 0x0001 /* IP hdr (20/40) + 12+2+2 (enet) + sctp common 12 */ #define SCTP_FIRST_MBUF_RESV 68 Modified: head/sys/netinet/sctp_header.h ============================================================================== --- head/sys/netinet/sctp_header.h Sun Jul 17 13:10:57 2016 (r302948) +++ head/sys/netinet/sctp_header.h Sun Jul 17 13:14:51 2016 (r302949) @@ -397,7 +397,7 @@ struct sctp_strseq { struct sctp_strseq_mid { uint16_t stream; - uint16_t reserved; + uint16_t flags; uint32_t msg_id; }; Modified: head/sys/netinet/sctp_indata.c ============================================================================== --- head/sys/netinet/sctp_indata.c Sun Jul 17 13:10:57 2016 (r302948) +++ head/sys/netinet/sctp_indata.c Sun Jul 17 13:14:51 2016 (r302949) @@ -5283,10 +5283,11 @@ sctp_kick_prsctp_reorder_queue(struct sc } } + static void sctp_flush_reassm_for_str_seq(struct sctp_tcb *stcb, struct sctp_association *asoc, - uint16_t stream, uint32_t seq) + uint16_t stream, uint32_t seq, int ordered, int old) { struct sctp_queued_to_read *control; struct sctp_stream_in *strm; @@ -5301,7 +5302,7 @@ sctp_flush_reassm_for_str_seq(struct sct * queue. */ strm = &asoc->strmin[stream]; - control = find_reasm_entry(strm, (uint32_t) seq, 0, 0); + control = find_reasm_entry(strm, (uint32_t) seq, ordered, old); if (control == NULL) { /* Not found */ return; @@ -5433,6 +5434,7 @@ sctp_handle_forward_tsn(struct sctp_tcb unsigned int num_str; uint32_t sequence; uint16_t stream; + uint16_t ordered, flags; int old; struct sctp_strseq *stseq, strseqbuf; struct sctp_strseq_mid *stseq_m, strseqbuf_m; @@ -5458,6 +5460,12 @@ sctp_handle_forward_tsn(struct sctp_tcb } stream = ntohs(stseq_m->stream); sequence = ntohl(stseq_m->msg_id); + flags = ntohs(stseq_m->flags); + if (flags & PR_SCTP_UNORDERED_FLAG) { + ordered = 0; + } else { + ordered = 1; + } } else { stseq = (struct sctp_strseq *)sctp_m_getptr(m, offset, sizeof(struct sctp_strseq), @@ -5468,6 +5476,7 @@ sctp_handle_forward_tsn(struct sctp_tcb } stream = ntohs(stseq->stream); sequence = (uint32_t) ntohs(stseq->sequence); + ordered = 1; } /* Convert */ @@ -5493,7 +5502,7 @@ sctp_handle_forward_tsn(struct sctp_tcb asoc->fragmented_delivery_inprogress = 0; } strm = &asoc->strmin[stream]; - sctp_flush_reassm_for_str_seq(stcb, asoc, stream, sequence); + sctp_flush_reassm_for_str_seq(stcb, asoc, stream, sequence, ordered, old); TAILQ_FOREACH(ctl, &stcb->sctp_ep->read_queue, next) { if ((ctl->sinfo_stream == stream) && (ctl->sinfo_ssn == sequence)) { Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Sun Jul 17 13:10:57 2016 (r302948) +++ head/sys/netinet/sctp_output.c Sun Jul 17 13:14:51 2016 (r302949) @@ -10383,7 +10383,7 @@ sctp_fill_in_rest: /* no more to look at */ break; } - if (at->rec.data.rcv_flags & SCTP_DATA_UNORDERED) { + if ((at->rec.data.rcv_flags & SCTP_DATA_UNORDERED) && old) { /* We don't report these */ continue; } @@ -10504,7 +10504,7 @@ sctp_fill_in_rest: tp1 = TAILQ_NEXT(at, sctp_next); if (tp1 == NULL) break; - if (at->rec.data.rcv_flags & SCTP_DATA_UNORDERED) { + if (old && (at->rec.data.rcv_flags & SCTP_DATA_UNORDERED)) { /* We don't report these */ i--; at = tp1; @@ -10519,8 +10519,11 @@ sctp_fill_in_rest: strseq++; } else { strseq_m->stream = ntohs(at->rec.data.stream_number); - strseq_m->reserved = ntohs(0); strseq_m->msg_id = ntohl(at->rec.data.stream_seq); + if (at->rec.data.rcv_flags & SCTP_DATA_UNORDERED) + strseq_m->flags = ntohs(PR_SCTP_UNORDERED_FLAG); + else + strseq_m->flags = 0; strseq_m++; } at = tp1; From owner-svn-src-all@freebsd.org Sun Jul 17 13:33:36 2016 Return-Path: Delivered-To: svn-src-all@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 B05A7B9CA23; Sun, 17 Jul 2016 13:33:36 +0000 (UTC) (envelope-from tuexen@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 75C3B1848; Sun, 17 Jul 2016 13:33:36 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HDXZH1022643; Sun, 17 Jul 2016 13:33:35 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HDXZcP022642; Sun, 17 Jul 2016 13:33:35 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201607171333.u6HDXZcP022642@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 17 Jul 2016 13:33:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302950 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 13:33:36 -0000 Author: tuexen Date: Sun Jul 17 13:33:35 2016 New Revision: 302950 URL: https://svnweb.freebsd.org/changeset/base/302950 Log: Add a constant required by RFC 7496. MFC after: 3 days Modified: head/sys/netinet/sctp_uio.h Modified: head/sys/netinet/sctp_uio.h ============================================================================== --- head/sys/netinet/sctp_uio.h Sun Jul 17 13:14:51 2016 (r302949) +++ head/sys/netinet/sctp_uio.h Sun Jul 17 13:33:35 2016 (r302950) @@ -259,7 +259,8 @@ struct sctp_snd_all_completes { /* The lower four bits is an enumeration of PR-SCTP policies */ #define SCTP_PR_SCTP_NONE 0x0000/* Reliable transfer */ #define SCTP_PR_SCTP_TTL 0x0001/* Time based PR-SCTP */ -#define SCTP_PR_SCTP_BUF 0x0002/* Buffer based PR-SCTP */ +#define SCTP_PR_SCTP_PRIO 0x0002/* Buffer based PR-SCTP */ +#define SCTP_PR_SCTP_BUF SCTP_PR_SCTP_PRIO /* For backwards compatibility */ #define SCTP_PR_SCTP_RTX 0x0003/* Number of retransmissions based PR-SCTP */ #define SCTP_PR_SCTP_MAX SCTP_PR_SCTP_RTX #define SCTP_PR_SCTP_ALL 0x000f/* Used for aggregated stats */ From owner-svn-src-all@freebsd.org Sun Jul 17 13:43:02 2016 Return-Path: Delivered-To: svn-src-all@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 2351BB9CBB3; Sun, 17 Jul 2016 13:43:02 +0000 (UTC) (envelope-from mmel@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 F1A0E1CA1; Sun, 17 Jul 2016 13:43:01 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HDh15W026196; Sun, 17 Jul 2016 13:43:01 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HDh1dM026194; Sun, 17 Jul 2016 13:43:01 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201607171343.u6HDh1dM026194@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 17 Jul 2016 13:43:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302951 - head/sys/dev/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 13:43:02 -0000 Author: mmel Date: Sun Jul 17 13:43:00 2016 New Revision: 302951 URL: https://svnweb.freebsd.org/changeset/base/302951 Log: OFWPCI: Improve resource handling. - add new rman for prefetchable memory. Is used only if given 'ranges' property contains prefetchable memory range. - not all ranges in 'ranges' property are subject for rman's filling. Tegra for example, have two addition records which are used for 'pci 'register' -> 'assigned-address' -> 'ranges' machinery. Add sc_ranges_mask for masking not rman related ranges. - consistently pass unknown (not managed at this level) resources allocation/release/adjust requests to parent. MFC after: 3 weeks Modified: head/sys/dev/ofw/ofwpci.c head/sys/dev/ofw/ofwpci.h Modified: head/sys/dev/ofw/ofwpci.c ============================================================================== --- head/sys/dev/ofw/ofwpci.c Sun Jul 17 13:33:35 2016 (r302950) +++ head/sys/dev/ofw/ofwpci.c Sun Jul 17 13:43:00 2016 (r302951) @@ -94,6 +94,7 @@ static phandle_t ofw_pci_get_node(device * local methods */ static int ofw_pci_fill_ranges(phandle_t, struct ofw_pci_range *); +static struct rman *ofw_pci_get_rman(struct ofw_pci_softc *, int, u_int); /* * Driver methods. @@ -137,7 +138,7 @@ ofw_pci_init(device_t dev) phandle_t node; u_int32_t busrange[2]; struct ofw_pci_range *rp; - int error; + int i, error; struct ofw_pci_cell_info *cell_info; node = ofw_bus_get_node(dev); @@ -201,17 +202,27 @@ ofw_pci_init(device_t dev) } sc->sc_mem_rman.rm_type = RMAN_ARRAY; - sc->sc_mem_rman.rm_descr = "PCI Memory"; + sc->sc_mem_rman.rm_descr = "PCI Non Prefetchable Memory"; error = rman_init(&sc->sc_mem_rman); if (error != 0) { device_printf(dev, "rman_init() failed. error = %d\n", error); goto out; } - for (rp = sc->sc_range; rp < sc->sc_range + sc->sc_nrange && - rp->pci_hi != 0; rp++) { + sc->sc_pmem_rman.rm_type = RMAN_ARRAY; + sc->sc_pmem_rman.rm_descr = "PCI Prefetchable Memory"; + error = rman_init(&sc->sc_pmem_rman); + if (error != 0) { + device_printf(dev, "rman_init() failed. error = %d\n", error); + goto out; + } + + for (i = 0; i < sc->sc_nrange; i++) { error = 0; + rp = sc->sc_range + i; + if (sc->sc_range_mask & ((uint64_t)1 << i)) + continue; switch (rp->pci_hi & OFW_PCI_PHYS_HI_SPACEMASK) { case OFW_PCI_PHYS_HI_SPACE_CONFIG: break; @@ -221,8 +232,14 @@ ofw_pci_init(device_t dev) break; case OFW_PCI_PHYS_HI_SPACE_MEM32: case OFW_PCI_PHYS_HI_SPACE_MEM64: - error = rman_manage_region(&sc->sc_mem_rman, rp->pci, - rp->pci + rp->size - 1); + if (rp->pci_hi & OFW_PCI_PHYS_HI_PREFETCHABLE) { + sc->sc_have_pmem = 1; + error = rman_manage_region(&sc->sc_pmem_rman, + rp->pci, rp->pci + rp->size - 1); + } else { + error = rman_manage_region(&sc->sc_mem_rman, + rp->pci, rp->pci + rp->size - 1); + } break; } @@ -244,6 +261,7 @@ out: free(sc->sc_range, M_DEVBUF); rman_fini(&sc->sc_io_rman); rman_fini(&sc->sc_mem_rman); + rman_fini(&sc->sc_pmem_rman); return (error); } @@ -385,28 +403,16 @@ ofw_pci_alloc_resource(device_t bus, dev struct rman *rm; int needactivate; + needactivate = flags & RF_ACTIVE; flags &= ~RF_ACTIVE; sc = device_get_softc(bus); - switch (type) { - case SYS_RES_MEMORY: - rm = &sc->sc_mem_rman; - break; - - case SYS_RES_IOPORT: - rm = &sc->sc_io_rman; - break; - - case SYS_RES_IRQ: - return (bus_alloc_resource(bus, type, rid, start, end, count, - flags)); - - default: - device_printf(bus, "unknown resource request from %s\n", - device_get_nameunit(child)); - return (NULL); + rm = ofw_pci_get_rman(sc, type, flags); + if (rm == NULL) { + return (bus_generic_alloc_resource(bus, child, type, rid, + start, end, count, flags)); } rv = rman_reserve_resource(rm, start, end, count, flags, child); @@ -435,15 +441,24 @@ static int ofw_pci_release_resource(device_t bus, device_t child, int type, int rid, struct resource *res) { + struct ofw_pci_softc *sc; + struct rman *rm; + int error; - if (rman_get_flags(res) & RF_ACTIVE) { - int error; + sc = device_get_softc(bus); + + rm = ofw_pci_get_rman(sc, type, rman_get_flags(res)); + if (rm == NULL) { + return (bus_generic_release_resource(bus, child, type, rid, + res)); + } + KASSERT(rman_is_region_manager(res, rm), ("rman mismatch")); + if (rman_get_flags(res) & RF_ACTIVE) { error = bus_deactivate_resource(child, type, rid, res); if (error != 0) return (error); } - return (rman_release_resource(res)); } @@ -454,63 +469,62 @@ ofw_pci_activate_resource(device_t bus, struct ofw_pci_softc *sc; bus_space_handle_t handle; bus_space_tag_t tag; + struct ofw_pci_range *rp; + vm_paddr_t start; + int space; int rv; sc = device_get_softc(bus); - if (type == SYS_RES_IRQ) { - return (bus_activate_resource(bus, type, rid, res)); + if (type != SYS_RES_IOPORT && type != SYS_RES_MEMORY) { + return (bus_generic_activate_resource(bus, child, type, rid, + res)); } - if (type == SYS_RES_MEMORY || type == SYS_RES_IOPORT) { - struct ofw_pci_range *rp; - vm_paddr_t start; - int space; - - start = (vm_paddr_t)rman_get_start(res); - - /* - * Map this through the ranges list - */ - for (rp = sc->sc_range; rp < sc->sc_range + sc->sc_nrange && - rp->pci_hi != 0; rp++) { - if (start < rp->pci || start >= rp->pci + rp->size) - continue; - - switch (rp->pci_hi & OFW_PCI_PHYS_HI_SPACEMASK) { - case OFW_PCI_PHYS_HI_SPACE_IO: - space = SYS_RES_IOPORT; - break; - case OFW_PCI_PHYS_HI_SPACE_MEM32: - case OFW_PCI_PHYS_HI_SPACE_MEM64: - space = SYS_RES_MEMORY; - break; - default: - space = -1; - } - if (type == space) { - start += (rp->host - rp->pci); - break; + start = (vm_paddr_t)rman_get_start(res); + + /* + * Map this through the ranges list + */ + for (rp = sc->sc_range; rp < sc->sc_range + sc->sc_nrange && + rp->pci_hi != 0; rp++) { + if (start < rp->pci || start >= rp->pci + rp->size) + continue; + + switch (rp->pci_hi & OFW_PCI_PHYS_HI_SPACEMASK) { + case OFW_PCI_PHYS_HI_SPACE_IO: + space = SYS_RES_IOPORT; + break; + case OFW_PCI_PHYS_HI_SPACE_MEM32: + case OFW_PCI_PHYS_HI_SPACE_MEM64: + space = SYS_RES_MEMORY; + break; + default: + space = -1; } + + if (type == space) { + start += (rp->host - rp->pci); + break; } + } - if (bootverbose) - printf("ofw_pci mapdev: start %jx, len %jd\n", - (rman_res_t)start, rman_get_size(res)); - - tag = BUS_GET_BUS_TAG(child, child); - if (tag == NULL) - return (ENOMEM); - - rman_set_bustag(res, tag); - rv = bus_space_map(tag, start, - rman_get_size(res), 0, &handle); - if (rv != 0) - return (ENOMEM); + if (bootverbose) + printf("ofw_pci mapdev: start %jx, len %jd\n", + (rman_res_t)start, rman_get_size(res)); + + tag = BUS_GET_BUS_TAG(child, child); + if (tag == NULL) + return (ENOMEM); + + rman_set_bustag(res, tag); + rv = bus_space_map(tag, start, + rman_get_size(res), 0, &handle); + if (rv != 0) + return (ENOMEM); - rman_set_bushandle(res, handle); - rman_set_virtual(res, (void *)handle); /* XXX for powerpc only ? */ - } + rman_set_bushandle(res, handle); + rman_set_virtual(res, (void *)handle); /* XXX for powerpc only ? */ return (rman_activate_resource(res)); } @@ -528,17 +542,19 @@ static int ofw_pci_deactivate_resource(device_t bus, device_t child, int type, int rid, struct resource *res) { + struct ofw_pci_softc *sc; + vm_size_t psize; - /* - * If this is a memory resource, unmap it. - */ - if ((type == SYS_RES_MEMORY) || (type == SYS_RES_IOPORT)) { - u_int32_t psize; + sc = device_get_softc(bus); - psize = rman_get_size(res); - pmap_unmapdev((vm_offset_t)rman_get_virtual(res), psize); + if (type != SYS_RES_IOPORT && type != SYS_RES_MEMORY) { + return (bus_generic_deactivate_resource(bus, child, type, rid, + res)); } + psize = rman_get_size(res); + pmap_unmapdev((vm_offset_t)rman_get_virtual(res), psize); + return (rman_deactivate_resource(res)); } @@ -550,24 +566,15 @@ ofw_pci_adjust_resource(device_t bus, de struct ofw_pci_softc *sc; sc = device_get_softc(bus); - KASSERT(!(rman_get_flags(res) & RF_ACTIVE), - ("active resources cannot be adjusted")); - if (rman_get_flags(res) & RF_ACTIVE) - return (EINVAL); - switch (type) { - case SYS_RES_MEMORY: - rm = &sc->sc_mem_rman; - break; - case SYS_RES_IOPORT: - rm = &sc->sc_io_rman; - break; - default: - return (ENXIO); + rm = ofw_pci_get_rman(sc, type, rman_get_flags(res)); + if (rm == NULL) { + return (bus_generic_adjust_resource(bus, child, type, res, + start, end)); } - - if (!rman_is_region_manager(res, rm)) - return (EINVAL); + KASSERT(rman_is_region_manager(res, rm), ("rman mismatch")); + KASSERT(!(rman_get_flags(res) & RF_ACTIVE), + ("active resources cannot be adjusted")); return (rman_adjust_resource(res, start, end)); } @@ -629,3 +636,22 @@ ofw_pci_fill_ranges(phandle_t node, stru free(base_ranges, M_DEVBUF); return (nranges); } + +static struct rman * +ofw_pci_get_rman(struct ofw_pci_softc *sc, int type, u_int flags) +{ + + switch (type) { + case SYS_RES_IOPORT: + return (&sc->sc_io_rman); + case SYS_RES_MEMORY: + if (sc->sc_have_pmem && (flags & RF_PREFETCHABLE)) + return (&sc->sc_pmem_rman); + else + return (&sc->sc_mem_rman); + default: + break; + } + + return (NULL); +} Modified: head/sys/dev/ofw/ofwpci.h ============================================================================== --- head/sys/dev/ofw/ofwpci.h Sun Jul 17 13:33:35 2016 (r302950) +++ head/sys/dev/ofw/ofwpci.h Sun Jul 17 13:43:00 2016 (r302951) @@ -60,13 +60,16 @@ struct ofw_pci_softc { int sc_bus; int sc_initialized; int sc_quirks; + int sc_have_pmem; struct ofw_pci_range *sc_range; int sc_nrange; + uint64_t sc_range_mask; struct ofw_pci_cell_info *sc_cell_info; struct rman sc_io_rman; struct rman sc_mem_rman; + struct rman sc_pmem_rman; bus_space_tag_t sc_memt; bus_dma_tag_t sc_dmat; From owner-svn-src-all@freebsd.org Sun Jul 17 13:43:48 2016 Return-Path: Delivered-To: svn-src-all@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 34382B9CC07; Sun, 17 Jul 2016 13:43:48 +0000 (UTC) (envelope-from mmel@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 E14571E07; Sun, 17 Jul 2016 13:43:47 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HDhlDr026262; Sun, 17 Jul 2016 13:43:47 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HDhluv026260; Sun, 17 Jul 2016 13:43:47 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201607171343.u6HDhluv026260@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 17 Jul 2016 13:43:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302952 - head/sys/dev/ofw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 13:43:48 -0000 Author: mmel Date: Sun Jul 17 13:43:46 2016 New Revision: 302952 URL: https://svnweb.freebsd.org/changeset/base/302952 Log: OFWPCI: Add support for NEW_PCIB. MFC after: 3 weeks Modified: head/sys/dev/ofw/ofwpci.c head/sys/dev/ofw/ofwpci.h Modified: head/sys/dev/ofw/ofwpci.c ============================================================================== --- head/sys/dev/ofw/ofwpci.c Sun Jul 17 13:43:00 2016 (r302951) +++ head/sys/dev/ofw/ofwpci.c Sun Jul 17 13:43:46 2016 (r302952) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -145,6 +146,7 @@ ofw_pci_init(device_t dev) sc = device_get_softc(dev); sc->sc_initialized = 1; sc->sc_range = NULL; + sc->sc_pci_domain = device_get_unit(dev); cell_info = (struct ofw_pci_cell_info *)malloc(sizeof(*cell_info), M_DEVBUF, M_WAITOK | M_ZERO); @@ -336,7 +338,7 @@ ofw_pci_read_ivar(device_t dev, device_t switch (which) { case PCIB_IVAR_DOMAIN: - *result = device_get_unit(dev); + *result = sc->sc_pci_domain; return (0); case PCIB_IVAR_BUS: *result = sc->sc_bus; @@ -409,6 +411,13 @@ ofw_pci_alloc_resource(device_t bus, dev sc = device_get_softc(bus); +#if defined(NEW_PCIB) && defined(PCI_RES_BUS) + if (type == PCI_RES_BUS) { + return (pci_domain_alloc_bus(sc->sc_pci_domain, child, rid, + start, end, count, flags)); + } +#endif + rm = ofw_pci_get_rman(sc, type, flags); if (rm == NULL) { return (bus_generic_alloc_resource(bus, child, type, rid, @@ -447,6 +456,12 @@ ofw_pci_release_resource(device_t bus, d sc = device_get_softc(bus); +#if defined(NEW_PCIB) && defined(PCI_RES_BUS) + if (type == PCI_RES_BUS) + return (pci_domain_release_bus(sc->sc_pci_domain, child, rid, + res)); +#endif + rm = ofw_pci_get_rman(sc, type, rman_get_flags(res)); if (rm == NULL) { return (bus_generic_release_resource(bus, child, type, rid, @@ -566,6 +581,11 @@ ofw_pci_adjust_resource(device_t bus, de struct ofw_pci_softc *sc; sc = device_get_softc(bus); +#if defined(NEW_PCIB) && defined(PCI_RES_BUS) + if (type == PCI_RES_BUS) + return (pci_domain_adjust_bus(sc->sc_pci_domain, child, res, + start, end)); +#endif rm = ofw_pci_get_rman(sc, type, rman_get_flags(res)); if (rm == NULL) { Modified: head/sys/dev/ofw/ofwpci.h ============================================================================== --- head/sys/dev/ofw/ofwpci.h Sun Jul 17 13:43:00 2016 (r302951) +++ head/sys/dev/ofw/ofwpci.h Sun Jul 17 13:43:46 2016 (r302952) @@ -72,6 +72,7 @@ struct ofw_pci_softc { struct rman sc_pmem_rman; bus_space_tag_t sc_memt; bus_dma_tag_t sc_dmat; + int sc_pci_domain; struct ofw_bus_iinfo sc_pci_iinfo; }; From owner-svn-src-all@freebsd.org Sun Jul 17 14:05:12 2016 Return-Path: Delivered-To: svn-src-all@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 D3FA6B9CEF9; Sun, 17 Jul 2016 14:05:12 +0000 (UTC) (envelope-from jamie@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 80EC51699; Sun, 17 Jul 2016 14:05:12 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HE5BWo033471; Sun, 17 Jul 2016 14:05:11 GMT (envelope-from jamie@FreeBSD.org) Received: (from jamie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HE5B4O033470; Sun, 17 Jul 2016 14:05:11 GMT (envelope-from jamie@FreeBSD.org) Message-Id: <201607171405.u6HE5B4O033470@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jamie set sender to jamie@FreeBSD.org using -f From: Jamie Gritton Date: Sun, 17 Jul 2016 14:05:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r302953 - stable/11/etc/rc.d X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 14:05:12 -0000 Author: jamie Date: Sun Jul 17 14:05:11 2016 New Revision: 302953 URL: https://svnweb.freebsd.org/changeset/base/302953 Log: MFC r302855: Wait for jails to complete startup if jail_parallel_start is YES, instead of assuming they'll take less than one second. PR: 203172 Submitted by: dmitry2004@yandex.ru Approved by: re (gjb) Modified: stable/11/etc/rc.d/jail Directory Properties: stable/11/ (props changed) Modified: stable/11/etc/rc.d/jail ============================================================================== --- stable/11/etc/rc.d/jail Sun Jul 17 13:43:46 2016 (r302952) +++ stable/11/etc/rc.d/jail Sun Jul 17 14:05:11 2016 (r302953) @@ -440,7 +440,7 @@ jail_status() jail_start() { - local _j _jv _jid _jl _id _name + local _j _jv _jid _id _name if [ $# = 0 ]; then return @@ -470,29 +470,30 @@ jail_start() # Start jails in parallel and then check jail id when # jail_parallel_start is YES. # - _jl= for _j in $@; do _j=$(echo $_j | tr /. _) _jv=$(echo -n $_j | tr -c '[:alnum:]' _) parse_options $_j $_jv || continue - _jl="$_jl $_j" eval rc_flags=\${jail_${_jv}_flags:-$jail_flags} eval command=\${jail_${_jv}_program:-$jail_program} command_args="-i -f $_conf -c $_j" - $command $rc_flags $command_args \ - >/dev/null 2>&1 /var/run/jail_${_j}.id - else - echo " cannot start jail " \ - "\"${_hostname:-${_j}}\": " - fi + ( + _tmp=`mktemp -t jail_${_j}` || exit 3 + if $command $rc_flags $command_args \ + >> $_tmp 2>&1 /var/run/jail_${_j}.id + else + echo " cannot start jail " \ + "\"${_hostname:-${_j}}\": " + cat $_tmp + fi + rm -f $_tmp + ) & done + wait else # # Start jails one-by-one when jail_parallel_start is NO. From owner-svn-src-all@freebsd.org Sun Jul 17 14:06:19 2016 Return-Path: Delivered-To: svn-src-all@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 49002B9CF59; Sun, 17 Jul 2016 14:06:19 +0000 (UTC) (envelope-from jamie@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 24C421816; Sun, 17 Jul 2016 14:06:19 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HE6Ig3033577; Sun, 17 Jul 2016 14:06:18 GMT (envelope-from jamie@FreeBSD.org) Received: (from jamie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HE6IA3033574; Sun, 17 Jul 2016 14:06:18 GMT (envelope-from jamie@FreeBSD.org) Message-Id: <201607171406.u6HE6IA3033574@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jamie set sender to jamie@FreeBSD.org using -f From: Jamie Gritton Date: Sun, 17 Jul 2016 14:06:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r302954 - stable/11/usr.sbin/jail X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 14:06:19 -0000 Author: jamie Date: Sun Jul 17 14:06:17 2016 New Revision: 302954 URL: https://svnweb.freebsd.org/changeset/base/302954 Log: MFC r302856: Fix up the order in which jail creation processes are run, to preserve the config file's order in the non-parallel-start case. PR: 209112 Approved by: re (gjb) Modified: stable/11/usr.sbin/jail/command.c stable/11/usr.sbin/jail/jailp.h stable/11/usr.sbin/jail/state.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/jail/command.c ============================================================================== --- stable/11/usr.sbin/jail/command.c Sun Jul 17 14:05:11 2016 (r302953) +++ stable/11/usr.sbin/jail/command.c Sun Jul 17 14:06:17 2016 (r302954) @@ -92,9 +92,13 @@ next_command(struct cfjail *j) int create_failed, stopping; if (paralimit == 0) { - requeue(j, &runnable); + if (j->flags & JF_FROM_RUNQ) + requeue_head(j, &runnable); + else + requeue(j, &runnable); return 1; } + j->flags &= ~JF_FROM_RUNQ; create_failed = (j->flags & (JF_STOP | JF_FAILED)) == JF_FAILED; stopping = (j->flags & JF_STOP) != 0; comparam = *j->comparam; @@ -160,20 +164,23 @@ next_command(struct cfjail *j) int finish_command(struct cfjail *j) { + struct cfjail *rj; int error; if (!(j->flags & JF_SLEEPQ)) return 0; j->flags &= ~JF_SLEEPQ; - if (*j->comparam == IP_STOP_TIMEOUT) - { + if (*j->comparam == IP_STOP_TIMEOUT) { j->flags &= ~JF_TIMEOUT; j->pstatus = 0; return 0; } paralimit++; - if (!TAILQ_EMPTY(&runnable)) - requeue(TAILQ_FIRST(&runnable), &ready); + if (!TAILQ_EMPTY(&runnable)) { + rj = TAILQ_FIRST(&runnable); + rj->flags |= JF_FROM_RUNQ; + requeue(rj, &ready); + } error = 0; if (j->flags & JF_TIMEOUT) { j->flags &= ~JF_TIMEOUT; @@ -259,7 +266,7 @@ next_proc(int nonblock) } /* - * Run a single command for a jail, possible inside the jail. + * Run a single command for a jail, possibly inside the jail. */ static int run_command(struct cfjail *j) Modified: stable/11/usr.sbin/jail/jailp.h ============================================================================== --- stable/11/usr.sbin/jail/jailp.h Sun Jul 17 14:05:11 2016 (r302953) +++ stable/11/usr.sbin/jail/jailp.h Sun Jul 17 14:06:17 2016 (r302954) @@ -64,6 +64,7 @@ #define JF_PERSIST 0x0100 /* Jail is temporarily persistent */ #define JF_TIMEOUT 0x0200 /* A command (or process kill) timed out */ #define JF_SLEEPQ 0x0400 /* Waiting on a command and/or timeout */ +#define JF_FROM_RUNQ 0x0800 /* Has already been on the run queue */ #define JF_OP_MASK (JF_START | JF_SET | JF_STOP) #define JF_RESTART (JF_START | JF_STOP) @@ -223,6 +224,7 @@ extern struct cfjail *next_jail(void); extern int start_state(const char *target, int docf, unsigned state, int running); extern void requeue(struct cfjail *j, struct cfjails *queue); +extern void requeue_head(struct cfjail *j, struct cfjails *queue); extern void yyerror(const char *); extern int yylex(void); Modified: stable/11/usr.sbin/jail/state.c ============================================================================== --- stable/11/usr.sbin/jail/state.c Sun Jul 17 14:05:11 2016 (r302953) +++ stable/11/usr.sbin/jail/state.c Sun Jul 17 14:06:17 2016 (r302954) @@ -397,6 +397,14 @@ requeue(struct cfjail *j, struct cfjails } } +void +requeue_head(struct cfjail *j, struct cfjails *queue) +{ + TAILQ_REMOVE(j->queue, j, tq); + TAILQ_INSERT_HEAD(queue, j, tq); + j->queue = queue; +} + /* * Add a dependency edge between two jails. */ From owner-svn-src-all@freebsd.org Sun Jul 17 14:07:52 2016 Return-Path: Delivered-To: svn-src-all@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 4ACA9B9CFE2; Sun, 17 Jul 2016 14:07:52 +0000 (UTC) (envelope-from jamie@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 18EA419CD; Sun, 17 Jul 2016 14:07:52 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HE7pIx033701; Sun, 17 Jul 2016 14:07:51 GMT (envelope-from jamie@FreeBSD.org) Received: (from jamie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HE7pOX033700; Sun, 17 Jul 2016 14:07:51 GMT (envelope-from jamie@FreeBSD.org) Message-Id: <201607171407.u6HE7pOX033700@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jamie set sender to jamie@FreeBSD.org using -f From: Jamie Gritton Date: Sun, 17 Jul 2016 14:07:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r302955 - stable/11/etc/rc.d X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 14:07:52 -0000 Author: jamie Date: Sun Jul 17 14:07:51 2016 New Revision: 302955 URL: https://svnweb.freebsd.org/changeset/base/302955 Log: MFC r302857: Start jails non-parallel if jail_parallel_start is NO. This was true for an explicitly specified jail list; now it's also true for all jails. PR: 209112 Approved by: re (gjb) Modified: stable/11/etc/rc.d/jail Directory Properties: stable/11/ (props changed) Modified: stable/11/etc/rc.d/jail ============================================================================== --- stable/11/etc/rc.d/jail Sun Jul 17 14:06:17 2016 (r302954) +++ stable/11/etc/rc.d/jail Sun Jul 17 14:07:51 2016 (r302955) @@ -451,6 +451,9 @@ jail_start() command=$jail_program rc_flags=$jail_flags command_args="-f $jail_conf -c" + if ! checkyesno jail_parallel_start; then + command_args="$command_args -p1" + fi _tmp=`mktemp -t jail` || exit 3 if $command $rc_flags $command_args >> $_tmp 2>&1; then $jail_jls jid name | while read _id _name; do @@ -458,7 +461,7 @@ jail_start() echo $_id > /var/run/jail_${_name}.id done else - tail -1 $_tmp + cat $_tmp fi rm -f $_tmp echo '.' @@ -545,7 +548,7 @@ jail_stop() _tmp=`mktemp -t jail` || exit 3 $command $rc_flags $command_args $_j >> $_tmp 2>&1 if $jail_jls -j $_j > /dev/null 2>&1; then - tail -1 $_tmp + cat $_tmp else rm -f /var/run/jail_${_j}.id fi @@ -568,7 +571,7 @@ jail_stop() _tmp=`mktemp -t jail` || exit 3 $command -q -f $_conf -r $_j >> $_tmp 2>&1 if $jail_jls -j $_j > /dev/null 2>&1; then - tail -1 $_tmp + cat $_tmp else rm -f /var/run/jail_${_j}.id fi From owner-svn-src-all@freebsd.org Sun Jul 17 14:12:35 2016 Return-Path: Delivered-To: svn-src-all@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 DD2D3B9C141; Sun, 17 Jul 2016 14:12:35 +0000 (UTC) (envelope-from jamie@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 955FA1D7F; Sun, 17 Jul 2016 14:12:35 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HECYek037155; Sun, 17 Jul 2016 14:12:34 GMT (envelope-from jamie@FreeBSD.org) Received: (from jamie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HECY3f037154; Sun, 17 Jul 2016 14:12:34 GMT (envelope-from jamie@FreeBSD.org) Message-Id: <201607171412.u6HECY3f037154@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jamie set sender to jamie@FreeBSD.org using -f From: Jamie Gritton Date: Sun, 17 Jul 2016 14:12:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r302956 - stable/10/etc/rc.d X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 14:12:36 -0000 Author: jamie Date: Sun Jul 17 14:12:34 2016 New Revision: 302956 URL: https://svnweb.freebsd.org/changeset/base/302956 Log: MFC r302855: Wait for jails to complete startup if jail_parallel_start is YES, instead of assuming they'll take less than one second. PR: 203172 Submitted by: dmitry2004@yandex.ru Modified: stable/10/etc/rc.d/jail Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/rc.d/jail ============================================================================== --- stable/10/etc/rc.d/jail Sun Jul 17 14:07:51 2016 (r302955) +++ stable/10/etc/rc.d/jail Sun Jul 17 14:12:34 2016 (r302956) @@ -422,7 +422,7 @@ jail_status() jail_start() { - local _j _jv _jid _jl _id _name + local _j _jv _jid _id _name if [ $# = 0 ]; then return @@ -452,29 +452,30 @@ jail_start() # Start jails in parallel and then check jail id when # jail_parallel_start is YES. # - _jl= for _j in $@; do _j=$(echo $_j | tr /. _) _jv=$(echo -n $_j | tr -c '[:alnum:]' _) parse_options $_j $_jv || continue - _jl="$_jl $_j" eval rc_flags=\${jail_${_jv}_flags:-$jail_flags} eval command=\${jail_${_jv}_program:-$jail_program} command_args="-i -f $_conf -c $_j" - $command $rc_flags $command_args \ - >/dev/null 2>&1 /var/run/jail_${_j}.id - else - echo " cannot start jail " \ - "\"${_hostname:-${_j}}\": " - fi + ( + _tmp=`mktemp -t jail_${_j}` || exit 3 + if $command $rc_flags $command_args \ + >> $_tmp 2>&1 /var/run/jail_${_j}.id + else + echo " cannot start jail " \ + "\"${_hostname:-${_j}}\": " + cat $_tmp + fi + rm -f $_tmp + ) & done + wait else # # Start jails one-by-one when jail_parallel_start is NO. From owner-svn-src-all@freebsd.org Sun Jul 17 14:13:48 2016 Return-Path: Delivered-To: svn-src-all@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 7FE5FB9C1A1; Sun, 17 Jul 2016 14:13:48 +0000 (UTC) (envelope-from mav@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 4FC151EE8; Sun, 17 Jul 2016 14:13:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HEDlJ5037260; Sun, 17 Jul 2016 14:13:47 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HEDluC037259; Sun, 17 Jul 2016 14:13:47 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607171413.u6HEDluC037259@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sun, 17 Jul 2016 14:13:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302957 - head/usr.sbin/bhyve X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 14:13:48 -0000 Author: mav Date: Sun Jul 17 14:13:47 2016 New Revision: 302957 URL: https://svnweb.freebsd.org/changeset/base/302957 Log: Fix NCQ TRIM emulation. When this code was written, there was no guests using it to test. Modified: head/usr.sbin/bhyve/pci_ahci.c Modified: head/usr.sbin/bhyve/pci_ahci.c ============================================================================== --- head/usr.sbin/bhyve/pci_ahci.c Sun Jul 17 14:12:34 2016 (r302956) +++ head/usr.sbin/bhyve/pci_ahci.c Sun Jul 17 14:13:47 2016 (r302957) @@ -837,7 +837,15 @@ next: done += 8; if (elen == 0) { if (done >= len) { - ahci_write_fis_d2h(p, slot, cfis, ATA_S_READY | ATA_S_DSC); + if (ncq) { + if (first) + ahci_write_fis_d2h_ncq(p, slot); + ahci_write_fis_sdb(p, slot, cfis, + ATA_S_READY | ATA_S_DSC); + } else { + ahci_write_fis_d2h(p, slot, cfis, + ATA_S_READY | ATA_S_DSC); + } p->pending &= ~(1 << slot); ahci_check_stopped(p); if (!first) @@ -1718,7 +1726,7 @@ ahci_handle_cmd(struct ahci_port *p, int case ATA_SEND_FPDMA_QUEUED: if ((cfis[13] & 0x1f) == ATA_SFPDMA_DSM && cfis[17] == 0 && cfis[16] == ATA_DSM_TRIM && - cfis[11] == 0 && cfis[13] == 1) { + cfis[11] == 0 && cfis[3] == 1) { ahci_handle_dsm_trim(p, slot, cfis, 0); break; } From owner-svn-src-all@freebsd.org Sun Jul 17 14:15:10 2016 Return-Path: Delivered-To: svn-src-all@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 1C48FB9C20B; Sun, 17 Jul 2016 14:15:10 +0000 (UTC) (envelope-from jamie@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 EC09111D3; Sun, 17 Jul 2016 14:15:09 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HEF9HV037361; Sun, 17 Jul 2016 14:15:09 GMT (envelope-from jamie@FreeBSD.org) Received: (from jamie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HEF8Bl037358; Sun, 17 Jul 2016 14:15:08 GMT (envelope-from jamie@FreeBSD.org) Message-Id: <201607171415.u6HEF8Bl037358@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jamie set sender to jamie@FreeBSD.org using -f From: Jamie Gritton Date: Sun, 17 Jul 2016 14:15:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r302958 - stable/10/usr.sbin/jail X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 14:15:10 -0000 Author: jamie Date: Sun Jul 17 14:15:08 2016 New Revision: 302958 URL: https://svnweb.freebsd.org/changeset/base/302958 Log: MFC r302856: Fix up the order in which jail creation processes are run, to preserve the config file's order in the non-parallel-start case. PR: 209112 Modified: stable/10/usr.sbin/jail/command.c stable/10/usr.sbin/jail/jailp.h stable/10/usr.sbin/jail/state.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/jail/command.c ============================================================================== --- stable/10/usr.sbin/jail/command.c Sun Jul 17 14:13:47 2016 (r302957) +++ stable/10/usr.sbin/jail/command.c Sun Jul 17 14:15:08 2016 (r302958) @@ -92,9 +92,13 @@ next_command(struct cfjail *j) int create_failed, stopping; if (paralimit == 0) { - requeue(j, &runnable); + if (j->flags & JF_FROM_RUNQ) + requeue_head(j, &runnable); + else + requeue(j, &runnable); return 1; } + j->flags &= ~JF_FROM_RUNQ; create_failed = (j->flags & (JF_STOP | JF_FAILED)) == JF_FAILED; stopping = (j->flags & JF_STOP) != 0; comparam = *j->comparam; @@ -160,20 +164,23 @@ next_command(struct cfjail *j) int finish_command(struct cfjail *j) { + struct cfjail *rj; int error; if (!(j->flags & JF_SLEEPQ)) return 0; j->flags &= ~JF_SLEEPQ; - if (*j->comparam == IP_STOP_TIMEOUT) - { + if (*j->comparam == IP_STOP_TIMEOUT) { j->flags &= ~JF_TIMEOUT; j->pstatus = 0; return 0; } paralimit++; - if (!TAILQ_EMPTY(&runnable)) - requeue(TAILQ_FIRST(&runnable), &ready); + if (!TAILQ_EMPTY(&runnable)) { + rj = TAILQ_FIRST(&runnable); + rj->flags |= JF_FROM_RUNQ; + requeue(rj, &ready); + } error = 0; if (j->flags & JF_TIMEOUT) { j->flags &= ~JF_TIMEOUT; @@ -259,7 +266,7 @@ next_proc(int nonblock) } /* - * Run a single command for a jail, possible inside the jail. + * Run a single command for a jail, possibly inside the jail. */ static int run_command(struct cfjail *j) Modified: stable/10/usr.sbin/jail/jailp.h ============================================================================== --- stable/10/usr.sbin/jail/jailp.h Sun Jul 17 14:13:47 2016 (r302957) +++ stable/10/usr.sbin/jail/jailp.h Sun Jul 17 14:15:08 2016 (r302958) @@ -64,6 +64,7 @@ #define JF_PERSIST 0x0100 /* Jail is temporarily persistent */ #define JF_TIMEOUT 0x0200 /* A command (or process kill) timed out */ #define JF_SLEEPQ 0x0400 /* Waiting on a command and/or timeout */ +#define JF_FROM_RUNQ 0x0800 /* Has already been on the run queue */ #define JF_OP_MASK (JF_START | JF_SET | JF_STOP) #define JF_RESTART (JF_START | JF_STOP) @@ -223,6 +224,7 @@ extern struct cfjail *next_jail(void); extern int start_state(const char *target, int docf, unsigned state, int running); extern void requeue(struct cfjail *j, struct cfjails *queue); +extern void requeue_head(struct cfjail *j, struct cfjails *queue); extern void yyerror(const char *); extern int yylex(void); Modified: stable/10/usr.sbin/jail/state.c ============================================================================== --- stable/10/usr.sbin/jail/state.c Sun Jul 17 14:13:47 2016 (r302957) +++ stable/10/usr.sbin/jail/state.c Sun Jul 17 14:15:08 2016 (r302958) @@ -398,6 +398,14 @@ requeue(struct cfjail *j, struct cfjails } } +void +requeue_head(struct cfjail *j, struct cfjails *queue) +{ + TAILQ_REMOVE(j->queue, j, tq); + TAILQ_INSERT_HEAD(queue, j, tq); + j->queue = queue; +} + /* * Add a dependency edge between two jails. */ From owner-svn-src-all@freebsd.org Sun Jul 17 14:16:22 2016 Return-Path: Delivered-To: svn-src-all@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 E1CF3B9C269; Sun, 17 Jul 2016 14:16:22 +0000 (UTC) (envelope-from jamie@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 ADAD31345; Sun, 17 Jul 2016 14:16:22 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HEGLs1037478; Sun, 17 Jul 2016 14:16:21 GMT (envelope-from jamie@FreeBSD.org) Received: (from jamie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HEGLWi037477; Sun, 17 Jul 2016 14:16:21 GMT (envelope-from jamie@FreeBSD.org) Message-Id: <201607171416.u6HEGLWi037477@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jamie set sender to jamie@FreeBSD.org using -f From: Jamie Gritton Date: Sun, 17 Jul 2016 14:16:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r302959 - stable/10/etc/rc.d X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 14:16:23 -0000 Author: jamie Date: Sun Jul 17 14:16:21 2016 New Revision: 302959 URL: https://svnweb.freebsd.org/changeset/base/302959 Log: MFC r302857: Start jails non-parallel if jail_parallel_start is NO. This was true for an explicitly specified jail list; now it's also true for all jails. PR: 209112 Modified: stable/10/etc/rc.d/jail Directory Properties: stable/10/ (props changed) Modified: stable/10/etc/rc.d/jail ============================================================================== --- stable/10/etc/rc.d/jail Sun Jul 17 14:15:08 2016 (r302958) +++ stable/10/etc/rc.d/jail Sun Jul 17 14:16:21 2016 (r302959) @@ -433,6 +433,9 @@ jail_start() command=$jail_program rc_flags=$jail_flags command_args="-f $jail_conf -c" + if ! checkyesno jail_parallel_start; then + command_args="$command_args -p1" + fi _tmp=`mktemp -t jail` || exit 3 if $command $rc_flags $command_args >> $_tmp 2>&1; then $jail_jls jid name | while read _id _name; do @@ -440,7 +443,7 @@ jail_start() echo $_id > /var/run/jail_${_name}.id done else - tail -1 $_tmp + cat $_tmp fi rm -f $_tmp echo '.' @@ -527,7 +530,7 @@ jail_stop() _tmp=`mktemp -t jail` || exit 3 $command $rc_flags $command_args $_j >> $_tmp 2>&1 if $jail_jls -j $_j > /dev/null 2>&1; then - tail -1 $_tmp + cat $_tmp else rm -f /var/run/jail_${_j}.id fi @@ -550,7 +553,7 @@ jail_stop() _tmp=`mktemp -t jail` || exit 3 $command -q -f $_conf -r $_j >> $_tmp 2>&1 if $jail_jls -j $_j > /dev/null 2>&1; then - tail -1 $_tmp + cat $_tmp else rm -f /var/run/jail_${_j}.id fi From owner-svn-src-all@freebsd.org Sun Jul 17 14:17:59 2016 Return-Path: Delivered-To: svn-src-all@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 45747B9C2EA; Sun, 17 Jul 2016 14:17:59 +0000 (UTC) (envelope-from mav@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 17BE11519; Sun, 17 Jul 2016 14:17:59 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HEHwwb037586; Sun, 17 Jul 2016 14:17:58 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HEHwWH037585; Sun, 17 Jul 2016 14:17:58 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607171417.u6HEHwWH037585@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Sun, 17 Jul 2016 14:17:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302960 - head/sys/cam/ata X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 14:17:59 -0000 Author: mav Date: Sun Jul 17 14:17:58 2016 New Revision: 302960 URL: https://svnweb.freebsd.org/changeset/base/302960 Log: Restore PIM_ATA_EXT flag handling, lost at r300207. This re-enables NCQ TRIM usage on capable hardware (bhyve). Modified: head/sys/cam/ata/ata_da.c Modified: head/sys/cam/ata/ata_da.c ============================================================================== --- head/sys/cam/ata/ata_da.c Sun Jul 17 14:16:21 2016 (r302959) +++ head/sys/cam/ata/ata_da.c Sun Jul 17 14:17:58 2016 (r302960) @@ -1774,6 +1774,8 @@ adaregister(struct cam_periph *periph, v softc->disk->d_flags |= DISKFLAG_UNMAPPED_BIO; softc->unmappedio = 1; } + if (cpi.hba_misc & PIM_ATA_EXT) + softc->flags |= ADA_FLAG_PIM_ATA_EXT; strlcpy(softc->disk->d_descr, cgd->ident_data.model, MIN(sizeof(softc->disk->d_descr), sizeof(cgd->ident_data.model))); strlcpy(softc->disk->d_ident, cgd->ident_data.serial, From owner-svn-src-all@freebsd.org Sun Jul 17 14:45:16 2016 Return-Path: Delivered-To: svn-src-all@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 55DA3B9C9EA; Sun, 17 Jul 2016 14:45:16 +0000 (UTC) (envelope-from mmel@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 223641596; Sun, 17 Jul 2016 14:45:16 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HEjFI2048900; Sun, 17 Jul 2016 14:45:15 GMT (envelope-from mmel@FreeBSD.org) Received: (from mmel@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HEjF1R048899; Sun, 17 Jul 2016 14:45:15 GMT (envelope-from mmel@FreeBSD.org) Message-Id: <201607171445.u6HEjF1R048899@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mmel set sender to mmel@FreeBSD.org using -f From: Michal Meloun Date: Sun, 17 Jul 2016 14:45:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302961 - head/sys/arm/nvidia X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 14:45:16 -0000 Author: mmel Date: Sun Jul 17 14:45:15 2016 New Revision: 302961 URL: https://svnweb.freebsd.org/changeset/base/302961 Log: TEGRA: Subclass Tegra PCIE driver from ofw_pci base driver. Remove now redundant code. Modified: head/sys/arm/nvidia/tegra_pcie.c Modified: head/sys/arm/nvidia/tegra_pcie.c ============================================================================== --- head/sys/arm/nvidia/tegra_pcie.c Sun Jul 17 14:17:58 2016 (r302960) +++ head/sys/arm/nvidia/tegra_pcie.c Sun Jul 17 14:45:15 2016 (r302961) @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -64,100 +65,13 @@ __FBSDID("$FreeBSD$"); #include #include -#include "ofw_bus_if.h" -#include "pcib_if.h" - #include -/* --- Move to ofw_pci.c/.h ----------------------- */ - -struct tegra_pci_range { - /* parsed phys.hi */ - int nonrelocatable; - int prefetchable; - int aliased; - int space_code; /* In native format (not shifted)*/ - int bus; - int device; - int function; - int reg; - pci_addr_t pci_addr; /* PCI Address */ - bus_addr_t host_addr; /* Host bus address*/ - bus_size_t size; /* Range size */ -}; - -static int -tegra_pci_get_ranges(phandle_t node, struct tegra_pci_range **ranges) -{ - int host_address_cells, pci_address_cells, size_cells; - cell_t *base_ranges; - ssize_t nbase_ranges; - int nranges; - int i, j, k; - uint32_t flags; - uint64_t tmp; - - host_address_cells = 1; - pci_address_cells = 3; - size_cells = 2; - OF_getencprop(OF_parent(node), "#address-cells", &host_address_cells, - sizeof(host_address_cells)); - OF_getencprop(node, "#address-cells", &pci_address_cells, - sizeof(pci_address_cells)); - OF_getencprop(node, "#size-cells", &size_cells, sizeof(size_cells)); - - nbase_ranges = OF_getproplen(node, "ranges"); - if (nbase_ranges <= 0) - return (-1); - nranges = nbase_ranges / sizeof(cell_t) / - (pci_address_cells + host_address_cells + size_cells); - - *ranges = malloc(nranges * sizeof(struct tegra_pci_range), - M_DEVBUF, M_WAITOK); - base_ranges = malloc(nbase_ranges, M_DEVBUF, M_WAITOK); - OF_getencprop(node, "ranges", base_ranges, nbase_ranges); - - for (i = 0, j = 0; i < nranges; i++) { - flags = base_ranges[j++]; - (*ranges)[i].nonrelocatable = - flags & OFW_PCI_PHYS_HI_NONRELOCATABLE ? 1 : 0; - (*ranges)[i].prefetchable = - flags & OFW_PCI_PHYS_HI_PREFETCHABLE ? 1 : 0; - (*ranges)[i].aliased = - flags & OFW_PCI_PHYS_HI_ALIASED ? 1 : 0; - (*ranges)[i].space_code = flags & OFW_PCI_PHYS_HI_SPACEMASK; - (*ranges)[i].bus = OFW_PCI_PHYS_HI_BUS(flags); - (*ranges)[i].device = OFW_PCI_PHYS_HI_DEVICE(flags); - (*ranges)[i].function = OFW_PCI_PHYS_HI_FUNCTION(flags); - (*ranges)[i].reg = flags & OFW_PCI_PHYS_HI_REGISTERMASK; - - tmp = 0; - for (k = 0; k < pci_address_cells - 1; k++) { - tmp <<= 32; - tmp |= base_ranges[j++]; - } - (*ranges)[i].pci_addr = (pci_addr_t)tmp; - - tmp = 0; - for (k = 0; k < host_address_cells; k++) { - tmp <<= 32; - tmp |= base_ranges[j++]; - } - (*ranges)[i].host_addr = (bus_addr_t)tmp; - tmp = 0; +#include "ofw_bus_if.h" +#include "pcib_if.h" - for (k = 0; k < size_cells; k++) { - tmp <<= 32; - tmp |= base_ranges[j++]; - } - (*ranges)[i].size = (bus_size_t)tmp; - } - free(base_ranges, M_DEVBUF); - return (nranges); -} -/* -------------------------------------------------------------------------- */ #define AFI_AXI_BAR0_SZ 0x000 #define AFI_AXI_BAR1_SZ 0x004 #define AFI_AXI_BAR2_SZ 0x008 @@ -358,12 +272,9 @@ struct tegra_pcib_port { #define TEGRA_PCIB_MAX_PORTS 3 struct tegra_pcib_softc { + struct ofw_pci_softc ofw_pci; device_t dev; struct mtx mtx; - struct ofw_bus_iinfo pci_iinfo; - struct rman pref_mem_rman; - struct rman mem_rman; - struct rman io_rman; struct resource *pads_mem_res; struct resource *afi_mem_res; struct resource *cfg_mem_res; @@ -372,18 +283,18 @@ struct tegra_pcib_softc { void *intr_cookie; void *msi_intr_cookie; - struct tegra_pci_range mem_range; - struct tegra_pci_range pref_mem_range; - struct tegra_pci_range io_range; + struct ofw_pci_range mem_range; + struct ofw_pci_range pref_mem_range; + struct ofw_pci_range io_range; phy_t phy; clk_t clk_pex; clk_t clk_afi; clk_t clk_pll_e; clk_t clk_cml; - hwreset_t hwreset_pex; - hwreset_t hwreset_afi; - hwreset_t hwreset_pcie_x; + hwreset_t hwreset_pex; + hwreset_t hwreset_afi; + hwreset_t hwreset_pcie_x; regulator_t supply_avddio_pex; regulator_t supply_dvddio_pex; regulator_t supply_avdd_pex_pll; @@ -392,7 +303,6 @@ struct tegra_pcib_softc { regulator_t supply_vddio_pex_ctl; regulator_t supply_avdd_pll_erefe; - int busnr; /* host bridge bus number */ uint32_t msi_bitmap; bus_addr_t cfg_base_addr; /* base address of config */ bus_size_t cfg_cur_offs; /* currently mapped window */ @@ -403,255 +313,6 @@ struct tegra_pcib_softc { struct tegra_pcib_port *ports[TEGRA_PCIB_MAX_PORTS]; }; -/* ------------------------------------------------------------------------- */ -/* - * Resource manager - */ -static int -tegra_pcib_rman_init(struct tegra_pcib_softc *sc) -{ - int err; - char buf[64]; - - /* Memory management. */ - sc->pref_mem_rman.rm_type = RMAN_ARRAY; - snprintf(buf, sizeof(buf), "%s prefetchable memory space", - device_get_nameunit(sc->dev)); - sc->pref_mem_rman.rm_descr = strdup(buf, M_DEVBUF); - err = rman_init(&sc->pref_mem_rman); - if (err) - return (err); - - sc->mem_rman.rm_type = RMAN_ARRAY; - snprintf(buf, sizeof(buf), "%s non prefetchable memory space", - device_get_nameunit(sc->dev)); - sc->mem_rman.rm_descr = strdup(buf, M_DEVBUF); - err = rman_init(&sc->mem_rman); - if (err) - return (err); - - sc->io_rman.rm_type = RMAN_ARRAY; - snprintf(buf, sizeof(buf), "%s I/O space", - device_get_nameunit(sc->dev)); - sc->io_rman.rm_descr = strdup(buf, M_DEVBUF); - err = rman_init(&sc->io_rman); - if (err) { - rman_fini(&sc->mem_rman); - return (err); - } - - err = rman_manage_region(&sc->pref_mem_rman, - sc->pref_mem_range.host_addr, - sc->pref_mem_range.host_addr + sc->pref_mem_range.size - 1); - if (err) - goto error; - err = rman_manage_region(&sc->mem_rman, - sc->mem_range.host_addr, - sc->mem_range.host_addr + sc->mem_range.size - 1); - if (err) - goto error; - err = rman_manage_region(&sc->io_rman, - sc->io_range.pci_addr, - sc->io_range.pci_addr + sc->io_range.size - 1); - if (err) - goto error; - return (0); - -error: - rman_fini(&sc->pref_mem_rman); - rman_fini(&sc->mem_rman); - rman_fini(&sc->io_rman); - return (err); -} - -static struct rman * -tegra_pcib_rman(struct tegra_pcib_softc *sc, int type, u_int flags) -{ - - switch (type) { - case SYS_RES_IOPORT: - return (&sc->io_rman); - case SYS_RES_MEMORY: - if (flags & RF_PREFETCHABLE) - return (&sc->pref_mem_rman); - else - return (&sc->mem_rman); - default: - break; - } - - return (NULL); -} - -static struct resource * -tegra_pcib_alloc_resource(device_t dev, device_t child, int type, int *rid, - rman_res_t start, rman_res_t end, rman_res_t count, u_int flags) -{ - struct tegra_pcib_softc *sc; - struct rman *rm; - struct resource *res; - - debugf("%s: enter %d start %#jx end %#jx count %#jx\n", __func__, - type, start, end, count); - sc = device_get_softc(dev); - -#if defined(NEW_PCIB) && defined(PCI_RES_BUS) - if (type == PCI_RES_BUS) { - return (pci_domain_alloc_bus(0, child, rid, start, end, count, - flags)); - } -#endif - - rm = tegra_pcib_rman(sc, type, flags); - - if (rm == NULL) { - res = BUS_ALLOC_RESOURCE(device_get_parent(dev), dev, - type, rid, start, end, count, flags); - - return (res); - } - - if (bootverbose) { - device_printf(dev, - "rman_reserve_resource: start=%#jx, end=%#jx, count=%#jx\n", - start, end, count); - } - - res = rman_reserve_resource(rm, start, end, count, flags, child); - if (res == NULL) - goto fail; - rman_set_rid(res, *rid); - if (flags & RF_ACTIVE) { - if (bus_activate_resource(child, type, *rid, res)) { - rman_release_resource(res); - goto fail; - } - } - return (res); - -fail: - if (bootverbose) { - device_printf(dev, "%s FAIL: type=%d, rid=%d, " - "start=%016jx, end=%016jx, count=%016jx, flags=%x\n", - __func__, type, *rid, start, end, count, flags); - } - - return (NULL); -} - -static int -tegra_pcib_release_resource(device_t dev, device_t child, int type, int rid, - struct resource *res) -{ - struct tegra_pcib_softc *sc; - struct rman *rm; - - sc = device_get_softc(dev); - debugf("%s: %d rid %x\n", __func__, type, rid); - -#if defined(NEW_PCIB) && defined(PCI_RES_BUS) - if (type == PCI_RES_BUS) - return (pci_domain_release_bus(0, child, rid, res)); -#endif - - rm = tegra_pcib_rman(sc, type, rman_get_flags(res)); - if (rm != NULL) { - KASSERT(rman_is_region_manager(res, rm), ("rman mismatch")); - rman_release_resource(res); - } - - return (bus_generic_release_resource(dev, child, type, rid, res)); -} - -static int -tegra_pcib_adjust_resource(device_t dev, device_t child, int type, - struct resource *res, rman_res_t start, rman_res_t end) -{ - struct tegra_pcib_softc *sc; - struct rman *rm; - - sc = device_get_softc(dev); - debugf("%s: %d start %jx end %jx \n", __func__, type, start, end); - -#if defined(NEW_PCIB) && defined(PCI_RES_BUS) - if (type == PCI_RES_BUS) - return (pci_domain_adjust_bus(0, child, res, start, end)); -#endif - - rm = tegra_pcib_rman(sc, type, rman_get_flags(res)); - if (rm != NULL) - return (rman_adjust_resource(res, start, end)); - return (bus_generic_adjust_resource(dev, child, type, res, start, end)); -} -extern bus_space_tag_t fdtbus_bs_tag; -static int -tegra_pcib_pcie_activate_resource(device_t dev, device_t child, int type, - int rid, struct resource *r) -{ - struct tegra_pcib_softc *sc; - vm_offset_t start; - void *p; - int rv; - - sc = device_get_softc(dev); - rv = rman_activate_resource(r); - if (rv != 0) - return (rv); - switch(type) { - case SYS_RES_IOPORT: - start = rman_get_start(r) + sc->io_range.host_addr; - break; - default: - start = rman_get_start(r); - rman_get_start(r); - break; - } - - if (bootverbose) - printf("%s: start %zx, len %jd\n", __func__, start, - rman_get_size(r)); - - p = pmap_mapdev(start, (vm_size_t)rman_get_size(r)); - rman_set_virtual(r, p); - rman_set_bustag(r, fdtbus_bs_tag); - rman_set_bushandle(r, (u_long)p); - return (0); -} - -/* ------------------------------------------------------------------------- */ -/* - * IVARs - */ -static int -tegra_pcib_read_ivar(device_t dev, device_t child, int which, uintptr_t *result) -{ - struct tegra_pcib_softc *sc = device_get_softc(dev); - - switch (which) { - case PCIB_IVAR_BUS: - *result = sc->busnr; - return (0); - case PCIB_IVAR_DOMAIN: - *result = device_get_unit(dev); - return (0); - } - - return (ENOENT); -} - -static int -tegra_pcib_write_ivar(device_t dev, device_t child, int which, uintptr_t value) -{ - struct tegra_pcib_softc *sc = device_get_softc(dev); - - switch (which) { - case PCIB_IVAR_BUS: - sc->busnr = value; - return (0); - } - - return (ENOENT); -} static int tegra_pcib_maxslots(device_t dev) @@ -659,7 +320,6 @@ tegra_pcib_maxslots(device_t dev) return (16); } - static int tegra_pcib_route_interrupt(device_t bus, device_t dev, int pin) { @@ -947,7 +607,6 @@ tegra_pcib_enable_fdt_resources(struct t "Cannot enable 'avdd-pex-pll' regulator\n"); return (rv); } - rv = regulator_enable(sc->supply_hvdd_pex); if (rv != 0) { device_printf(sc->dev, @@ -991,13 +650,11 @@ tegra_pcib_enable_fdt_resources(struct t device_printf(sc->dev, "Cannot enable 'afi' clock\n"); return (rv); } - rv = clk_enable(sc->clk_cml); if (rv != 0) { device_printf(sc->dev, "Cannot enable 'cml' clock\n"); return (rv); } - rv = clk_enable(sc->clk_pll_e); if (rv != 0) { device_printf(sc->dev, "Cannot enable 'pll_e' clock\n"); @@ -1192,12 +849,13 @@ tegra_pcib_parse_fdt_resources(struct te static int tegra_pcib_decode_ranges(struct tegra_pcib_softc *sc, - struct tegra_pci_range *ranges, int nranges) + struct ofw_pci_range *ranges, int nranges) { int i; for (i = 2; i < nranges; i++) { - if (ranges[i].space_code == OFW_PCI_PHYS_HI_SPACE_IO) { + if ((ranges[i].pci_hi & OFW_PCI_PHYS_HI_SPACEMASK) == + OFW_PCI_PHYS_HI_SPACE_IO) { if (sc->io_range.size != 0) { device_printf(sc->dev, "Duplicated IO range found in DT\n"); @@ -1205,23 +863,25 @@ tegra_pcib_decode_ranges(struct tegra_pc } sc->io_range = ranges[i]; } - if ((ranges[i].space_code == OFW_PCI_PHYS_HI_SPACE_MEM32) && - !ranges[i].prefetchable) { - if (sc->mem_range.size != 0) { - device_printf(sc->dev, - "Duplicated memory range found in DT\n"); - return (ENXIO); + if (((ranges[i].pci_hi & OFW_PCI_PHYS_HI_SPACEMASK) == + OFW_PCI_PHYS_HI_SPACE_MEM32)) { + if (ranges[i].pci_hi & OFW_PCI_PHYS_HI_PREFETCHABLE) { + if (sc->pref_mem_range.size != 0) { + device_printf(sc->dev, + "Duplicated memory range found " + "in DT\n"); + return (ENXIO); + } + sc->pref_mem_range = ranges[i]; + } else { + if (sc->mem_range.size != 0) { + device_printf(sc->dev, + "Duplicated memory range found " + "in DT\n"); + return (ENXIO); + } + sc->mem_range = ranges[i]; } - sc->mem_range = ranges[i]; - } - if ((ranges[i].space_code == OFW_PCI_PHYS_HI_SPACE_MEM32) && - ranges[i].prefetchable) { - if (sc->pref_mem_range.size != 0) { - device_printf(sc->dev, - "Duplicated memory range found in DT\n"); - return (ENXIO); - } - sc->pref_mem_range = ranges[i]; } } if ((sc->io_range.size == 0) || (sc->mem_range.size == 0) @@ -1454,16 +1114,16 @@ tegra_pcib_enable(struct tegra_pcib_soft FPCI_MAP_EXT_TYPE1_CONFIG, rman_get_size(sc->cfg_mem_res), 0); /* BAR 1 - downstream I/O. */ - tegra_pcib_set_bar(sc, 1, sc->io_range.host_addr, FPCI_MAP_IO, + tegra_pcib_set_bar(sc, 1, sc->io_range.host, FPCI_MAP_IO, sc->io_range.size, 0); /* BAR 2 - downstream prefetchable memory 1:1. */ - tegra_pcib_set_bar(sc, 2, sc->pref_mem_range.host_addr, - sc->pref_mem_range.host_addr, sc->pref_mem_range.size, 1); + tegra_pcib_set_bar(sc, 2, sc->pref_mem_range.host, + sc->pref_mem_range.host, sc->pref_mem_range.size, 1); /* BAR 3 - downstream not prefetchable memory 1:1 .*/ - tegra_pcib_set_bar(sc, 3, sc->mem_range.host_addr, - sc->mem_range.host_addr, sc->mem_range.size, 1); + tegra_pcib_set_bar(sc, 3, sc->mem_range.host, + sc->mem_range.host, sc->mem_range.size, 1); /* BAR 3-8 clear. */ tegra_pcib_set_bar(sc, 4, 0, 0, 0, 0); @@ -1497,8 +1157,6 @@ tegra_pcib_attach(device_t dev) phandle_t node; int rv; int rid; - int nranges; - struct tegra_pci_range *ranges; struct tegra_pcib_port *port; int i; @@ -1506,7 +1164,6 @@ tegra_pcib_attach(device_t dev) sc->dev = dev; mtx_init(&sc->mtx, "msi_mtx", NULL, MTX_DEF); - node = ofw_bus_get_node(dev); rv = tegra_pcib_parse_fdt_resources(sc, node); @@ -1515,14 +1172,6 @@ tegra_pcib_attach(device_t dev) return (rv); } - nranges = tegra_pci_get_ranges(node, &ranges); - if (nranges != 5) { - device_printf(sc->dev, "Unexpected number of ranges: %d\n", - nranges); - rv = ENXIO; - goto out; - } - /* Allocate bus_space resources. */ rid = 0; sc->pads_mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, @@ -1574,9 +1223,8 @@ tegra_pcib_attach(device_t dev) } /* - * Get PCI interrupt info. + * Get PCI interrupt */ - ofw_bus_setup_iinfo(node, &sc->pci_iinfo, sizeof(pcell_t)); rid = 0; sc->irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE | RF_SHAREABLE); @@ -1595,23 +1243,22 @@ tegra_pcib_attach(device_t dev) goto out; } - if (bus_setup_intr(dev, sc->irq_res, INTR_TYPE_BIO | INTR_MPSAFE, - tegra_pci_intr, NULL, sc, &sc->intr_cookie)) { - device_printf(dev, "cannot setup interrupt handler\n"); - rv = ENXIO; + sc->ofw_pci.sc_range_mask = 0x3; + rv = ofw_pci_init(dev); + if (rv != 0) goto out; - } - /* Memory management. */ - rv = tegra_pcib_decode_ranges(sc, ranges, nranges); + rv = tegra_pcib_decode_ranges(sc, sc->ofw_pci.sc_range, + sc->ofw_pci.sc_nrange); if (rv != 0) goto out; - rv = tegra_pcib_rman_init(sc); - if (rv != 0) + if (bus_setup_intr(dev, sc->irq_res, INTR_TYPE_BIO | INTR_MPSAFE, + tegra_pci_intr, NULL, sc, &sc->intr_cookie)) { + device_printf(dev, "cannot setup interrupt handler\n"); + rv = ENXIO; goto out; - free(ranges, M_DEVBUF); - ranges = NULL; + } /* * Enable PCIE device. @@ -1633,8 +1280,6 @@ tegra_pcib_attach(device_t dev) return (bus_generic_attach(dev)); out: - if (ranges != NULL) - free(ranges, M_DEVBUF); return (rv); } @@ -1646,13 +1291,6 @@ static device_method_t tegra_pcib_method DEVMETHOD(device_attach, tegra_pcib_attach), /* Bus interface */ - DEVMETHOD(bus_read_ivar, tegra_pcib_read_ivar), - DEVMETHOD(bus_write_ivar, tegra_pcib_write_ivar), - DEVMETHOD(bus_alloc_resource, tegra_pcib_alloc_resource), - DEVMETHOD(bus_adjust_resource, tegra_pcib_adjust_resource), - DEVMETHOD(bus_release_resource, tegra_pcib_release_resource), - DEVMETHOD(bus_activate_resource, tegra_pcib_pcie_activate_resource), - DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), @@ -1678,12 +1316,7 @@ static device_method_t tegra_pcib_method DEVMETHOD_END }; -static driver_t tegra_pcib_driver = { - "pcib", - tegra_pcib_methods, - sizeof(struct tegra_pcib_softc), -}; - +DEFINE_CLASS_1(pcib, tegra_pcib_driver, tegra_pcib_methods, + sizeof(struct tegra_pcib_softc), ofw_pci_driver); devclass_t pcib_devclass; - DRIVER_MODULE(pcib, simplebus, tegra_pcib_driver, pcib_devclass, 0, 0); From owner-svn-src-all@freebsd.org Sun Jul 17 15:07:35 2016 Return-Path: Delivered-To: svn-src-all@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 330E1B9CD22; Sun, 17 Jul 2016 15:07:35 +0000 (UTC) (envelope-from dchagin@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 DE0AC1D3C; Sun, 17 Jul 2016 15:07:34 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HF7XaG056238; Sun, 17 Jul 2016 15:07:33 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HF7XJ4056230; Sun, 17 Jul 2016 15:07:33 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201607171507.u6HF7XJ4056230@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Sun, 17 Jul 2016 15:07:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r302962 - in stable/10/sys: amd64/linux amd64/linux32 compat/linux i386/linux X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 15:07:35 -0000 Author: dchagin Date: Sun Jul 17 15:07:33 2016 New Revision: 302962 URL: https://svnweb.freebsd.org/changeset/base/302962 Log: MFC r302515: Implement Linux personality() system call mainly due to READ_IMPLIES_EXEC flag. In Linux if this flag is set, PROT_READ implies PROT_EXEC for mmap(). Linux/i386 set this flag automatically if the binary requires executable stack. READ_IMPLIES_EXEC flag will be used in the next Linux mmap() commit. Added: stable/10/sys/compat/linux/linux_persona.h - copied unchanged from r302515, head/sys/compat/linux/linux_persona.h Modified: stable/10/sys/amd64/linux/syscalls.master stable/10/sys/amd64/linux32/syscalls.master stable/10/sys/compat/linux/linux_emul.c stable/10/sys/compat/linux/linux_emul.h stable/10/sys/compat/linux/linux_misc.c stable/10/sys/i386/linux/syscalls.master Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/linux/syscalls.master ============================================================================== --- stable/10/sys/amd64/linux/syscalls.master Sun Jul 17 14:45:15 2016 (r302961) +++ stable/10/sys/amd64/linux/syscalls.master Sun Jul 17 15:07:33 2016 (r302962) @@ -270,7 +270,7 @@ 133 AUE_MKNOD STD { int linux_mknod(char *path, l_int mode, \ l_dev_t dev); } 134 AUE_USELIB UNIMPL uselib -135 AUE_PERSONALITY STD { int linux_personality(l_ulong per); } +135 AUE_PERSONALITY STD { int linux_personality(l_uint per); } 136 AUE_NULL STD { int linux_ustat(l_dev_t dev, \ struct l_ustat *ubuf); } 137 AUE_STATFS STD { int linux_statfs(char *path, \ Modified: stable/10/sys/amd64/linux32/syscalls.master ============================================================================== --- stable/10/sys/amd64/linux32/syscalls.master Sun Jul 17 14:45:15 2016 (r302961) +++ stable/10/sys/amd64/linux32/syscalls.master Sun Jul 17 15:07:33 2016 (r302962) @@ -238,7 +238,7 @@ 134 AUE_BDFLUSH STD { int linux_bdflush(void); } 135 AUE_NULL STD { int linux_sysfs(l_int option, \ l_ulong arg1, l_ulong arg2); } -136 AUE_PERSONALITY STD { int linux_personality(l_ulong per); } +136 AUE_PERSONALITY STD { int linux_personality(l_uint per); } 137 AUE_NULL UNIMPL afs_syscall 138 AUE_SETFSUID STD { int linux_setfsuid16(l_uid16_t uid); } 139 AUE_SETFSGID STD { int linux_setfsgid16(l_gid16_t gid); } Modified: stable/10/sys/compat/linux/linux_emul.c ============================================================================== --- stable/10/sys/compat/linux/linux_emul.c Sun Jul 17 14:45:15 2016 (r302961) +++ stable/10/sys/compat/linux/linux_emul.c Sun Jul 17 15:07:33 2016 (r302962) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include @@ -127,7 +128,7 @@ linux_proc_init(struct thread *td, struc /* epoll should be destroyed in a case of exec. */ pem = pem_find(p); KASSERT(pem != NULL, ("proc_exit: proc emuldata not found.\n")); - + pem->persona = 0; if (pem->epoll != NULL) { emd = pem->epoll; pem->epoll = NULL; @@ -220,6 +221,9 @@ linux_proc_exec(void *arg __unused, stru { struct thread *td = curthread; struct thread *othertd; +#if defined(__amd64__) + struct linux_pemuldata *pem; +#endif /* * In a case of execing from linux binary properly detach @@ -243,6 +247,17 @@ linux_proc_exec(void *arg __unused, stru linux_proc_init(td, NULL, 0); else linux_proc_init(td, td, 0); +#if defined(__amd64__) + /* + * An IA32 executable which has executable stack will have the + * READ_IMPLIES_EXEC personality flag set automatically. + */ + if (SV_PROC_FLAG(td->td_proc, SV_ILP32) && + imgp->stack_prot & VM_PROT_EXECUTE) { + pem = pem_find(p); + pem->persona |= LINUX_READ_IMPLIES_EXEC; + } +#endif } } Modified: stable/10/sys/compat/linux/linux_emul.h ============================================================================== --- stable/10/sys/compat/linux/linux_emul.h Sun Jul 17 14:45:15 2016 (r302961) +++ stable/10/sys/compat/linux/linux_emul.h Sun Jul 17 15:07:33 2016 (r302962) @@ -67,6 +67,7 @@ struct linux_pemuldata { uint32_t flags; /* process emuldata flags */ struct sx pem_sx; /* lock for this struct */ void *epoll; /* epoll data */ + uint32_t persona; /* process execution domain */ }; #define LINUX_PEM_XLOCK(p) sx_xlock(&(p)->pem_sx) Modified: stable/10/sys/compat/linux/linux_misc.c ============================================================================== --- stable/10/sys/compat/linux/linux_misc.c Sun Jul 17 14:45:15 2016 (r302961) +++ stable/10/sys/compat/linux/linux_misc.c Sun Jul 17 15:07:33 2016 (r302962) @@ -1198,15 +1198,23 @@ linux_mknodat(struct thread *td, struct int linux_personality(struct thread *td, struct linux_personality_args *args) { + struct linux_pemuldata *pem; + struct proc *p = td->td_proc; + uint32_t old; + #ifdef DEBUG if (ldebug(personality)) - printf(ARGS(personality, "%lu"), (unsigned long)args->per); + printf(ARGS(personality, "%u"), args->per); #endif - if (args->per != 0) - return (EINVAL); - /* Yes Jim, it's still a Linux... */ - td->td_retval[0] = 0; + PROC_LOCK(p); + pem = pem_find(p); + old = pem->persona; + if (args->per != 0xffffffff) + pem->persona = args->per; + PROC_UNLOCK(p); + + td->td_retval[0] = old; return (0); } Copied: stable/10/sys/compat/linux/linux_persona.h (from r302515, head/sys/compat/linux/linux_persona.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/compat/linux/linux_persona.h Sun Jul 17 15:07:33 2016 (r302962, copy of r302515, head/sys/compat/linux/linux_persona.h) @@ -0,0 +1,56 @@ +/* + * $FreeBSD$ + */ + +#ifndef LINUX_PERSONALITY_H +#define LINUX_PERSONALITY_H + +/* + * Flags for bug emulation. + * + * These occupy the top three bytes. + */ +enum { + LINUX_UNAME26 = 0x0020000, + LINUX_ADDR_NO_RANDOMIZE = 0x0040000, /* disable randomization + * of VA space + */ + LINUX_FDPIC_FUNCPTRS = 0x0080000, /* userspace function + * ptrs point to descriptors + * (signal handling) + */ + LINUX_MMAP_PAGE_ZERO = 0x0100000, + LINUX_ADDR_COMPAT_LAYOUT = 0x0200000, + LINUX_READ_IMPLIES_EXEC = 0x0400000, + LINUX_ADDR_LIMIT_32BIT = 0x0800000, + LINUX_SHORT_INODE = 0x1000000, + LINUX_WHOLE_SECONDS = 0x2000000, + LINUX_STICKY_TIMEOUTS = 0x4000000, + LINUX_ADDR_LIMIT_3GB = 0x8000000, +}; + +/* + * Security-relevant compatibility flags that must be + * cleared upon setuid or setgid exec: + */ +#define LINUX_PER_CLEAR_ON_SETID (LINUX_READ_IMPLIES_EXEC | \ + LINUX_ADDR_NO_RANDOMIZE | \ + LINUX_ADDR_COMPAT_LAYOUT | \ + LINUX_MMAP_PAGE_ZERO) + +/* + * Personality types. + * + * These go in the low byte. Avoid using the top bit, it will + * conflict with error returns. + */ +enum { + LINUX_PER_LINUX = 0x0000, + LINUX_PER_LINUX_32BIT = 0x0000 | LINUX_ADDR_LIMIT_32BIT, + LINUX_PER_LINUX_FDPIC = 0x0000 | LINUX_FDPIC_FUNCPTRS, + LINUX_PER_LINUX32 = 0x0008, + LINUX_PER_LINUX32_3GB = 0x0008 | LINUX_ADDR_LIMIT_3GB, + LINUX_PER_MASK = 0x00ff, +}; + +#endif /* LINUX_PERSONALITY_H */ Modified: stable/10/sys/i386/linux/syscalls.master ============================================================================== --- stable/10/sys/i386/linux/syscalls.master Sun Jul 17 14:45:15 2016 (r302961) +++ stable/10/sys/i386/linux/syscalls.master Sun Jul 17 15:07:33 2016 (r302962) @@ -240,7 +240,7 @@ 134 AUE_BDFLUSH STD { int linux_bdflush(void); } 135 AUE_NULL STD { int linux_sysfs(l_int option, \ l_ulong arg1, l_ulong arg2); } -136 AUE_PERSONALITY STD { int linux_personality(l_ulong per); } +136 AUE_PERSONALITY STD { int linux_personality(l_uint per); } 137 AUE_NULL UNIMPL afs_syscall 138 AUE_SETFSUID STD { int linux_setfsuid16(l_uid16_t uid); } 139 AUE_SETFSGID STD { int linux_setfsgid16(l_gid16_t gid); } From owner-svn-src-all@freebsd.org Sun Jul 17 15:11:26 2016 Return-Path: Delivered-To: svn-src-all@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 AAFF1B9CDBA; Sun, 17 Jul 2016 15:11:26 +0000 (UTC) (envelope-from dchagin@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 6D65E1F2F; Sun, 17 Jul 2016 15:11:26 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HFBPTI059022; Sun, 17 Jul 2016 15:11:25 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HFBOAE059005; Sun, 17 Jul 2016 15:11:24 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201607171511.u6HFBOAE059005@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Sun, 17 Jul 2016 15:11:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r302963 - in stable/10/sys: amd64/linux amd64/linux32 i386/linux X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 15:11:26 -0000 Author: dchagin Date: Sun Jul 17 15:11:23 2016 New Revision: 302963 URL: https://svnweb.freebsd.org/changeset/base/302963 Log: Regen for r302962 (Linux personality), record mergeinfo for r320516. Modified: stable/10/sys/amd64/linux/linux_proto.h stable/10/sys/amd64/linux/linux_syscall.h stable/10/sys/amd64/linux/linux_syscalls.c stable/10/sys/amd64/linux/linux_sysent.c stable/10/sys/amd64/linux/linux_systrace_args.c stable/10/sys/amd64/linux32/linux32_proto.h stable/10/sys/amd64/linux32/linux32_syscall.h stable/10/sys/amd64/linux32/linux32_syscalls.c stable/10/sys/amd64/linux32/linux32_sysent.c stable/10/sys/amd64/linux32/linux32_systrace_args.c stable/10/sys/i386/linux/linux_proto.h stable/10/sys/i386/linux/linux_syscall.h stable/10/sys/i386/linux/linux_syscalls.c stable/10/sys/i386/linux/linux_sysent.c stable/10/sys/i386/linux/linux_systrace_args.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/linux/linux_proto.h ============================================================================== --- stable/10/sys/amd64/linux/linux_proto.h Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/amd64/linux/linux_proto.h Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/amd64/linux/syscalls.master 294368 2016-01-20 01:09:53Z jhb + * created from FreeBSD: stable/10/sys/amd64/linux/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ #ifndef _LINUX_SYSPROTO_H_ @@ -499,7 +499,7 @@ struct linux_mknod_args { char dev_l_[PADL_(l_dev_t)]; l_dev_t dev; char dev_r_[PADR_(l_dev_t)]; }; struct linux_personality_args { - char per_l_[PADL_(l_ulong)]; l_ulong per; char per_r_[PADR_(l_ulong)]; + char per_l_[PADL_(l_uint)]; l_uint per; char per_r_[PADR_(l_uint)]; }; struct linux_ustat_args { char dev_l_[PADL_(l_dev_t)]; l_dev_t dev; char dev_r_[PADR_(l_dev_t)]; Modified: stable/10/sys/amd64/linux/linux_syscall.h ============================================================================== --- stable/10/sys/amd64/linux/linux_syscall.h Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/amd64/linux/linux_syscall.h Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/amd64/linux/syscalls.master 294368 2016-01-20 01:09:53Z jhb + * created from FreeBSD: stable/10/sys/amd64/linux/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ #define LINUX_SYS_read 0 Modified: stable/10/sys/amd64/linux/linux_syscalls.c ============================================================================== --- stable/10/sys/amd64/linux/linux_syscalls.c Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/amd64/linux/linux_syscalls.c Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/amd64/linux/syscalls.master 294368 2016-01-20 01:09:53Z jhb + * created from FreeBSD: stable/10/sys/amd64/linux/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ const char *linux_syscallnames[] = { Modified: stable/10/sys/amd64/linux/linux_sysent.c ============================================================================== --- stable/10/sys/amd64/linux/linux_sysent.c Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/amd64/linux/linux_sysent.c Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/amd64/linux/syscalls.master 294368 2016-01-20 01:09:53Z jhb + * created from FreeBSD: stable/10/sys/amd64/linux/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ #include Modified: stable/10/sys/amd64/linux/linux_systrace_args.c ============================================================================== --- stable/10/sys/amd64/linux/linux_systrace_args.c Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/amd64/linux/linux_systrace_args.c Sun Jul 17 15:11:23 2016 (r302963) @@ -1120,7 +1120,7 @@ systrace_args(int sysnum, void *params, /* linux_personality */ case 135: { struct linux_personality_args *p = params; - iarg[0] = p->per; /* l_ulong */ + iarg[0] = p->per; /* l_uint */ *n_args = 1; break; } @@ -4112,7 +4112,7 @@ systrace_entry_setargdesc(int sysnum, in case 135: switch(ndx) { case 0: - p = "l_ulong"; + p = "l_uint"; break; default: break; Modified: stable/10/sys/amd64/linux32/linux32_proto.h ============================================================================== --- stable/10/sys/amd64/linux32/linux32_proto.h Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/amd64/linux32/linux32_proto.h Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/amd64/linux32/syscalls.master 297300 2016-03-27 06:10:51Z dchagin + * created from FreeBSD: stable/10/sys/amd64/linux32/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ #ifndef _LINUX32_SYSPROTO_H_ @@ -427,7 +427,7 @@ struct linux_sysfs_args { char arg2_l_[PADL_(l_ulong)]; l_ulong arg2; char arg2_r_[PADR_(l_ulong)]; }; struct linux_personality_args { - char per_l_[PADL_(l_ulong)]; l_ulong per; char per_r_[PADR_(l_ulong)]; + char per_l_[PADL_(l_uint)]; l_uint per; char per_r_[PADR_(l_uint)]; }; struct linux_setfsuid16_args { char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_t)]; Modified: stable/10/sys/amd64/linux32/linux32_syscall.h ============================================================================== --- stable/10/sys/amd64/linux32/linux32_syscall.h Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/amd64/linux32/linux32_syscall.h Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/amd64/linux32/syscalls.master 297300 2016-03-27 06:10:51Z dchagin + * created from FreeBSD: stable/10/sys/amd64/linux32/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ #define LINUX32_SYS_linux_exit 1 Modified: stable/10/sys/amd64/linux32/linux32_syscalls.c ============================================================================== --- stable/10/sys/amd64/linux32/linux32_syscalls.c Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/amd64/linux32/linux32_syscalls.c Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/amd64/linux32/syscalls.master 297300 2016-03-27 06:10:51Z dchagin + * created from FreeBSD: stable/10/sys/amd64/linux32/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ const char *linux32_syscallnames[] = { Modified: stable/10/sys/amd64/linux32/linux32_sysent.c ============================================================================== --- stable/10/sys/amd64/linux32/linux32_sysent.c Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/amd64/linux32/linux32_sysent.c Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/amd64/linux32/syscalls.master 297300 2016-03-27 06:10:51Z dchagin + * created from FreeBSD: stable/10/sys/amd64/linux32/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ #include "opt_compat.h" Modified: stable/10/sys/amd64/linux32/linux32_systrace_args.c ============================================================================== --- stable/10/sys/amd64/linux32/linux32_systrace_args.c Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/amd64/linux32/linux32_systrace_args.c Sun Jul 17 15:11:23 2016 (r302963) @@ -910,7 +910,7 @@ systrace_args(int sysnum, void *params, /* linux_personality */ case 136: { struct linux_personality_args *p = params; - iarg[0] = p->per; /* l_ulong */ + iarg[0] = p->per; /* l_uint */ *n_args = 1; break; } @@ -3715,7 +3715,7 @@ systrace_entry_setargdesc(int sysnum, in case 136: switch(ndx) { case 0: - p = "l_ulong"; + p = "l_uint"; break; default: break; Modified: stable/10/sys/i386/linux/linux_proto.h ============================================================================== --- stable/10/sys/i386/linux/linux_proto.h Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/i386/linux/linux_proto.h Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/i386/linux/syscalls.master 297300 2016-03-27 06:10:51Z dchagin + * created from FreeBSD: stable/10/sys/i386/linux/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ #ifndef _LINUX_SYSPROTO_H_ @@ -435,7 +435,7 @@ struct linux_sysfs_args { char arg2_l_[PADL_(l_ulong)]; l_ulong arg2; char arg2_r_[PADR_(l_ulong)]; }; struct linux_personality_args { - char per_l_[PADL_(l_ulong)]; l_ulong per; char per_r_[PADR_(l_ulong)]; + char per_l_[PADL_(l_uint)]; l_uint per; char per_r_[PADR_(l_uint)]; }; struct linux_setfsuid16_args { char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_t)]; Modified: stable/10/sys/i386/linux/linux_syscall.h ============================================================================== --- stable/10/sys/i386/linux/linux_syscall.h Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/i386/linux/linux_syscall.h Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/i386/linux/syscalls.master 297300 2016-03-27 06:10:51Z dchagin + * created from FreeBSD: stable/10/sys/i386/linux/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ #define LINUX_SYS_linux_exit 1 Modified: stable/10/sys/i386/linux/linux_syscalls.c ============================================================================== --- stable/10/sys/i386/linux/linux_syscalls.c Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/i386/linux/linux_syscalls.c Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/i386/linux/syscalls.master 297300 2016-03-27 06:10:51Z dchagin + * created from FreeBSD: stable/10/sys/i386/linux/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ const char *linux_syscallnames[] = { Modified: stable/10/sys/i386/linux/linux_sysent.c ============================================================================== --- stable/10/sys/i386/linux/linux_sysent.c Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/i386/linux/linux_sysent.c Sun Jul 17 15:11:23 2016 (r302963) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/10/sys/i386/linux/syscalls.master 297300 2016-03-27 06:10:51Z dchagin + * created from FreeBSD: stable/10/sys/i386/linux/syscalls.master 302962 2016-07-17 15:07:33Z dchagin */ #include Modified: stable/10/sys/i386/linux/linux_systrace_args.c ============================================================================== --- stable/10/sys/i386/linux/linux_systrace_args.c Sun Jul 17 15:07:33 2016 (r302962) +++ stable/10/sys/i386/linux/linux_systrace_args.c Sun Jul 17 15:11:23 2016 (r302963) @@ -948,7 +948,7 @@ systrace_args(int sysnum, void *params, /* linux_personality */ case 136: { struct linux_personality_args *p = params; - iarg[0] = p->per; /* l_ulong */ + iarg[0] = p->per; /* l_uint */ *n_args = 1; break; } @@ -3849,7 +3849,7 @@ systrace_entry_setargdesc(int sysnum, in case 136: switch(ndx) { case 0: - p = "l_ulong"; + p = "l_uint"; break; default: break; From owner-svn-src-all@freebsd.org Sun Jul 17 15:23:34 2016 Return-Path: Delivered-To: svn-src-all@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 8ED7BB9C198; Sun, 17 Jul 2016 15:23:34 +0000 (UTC) (envelope-from dchagin@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 404561979; Sun, 17 Jul 2016 15:23:34 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HFNXO2063719; Sun, 17 Jul 2016 15:23:33 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HFNWUe063706; Sun, 17 Jul 2016 15:23:32 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201607171523.u6HFNWUe063706@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Sun, 17 Jul 2016 15:23:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r302964 - in stable/10/sys: amd64/linux amd64/linux32 compat/linux conf i386/linux modules/linux modules/linux_common X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 15:23:34 -0000 Author: dchagin Date: Sun Jul 17 15:23:32 2016 New Revision: 302964 URL: https://svnweb.freebsd.org/changeset/base/302964 Log: MFC r302517: Fix a copy/paste bug introduced during X86_64 Linuxulator work. FreeBSD support NX bit on X86_64 processors out of the box, for i386 emulation use READ_IMPLIES_EXEC flag, introduced in r302515. While here move common part of mmap() and mprotect() code to the files in compat/linux to reduce code dupcliation between Linuxulator's. MFC r302518, r302626: Add linux_mmap.c to the appropriate conf/files. Added: stable/10/sys/compat/linux/linux_mmap.c - copied, changed from r302517, head/sys/compat/linux/linux_mmap.c stable/10/sys/compat/linux/linux_mmap.h - copied unchanged from r302517, head/sys/compat/linux/linux_mmap.h Modified: stable/10/sys/amd64/linux/linux.h stable/10/sys/amd64/linux/linux_machdep.c stable/10/sys/amd64/linux32/linux.h stable/10/sys/amd64/linux32/linux32_machdep.c stable/10/sys/conf/files.amd64 stable/10/sys/conf/files.i386 stable/10/sys/conf/files.pc98 stable/10/sys/i386/linux/linux.h stable/10/sys/i386/linux/linux_machdep.c stable/10/sys/modules/linux/Makefile stable/10/sys/modules/linux_common/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/linux/linux.h ============================================================================== --- stable/10/sys/amd64/linux/linux.h Sun Jul 17 15:11:23 2016 (r302963) +++ stable/10/sys/amd64/linux/linux.h Sun Jul 17 15:23:32 2016 (r302964) @@ -139,13 +139,6 @@ struct l_rlimit { l_ulong rlim_max; }; -/* mmap options */ -#define LINUX_MAP_SHARED 0x0001 -#define LINUX_MAP_PRIVATE 0x0002 -#define LINUX_MAP_FIXED 0x0010 -#define LINUX_MAP_ANON 0x0020 -#define LINUX_MAP_GROWSDOWN 0x0100 - /* * stat family of syscalls */ Modified: stable/10/sys/amd64/linux/linux_machdep.c ============================================================================== --- stable/10/sys/amd64/linux/linux_machdep.c Sun Jul 17 15:11:23 2016 (r302963) +++ stable/10/sys/amd64/linux/linux_machdep.c Sun Jul 17 15:23:32 2016 (r302964) @@ -83,6 +83,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -122,181 +123,19 @@ linux_set_upcall_kse(struct thread *td, return (0); } -#define STACK_SIZE (2 * 1024 * 1024) -#define GUARD_SIZE (4 * PAGE_SIZE) - int linux_mmap2(struct thread *td, struct linux_mmap2_args *args) { - struct proc *p = td->td_proc; - struct mmap_args /* { - caddr_t addr; - size_t len; - int prot; - int flags; - int fd; - long pad; - off_t pos; - } */ bsd_args; - int error; - struct file *fp; - cap_rights_t rights; - - LINUX_CTR6(mmap2, "0x%lx, %ld, %ld, 0x%08lx, %ld, 0x%lx", - args->addr, args->len, args->prot, - args->flags, args->fd, args->pgoff); - - error = 0; - bsd_args.flags = 0; - fp = NULL; - - /* - * Linux mmap(2): - * You must specify exactly one of MAP_SHARED and MAP_PRIVATE - */ - if (! ((args->flags & LINUX_MAP_SHARED) ^ - (args->flags & LINUX_MAP_PRIVATE))) - return (EINVAL); - - if (args->flags & LINUX_MAP_SHARED) - bsd_args.flags |= MAP_SHARED; - if (args->flags & LINUX_MAP_PRIVATE) - bsd_args.flags |= MAP_PRIVATE; - if (args->flags & LINUX_MAP_FIXED) - bsd_args.flags |= MAP_FIXED; - if (args->flags & LINUX_MAP_ANON) - bsd_args.flags |= MAP_ANON; - else - bsd_args.flags |= MAP_NOSYNC; - if (args->flags & LINUX_MAP_GROWSDOWN) - bsd_args.flags |= MAP_STACK; - - /* - * PROT_READ, PROT_WRITE, or PROT_EXEC implies PROT_READ and PROT_EXEC - * on Linux/i386. We do this to ensure maximum compatibility. - * Linux/ia64 does the same in i386 emulation mode. - */ - bsd_args.prot = args->prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - - /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ - bsd_args.fd = (bsd_args.flags & MAP_ANON) ? -1 : args->fd; - if (bsd_args.fd != -1) { - /* - * Linux follows Solaris mmap(2) description: - * The file descriptor fildes is opened with - * read permission, regardless of the - * protection options specified. - */ - - error = fget(td, bsd_args.fd, - cap_rights_init(&rights, CAP_MMAP), &fp); - if (error != 0 ) - return (error); - if (fp->f_type != DTYPE_VNODE) { - fdrop(fp, td); - return (EINVAL); - } - - /* Linux mmap() just fails for O_WRONLY files */ - if (!(fp->f_flag & FREAD)) { - fdrop(fp, td); - return (EACCES); - } - - fdrop(fp, td); - } - if (args->flags & LINUX_MAP_GROWSDOWN) { - /* - * The Linux MAP_GROWSDOWN option does not limit auto - * growth of the region. Linux mmap with this option - * takes as addr the inital BOS, and as len, the initial - * region size. It can then grow down from addr without - * limit. However, Linux threads has an implicit internal - * limit to stack size of STACK_SIZE. Its just not - * enforced explicitly in Linux. But, here we impose - * a limit of (STACK_SIZE - GUARD_SIZE) on the stack - * region, since we can do this with our mmap. - * - * Our mmap with MAP_STACK takes addr as the maximum - * downsize limit on BOS, and as len the max size of - * the region. It then maps the top SGROWSIZ bytes, - * and auto grows the region down, up to the limit - * in addr. - * - * If we don't use the MAP_STACK option, the effect - * of this code is to allocate a stack region of a - * fixed size of (STACK_SIZE - GUARD_SIZE). - */ - - if ((caddr_t)PTRIN(args->addr) + args->len > - p->p_vmspace->vm_maxsaddr) { - /* - * Some Linux apps will attempt to mmap - * thread stacks near the top of their - * address space. If their TOS is greater - * than vm_maxsaddr, vm_map_growstack() - * will confuse the thread stack with the - * process stack and deliver a SEGV if they - * attempt to grow the thread stack past their - * current stacksize rlimit. To avoid this, - * adjust vm_maxsaddr upwards to reflect - * the current stacksize rlimit rather - * than the maximum possible stacksize. - * It would be better to adjust the - * mmap'ed region, but some apps do not check - * mmap's return value. - */ - PROC_LOCK(p); - p->p_vmspace->vm_maxsaddr = (char *)USRSTACK - - lim_cur(p, RLIMIT_STACK); - PROC_UNLOCK(p); - } - - /* - * This gives us our maximum stack size and a new BOS. - * If we're using VM_STACK, then mmap will just map - * the top SGROWSIZ bytes, and let the stack grow down - * to the limit at BOS. If we're not using VM_STACK - * we map the full stack, since we don't have a way - * to autogrow it. - */ - if (args->len > STACK_SIZE - GUARD_SIZE) { - bsd_args.addr = (caddr_t)PTRIN(args->addr); - bsd_args.len = args->len; - } else { - bsd_args.addr = (caddr_t)PTRIN(args->addr) - - (STACK_SIZE - GUARD_SIZE - args->len); - bsd_args.len = STACK_SIZE - GUARD_SIZE; - } - } else { - bsd_args.addr = (caddr_t)PTRIN(args->addr); - bsd_args.len = args->len; - } - bsd_args.pos = (off_t)args->pgoff; - - error = sys_mmap(td, &bsd_args); - - LINUX_CTR2(mmap2, "return: %d (%p)", - error, td->td_retval[0]); - return (error); + return (linux_mmap_common(td, PTROUT(args->addr), args->len, args->prot, + args->flags, args->fd, args->pgoff)); } int linux_mprotect(struct thread *td, struct linux_mprotect_args *uap) { - struct mprotect_args bsd_args; - - LINUX_CTR(mprotect); - bsd_args.addr = uap->addr; - bsd_args.len = uap->len; - bsd_args.prot = uap->prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - return (sys_mprotect(td, &bsd_args)); + return (linux_mprotect_common(td, PTROUT(uap->addr), uap->len, uap->prot)); } int Modified: stable/10/sys/amd64/linux32/linux.h ============================================================================== --- stable/10/sys/amd64/linux32/linux.h Sun Jul 17 15:11:23 2016 (r302963) +++ stable/10/sys/amd64/linux32/linux.h Sun Jul 17 15:23:32 2016 (r302964) @@ -165,13 +165,6 @@ struct l_rusage { l_long ru_nivcsw; } __packed; -/* mmap options */ -#define LINUX_MAP_SHARED 0x0001 -#define LINUX_MAP_PRIVATE 0x0002 -#define LINUX_MAP_FIXED 0x0010 -#define LINUX_MAP_ANON 0x0020 -#define LINUX_MAP_GROWSDOWN 0x0100 - struct l_mmap_argv { l_uintptr_t addr; l_size_t len; Modified: stable/10/sys/amd64/linux32/linux32_machdep.c ============================================================================== --- stable/10/sys/amd64/linux32/linux32_machdep.c Sun Jul 17 15:11:23 2016 (r302963) +++ stable/10/sys/amd64/linux32/linux32_machdep.c Sun Jul 17 15:23:32 2016 (r302964) @@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -84,9 +85,6 @@ struct l_old_select_argv { l_uintptr_t timeout; } __packed; -static int linux_mmap_common(struct thread *td, l_uintptr_t addr, - l_size_t len, l_int prot, l_int flags, l_int fd, - l_loff_t pos); static void bsd_to_linux_rusage(struct rusage *ru, struct l_rusage *lru) @@ -448,9 +446,6 @@ linux_set_upcall_kse(struct thread *td, return (0); } -#define STACK_SIZE (2 * 1024 * 1024) -#define GUARD_SIZE (4 * PAGE_SIZE) - int linux_mmap2(struct thread *td, struct linux_mmap2_args *args) { @@ -489,184 +484,11 @@ linux_mmap(struct thread *td, struct lin (uint32_t)linux_args.pgoff)); } -static int -linux_mmap_common(struct thread *td, l_uintptr_t addr, l_size_t len, l_int prot, - l_int flags, l_int fd, l_loff_t pos) -{ - struct proc *p = td->td_proc; - struct mmap_args /* { - caddr_t addr; - size_t len; - int prot; - int flags; - int fd; - long pad; - off_t pos; - } */ bsd_args; - int error; - struct file *fp; - cap_rights_t rights; - - error = 0; - bsd_args.flags = 0; - fp = NULL; - - /* - * Linux mmap(2): - * You must specify exactly one of MAP_SHARED and MAP_PRIVATE - */ - if (!((flags & LINUX_MAP_SHARED) ^ (flags & LINUX_MAP_PRIVATE))) - return (EINVAL); - - if (flags & LINUX_MAP_SHARED) - bsd_args.flags |= MAP_SHARED; - if (flags & LINUX_MAP_PRIVATE) - bsd_args.flags |= MAP_PRIVATE; - if (flags & LINUX_MAP_FIXED) - bsd_args.flags |= MAP_FIXED; - if (flags & LINUX_MAP_ANON) { - /* Enforce pos to be on page boundary, then ignore. */ - if ((pos & PAGE_MASK) != 0) - return (EINVAL); - pos = 0; - bsd_args.flags |= MAP_ANON; - } else - bsd_args.flags |= MAP_NOSYNC; - if (flags & LINUX_MAP_GROWSDOWN) - bsd_args.flags |= MAP_STACK; - - /* - * PROT_READ, PROT_WRITE, or PROT_EXEC implies PROT_READ and PROT_EXEC - * on Linux/i386. We do this to ensure maximum compatibility. - * Linux/ia64 does the same in i386 emulation mode. - */ - bsd_args.prot = prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - - /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ - bsd_args.fd = (bsd_args.flags & MAP_ANON) ? -1 : fd; - if (bsd_args.fd != -1) { - /* - * Linux follows Solaris mmap(2) description: - * The file descriptor fildes is opened with - * read permission, regardless of the - * protection options specified. - */ - - error = fget(td, bsd_args.fd, - cap_rights_init(&rights, CAP_MMAP), &fp); - if (error != 0) - return (error); - if (fp->f_type != DTYPE_VNODE) { - fdrop(fp, td); - return (EINVAL); - } - - /* Linux mmap() just fails for O_WRONLY files */ - if (!(fp->f_flag & FREAD)) { - fdrop(fp, td); - return (EACCES); - } - - fdrop(fp, td); - } - - if (flags & LINUX_MAP_GROWSDOWN) { - /* - * The Linux MAP_GROWSDOWN option does not limit auto - * growth of the region. Linux mmap with this option - * takes as addr the inital BOS, and as len, the initial - * region size. It can then grow down from addr without - * limit. However, Linux threads has an implicit internal - * limit to stack size of STACK_SIZE. Its just not - * enforced explicitly in Linux. But, here we impose - * a limit of (STACK_SIZE - GUARD_SIZE) on the stack - * region, since we can do this with our mmap. - * - * Our mmap with MAP_STACK takes addr as the maximum - * downsize limit on BOS, and as len the max size of - * the region. It then maps the top SGROWSIZ bytes, - * and auto grows the region down, up to the limit - * in addr. - * - * If we don't use the MAP_STACK option, the effect - * of this code is to allocate a stack region of a - * fixed size of (STACK_SIZE - GUARD_SIZE). - */ - - if ((caddr_t)PTRIN(addr) + len > p->p_vmspace->vm_maxsaddr) { - /* - * Some Linux apps will attempt to mmap - * thread stacks near the top of their - * address space. If their TOS is greater - * than vm_maxsaddr, vm_map_growstack() - * will confuse the thread stack with the - * process stack and deliver a SEGV if they - * attempt to grow the thread stack past their - * current stacksize rlimit. To avoid this, - * adjust vm_maxsaddr upwards to reflect - * the current stacksize rlimit rather - * than the maximum possible stacksize. - * It would be better to adjust the - * mmap'ed region, but some apps do not check - * mmap's return value. - */ - PROC_LOCK(p); - p->p_vmspace->vm_maxsaddr = (char *)LINUX32_USRSTACK - - lim_cur(p, RLIMIT_STACK); - PROC_UNLOCK(p); - } - - /* - * This gives us our maximum stack size and a new BOS. - * If we're using VM_STACK, then mmap will just map - * the top SGROWSIZ bytes, and let the stack grow down - * to the limit at BOS. If we're not using VM_STACK - * we map the full stack, since we don't have a way - * to autogrow it. - */ - if (len > STACK_SIZE - GUARD_SIZE) { - bsd_args.addr = (caddr_t)PTRIN(addr); - bsd_args.len = len; - } else { - bsd_args.addr = (caddr_t)PTRIN(addr) - - (STACK_SIZE - GUARD_SIZE - len); - bsd_args.len = STACK_SIZE - GUARD_SIZE; - } - } else { - bsd_args.addr = (caddr_t)PTRIN(addr); - bsd_args.len = len; - } - bsd_args.pos = pos; - -#ifdef DEBUG - if (ldebug(mmap)) - printf("-> %s(%p, %d, %d, 0x%08x, %d, 0x%x)\n", - __func__, - (void *)bsd_args.addr, (int)bsd_args.len, bsd_args.prot, - bsd_args.flags, bsd_args.fd, (int)bsd_args.pos); -#endif - error = sys_mmap(td, &bsd_args); -#ifdef DEBUG - if (ldebug(mmap)) - printf("-> %s() return: 0x%x (0x%08x)\n", - __func__, error, (u_int)td->td_retval[0]); -#endif - return (error); -} - int linux_mprotect(struct thread *td, struct linux_mprotect_args *uap) { - struct mprotect_args bsd_args; - bsd_args.addr = uap->addr; - bsd_args.len = uap->len; - bsd_args.prot = uap->prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - return (sys_mprotect(td, &bsd_args)); + return (linux_mprotect_common(td, PTROUT(uap->addr), uap->len, uap->prot)); } int Copied and modified: stable/10/sys/compat/linux/linux_mmap.c (from r302517, head/sys/compat/linux/linux_mmap.c) ============================================================================== --- head/sys/compat/linux/linux_mmap.c Sun Jul 10 08:22:04 2016 (r302517, copy source) +++ stable/10/sys/compat/linux/linux_mmap.c Sun Jul 17 15:23:32 2016 (r302964) @@ -193,7 +193,7 @@ linux_mmap_common(struct thread *td, uin */ PROC_LOCK(p); vms->vm_maxsaddr = (char *)p->p_sysent->sv_usrstack - - lim_cur_proc(p, RLIMIT_STACK); + lim_cur(p, RLIMIT_STACK); PROC_UNLOCK(p); } Copied: stable/10/sys/compat/linux/linux_mmap.h (from r302517, head/sys/compat/linux/linux_mmap.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/compat/linux/linux_mmap.h Sun Jul 17 15:23:32 2016 (r302964, copy of r302517, head/sys/compat/linux/linux_mmap.h) @@ -0,0 +1,49 @@ +/*- + * Copyright (c) 2004 Tim J. Robbins + * Copyright (c) 2002 Doug Rabson + * Copyright (c) 2000 Marcel Moolenaar + * Copyright (c) 1994-1995 Søren Schmidt + * 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 + * in this position and unchanged. + * 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. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + * + * $FreeBSD$ + */ + +#ifndef _LINUX_MMAP_H_ +#define _LINUX_MMAP_H_ + +/* mmap options */ +#define LINUX_MAP_SHARED 0x0001 +#define LINUX_MAP_PRIVATE 0x0002 +#define LINUX_MAP_FIXED 0x0010 +#define LINUX_MAP_ANON 0x0020 +#define LINUX_MAP_GROWSDOWN 0x0100 + + +int linux_mmap_common(struct thread *, uintptr_t, size_t, int, int, + int, off_t); +int linux_mprotect_common(struct thread *, uintptr_t, size_t, int); + +#endif /* _LINUX_MMAP_H_ */ Modified: stable/10/sys/conf/files.amd64 ============================================================================== --- stable/10/sys/conf/files.amd64 Sun Jul 17 15:11:23 2016 (r302963) +++ stable/10/sys/conf/files.amd64 Sun Jul 17 15:23:32 2016 (r302964) @@ -544,6 +544,7 @@ compat/linux/linux_ioctl.c optional comp compat/linux/linux_ipc.c optional compat_linux32 compat/linux/linux_mib.c optional compat_linux32 compat/linux/linux_misc.c optional compat_linux32 +compat/linux/linux_mmap.c optional compat_linux32 compat/linux/linux_signal.c optional compat_linux32 compat/linux/linux_socket.c optional compat_linux32 compat/linux/linux_stats.c optional compat_linux32 Modified: stable/10/sys/conf/files.i386 ============================================================================== --- stable/10/sys/conf/files.i386 Sun Jul 17 15:11:23 2016 (r302963) +++ stable/10/sys/conf/files.i386 Sun Jul 17 15:23:32 2016 (r302964) @@ -102,6 +102,7 @@ compat/linux/linux_ioctl.c optional comp compat/linux/linux_ipc.c optional compat_linux compat/linux/linux_mib.c optional compat_linux compat/linux/linux_misc.c optional compat_linux +compat/linux/linux_mmap.c optional compat_linux compat/linux/linux_signal.c optional compat_linux compat/linux/linux_socket.c optional compat_linux compat/linux/linux_stats.c optional compat_linux Modified: stable/10/sys/conf/files.pc98 ============================================================================== --- stable/10/sys/conf/files.pc98 Sun Jul 17 15:11:23 2016 (r302963) +++ stable/10/sys/conf/files.pc98 Sun Jul 17 15:23:32 2016 (r302964) @@ -63,6 +63,7 @@ compat/linux/linux_ioctl.c optional comp compat/linux/linux_ipc.c optional compat_linux compat/linux/linux_mib.c optional compat_linux compat/linux/linux_misc.c optional compat_linux +compat/linux/linux_mmap.c optional compat_linux compat/linux/linux_signal.c optional compat_linux compat/linux/linux_socket.c optional compat_linux compat/linux/linux_stats.c optional compat_linux Modified: stable/10/sys/i386/linux/linux.h ============================================================================== --- stable/10/sys/i386/linux/linux.h Sun Jul 17 15:11:23 2016 (r302963) +++ stable/10/sys/i386/linux/linux.h Sun Jul 17 15:23:32 2016 (r302964) @@ -140,13 +140,6 @@ struct l_rlimit { l_ulong rlim_max; }; -/* mmap options */ -#define LINUX_MAP_SHARED 0x0001 -#define LINUX_MAP_PRIVATE 0x0002 -#define LINUX_MAP_FIXED 0x0010 -#define LINUX_MAP_ANON 0x0020 -#define LINUX_MAP_GROWSDOWN 0x0100 - struct l_mmap_argv { l_uintptr_t addr; l_size_t len; Modified: stable/10/sys/i386/linux/linux_machdep.c ============================================================================== --- stable/10/sys/i386/linux/linux_machdep.c Sun Jul 17 15:11:23 2016 (r302963) +++ stable/10/sys/i386/linux/linux_machdep.c Sun Jul 17 15:23:32 2016 (r302964) @@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -95,10 +96,6 @@ struct l_old_select_argv { struct l_timeval *timeout; }; -static int linux_mmap_common(struct thread *td, l_uintptr_t addr, - l_size_t len, l_int prot, l_int flags, l_int fd, - l_loff_t pos); - int linux_execve(struct thread *td, struct linux_execve_args *args) @@ -340,9 +337,6 @@ linux_set_upcall_kse(struct thread *td, return (0); } -#define STACK_SIZE (2 * 1024 * 1024) -#define GUARD_SIZE (4 * PAGE_SIZE) - int linux_mmap2(struct thread *td, struct linux_mmap2_args *args) { @@ -381,187 +375,11 @@ linux_mmap(struct thread *td, struct lin (uint32_t)linux_args.pgoff)); } -static int -linux_mmap_common(struct thread *td, l_uintptr_t addr, l_size_t len, l_int prot, - l_int flags, l_int fd, l_loff_t pos) -{ - struct proc *p = td->td_proc; - struct mmap_args /* { - caddr_t addr; - size_t len; - int prot; - int flags; - int fd; - long pad; - off_t pos; - } */ bsd_args; - int error; - struct file *fp; - cap_rights_t rights; - - error = 0; - bsd_args.flags = 0; - fp = NULL; - - /* - * Linux mmap(2): - * You must specify exactly one of MAP_SHARED and MAP_PRIVATE - */ - if (!((flags & LINUX_MAP_SHARED) ^ (flags & LINUX_MAP_PRIVATE))) - return (EINVAL); - - if (flags & LINUX_MAP_SHARED) - bsd_args.flags |= MAP_SHARED; - if (flags & LINUX_MAP_PRIVATE) - bsd_args.flags |= MAP_PRIVATE; - if (flags & LINUX_MAP_FIXED) - bsd_args.flags |= MAP_FIXED; - if (flags & LINUX_MAP_ANON) { - /* Enforce pos to be on page boundary, then ignore. */ - if ((pos & PAGE_MASK) != 0) - return (EINVAL); - pos = 0; - bsd_args.flags |= MAP_ANON; - } else - bsd_args.flags |= MAP_NOSYNC; - if (flags & LINUX_MAP_GROWSDOWN) - bsd_args.flags |= MAP_STACK; - - /* - * PROT_READ, PROT_WRITE, or PROT_EXEC implies PROT_READ and PROT_EXEC - * on Linux/i386. We do this to ensure maximum compatibility. - * Linux/ia64 does the same in i386 emulation mode. - */ - bsd_args.prot = prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - - /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ - bsd_args.fd = (bsd_args.flags & MAP_ANON) ? -1 : fd; - if (bsd_args.fd != -1) { - /* - * Linux follows Solaris mmap(2) description: - * The file descriptor fildes is opened with - * read permission, regardless of the - * protection options specified. - * - * Checking just CAP_MMAP is fine here, since the real work - * is done in the FreeBSD mmap(). - */ - - error = fget(td, bsd_args.fd, - cap_rights_init(&rights, CAP_MMAP), &fp); - if (error != 0) - return (error); - if (fp->f_type != DTYPE_VNODE) { - fdrop(fp, td); - return (EINVAL); - } - - /* Linux mmap() just fails for O_WRONLY files */ - if (!(fp->f_flag & FREAD)) { - fdrop(fp, td); - return (EACCES); - } - - fdrop(fp, td); - } - - if (flags & LINUX_MAP_GROWSDOWN) { - /* - * The Linux MAP_GROWSDOWN option does not limit auto - * growth of the region. Linux mmap with this option - * takes as addr the inital BOS, and as len, the initial - * region size. It can then grow down from addr without - * limit. However, linux threads has an implicit internal - * limit to stack size of STACK_SIZE. Its just not - * enforced explicitly in linux. But, here we impose - * a limit of (STACK_SIZE - GUARD_SIZE) on the stack - * region, since we can do this with our mmap. - * - * Our mmap with MAP_STACK takes addr as the maximum - * downsize limit on BOS, and as len the max size of - * the region. It them maps the top SGROWSIZ bytes, - * and auto grows the region down, up to the limit - * in addr. - * - * If we don't use the MAP_STACK option, the effect - * of this code is to allocate a stack region of a - * fixed size of (STACK_SIZE - GUARD_SIZE). - */ - - if ((caddr_t)PTRIN(addr) + len > p->p_vmspace->vm_maxsaddr) { - /* - * Some linux apps will attempt to mmap - * thread stacks near the top of their - * address space. If their TOS is greater - * than vm_maxsaddr, vm_map_growstack() - * will confuse the thread stack with the - * process stack and deliver a SEGV if they - * attempt to grow the thread stack past their - * current stacksize rlimit. To avoid this, - * adjust vm_maxsaddr upwards to reflect - * the current stacksize rlimit rather - * than the maximum possible stacksize. - * It would be better to adjust the - * mmap'ed region, but some apps do not check - * mmap's return value. - */ - PROC_LOCK(p); - p->p_vmspace->vm_maxsaddr = (char *)USRSTACK - - lim_cur(p, RLIMIT_STACK); - PROC_UNLOCK(p); - } - - /* - * This gives us our maximum stack size and a new BOS. - * If we're using VM_STACK, then mmap will just map - * the top SGROWSIZ bytes, and let the stack grow down - * to the limit at BOS. If we're not using VM_STACK - * we map the full stack, since we don't have a way - * to autogrow it. - */ - if (len > STACK_SIZE - GUARD_SIZE) { - bsd_args.addr = (caddr_t)PTRIN(addr); - bsd_args.len = len; - } else { - bsd_args.addr = (caddr_t)PTRIN(addr) - - (STACK_SIZE - GUARD_SIZE - len); - bsd_args.len = STACK_SIZE - GUARD_SIZE; - } - } else { - bsd_args.addr = (caddr_t)PTRIN(addr); - bsd_args.len = len; - } - bsd_args.pos = pos; - -#ifdef DEBUG - if (ldebug(mmap)) - printf("-> %s(%p, %d, %d, 0x%08x, %d, 0x%x)\n", - __func__, - (void *)bsd_args.addr, bsd_args.len, bsd_args.prot, - bsd_args.flags, bsd_args.fd, (int)bsd_args.pos); -#endif - error = sys_mmap(td, &bsd_args); -#ifdef DEBUG - if (ldebug(mmap)) - printf("-> %s() return: 0x%x (0x%08x)\n", - __func__, error, (u_int)td->td_retval[0]); -#endif - return (error); -} - int linux_mprotect(struct thread *td, struct linux_mprotect_args *uap) { - struct mprotect_args bsd_args; - bsd_args.addr = uap->addr; - bsd_args.len = uap->len; - bsd_args.prot = uap->prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - return (sys_mprotect(td, &bsd_args)); + return (linux_mprotect_common(td, PTROUT(uap->addr), uap->len, uap->prot)); } int Modified: stable/10/sys/modules/linux/Makefile ============================================================================== --- stable/10/sys/modules/linux/Makefile Sun Jul 17 15:11:23 2016 (r302963) +++ stable/10/sys/modules/linux/Makefile Sun Jul 17 15:23:32 2016 (r302964) @@ -30,7 +30,7 @@ SRCS+= opt_apic.h OBJS= ${VDSO}.so .if ${MACHINE_CPUARCH} == "i386" -SRCS+= linux_ptrace.c imgact_linux.c linux_util.c linux_mib.c \ +SRCS+= linux_ptrace.c imgact_linux.c linux_util.c linux_mib.c linux_mmap.c \ linux_emul.c opt_cpu.h linux.c .endif Modified: stable/10/sys/modules/linux_common/Makefile ============================================================================== --- stable/10/sys/modules/linux_common/Makefile Sun Jul 17 15:11:23 2016 (r302963) +++ stable/10/sys/modules/linux_common/Makefile Sun Jul 17 15:23:32 2016 (r302964) @@ -3,7 +3,7 @@ .PATH: ${.CURDIR}/../../compat/linux KMOD= linux_common -SRCS= linux_common.c linux_mib.c linux_util.c linux_emul.c \ +SRCS= linux_common.c linux_mib.c linux_mmap.c linux_util.c linux_emul.c \ linux.c opt_compat.h device_if.h vnode_if.h bus_if.h EXPORT_SYMS= From owner-svn-src-all@freebsd.org Sun Jul 17 15:29:32 2016 Return-Path: Delivered-To: svn-src-all@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 6A9C3B9C3A9; Sun, 17 Jul 2016 15:29:32 +0000 (UTC) (envelope-from oshogbo@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 3CE8D1CD9; Sun, 17 Jul 2016 15:29:32 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HFTVrA063959; Sun, 17 Jul 2016 15:29:31 GMT (envelope-from oshogbo@FreeBSD.org) Received: (from oshogbo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HFTVof063958; Sun, 17 Jul 2016 15:29:31 GMT (envelope-from oshogbo@FreeBSD.org) Message-Id: <201607171529.u6HFTVof063958@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: oshogbo set sender to oshogbo@FreeBSD.org using -f From: Mariusz Zaborski Date: Sun, 17 Jul 2016 15:29:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302965 - head/sys/contrib/libnv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 15:29:32 -0000 Author: oshogbo Date: Sun Jul 17 15:29:31 2016 New Revision: 302965 URL: https://svnweb.freebsd.org/changeset/base/302965 Log: Fix memory leak in the nvlist string array. Submitted by: Adam Starak MFC after: 1 week Modified: head/sys/contrib/libnv/nvpair.c Modified: head/sys/contrib/libnv/nvpair.c ============================================================================== --- head/sys/contrib/libnv/nvpair.c Sun Jul 17 15:23:32 2016 (r302964) +++ head/sys/contrib/libnv/nvpair.c Sun Jul 17 15:29:31 2016 (r302965) @@ -1945,6 +1945,7 @@ nvpair_free(nvpair_t *nvp) case NV_TYPE_STRING_ARRAY: for (i = 0; i < nvp->nvp_nitems; i++) nv_free(((char **)(intptr_t)nvp->nvp_data)[i]); + nv_free((char **)(intptr_t)nvp->nvp_data); break; } nv_free(nvp); From owner-svn-src-all@freebsd.org Sun Jul 17 15:36:03 2016 Return-Path: Delivered-To: svn-src-all@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 E6AD3B9C565; Sun, 17 Jul 2016 15:36:03 +0000 (UTC) (envelope-from oshogbo@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 B797C12DB; Sun, 17 Jul 2016 15:36:03 +0000 (UTC) (envelope-from oshogbo@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HFa2IL067870; Sun, 17 Jul 2016 15:36:02 GMT (envelope-from oshogbo@FreeBSD.org) Received: (from oshogbo@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HFa2LJ067869; Sun, 17 Jul 2016 15:36:02 GMT (envelope-from oshogbo@FreeBSD.org) Message-Id: <201607171536.u6HFa2LJ067869@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: oshogbo set sender to oshogbo@FreeBSD.org using -f From: Mariusz Zaborski Date: Sun, 17 Jul 2016 15:36:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302966 - head/sys/contrib/libnv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 15:36:04 -0000 Author: oshogbo Date: Sun Jul 17 15:36:02 2016 New Revision: 302966 URL: https://svnweb.freebsd.org/changeset/base/302966 Log: Fix nvlist array memory leak. When we change nvl_array_next to NULL it means that we want to destroy or take nvlist_array. The nvpair, which stores next nvlist of nvlist_array element is no longer needed and can be freed. Submitted by: Adam Starak MFC after: 1 week Modified: head/sys/contrib/libnv/nvlist.c Modified: head/sys/contrib/libnv/nvlist.c ============================================================================== --- head/sys/contrib/libnv/nvlist.c Sun Jul 17 15:29:31 2016 (r302965) +++ head/sys/contrib/libnv/nvlist.c Sun Jul 17 15:36:02 2016 (r302966) @@ -236,10 +236,12 @@ nvlist_set_array_next(nvlist_t *nvl, nvp NVLIST_ASSERT(nvl); - if (ele != NULL) + if (ele != NULL) { nvl->nvl_flags |= NV_FLAG_IN_ARRAY; - else + } else { nvl->nvl_flags &= ~NV_FLAG_IN_ARRAY; + nv_free(nvl->nvl_array_next); + } nvl->nvl_array_next = ele; } From owner-svn-src-all@freebsd.org Sun Jul 17 18:23:21 2016 Return-Path: Delivered-To: svn-src-all@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 C3EA5B9C7F1; Sun, 17 Jul 2016 18:23:21 +0000 (UTC) (envelope-from pfg@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 704091886; Sun, 17 Jul 2016 18:23:21 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HINKx3030363; Sun, 17 Jul 2016 18:23:20 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HINKkE030361; Sun, 17 Jul 2016 18:23:20 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607171823.u6HINKkE030361@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 17 Jul 2016 18:23:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r302967 - stable/11/usr.bin/mail X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 18:23:21 -0000 Author: pfg Date: Sun Jul 17 18:23:20 2016 New Revision: 302967 URL: https://svnweb.freebsd.org/changeset/base/302967 Log: MFC r302511, r302771, r302845: mail(1): check for out of memory conditions when calling calloc(3). Approved by: re (gjb) Modified: stable/11/usr.bin/mail/cmd3.c stable/11/usr.bin/mail/vars.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/mail/cmd3.c ============================================================================== --- stable/11/usr.bin/mail/cmd3.c Sun Jul 17 15:36:02 2016 (r302966) +++ stable/11/usr.bin/mail/cmd3.c Sun Jul 17 18:23:20 2016 (r302967) @@ -463,7 +463,8 @@ group(char **argv) gname = *argv; h = hash(gname); if ((gh = findgroup(gname)) == NULL) { - gh = calloc(sizeof(*gh), 1); + if ((gh = calloc(1, sizeof(*gh))) == NULL) + err(1, "Out of memory"); gh->g_name = vcopy(gname); gh->g_list = NULL; gh->g_link = groups[h]; @@ -477,7 +478,8 @@ group(char **argv) */ for (ap = argv+1; *ap != NULL; ap++) { - gp = calloc(sizeof(*gp), 1); + if ((gp = calloc(1, sizeof(*gp))) == NULL) + err(1, "Out of memory"); gp->ge_name = vcopy(*ap); gp->ge_link = gh->g_list; gh->g_list = gp; @@ -702,7 +704,8 @@ alternates(char **namelist) } if (altnames != 0) (void)free(altnames); - altnames = calloc((unsigned)c, sizeof(char *)); + if ((altnames = calloc((unsigned)c, sizeof(char *))) == NULL) + err(1, "Out of memory"); for (ap = namelist, ap2 = altnames; *ap != NULL; ap++, ap2++) { cp = calloc((unsigned)strlen(*ap) + 1, sizeof(char)); strcpy(cp, *ap); Modified: stable/11/usr.bin/mail/vars.c ============================================================================== --- stable/11/usr.bin/mail/vars.c Sun Jul 17 15:36:02 2016 (r302966) +++ stable/11/usr.bin/mail/vars.c Sun Jul 17 18:23:20 2016 (r302967) @@ -56,7 +56,8 @@ assign(const char *name, const char *val h = hash(name); vp = lookup(name); if (vp == NULL) { - vp = calloc(sizeof(*vp), 1); + if ((vp = calloc(1, sizeof(*vp))) == NULL) + err(1, "Out of memory"); vp->v_name = vcopy(name); vp->v_link = variables[h]; variables[h] = vp; From owner-svn-src-all@freebsd.org Sun Jul 17 18:32:34 2016 Return-Path: Delivered-To: svn-src-all@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 E8B76B9C98E; Sun, 17 Jul 2016 18:32:34 +0000 (UTC) (envelope-from pfg@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 8863F1D54; Sun, 17 Jul 2016 18:32:34 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HIWX02033974; Sun, 17 Jul 2016 18:32:33 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HIWXGC033972; Sun, 17 Jul 2016 18:32:33 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607171832.u6HIWXGC033972@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 17 Jul 2016 18:32:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r302968 - stable/10/usr.bin/mail X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 18:32:35 -0000 Author: pfg Date: Sun Jul 17 18:32:33 2016 New Revision: 302968 URL: https://svnweb.freebsd.org/changeset/base/302968 Log: MFC r302511, r302771, r302845: mail(1): check for out of memory conditions when calling calloc(3). Modified: stable/10/usr.bin/mail/cmd3.c stable/10/usr.bin/mail/vars.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/mail/cmd3.c ============================================================================== --- stable/10/usr.bin/mail/cmd3.c Sun Jul 17 18:23:20 2016 (r302967) +++ stable/10/usr.bin/mail/cmd3.c Sun Jul 17 18:32:33 2016 (r302968) @@ -463,7 +463,8 @@ group(char **argv) gname = *argv; h = hash(gname); if ((gh = findgroup(gname)) == NULL) { - gh = calloc(sizeof(*gh), 1); + if ((gh = calloc(1, sizeof(*gh))) == NULL) + err(1, "Out of memory"); gh->g_name = vcopy(gname); gh->g_list = NULL; gh->g_link = groups[h]; @@ -477,7 +478,8 @@ group(char **argv) */ for (ap = argv+1; *ap != NULL; ap++) { - gp = calloc(sizeof(*gp), 1); + if ((gp = calloc(1, sizeof(*gp))) == NULL) + err(1, "Out of memory"); gp->ge_name = vcopy(*ap); gp->ge_link = gh->g_list; gh->g_list = gp; @@ -702,7 +704,8 @@ alternates(char **namelist) } if (altnames != 0) (void)free(altnames); - altnames = calloc((unsigned)c, sizeof(char *)); + if ((altnames = calloc((unsigned)c, sizeof(char *))) == NULL) + err(1, "Out of memory"); for (ap = namelist, ap2 = altnames; *ap != NULL; ap++, ap2++) { cp = calloc((unsigned)strlen(*ap) + 1, sizeof(char)); strcpy(cp, *ap); Modified: stable/10/usr.bin/mail/vars.c ============================================================================== --- stable/10/usr.bin/mail/vars.c Sun Jul 17 18:23:20 2016 (r302967) +++ stable/10/usr.bin/mail/vars.c Sun Jul 17 18:32:33 2016 (r302968) @@ -56,7 +56,8 @@ assign(const char *name, const char *val h = hash(name); vp = lookup(name); if (vp == NULL) { - vp = calloc(sizeof(*vp), 1); + if ((vp = calloc(1, sizeof(*vp))) == NULL) + err(1, "Out of memory"); vp->v_name = vcopy(name); vp->v_link = variables[h]; variables[h] = vp; From owner-svn-src-all@freebsd.org Sun Jul 17 18:33:19 2016 Return-Path: Delivered-To: svn-src-all@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 4AAE8B9CA19; Sun, 17 Jul 2016 18:33:19 +0000 (UTC) (envelope-from pfg@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 010AD1EC3; Sun, 17 Jul 2016 18:33:18 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HIXIN5034063; Sun, 17 Jul 2016 18:33:18 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HIXIxf034061; Sun, 17 Jul 2016 18:33:18 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607171833.u6HIXIxf034061@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 17 Jul 2016 18:33:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r302969 - stable/9/usr.bin/mail X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 18:33:19 -0000 Author: pfg Date: Sun Jul 17 18:33:17 2016 New Revision: 302969 URL: https://svnweb.freebsd.org/changeset/base/302969 Log: MFC r302511, r302771, r302845: mail(1): check for out of memory conditions when calling calloc(3). Modified: stable/9/usr.bin/mail/cmd3.c stable/9/usr.bin/mail/vars.c Directory Properties: stable/9/usr.bin/mail/ (props changed) Modified: stable/9/usr.bin/mail/cmd3.c ============================================================================== --- stable/9/usr.bin/mail/cmd3.c Sun Jul 17 18:32:33 2016 (r302968) +++ stable/9/usr.bin/mail/cmd3.c Sun Jul 17 18:33:17 2016 (r302969) @@ -463,7 +463,8 @@ group(char **argv) gname = *argv; h = hash(gname); if ((gh = findgroup(gname)) == NULL) { - gh = calloc(sizeof(*gh), 1); + if ((gh = calloc(1, sizeof(*gh))) == NULL) + err(1, "Out of memory"); gh->g_name = vcopy(gname); gh->g_list = NULL; gh->g_link = groups[h]; @@ -477,7 +478,8 @@ group(char **argv) */ for (ap = argv+1; *ap != NULL; ap++) { - gp = calloc(sizeof(*gp), 1); + if ((gp = calloc(1, sizeof(*gp))) == NULL) + err(1, "Out of memory"); gp->ge_name = vcopy(*ap); gp->ge_link = gh->g_list; gh->g_list = gp; @@ -702,7 +704,8 @@ alternates(char **namelist) } if (altnames != 0) (void)free(altnames); - altnames = calloc((unsigned)c, sizeof(char *)); + if ((altnames = calloc((unsigned)c, sizeof(char *))) == NULL) + err(1, "Out of memory"); for (ap = namelist, ap2 = altnames; *ap != NULL; ap++, ap2++) { cp = calloc((unsigned)strlen(*ap) + 1, sizeof(char)); strcpy(cp, *ap); Modified: stable/9/usr.bin/mail/vars.c ============================================================================== --- stable/9/usr.bin/mail/vars.c Sun Jul 17 18:32:33 2016 (r302968) +++ stable/9/usr.bin/mail/vars.c Sun Jul 17 18:33:17 2016 (r302969) @@ -56,7 +56,8 @@ assign(const char *name, const char *val h = hash(name); vp = lookup(name); if (vp == NULL) { - vp = calloc(sizeof(*vp), 1); + if ((vp = calloc(1, sizeof(*vp))) == NULL) + err(1, "Out of memory"); vp->v_name = vcopy(name); vp->v_link = variables[h]; variables[h] = vp; From owner-svn-src-all@freebsd.org Sun Jul 17 19:19:51 2016 Return-Path: Delivered-To: svn-src-all@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 89D72B980C8; Sun, 17 Jul 2016 19:19:51 +0000 (UTC) (envelope-from jhibbits@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 5659B14A5; Sun, 17 Jul 2016 19:19:51 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HJJouP049140; Sun, 17 Jul 2016 19:19:50 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HJJoOd049139; Sun, 17 Jul 2016 19:19:50 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201607171919.u6HJJoOd049139@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sun, 17 Jul 2016 19:19:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302970 - head/sys/powerpc/booke X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 19:19:51 -0000 Author: jhibbits Date: Sun Jul 17 19:19:50 2016 New Revision: 302970 URL: https://svnweb.freebsd.org/changeset/base/302970 Log: No need to include mpc85xx.h anymore, so remove it. Modified: head/sys/powerpc/booke/booke_machdep.c Modified: head/sys/powerpc/booke/booke_machdep.c ============================================================================== --- head/sys/powerpc/booke/booke_machdep.c Sun Jul 17 18:33:17 2016 (r302969) +++ head/sys/powerpc/booke/booke_machdep.c Sun Jul 17 19:19:50 2016 (r302970) @@ -142,10 +142,6 @@ __FBSDID("$FreeBSD$"); #include #include -#if defined(MPC85XX) || defined(QORIQ_DPAA) -#include -#endif - #ifdef DDB #include #endif From owner-svn-src-all@freebsd.org Sun Jul 17 19:24:29 2016 Return-Path: Delivered-To: svn-src-all@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 7642AB98562; Sun, 17 Jul 2016 19:24:29 +0000 (UTC) (envelope-from jhibbits@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 46A971A8F; Sun, 17 Jul 2016 19:24:29 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HJOSt1052678; Sun, 17 Jul 2016 19:24:28 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HJOSml052676; Sun, 17 Jul 2016 19:24:28 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201607171924.u6HJOSml052676@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sun, 17 Jul 2016 19:24:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302971 - in head/sys/powerpc: booke include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 19:24:29 -0000 Author: jhibbits Date: Sun Jul 17 19:24:28 2016 New Revision: 302971 URL: https://svnweb.freebsd.org/changeset/base/302971 Log: Remove booke_enable_l3_cache declaration and remaining definition. L3 cache is not defined by Book-E, so is platform specific. Since it was already moved for e500-based devices into mpc85xx in r292903, just eliminate it altogether. Any device that supports L3 cache should have its own platform means to enable it. Modified: head/sys/powerpc/booke/machdep_ppc4xx.c head/sys/powerpc/include/machdep.h Modified: head/sys/powerpc/booke/machdep_ppc4xx.c ============================================================================== --- head/sys/powerpc/booke/machdep_ppc4xx.c Sun Jul 17 19:19:50 2016 (r302970) +++ head/sys/powerpc/booke/machdep_ppc4xx.c Sun Jul 17 19:24:28 2016 (r302971) @@ -115,11 +115,6 @@ booke_enable_l2_cache(void) } void -booke_enable_l3_cache(void) -{ -} - -void booke_disable_l2_cache(void) { uint32_t ccr1,l2cr0; Modified: head/sys/powerpc/include/machdep.h ============================================================================== --- head/sys/powerpc/include/machdep.h Sun Jul 17 19:19:50 2016 (r302970) +++ head/sys/powerpc/include/machdep.h Sun Jul 17 19:24:28 2016 (r302971) @@ -32,7 +32,6 @@ void booke_disable_l2_cache(void); void booke_enable_l1_cache(void); void booke_enable_l2_cache(void); -void booke_enable_l3_cache(void); void booke_enable_bpred(void); void booke_init_tlb(vm_paddr_t); From owner-svn-src-all@freebsd.org Sun Jul 17 20:34:47 2016 Return-Path: Delivered-To: svn-src-all@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 CDF81B9C672; Sun, 17 Jul 2016 20:34:47 +0000 (UTC) (envelope-from grehan@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 9F96C1AE8; Sun, 17 Jul 2016 20:34:47 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HKYkux078380; Sun, 17 Jul 2016 20:34:46 GMT (envelope-from grehan@FreeBSD.org) Received: (from grehan@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HKYkOr078379; Sun, 17 Jul 2016 20:34:46 GMT (envelope-from grehan@FreeBSD.org) Message-Id: <201607172034.u6HKYkOr078379@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: grehan set sender to grehan@FreeBSD.org using -f From: Peter Grehan Date: Sun, 17 Jul 2016 20:34:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302972 - head/usr.sbin/bhyve X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 20:34:47 -0000 Author: grehan Date: Sun Jul 17 20:34:46 2016 New Revision: 302972 URL: https://svnweb.freebsd.org/changeset/base/302972 Log: Disallow interrupt requests on disabled endpoints. Submitted by: Leon Dang MFC after: 3 days Modified: head/usr.sbin/bhyve/pci_xhci.c Modified: head/usr.sbin/bhyve/pci_xhci.c ============================================================================== --- head/usr.sbin/bhyve/pci_xhci.c Sun Jul 17 19:24:28 2016 (r302971) +++ head/usr.sbin/bhyve/pci_xhci.c Sun Jul 17 20:34:46 2016 (r302972) @@ -2537,9 +2537,11 @@ static int pci_xhci_dev_intr(struct usb_hci *hci, int epctx) { struct pci_xhci_dev_emu *dev; + struct xhci_dev_ctx *dev_ctx; struct xhci_trb evtrb; struct pci_xhci_softc *sc; struct pci_xhci_portregs *p; + struct xhci_endp_ctx *ep_ctx; int error; int dir_in; int epid; @@ -2578,6 +2580,14 @@ pci_xhci_dev_intr(struct usb_hci *hci, i goto done; } + dev_ctx = dev->dev_ctx; + ep_ctx = &dev_ctx->ctx_ep[epid]; + if ((ep_ctx->dwEpCtx0 & 0x7) == XHCI_ST_EPCTX_DISABLED) { + DPRINTF(("xhci device interrupt on disabled endpoint %d\r\n", + epid)); + return (0); + } + DPRINTF(("xhci device interrupt on endpoint %d\r\n", epid)); pci_xhci_device_doorbell(sc, hci->hci_port, epid, 0); From owner-svn-src-all@freebsd.org Sun Jul 17 21:49:55 2016 Return-Path: Delivered-To: svn-src-all@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 1CAD9B9B950; Sun, 17 Jul 2016 21:49:55 +0000 (UTC) (envelope-from pfg@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 D433D1BDB; Sun, 17 Jul 2016 21:49:54 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6HLns1G004292; Sun, 17 Jul 2016 21:49:54 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6HLnsDc004291; Sun, 17 Jul 2016 21:49:54 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607172149.u6HLnsDc004291@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Sun, 17 Jul 2016 21:49:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302973 - head/usr.bin/sed X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jul 2016 21:49:55 -0000 Author: pfg Date: Sun Jul 17 21:49:53 2016 New Revision: 302973 URL: https://svnweb.freebsd.org/changeset/base/302973 Log: sed(1): Fix off by one introduced in r299211. Detected by running the gsed tests. Submitted by: Mikhail Teterin PR: 195929 MFC after: 3 days Modified: head/usr.bin/sed/process.c Modified: head/usr.bin/sed/process.c ============================================================================== --- head/usr.bin/sed/process.c Sun Jul 17 20:34:46 2016 (r302972) +++ head/usr.bin/sed/process.c Sun Jul 17 21:49:53 2016 (r302973) @@ -450,7 +450,7 @@ substitute(struct s_command *cp) regexec_e(re, ps, REG_NOTBOL, 0, le, psl)); /* Did not find the requested number of matches. */ - if (n > 1) + if (n > 0) return (0); /* Copy the trailing retained string. */ From owner-svn-src-all@freebsd.org Mon Jul 18 01:02:54 2016 Return-Path: Delivered-To: svn-src-all@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 125C0B9CF59; Mon, 18 Jul 2016 01:02:54 +0000 (UTC) (envelope-from will@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 CFB8215F1; Mon, 18 Jul 2016 01:02:53 +0000 (UTC) (envelope-from will@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I12rBS077842; Mon, 18 Jul 2016 01:02:53 GMT (envelope-from will@FreeBSD.org) Received: (from will@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I12qg3077839; Mon, 18 Jul 2016 01:02:52 GMT (envelope-from will@FreeBSD.org) Message-Id: <201607180102.u6I12qg3077839@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: will set sender to will@FreeBSD.org using -f From: Will Andrews Date: Mon, 18 Jul 2016 01:02:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302974 - head/lib/libkvm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 01:02:54 -0000 Author: will Date: Mon Jul 18 01:02:52 2016 New Revision: 302974 URL: https://svnweb.freebsd.org/changeset/base/302974 Log: libkvm: Put private kvm routines in kvm_private.c. Added: head/lib/libkvm/kvm_private.c (contents, props changed) Modified: head/lib/libkvm/Makefile head/lib/libkvm/kvm.c Modified: head/lib/libkvm/Makefile ============================================================================== --- head/lib/libkvm/Makefile Sun Jul 17 21:49:53 2016 (r302973) +++ head/lib/libkvm/Makefile Mon Jul 18 01:02:52 2016 (r302974) @@ -11,7 +11,7 @@ CFLAGS+=-DLIBC_SCCS -I${.CURDIR} WARNS?= 3 SRCS= kvm.c kvm_cptime.c kvm_getloadavg.c \ - kvm_getswapinfo.c kvm_pcpu.c kvm_proc.c kvm_vnet.c \ + kvm_getswapinfo.c kvm_pcpu.c kvm_private.c kvm_proc.c kvm_vnet.c \ kvm_minidump_aarch64.c \ kvm_amd64.c kvm_minidump_amd64.c \ kvm_arm.c kvm_minidump_arm.c \ Modified: head/lib/libkvm/kvm.c ============================================================================== --- head/lib/libkvm/kvm.c Sun Jul 17 21:49:53 2016 (r302973) +++ head/lib/libkvm/kvm.c Mon Jul 18 01:02:52 2016 (r302974) @@ -66,114 +66,12 @@ static char sccsid[] = "@(#)kvm.c 8.2 (B SET_DECLARE(kvm_arch, struct kvm_arch); -/* from src/lib/libc/gen/nlist.c */ -int __fdnlist(int, struct nlist *); - -static int -kvm_fdnlist(kvm_t *kd, struct kvm_nlist *list) -{ - kvaddr_t addr; - int error, nfail; - - if (kd->resolve_symbol == NULL) { - struct nlist *nl; - int count, i; - - for (count = 0; list[count].n_name != NULL && - list[count].n_name[0] != '\0'; count++) - ; - nl = calloc(count + 1, sizeof(*nl)); - for (i = 0; i < count; i++) - nl[i].n_name = list[i].n_name; - nfail = __fdnlist(kd->nlfd, nl); - for (i = 0; i < count; i++) { - list[i].n_type = nl[i].n_type; - list[i].n_value = nl[i].n_value; - } - free(nl); - return (nfail); - } - - nfail = 0; - while (list->n_name != NULL && list->n_name[0] != '\0') { - error = kd->resolve_symbol(list->n_name, &addr); - if (error != 0) { - nfail++; - list->n_value = 0; - list->n_type = 0; - } else { - list->n_value = addr; - list->n_type = N_DATA | N_EXT; - } - list++; - } - return (nfail); -} - char * kvm_geterr(kvm_t *kd) { return (kd->errbuf); } -#include - -/* - * Report an error using printf style arguments. "program" is kd->program - * on hard errors, and 0 on soft errors, so that under sun error emulation, - * only hard errors are printed out (otherwise, programs like gdb will - * generate tons of error messages when trying to access bogus pointers). - */ -void -_kvm_err(kvm_t *kd, const char *program, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - if (program != NULL) { - (void)fprintf(stderr, "%s: ", program); - (void)vfprintf(stderr, fmt, ap); - (void)fputc('\n', stderr); - } else - (void)vsnprintf(kd->errbuf, - sizeof(kd->errbuf), fmt, ap); - - va_end(ap); -} - -void -_kvm_syserr(kvm_t *kd, const char *program, const char *fmt, ...) -{ - va_list ap; - int n; - - va_start(ap, fmt); - if (program != NULL) { - (void)fprintf(stderr, "%s: ", program); - (void)vfprintf(stderr, fmt, ap); - (void)fprintf(stderr, ": %s\n", strerror(errno)); - } else { - char *cp = kd->errbuf; - - (void)vsnprintf(cp, sizeof(kd->errbuf), fmt, ap); - n = strlen(cp); - (void)snprintf(&cp[n], sizeof(kd->errbuf) - n, ": %s", - strerror(errno)); - } - va_end(ap); -} - -void * -_kvm_malloc(kvm_t *kd, size_t n) -{ - void *p; - - if ((p = calloc(n, sizeof(char))) == NULL) - _kvm_err(kd, kd->program, "can't allocate %zu bytes: %s", - n, strerror(errno)); - return (p); -} - static int _kvm_read_kernel_ehdr(kvm_t *kd) { @@ -210,166 +108,6 @@ _kvm_read_kernel_ehdr(kvm_t *kd) } } -int -_kvm_probe_elf_kernel(kvm_t *kd, int class, int machine) -{ - - return (kd->nlehdr.e_ident[EI_CLASS] == class && - kd->nlehdr.e_type == ET_EXEC && - kd->nlehdr.e_machine == machine); -} - -int -_kvm_is_minidump(kvm_t *kd) -{ - char minihdr[8]; - - if (kd->rawdump) - return (0); - if (pread(kd->pmfd, &minihdr, 8, 0) == 8 && - memcmp(&minihdr, "minidump", 8) == 0) - return (1); - return (0); -} - -/* - * The powerpc backend has a hack to strip a leading kerneldump - * header from the core before treating it as an ELF header. - * - * We can add that here if we can get a change to libelf to support - * an initial offset into the file. Alternatively we could patch - * savecore to extract cores from a regular file instead. - */ -int -_kvm_read_core_phdrs(kvm_t *kd, size_t *phnump, GElf_Phdr **phdrp) -{ - GElf_Ehdr ehdr; - GElf_Phdr *phdr; - Elf *elf; - size_t i, phnum; - - elf = elf_begin(kd->pmfd, ELF_C_READ, NULL); - if (elf == NULL) { - _kvm_err(kd, kd->program, "%s", elf_errmsg(0)); - return (-1); - } - if (elf_kind(elf) != ELF_K_ELF) { - _kvm_err(kd, kd->program, "invalid core"); - goto bad; - } - if (gelf_getclass(elf) != kd->nlehdr.e_ident[EI_CLASS]) { - _kvm_err(kd, kd->program, "invalid core"); - goto bad; - } - if (gelf_getehdr(elf, &ehdr) == NULL) { - _kvm_err(kd, kd->program, "%s", elf_errmsg(0)); - goto bad; - } - if (ehdr.e_type != ET_CORE) { - _kvm_err(kd, kd->program, "invalid core"); - goto bad; - } - if (ehdr.e_machine != kd->nlehdr.e_machine) { - _kvm_err(kd, kd->program, "invalid core"); - goto bad; - } - - if (elf_getphdrnum(elf, &phnum) == -1) { - _kvm_err(kd, kd->program, "%s", elf_errmsg(0)); - goto bad; - } - - phdr = calloc(phnum, sizeof(*phdr)); - if (phdr == NULL) { - _kvm_err(kd, kd->program, "failed to allocate phdrs"); - goto bad; - } - - for (i = 0; i < phnum; i++) { - if (gelf_getphdr(elf, i, &phdr[i]) == NULL) { - _kvm_err(kd, kd->program, "%s", elf_errmsg(0)); - goto bad; - } - } - elf_end(elf); - *phnump = phnum; - *phdrp = phdr; - return (0); - -bad: - elf_end(elf); - return (-1); -} - -static void -_kvm_hpt_insert(struct hpt *hpt, uint64_t pa, off_t off) -{ - struct hpte *hpte; - uint32_t fnv = FNV1_32_INIT; - - fnv = fnv_32_buf(&pa, sizeof(pa), fnv); - fnv &= (HPT_SIZE - 1); - hpte = malloc(sizeof(*hpte)); - hpte->pa = pa; - hpte->off = off; - hpte->next = hpt->hpt_head[fnv]; - hpt->hpt_head[fnv] = hpte; -} - -void -_kvm_hpt_init(kvm_t *kd, struct hpt *hpt, void *base, size_t len, off_t off, - int page_size, int word_size) -{ - uint64_t bits, idx, pa; - uint64_t *base64; - uint32_t *base32; - - base64 = base; - base32 = base; - for (idx = 0; idx < len / word_size; idx++) { - if (word_size == sizeof(uint64_t)) - bits = _kvm64toh(kd, base64[idx]); - else - bits = _kvm32toh(kd, base32[idx]); - pa = idx * word_size * NBBY * page_size; - for (; bits != 0; bits >>= 1, pa += page_size) { - if ((bits & 1) == 0) - continue; - _kvm_hpt_insert(hpt, pa, off); - off += page_size; - } - } -} - -off_t -_kvm_hpt_find(struct hpt *hpt, uint64_t pa) -{ - struct hpte *hpte; - uint32_t fnv = FNV1_32_INIT; - - fnv = fnv_32_buf(&pa, sizeof(pa), fnv); - fnv &= (HPT_SIZE - 1); - for (hpte = hpt->hpt_head[fnv]; hpte != NULL; hpte = hpte->next) { - if (pa == hpte->pa) - return (hpte->off); - } - return (-1); -} - -void -_kvm_hpt_free(struct hpt *hpt) -{ - struct hpte *hpte, *next; - int i; - - for (i = 0; i < HPT_SIZE; i++) { - for (hpte = hpt->hpt_head[i]; hpte != NULL; hpte = next) { - next = hpte->next; - free(hpte); - } - } -} - static kvm_t * _kvm_open(kvm_t *kd, const char *uf, const char *mf, int flag, char *errout) { @@ -550,207 +288,6 @@ kvm_close(kvm_t *kd) return (0); } -/* - * Walk the list of unresolved symbols, generate a new list and prefix the - * symbol names, try again, and merge back what we could resolve. - */ -static int -kvm_fdnlist_prefix(kvm_t *kd, struct kvm_nlist *nl, int missing, - const char *prefix, kvaddr_t (*validate_fn)(kvm_t *, kvaddr_t)) -{ - struct kvm_nlist *n, *np, *p; - char *cp, *ce; - const char *ccp; - size_t len; - int slen, unresolved; - - /* - * Calculate the space we need to malloc for nlist and names. - * We are going to store the name twice for later lookups: once - * with the prefix and once the unmodified name delmited by \0. - */ - len = 0; - unresolved = 0; - for (p = nl; p->n_name && p->n_name[0]; ++p) { - if (p->n_type != N_UNDF) - continue; - len += sizeof(struct kvm_nlist) + strlen(prefix) + - 2 * (strlen(p->n_name) + 1); - unresolved++; - } - if (unresolved == 0) - return (unresolved); - /* Add space for the terminating nlist entry. */ - len += sizeof(struct kvm_nlist); - unresolved++; - - /* Alloc one chunk for (nlist, [names]) and setup pointers. */ - n = np = malloc(len); - bzero(n, len); - if (n == NULL) - return (missing); - cp = ce = (char *)np; - cp += unresolved * sizeof(struct kvm_nlist); - ce += len; - - /* Generate shortened nlist with special prefix. */ - unresolved = 0; - for (p = nl; p->n_name && p->n_name[0]; ++p) { - if (p->n_type != N_UNDF) - continue; - *np = *p; - /* Save the new\0orig. name so we can later match it again. */ - slen = snprintf(cp, ce - cp, "%s%s%c%s", prefix, - (prefix[0] != '\0' && p->n_name[0] == '_') ? - (p->n_name + 1) : p->n_name, '\0', p->n_name); - if (slen < 0 || slen >= ce - cp) - continue; - np->n_name = cp; - cp += slen + 1; - np++; - unresolved++; - } - - /* Do lookup on the reduced list. */ - np = n; - unresolved = kvm_fdnlist(kd, np); - - /* Check if we could resolve further symbols and update the list. */ - if (unresolved >= 0 && unresolved < missing) { - /* Find the first freshly resolved entry. */ - for (; np->n_name && np->n_name[0]; np++) - if (np->n_type != N_UNDF) - break; - /* - * The lists are both in the same order, - * so we can walk them in parallel. - */ - for (p = nl; np->n_name && np->n_name[0] && - p->n_name && p->n_name[0]; ++p) { - if (p->n_type != N_UNDF) - continue; - /* Skip expanded name and compare to orig. one. */ - ccp = np->n_name + strlen(np->n_name) + 1; - if (strcmp(ccp, p->n_name) != 0) - continue; - /* Update nlist with new, translated results. */ - p->n_type = np->n_type; - if (validate_fn) - p->n_value = (*validate_fn)(kd, np->n_value); - else - p->n_value = np->n_value; - missing--; - /* Find next freshly resolved entry. */ - for (np++; np->n_name && np->n_name[0]; np++) - if (np->n_type != N_UNDF) - break; - } - } - /* We could assert missing = unresolved here. */ - - free(n); - return (unresolved); -} - -int -_kvm_nlist(kvm_t *kd, struct kvm_nlist *nl, int initialize) -{ - struct kvm_nlist *p; - int nvalid; - struct kld_sym_lookup lookup; - int error; - const char *prefix = ""; - char symname[1024]; /* XXX-BZ symbol name length limit? */ - int tried_vnet, tried_dpcpu; - - /* - * If we can't use the kld symbol lookup, revert to the - * slow library call. - */ - if (!ISALIVE(kd)) { - error = kvm_fdnlist(kd, nl); - if (error <= 0) /* Hard error or success. */ - return (error); - - if (_kvm_vnet_initialized(kd, initialize)) - error = kvm_fdnlist_prefix(kd, nl, error, - VNET_SYMPREFIX, _kvm_vnet_validaddr); - - if (error > 0 && _kvm_dpcpu_initialized(kd, initialize)) - error = kvm_fdnlist_prefix(kd, nl, error, - DPCPU_SYMPREFIX, _kvm_dpcpu_validaddr); - - return (error); - } - - /* - * We can use the kld lookup syscall. Go through each nlist entry - * and look it up with a kldsym(2) syscall. - */ - nvalid = 0; - tried_vnet = 0; - tried_dpcpu = 0; -again: - for (p = nl; p->n_name && p->n_name[0]; ++p) { - if (p->n_type != N_UNDF) - continue; - - lookup.version = sizeof(lookup); - lookup.symvalue = 0; - lookup.symsize = 0; - - error = snprintf(symname, sizeof(symname), "%s%s", prefix, - (prefix[0] != '\0' && p->n_name[0] == '_') ? - (p->n_name + 1) : p->n_name); - if (error < 0 || error >= (int)sizeof(symname)) - continue; - lookup.symname = symname; - if (lookup.symname[0] == '_') - lookup.symname++; - - if (kldsym(0, KLDSYM_LOOKUP, &lookup) != -1) { - p->n_type = N_TEXT; - if (_kvm_vnet_initialized(kd, initialize) && - strcmp(prefix, VNET_SYMPREFIX) == 0) - p->n_value = - _kvm_vnet_validaddr(kd, lookup.symvalue); - else if (_kvm_dpcpu_initialized(kd, initialize) && - strcmp(prefix, DPCPU_SYMPREFIX) == 0) - p->n_value = - _kvm_dpcpu_validaddr(kd, lookup.symvalue); - else - p->n_value = lookup.symvalue; - ++nvalid; - /* lookup.symsize */ - } - } - - /* - * Check the number of entries that weren't found. If they exist, - * try again with a prefix for virtualized or DPCPU symbol names. - */ - error = ((p - nl) - nvalid); - if (error && _kvm_vnet_initialized(kd, initialize) && !tried_vnet) { - tried_vnet = 1; - prefix = VNET_SYMPREFIX; - goto again; - } - if (error && _kvm_dpcpu_initialized(kd, initialize) && !tried_dpcpu) { - tried_dpcpu = 1; - prefix = DPCPU_SYMPREFIX; - goto again; - } - - /* - * Return the number of entries that weren't found. If they exist, - * also fill internal error buffer. - */ - error = ((p - nl) - nvalid); - if (error) - _kvm_syserr(kd, kd->program, "kvm_nlist"); - return (error); -} - int kvm_nlist2(kvm_t *kd, struct kvm_nlist *nl) { Added: head/lib/libkvm/kvm_private.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libkvm/kvm_private.c Mon Jul 18 01:02:52 2016 (r302974) @@ -0,0 +1,525 @@ +/*- + * Copyright (c) 1989, 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software developed by the Computer Systems + * Engineering group at Lawrence Berkeley Laboratory under DARPA contract + * BG 91-66 and contributed to Berkeley. + * + * 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. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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 + +#define _WANT_VNET + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "kvm_private.h" + +/* + * Routines private to libkvm. + */ + +/* from src/lib/libc/gen/nlist.c */ +int __fdnlist(int, struct nlist *); + +/* + * Report an error using printf style arguments. "program" is kd->program + * on hard errors, and 0 on soft errors, so that under sun error emulation, + * only hard errors are printed out (otherwise, programs like gdb will + * generate tons of error messages when trying to access bogus pointers). + */ +void +_kvm_err(kvm_t *kd, const char *program, const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + if (program != NULL) { + (void)fprintf(stderr, "%s: ", program); + (void)vfprintf(stderr, fmt, ap); + (void)fputc('\n', stderr); + } else + (void)vsnprintf(kd->errbuf, + sizeof(kd->errbuf), fmt, ap); + + va_end(ap); +} + +void +_kvm_syserr(kvm_t *kd, const char *program, const char *fmt, ...) +{ + va_list ap; + int n; + + va_start(ap, fmt); + if (program != NULL) { + (void)fprintf(stderr, "%s: ", program); + (void)vfprintf(stderr, fmt, ap); + (void)fprintf(stderr, ": %s\n", strerror(errno)); + } else { + char *cp = kd->errbuf; + + (void)vsnprintf(cp, sizeof(kd->errbuf), fmt, ap); + n = strlen(cp); + (void)snprintf(&cp[n], sizeof(kd->errbuf) - n, ": %s", + strerror(errno)); + } + va_end(ap); +} + +void * +_kvm_malloc(kvm_t *kd, size_t n) +{ + void *p; + + if ((p = calloc(n, sizeof(char))) == NULL) + _kvm_err(kd, kd->program, "can't allocate %zu bytes: %s", + n, strerror(errno)); + return (p); +} + +int +_kvm_probe_elf_kernel(kvm_t *kd, int class, int machine) +{ + + return (kd->nlehdr.e_ident[EI_CLASS] == class && + kd->nlehdr.e_type == ET_EXEC && + kd->nlehdr.e_machine == machine); +} + +int +_kvm_is_minidump(kvm_t *kd) +{ + char minihdr[8]; + + if (kd->rawdump) + return (0); + if (pread(kd->pmfd, &minihdr, 8, 0) == 8 && + memcmp(&minihdr, "minidump", 8) == 0) + return (1); + return (0); +} + +/* + * The powerpc backend has a hack to strip a leading kerneldump + * header from the core before treating it as an ELF header. + * + * We can add that here if we can get a change to libelf to support + * an initial offset into the file. Alternatively we could patch + * savecore to extract cores from a regular file instead. + */ +int +_kvm_read_core_phdrs(kvm_t *kd, size_t *phnump, GElf_Phdr **phdrp) +{ + GElf_Ehdr ehdr; + GElf_Phdr *phdr; + Elf *elf; + size_t i, phnum; + + elf = elf_begin(kd->pmfd, ELF_C_READ, NULL); + if (elf == NULL) { + _kvm_err(kd, kd->program, "%s", elf_errmsg(0)); + return (-1); + } + if (elf_kind(elf) != ELF_K_ELF) { + _kvm_err(kd, kd->program, "invalid core"); + goto bad; + } + if (gelf_getclass(elf) != kd->nlehdr.e_ident[EI_CLASS]) { + _kvm_err(kd, kd->program, "invalid core"); + goto bad; + } + if (gelf_getehdr(elf, &ehdr) == NULL) { + _kvm_err(kd, kd->program, "%s", elf_errmsg(0)); + goto bad; + } + if (ehdr.e_type != ET_CORE) { + _kvm_err(kd, kd->program, "invalid core"); + goto bad; + } + if (ehdr.e_machine != kd->nlehdr.e_machine) { + _kvm_err(kd, kd->program, "invalid core"); + goto bad; + } + + if (elf_getphdrnum(elf, &phnum) == -1) { + _kvm_err(kd, kd->program, "%s", elf_errmsg(0)); + goto bad; + } + + phdr = calloc(phnum, sizeof(*phdr)); + if (phdr == NULL) { + _kvm_err(kd, kd->program, "failed to allocate phdrs"); + goto bad; + } + + for (i = 0; i < phnum; i++) { + if (gelf_getphdr(elf, i, &phdr[i]) == NULL) { + _kvm_err(kd, kd->program, "%s", elf_errmsg(0)); + goto bad; + } + } + elf_end(elf); + *phnump = phnum; + *phdrp = phdr; + return (0); + +bad: + elf_end(elf); + return (-1); +} + +static void +_kvm_hpt_insert(struct hpt *hpt, uint64_t pa, off_t off) +{ + struct hpte *hpte; + uint32_t fnv = FNV1_32_INIT; + + fnv = fnv_32_buf(&pa, sizeof(pa), fnv); + fnv &= (HPT_SIZE - 1); + hpte = malloc(sizeof(*hpte)); + hpte->pa = pa; + hpte->off = off; + hpte->next = hpt->hpt_head[fnv]; + hpt->hpt_head[fnv] = hpte; +} + +void +_kvm_hpt_init(kvm_t *kd, struct hpt *hpt, void *base, size_t len, off_t off, + int page_size, int word_size) +{ + uint64_t bits, idx, pa; + uint64_t *base64; + uint32_t *base32; + + base64 = base; + base32 = base; + for (idx = 0; idx < len / word_size; idx++) { + if (word_size == sizeof(uint64_t)) + bits = _kvm64toh(kd, base64[idx]); + else + bits = _kvm32toh(kd, base32[idx]); + pa = idx * word_size * NBBY * page_size; + for (; bits != 0; bits >>= 1, pa += page_size) { + if ((bits & 1) == 0) + continue; + _kvm_hpt_insert(hpt, pa, off); + off += page_size; + } + } +} + +off_t +_kvm_hpt_find(struct hpt *hpt, uint64_t pa) +{ + struct hpte *hpte; + uint32_t fnv = FNV1_32_INIT; + + fnv = fnv_32_buf(&pa, sizeof(pa), fnv); + fnv &= (HPT_SIZE - 1); + for (hpte = hpt->hpt_head[fnv]; hpte != NULL; hpte = hpte->next) { + if (pa == hpte->pa) + return (hpte->off); + } + return (-1); +} + +void +_kvm_hpt_free(struct hpt *hpt) +{ + struct hpte *hpte, *next; + int i; + + for (i = 0; i < HPT_SIZE; i++) { + for (hpte = hpt->hpt_head[i]; hpte != NULL; hpte = next) { + next = hpte->next; + free(hpte); + } + } +} + +static int +kvm_fdnlist(kvm_t *kd, struct kvm_nlist *list) +{ + kvaddr_t addr; + int error, nfail; + + if (kd->resolve_symbol == NULL) { + struct nlist *nl; + int count, i; + + for (count = 0; list[count].n_name != NULL && + list[count].n_name[0] != '\0'; count++) + ; + nl = calloc(count + 1, sizeof(*nl)); + for (i = 0; i < count; i++) + nl[i].n_name = list[i].n_name; + nfail = __fdnlist(kd->nlfd, nl); + for (i = 0; i < count; i++) { + list[i].n_type = nl[i].n_type; + list[i].n_value = nl[i].n_value; + } + free(nl); + return (nfail); + } + + nfail = 0; + while (list->n_name != NULL && list->n_name[0] != '\0') { + error = kd->resolve_symbol(list->n_name, &addr); + if (error != 0) { + nfail++; + list->n_value = 0; + list->n_type = 0; + } else { + list->n_value = addr; + list->n_type = N_DATA | N_EXT; + } + list++; + } + return (nfail); +} + +/* + * Walk the list of unresolved symbols, generate a new list and prefix the + * symbol names, try again, and merge back what we could resolve. + */ +static int +kvm_fdnlist_prefix(kvm_t *kd, struct kvm_nlist *nl, int missing, + const char *prefix, kvaddr_t (*validate_fn)(kvm_t *, kvaddr_t)) +{ + struct kvm_nlist *n, *np, *p; + char *cp, *ce; + const char *ccp; + size_t len; + int slen, unresolved; + + /* + * Calculate the space we need to malloc for nlist and names. + * We are going to store the name twice for later lookups: once + * with the prefix and once the unmodified name delmited by \0. + */ + len = 0; + unresolved = 0; + for (p = nl; p->n_name && p->n_name[0]; ++p) { + if (p->n_type != N_UNDF) + continue; + len += sizeof(struct kvm_nlist) + strlen(prefix) + + 2 * (strlen(p->n_name) + 1); + unresolved++; + } + if (unresolved == 0) + return (unresolved); + /* Add space for the terminating nlist entry. */ + len += sizeof(struct kvm_nlist); + unresolved++; + + /* Alloc one chunk for (nlist, [names]) and setup pointers. */ + n = np = malloc(len); + bzero(n, len); + if (n == NULL) + return (missing); + cp = ce = (char *)np; + cp += unresolved * sizeof(struct kvm_nlist); + ce += len; + + /* Generate shortened nlist with special prefix. */ + unresolved = 0; + for (p = nl; p->n_name && p->n_name[0]; ++p) { + if (p->n_type != N_UNDF) + continue; + *np = *p; + /* Save the new\0orig. name so we can later match it again. */ + slen = snprintf(cp, ce - cp, "%s%s%c%s", prefix, + (prefix[0] != '\0' && p->n_name[0] == '_') ? + (p->n_name + 1) : p->n_name, '\0', p->n_name); + if (slen < 0 || slen >= ce - cp) + continue; + np->n_name = cp; + cp += slen + 1; + np++; + unresolved++; + } + + /* Do lookup on the reduced list. */ + np = n; + unresolved = kvm_fdnlist(kd, np); + + /* Check if we could resolve further symbols and update the list. */ + if (unresolved >= 0 && unresolved < missing) { + /* Find the first freshly resolved entry. */ + for (; np->n_name && np->n_name[0]; np++) + if (np->n_type != N_UNDF) + break; + /* + * The lists are both in the same order, + * so we can walk them in parallel. + */ + for (p = nl; np->n_name && np->n_name[0] && + p->n_name && p->n_name[0]; ++p) { + if (p->n_type != N_UNDF) + continue; + /* Skip expanded name and compare to orig. one. */ + ccp = np->n_name + strlen(np->n_name) + 1; + if (strcmp(ccp, p->n_name) != 0) + continue; + /* Update nlist with new, translated results. */ + p->n_type = np->n_type; + if (validate_fn) + p->n_value = (*validate_fn)(kd, np->n_value); + else + p->n_value = np->n_value; + missing--; + /* Find next freshly resolved entry. */ + for (np++; np->n_name && np->n_name[0]; np++) + if (np->n_type != N_UNDF) + break; + } + } + /* We could assert missing = unresolved here. */ + + free(n); + return (unresolved); +} + +int +_kvm_nlist(kvm_t *kd, struct kvm_nlist *nl, int initialize) +{ + struct kvm_nlist *p; + int nvalid; + struct kld_sym_lookup lookup; + int error; + const char *prefix = ""; + char symname[1024]; /* XXX-BZ symbol name length limit? */ + int tried_vnet, tried_dpcpu; + + /* + * If we can't use the kld symbol lookup, revert to the + * slow library call. + */ + if (!ISALIVE(kd)) { + error = kvm_fdnlist(kd, nl); + if (error <= 0) /* Hard error or success. */ + return (error); + + if (_kvm_vnet_initialized(kd, initialize)) + error = kvm_fdnlist_prefix(kd, nl, error, + VNET_SYMPREFIX, _kvm_vnet_validaddr); + + if (error > 0 && _kvm_dpcpu_initialized(kd, initialize)) + error = kvm_fdnlist_prefix(kd, nl, error, + DPCPU_SYMPREFIX, _kvm_dpcpu_validaddr); + + return (error); + } + + /* + * We can use the kld lookup syscall. Go through each nlist entry + * and look it up with a kldsym(2) syscall. + */ + nvalid = 0; + tried_vnet = 0; + tried_dpcpu = 0; +again: + for (p = nl; p->n_name && p->n_name[0]; ++p) { + if (p->n_type != N_UNDF) + continue; + + lookup.version = sizeof(lookup); + lookup.symvalue = 0; + lookup.symsize = 0; + + error = snprintf(symname, sizeof(symname), "%s%s", prefix, + (prefix[0] != '\0' && p->n_name[0] == '_') ? + (p->n_name + 1) : p->n_name); + if (error < 0 || error >= (int)sizeof(symname)) + continue; + lookup.symname = symname; + if (lookup.symname[0] == '_') + lookup.symname++; + + if (kldsym(0, KLDSYM_LOOKUP, &lookup) != -1) { + p->n_type = N_TEXT; + if (_kvm_vnet_initialized(kd, initialize) && + strcmp(prefix, VNET_SYMPREFIX) == 0) + p->n_value = + _kvm_vnet_validaddr(kd, lookup.symvalue); + else if (_kvm_dpcpu_initialized(kd, initialize) && + strcmp(prefix, DPCPU_SYMPREFIX) == 0) + p->n_value = + _kvm_dpcpu_validaddr(kd, lookup.symvalue); + else *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Jul 18 01:03:41 2016 Return-Path: Delivered-To: svn-src-all@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 02CAFB9CFC5; Mon, 18 Jul 2016 01:03:41 +0000 (UTC) (envelope-from will@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 AE85B175C; Mon, 18 Jul 2016 01:03:40 +0000 (UTC) (envelope-from will@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I13dMX077913; Mon, 18 Jul 2016 01:03:39 GMT (envelope-from will@FreeBSD.org) Received: (from will@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I13dPR077910; Mon, 18 Jul 2016 01:03:39 GMT (envelope-from will@FreeBSD.org) Message-Id: <201607180103.u6I13dPR077910@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: will set sender to will@FreeBSD.org using -f From: Will Andrews Date: Mon, 18 Jul 2016 01:03:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302975 - head/lib/libkvm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 01:03:41 -0000 Author: will Date: Mon Jul 18 01:03:39 2016 New Revision: 302975 URL: https://svnweb.freebsd.org/changeset/base/302975 Log: libkvm: Bounds check (more) PTE indices. Modified: head/lib/libkvm/kvm_minidump_arm.c head/lib/libkvm/kvm_minidump_i386.c head/lib/libkvm/kvm_minidump_mips.c Modified: head/lib/libkvm/kvm_minidump_arm.c ============================================================================== --- head/lib/libkvm/kvm_minidump_arm.c Mon Jul 18 01:02:52 2016 (r302974) +++ head/lib/libkvm/kvm_minidump_arm.c Mon Jul 18 01:03:39 2016 (r302975) @@ -184,6 +184,8 @@ _arm_minidump_kvatop(kvm_t *kd, kvaddr_t if (va >= vm->hdr.kernbase) { pteindex = (va - vm->hdr.kernbase) >> ARM_PAGE_SHIFT; + if (pteindex >= vm->hdr.ptesize / sizeof(*ptemap)) + goto invalid; pte = _kvm32toh(kd, ptemap[pteindex]); if ((pte & ARM_L2_TYPE_MASK) == ARM_L2_TYPE_INV) { _kvm_err(kd, kd->program, Modified: head/lib/libkvm/kvm_minidump_i386.c ============================================================================== --- head/lib/libkvm/kvm_minidump_i386.c Mon Jul 18 01:02:52 2016 (r302974) +++ head/lib/libkvm/kvm_minidump_i386.c Mon Jul 18 01:03:39 2016 (r302975) @@ -162,6 +162,8 @@ _i386_minidump_vatop_pae(kvm_t *kd, kvad if (va >= vm->hdr.kernbase) { pteindex = (va - vm->hdr.kernbase) >> I386_PAGE_SHIFT; + if (pteindex >= vm->hdr.ptesize / sizeof(*ptemap)) + goto invalid; pte = le64toh(ptemap[pteindex]); if ((pte & I386_PG_V) == 0) { _kvm_err(kd, kd->program, @@ -207,6 +209,8 @@ _i386_minidump_vatop(kvm_t *kd, kvaddr_t if (va >= vm->hdr.kernbase) { pteindex = (va - vm->hdr.kernbase) >> I386_PAGE_SHIFT; + if (pteindex >= vm->hdr.ptesize / sizeof(*ptemap)) + goto invalid; pte = le32toh(ptemap[pteindex]); if ((pte & I386_PG_V) == 0) { _kvm_err(kd, kd->program, Modified: head/lib/libkvm/kvm_minidump_mips.c ============================================================================== --- head/lib/libkvm/kvm_minidump_mips.c Mon Jul 18 01:02:52 2016 (r302974) +++ head/lib/libkvm/kvm_minidump_mips.c Mon Jul 18 01:03:39 2016 (r302975) @@ -221,9 +221,13 @@ _mips_minidump_kvatop(kvm_t *kd, kvaddr_ if (va >= vm->hdr.kernbase) { pteindex = (va - vm->hdr.kernbase) >> MIPS_PAGE_SHIFT; if (vm->pte_size == 64) { + if (pteindex >= vm->hdr.ptesize / sizeof(*ptemap64)) + goto invalid; pte = _kvm64toh(kd, ptemap64[pteindex]); a = MIPS64_PTE_TO_PA(pte); } else { + if (pteindex >= vm->hdr.ptesize / sizeof(*ptemap32)) + goto invalid; pte = _kvm32toh(kd, ptemap32[pteindex]); a = MIPS32_PTE_TO_PA(pte); } From owner-svn-src-all@freebsd.org Mon Jul 18 01:55:27 2016 Return-Path: Delivered-To: svn-src-all@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 C8EA2B9ABAC; Mon, 18 Jul 2016 01:55:27 +0000 (UTC) (envelope-from will@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 96BDA1AD2; Mon, 18 Jul 2016 01:55:27 +0000 (UTC) (envelope-from will@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I1tQqV096042; Mon, 18 Jul 2016 01:55:26 GMT (envelope-from will@FreeBSD.org) Received: (from will@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I1tQZM096034; Mon, 18 Jul 2016 01:55:26 GMT (envelope-from will@FreeBSD.org) Message-Id: <201607180155.u6I1tQZM096034@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: will set sender to will@FreeBSD.org using -f From: Will Andrews Date: Mon, 18 Jul 2016 01:55:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302976 - head/lib/libkvm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 01:55:27 -0000 Author: will Date: Mon Jul 18 01:55:25 2016 New Revision: 302976 URL: https://svnweb.freebsd.org/changeset/base/302976 Log: libkvm: Improve physical address lookup scaling. Instead of using a hash table to convert physical page addresses to offsets in the sparse page array, cache the number of bits set for each 4MB chunk of physical pages. Upon lookup, find the nearest cached population count, then add/subtract the number of bits from that point to the page's PTE bit. Then multiply by page size and add to the sparse page map's base offset. This replaces O(n) worst-case lookup with O(1) (plus a small number of bits to scan in the bitmap). Also, for a 128GB system, a typical kernel core of about 8GB will now only require ~4.5MB of RAM for this approach instead of ~48MB as with the hash table. More concretely, /usr/sbin/crashinfo against the same core improves from a max RSS of 188MB and wall time of 43.72s (33.25 user 2.94 sys) to 135MB and 9.43s (2.58 user 1.47 sys). Running "thread apply all bt" in kgdb has a similar RSS improvement, and wall time drops from 4.44s to 1.93s. Reviewed by: jhb Sponsored by: Backtrace I/O Modified: head/lib/libkvm/kvm.c head/lib/libkvm/kvm_minidump_aarch64.c head/lib/libkvm/kvm_minidump_amd64.c head/lib/libkvm/kvm_minidump_arm.c head/lib/libkvm/kvm_minidump_i386.c head/lib/libkvm/kvm_minidump_mips.c head/lib/libkvm/kvm_private.c head/lib/libkvm/kvm_private.h Modified: head/lib/libkvm/kvm.c ============================================================================== --- head/lib/libkvm/kvm.c Mon Jul 18 01:03:39 2016 (r302975) +++ head/lib/libkvm/kvm.c Mon Jul 18 01:55:25 2016 (r302976) @@ -283,6 +283,8 @@ kvm_close(kvm_t *kd) free((void *) kd->argspc); if (kd->argv != 0) free((void *)kd->argv); + if (kd->pt_map != NULL) + free(kd->pt_map); free((void *)kd); return (0); Modified: head/lib/libkvm/kvm_minidump_aarch64.c ============================================================================== --- head/lib/libkvm/kvm_minidump_aarch64.c Mon Jul 18 01:03:39 2016 (r302975) +++ head/lib/libkvm/kvm_minidump_aarch64.c Mon Jul 18 01:55:25 2016 (r302976) @@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$"); struct vmstate { struct minidumphdr hdr; - struct hpt hpt; uint64_t *page_map; }; @@ -67,7 +66,6 @@ _aarch64_minidump_freevtop(kvm_t *kd) { struct vmstate *vm = kd->vmst; - _kvm_hpt_free(&vm->hpt); free(vm->page_map); free(vm); kd->vmst = NULL; @@ -77,8 +75,7 @@ static int _aarch64_minidump_initvtop(kvm_t *kd) { struct vmstate *vmst; - uint64_t *bitmap; - off_t off; + off_t off, sparse_off; vmst = _kvm_malloc(kd, sizeof(*vmst)); if (vmst == NULL) { @@ -114,19 +111,12 @@ _aarch64_minidump_initvtop(kvm_t *kd) /* Skip header and msgbuf */ off = AARCH64_PAGE_SIZE + aarch64_round_page(vmst->hdr.msgbufsize); - bitmap = _kvm_malloc(kd, vmst->hdr.bitmapsize); - if (bitmap == NULL) { - _kvm_err(kd, kd->program, - "cannot allocate %d bytes for bitmap", - vmst->hdr.bitmapsize); - return (-1); - } - if (pread(kd->pmfd, bitmap, vmst->hdr.bitmapsize, off) != - (ssize_t)vmst->hdr.bitmapsize) { - _kvm_err(kd, kd->program, - "cannot read %d bytes for page bitmap", - vmst->hdr.bitmapsize); - free(bitmap); + /* build physical address lookup table for sparse pages */ + sparse_off = off + aarch64_round_page(vmst->hdr.bitmapsize) + + aarch64_round_page(vmst->hdr.pmapsize); + if (_kvm_pt_init(kd, vmst->hdr.bitmapsize, off, sparse_off, + AARCH64_PAGE_SIZE, sizeof(uint64_t)) == -1) { + _kvm_err(kd, kd->program, "cannot load core bitmap"); return (-1); } off += aarch64_round_page(vmst->hdr.bitmapsize); @@ -136,7 +126,6 @@ _aarch64_minidump_initvtop(kvm_t *kd) _kvm_err(kd, kd->program, "cannot allocate %d bytes for page_map", vmst->hdr.pmapsize); - free(bitmap); return (-1); } /* This is the end of the dump, savecore may have truncated it. */ @@ -149,15 +138,9 @@ _aarch64_minidump_initvtop(kvm_t *kd) AARCH64_PAGE_SIZE) { _kvm_err(kd, kd->program, "cannot read %d bytes for page_map", vmst->hdr.pmapsize); - free(bitmap); return (-1); } - off += vmst->hdr.pmapsize; - - /* build physical address hash table for sparse pages */ - _kvm_hpt_init(kd, &vmst->hpt, bitmap, vmst->hdr.bitmapsize, off, - AARCH64_PAGE_SIZE, sizeof(*bitmap)); - free(bitmap); + off += aarch64_round_page(vmst->hdr.pmapsize); return (0); } @@ -178,7 +161,7 @@ _aarch64_minidump_vatop(kvm_t *kd, kvadd if (va >= vm->hdr.dmapbase && va < vm->hdr.dmapend) { a = (va - vm->hdr.dmapbase + vm->hdr.dmapphys) & ~AARCH64_PAGE_MASK; - ofs = _kvm_hpt_find(&vm->hpt, a); + ofs = _kvm_pt_find(kd, a); if (ofs == -1) { _kvm_err(kd, kd->program, "_aarch64_minidump_vatop: " "direct map address 0x%jx not in minidump", @@ -198,7 +181,7 @@ _aarch64_minidump_vatop(kvm_t *kd, kvadd goto invalid; } a = l3 & ~AARCH64_ATTR_MASK; - ofs = _kvm_hpt_find(&vm->hpt, a); + ofs = _kvm_pt_find(kd, a); if (ofs == -1) { _kvm_err(kd, kd->program, "_aarch64_minidump_vatop: " "physical address 0x%jx not in minidump", Modified: head/lib/libkvm/kvm_minidump_amd64.c ============================================================================== --- head/lib/libkvm/kvm_minidump_amd64.c Mon Jul 18 01:03:39 2016 (r302975) +++ head/lib/libkvm/kvm_minidump_amd64.c Mon Jul 18 01:55:25 2016 (r302976) @@ -49,7 +49,6 @@ __FBSDID("$FreeBSD$"); struct vmstate { struct minidumphdr hdr; - struct hpt hpt; amd64_pte_t *page_map; }; @@ -66,9 +65,7 @@ _amd64_minidump_freevtop(kvm_t *kd) { struct vmstate *vm = kd->vmst; - _kvm_hpt_free(&vm->hpt); - if (vm->page_map) - free(vm->page_map); + free(vm->page_map); free(vm); kd->vmst = NULL; } @@ -77,8 +74,7 @@ static int _amd64_minidump_initvtop(kvm_t *kd) { struct vmstate *vmst; - uint64_t *bitmap; - off_t off; + off_t off, sparse_off; vmst = _kvm_malloc(kd, sizeof(*vmst)); if (vmst == NULL) { @@ -116,37 +112,28 @@ _amd64_minidump_initvtop(kvm_t *kd) /* Skip header and msgbuf */ off = AMD64_PAGE_SIZE + amd64_round_page(vmst->hdr.msgbufsize); - bitmap = _kvm_malloc(kd, vmst->hdr.bitmapsize); - if (bitmap == NULL) { - _kvm_err(kd, kd->program, "cannot allocate %d bytes for bitmap", vmst->hdr.bitmapsize); - return (-1); - } - if (pread(kd->pmfd, bitmap, vmst->hdr.bitmapsize, off) != - (ssize_t)vmst->hdr.bitmapsize) { - _kvm_err(kd, kd->program, "cannot read %d bytes for page bitmap", vmst->hdr.bitmapsize); - free(bitmap); + sparse_off = off + amd64_round_page(vmst->hdr.bitmapsize) + + amd64_round_page(vmst->hdr.pmapsize); + if (_kvm_pt_init(kd, vmst->hdr.bitmapsize, off, sparse_off, + AMD64_PAGE_SIZE, sizeof(uint64_t)) == -1) { + _kvm_err(kd, kd->program, "cannot load core bitmap"); return (-1); } off += amd64_round_page(vmst->hdr.bitmapsize); vmst->page_map = _kvm_malloc(kd, vmst->hdr.pmapsize); if (vmst->page_map == NULL) { - _kvm_err(kd, kd->program, "cannot allocate %d bytes for page_map", vmst->hdr.pmapsize); - free(bitmap); + _kvm_err(kd, kd->program, "cannot allocate %d bytes for page_map", + vmst->hdr.pmapsize); return (-1); } if (pread(kd->pmfd, vmst->page_map, vmst->hdr.pmapsize, off) != (ssize_t)vmst->hdr.pmapsize) { - _kvm_err(kd, kd->program, "cannot read %d bytes for page_map", vmst->hdr.pmapsize); - free(bitmap); + _kvm_err(kd, kd->program, "cannot read %d bytes for page_map", + vmst->hdr.pmapsize); return (-1); } - off += vmst->hdr.pmapsize; - - /* build physical address hash table for sparse pages */ - _kvm_hpt_init(kd, &vmst->hpt, bitmap, vmst->hdr.bitmapsize, off, - AMD64_PAGE_SIZE, sizeof(*bitmap)); - free(bitmap); + off += amd64_round_page(vmst->hdr.pmapsize); return (0); } @@ -175,7 +162,7 @@ _amd64_minidump_vatop_v1(kvm_t *kd, kvad goto invalid; } a = pte & AMD64_PG_FRAME; - ofs = _kvm_hpt_find(&vm->hpt, a); + ofs = _kvm_pt_find(kd, a); if (ofs == -1) { _kvm_err(kd, kd->program, "_amd64_minidump_vatop_v1: physical address 0x%jx not in minidump", @@ -186,7 +173,7 @@ _amd64_minidump_vatop_v1(kvm_t *kd, kvad return (AMD64_PAGE_SIZE - offset); } else if (va >= vm->hdr.dmapbase && va < vm->hdr.dmapend) { a = (va - vm->hdr.dmapbase) & ~AMD64_PAGE_MASK; - ofs = _kvm_hpt_find(&vm->hpt, a); + ofs = _kvm_pt_find(kd, a); if (ofs == -1) { _kvm_err(kd, kd->program, "_amd64_minidump_vatop_v1: direct map address 0x%jx not in minidump", @@ -235,20 +222,20 @@ _amd64_minidump_vatop(kvm_t *kd, kvaddr_ } if ((pde & AMD64_PG_PS) == 0) { a = pde & AMD64_PG_FRAME; - ofs = _kvm_hpt_find(&vm->hpt, a); + /* TODO: Just read the single PTE */ + ofs = _kvm_pt_find(kd, a); if (ofs == -1) { _kvm_err(kd, kd->program, - "_amd64_minidump_vatop: pt physical address 0x%jx not in minidump", + "cannot find page table entry for %ju", (uintmax_t)a); goto invalid; } - /* TODO: Just read the single PTE */ if (pread(kd->pmfd, &pt, AMD64_PAGE_SIZE, ofs) != AMD64_PAGE_SIZE) { _kvm_err(kd, kd->program, - "cannot read %d bytes for page table", - AMD64_PAGE_SIZE); - return (-1); + "cannot read page table entry for %ju", + (uintmax_t)a); + goto invalid; } pteindex = (va >> AMD64_PAGE_SHIFT) & (AMD64_NPTEPG - 1); @@ -263,7 +250,7 @@ _amd64_minidump_vatop(kvm_t *kd, kvaddr_ a = pde & AMD64_PG_PS_FRAME; a += (va & AMD64_PDRMASK) ^ offset; } - ofs = _kvm_hpt_find(&vm->hpt, a); + ofs = _kvm_pt_find(kd, a); if (ofs == -1) { _kvm_err(kd, kd->program, "_amd64_minidump_vatop: physical address 0x%jx not in minidump", @@ -274,7 +261,7 @@ _amd64_minidump_vatop(kvm_t *kd, kvaddr_ return (AMD64_PAGE_SIZE - offset); } else if (va >= vm->hdr.dmapbase && va < vm->hdr.dmapend) { a = (va - vm->hdr.dmapbase) & ~AMD64_PAGE_MASK; - ofs = _kvm_hpt_find(&vm->hpt, a); + ofs = _kvm_pt_find(kd, a); if (ofs == -1) { _kvm_err(kd, kd->program, "_amd64_minidump_vatop: direct map address 0x%jx not in minidump", Modified: head/lib/libkvm/kvm_minidump_arm.c ============================================================================== --- head/lib/libkvm/kvm_minidump_arm.c Mon Jul 18 01:03:39 2016 (r302975) +++ head/lib/libkvm/kvm_minidump_arm.c Mon Jul 18 01:55:25 2016 (r302976) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); struct vmstate { struct minidumphdr hdr; - struct hpt hpt; void *ptemap; unsigned char ei_data; }; @@ -69,9 +68,7 @@ _arm_minidump_freevtop(kvm_t *kd) { struct vmstate *vm = kd->vmst; - _kvm_hpt_free(&vm->hpt); - if (vm->ptemap) - free(vm->ptemap); + free(vm->ptemap); free(vm); kd->vmst = NULL; } @@ -80,8 +77,7 @@ static int _arm_minidump_initvtop(kvm_t *kd) { struct vmstate *vmst; - uint32_t *bitmap; - off_t off; + off_t off, sparse_off; vmst = _kvm_malloc(kd, sizeof(*vmst)); if (vmst == NULL) { @@ -122,18 +118,11 @@ _arm_minidump_initvtop(kvm_t *kd) /* Skip header and msgbuf */ off = ARM_PAGE_SIZE + arm_round_page(vmst->hdr.msgbufsize); - bitmap = _kvm_malloc(kd, vmst->hdr.bitmapsize); - if (bitmap == NULL) { - _kvm_err(kd, kd->program, "cannot allocate %d bytes for " - "bitmap", vmst->hdr.bitmapsize); - return (-1); - } - - if (pread(kd->pmfd, bitmap, vmst->hdr.bitmapsize, off) != - (ssize_t)vmst->hdr.bitmapsize) { - _kvm_err(kd, kd->program, "cannot read %d bytes for page bitmap", - vmst->hdr.bitmapsize); - free(bitmap); + sparse_off = off + arm_round_page(vmst->hdr.bitmapsize) + + arm_round_page(vmst->hdr.ptesize); + if (_kvm_pt_init(kd, vmst->hdr.bitmapsize, off, sparse_off, + ARM_PAGE_SIZE, sizeof(uint32_t)) == -1) { + _kvm_err(kd, kd->program, "cannot load core bitmap"); return (-1); } off += arm_round_page(vmst->hdr.bitmapsize); @@ -142,7 +131,6 @@ _arm_minidump_initvtop(kvm_t *kd) if (vmst->ptemap == NULL) { _kvm_err(kd, kd->program, "cannot allocate %d bytes for " "ptemap", vmst->hdr.ptesize); - free(bitmap); return (-1); } @@ -150,16 +138,9 @@ _arm_minidump_initvtop(kvm_t *kd) (ssize_t)vmst->hdr.ptesize) { _kvm_err(kd, kd->program, "cannot read %d bytes for ptemap", vmst->hdr.ptesize); - free(bitmap); return (-1); } - - off += vmst->hdr.ptesize; - - /* Build physical address hash table for sparse pages */ - _kvm_hpt_init(kd, &vmst->hpt, bitmap, vmst->hdr.bitmapsize, off, - ARM_PAGE_SIZE, sizeof(*bitmap)); - free(bitmap); + off += arm_round_page(vmst->hdr.ptesize); return (0); } @@ -209,7 +190,7 @@ _arm_minidump_kvatop(kvm_t *kd, kvaddr_t a = pte & ARM_L2_S_FRAME; } - ofs = _kvm_hpt_find(&vm->hpt, a); + ofs = _kvm_pt_find(kd, a); if (ofs == -1) { _kvm_err(kd, kd->program, "_arm_minidump_kvatop: " "physical address 0x%jx not in minidump", Modified: head/lib/libkvm/kvm_minidump_i386.c ============================================================================== --- head/lib/libkvm/kvm_minidump_i386.c Mon Jul 18 01:03:39 2016 (r302975) +++ head/lib/libkvm/kvm_minidump_i386.c Mon Jul 18 01:55:25 2016 (r302976) @@ -49,7 +49,6 @@ __FBSDID("$FreeBSD$"); struct vmstate { struct minidumphdr hdr; - struct hpt hpt; void *ptemap; }; @@ -66,9 +65,7 @@ _i386_minidump_freevtop(kvm_t *kd) { struct vmstate *vm = kd->vmst; - _kvm_hpt_free(&vm->hpt); - if (vm->ptemap) - free(vm->ptemap); + free(vm->ptemap); free(vm); kd->vmst = NULL; } @@ -77,8 +74,7 @@ static int _i386_minidump_initvtop(kvm_t *kd) { struct vmstate *vmst; - uint32_t *bitmap; - off_t off; + off_t off, sparse_off; vmst = _kvm_malloc(kd, sizeof(*vmst)); if (vmst == NULL) { @@ -110,15 +106,11 @@ _i386_minidump_initvtop(kvm_t *kd) /* Skip header and msgbuf */ off = I386_PAGE_SIZE + i386_round_page(vmst->hdr.msgbufsize); - bitmap = _kvm_malloc(kd, vmst->hdr.bitmapsize); - if (bitmap == NULL) { - _kvm_err(kd, kd->program, "cannot allocate %d bytes for bitmap", vmst->hdr.bitmapsize); - return (-1); - } - if (pread(kd->pmfd, bitmap, vmst->hdr.bitmapsize, off) != - (ssize_t)vmst->hdr.bitmapsize) { - _kvm_err(kd, kd->program, "cannot read %d bytes for page bitmap", vmst->hdr.bitmapsize); - free(bitmap); + sparse_off = off + i386_round_page(vmst->hdr.bitmapsize) + + i386_round_page(vmst->hdr.ptesize); + if (_kvm_pt_init(kd, vmst->hdr.bitmapsize, off, sparse_off, + I386_PAGE_SIZE, sizeof(uint32_t)) == -1) { + _kvm_err(kd, kd->program, "cannot load core bitmap"); return (-1); } off += i386_round_page(vmst->hdr.bitmapsize); @@ -126,21 +118,14 @@ _i386_minidump_initvtop(kvm_t *kd) vmst->ptemap = _kvm_malloc(kd, vmst->hdr.ptesize); if (vmst->ptemap == NULL) { _kvm_err(kd, kd->program, "cannot allocate %d bytes for ptemap", vmst->hdr.ptesize); - free(bitmap); return (-1); } if (pread(kd->pmfd, vmst->ptemap, vmst->hdr.ptesize, off) != (ssize_t)vmst->hdr.ptesize) { _kvm_err(kd, kd->program, "cannot read %d bytes for ptemap", vmst->hdr.ptesize); - free(bitmap); return (-1); } - off += vmst->hdr.ptesize; - - /* build physical address hash table for sparse pages */ - _kvm_hpt_init(kd, &vmst->hpt, bitmap, vmst->hdr.bitmapsize, off, - I386_PAGE_SIZE, sizeof(*bitmap)); - free(bitmap); + off += i386_round_page(vmst->hdr.ptesize); return (0); } @@ -171,7 +156,7 @@ _i386_minidump_vatop_pae(kvm_t *kd, kvad goto invalid; } a = pte & I386_PG_FRAME_PAE; - ofs = _kvm_hpt_find(&vm->hpt, a); + ofs = _kvm_pt_find(kd, a); if (ofs == -1) { _kvm_err(kd, kd->program, "_i386_minidump_vatop_pae: physical address 0x%jx not in minidump", @@ -218,7 +203,7 @@ _i386_minidump_vatop(kvm_t *kd, kvaddr_t goto invalid; } a = pte & I386_PG_FRAME; - ofs = _kvm_hpt_find(&vm->hpt, a); + ofs = _kvm_pt_find(kd, a); if (ofs == -1) { _kvm_err(kd, kd->program, "_i386_minidump_vatop: physical address 0x%jx not in minidump", Modified: head/lib/libkvm/kvm_minidump_mips.c ============================================================================== --- head/lib/libkvm/kvm_minidump_mips.c Mon Jul 18 01:03:39 2016 (r302975) +++ head/lib/libkvm/kvm_minidump_mips.c Mon Jul 18 01:55:25 2016 (r302976) @@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$"); struct vmstate { struct minidumphdr hdr; - struct hpt hpt; void *ptemap; int pte_size; }; @@ -74,9 +73,7 @@ _mips_minidump_freevtop(kvm_t *kd) { struct vmstate *vm = kd->vmst; - _kvm_hpt_free(&vm->hpt); - if (vm->ptemap) - free(vm->ptemap); + free(vm->ptemap); free(vm); kd->vmst = NULL; } @@ -85,8 +82,7 @@ static int _mips_minidump_initvtop(kvm_t *kd) { struct vmstate *vmst; - uint32_t *bitmap; - off_t off; + off_t off, sparse_off; vmst = _kvm_malloc(kd, sizeof(*vmst)); if (vmst == NULL) { @@ -129,18 +125,11 @@ _mips_minidump_initvtop(kvm_t *kd) /* Skip header and msgbuf */ off = MIPS_PAGE_SIZE + mips_round_page(vmst->hdr.msgbufsize); - bitmap = _kvm_malloc(kd, vmst->hdr.bitmapsize); - if (bitmap == NULL) { - _kvm_err(kd, kd->program, "cannot allocate %d bytes for " - "bitmap", vmst->hdr.bitmapsize); - return (-1); - } - - if (pread(kd->pmfd, bitmap, vmst->hdr.bitmapsize, off) != - (ssize_t)vmst->hdr.bitmapsize) { - _kvm_err(kd, kd->program, "cannot read %d bytes for page bitmap", - vmst->hdr.bitmapsize); - free(bitmap); + sparse_off = off + mips_round_page(vmst->hdr.bitmapsize) + + mips_round_page(vmst->hdr.ptesize); + if (_kvm_pt_init(kd, vmst->hdr.bitmapsize, off, sparse_off, + MIPS_PAGE_SIZE, sizeof(uint32_t)) == -1) { + _kvm_err(kd, kd->program, "cannot load core bitmap"); return (-1); } off += mips_round_page(vmst->hdr.bitmapsize); @@ -149,7 +138,6 @@ _mips_minidump_initvtop(kvm_t *kd) if (vmst->ptemap == NULL) { _kvm_err(kd, kd->program, "cannot allocate %d bytes for " "ptemap", vmst->hdr.ptesize); - free(bitmap); return (-1); } @@ -157,16 +145,9 @@ _mips_minidump_initvtop(kvm_t *kd) (ssize_t)vmst->hdr.ptesize) { _kvm_err(kd, kd->program, "cannot read %d bytes for ptemap", vmst->hdr.ptesize); - free(bitmap); return (-1); } - - off += vmst->hdr.ptesize; - - /* Build physical address hash table for sparse pages */ - _kvm_hpt_init(kd, &vmst->hpt, bitmap, vmst->hdr.bitmapsize, off, - MIPS_PAGE_SIZE, sizeof(*bitmap)); - free(bitmap); + off += mips_round_page(vmst->hdr.ptesize); return (0); } @@ -243,7 +224,7 @@ _mips_minidump_kvatop(kvm_t *kd, kvaddr_ } found: - ofs = _kvm_hpt_find(&vm->hpt, a); + ofs = _kvm_pt_find(kd, a); if (ofs == -1) { _kvm_err(kd, kd->program, "_mips_minidump_kvatop: physical " "address 0x%jx not in minidump", (uintmax_t)a); Modified: head/lib/libkvm/kvm_private.c ============================================================================== --- head/lib/libkvm/kvm_private.c Mon Jul 18 01:03:39 2016 (r302975) +++ head/lib/libkvm/kvm_private.c Mon Jul 18 01:55:25 2016 (r302976) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -213,73 +214,178 @@ bad: return (-1); } -static void -_kvm_hpt_insert(struct hpt *hpt, uint64_t pa, off_t off) +/* + * Transform v such that only bits [bit0, bitN) may be set. Generates a + * bitmask covering the number of bits, then shifts so +bit0+ is the first. + */ +static uint64_t +bitmask_range(uint64_t v, uint64_t bit0, uint64_t bitN) { - struct hpte *hpte; - uint32_t fnv = FNV1_32_INIT; + if (bit0 == 0 && bitN == BITS_IN(v)) + return (v); - fnv = fnv_32_buf(&pa, sizeof(pa), fnv); - fnv &= (HPT_SIZE - 1); - hpte = malloc(sizeof(*hpte)); - hpte->pa = pa; - hpte->off = off; - hpte->next = hpt->hpt_head[fnv]; - hpt->hpt_head[fnv] = hpte; + return (v & (((1ULL << (bitN - bit0)) - 1ULL) << bit0)); } -void -_kvm_hpt_init(kvm_t *kd, struct hpt *hpt, void *base, size_t len, off_t off, - int page_size, int word_size) +/* + * Returns the number of bits in a given byte array range starting at a + * given base, from bit0 to bitN. bit0 may be non-zero in the case of + * counting backwards from bitN. + */ +static uint64_t +popcount_bytes(uint64_t *addr, uint32_t bit0, uint32_t bitN) { - uint64_t bits, idx, pa; - uint64_t *base64; - uint32_t *base32; - - base64 = base; - base32 = base; - for (idx = 0; idx < len / word_size; idx++) { - if (word_size == sizeof(uint64_t)) - bits = _kvm64toh(kd, base64[idx]); - else - bits = _kvm32toh(kd, base32[idx]); - pa = idx * word_size * NBBY * page_size; - for (; bits != 0; bits >>= 1, pa += page_size) { - if ((bits & 1) == 0) - continue; - _kvm_hpt_insert(hpt, pa, off); - off += page_size; - } + uint32_t res = bitN - bit0; + uint64_t count = 0; + uint32_t bound; + + /* Align to 64-bit boundary on the left side if needed. */ + if ((bit0 % BITS_IN(*addr)) != 0) { + bound = MIN(bitN, roundup2(bit0, BITS_IN(*addr))); + count += __bitcount64(bitmask_range(*addr, bit0, bound)); + res -= (bound - bit0); + addr++; + } + + while (res > 0) { + bound = MIN(res, BITS_IN(*addr)); + count += __bitcount64(bitmask_range(*addr, 0, bound)); + res -= bound; + addr++; } + + return (count); } -off_t -_kvm_hpt_find(struct hpt *hpt, uint64_t pa) +int +_kvm_pt_init(kvm_t *kd, size_t map_len, off_t map_off, off_t sparse_off, + int page_size, int word_size) { - struct hpte *hpte; - uint32_t fnv = FNV1_32_INIT; + uint64_t *addr; + uint32_t *popcount_bin; + int bin_popcounts = 0; + uint64_t pc_bins, res; + ssize_t rd; - fnv = fnv_32_buf(&pa, sizeof(pa), fnv); - fnv &= (HPT_SIZE - 1); - for (hpte = hpt->hpt_head[fnv]; hpte != NULL; hpte = hpte->next) { - if (pa == hpte->pa) - return (hpte->off); + /* + * Map the bitmap specified by the arguments. + */ + kd->pt_map = _kvm_malloc(kd, map_len); + if (kd->pt_map == NULL) { + _kvm_err(kd, kd->program, "cannot allocate %zu bytes for bitmap", + map_len); + return (-1); } - return (-1); + rd = pread(kd->pmfd, kd->pt_map, map_len, map_off); + if (rd < 0 || rd != (ssize_t)map_len) { + _kvm_err(kd, kd->program, "cannot read %zu bytes for bitmap", + map_len); + return (-1); + } + kd->pt_map_size = map_len; + + /* + * Generate a popcount cache for every POPCOUNT_BITS in the bitmap, + * so lookups only have to calculate the number of bits set between + * a cache point and their bit. This reduces lookups to O(1), + * without significantly increasing memory requirements. + * + * Round up the number of bins so that 'upper half' lookups work for + * the final bin, if needed. The first popcount is 0, since no bits + * precede bit 0, so add 1 for that also. Without this, extra work + * would be needed to handle the first PTEs in _kvm_pt_find(). + */ + addr = kd->pt_map; + res = map_len; + pc_bins = 1 + (res * NBBY + POPCOUNT_BITS / 2) / POPCOUNT_BITS; + kd->pt_popcounts = calloc(pc_bins, sizeof(uint32_t)); + if (kd->pt_popcounts == NULL) + return (-1); + + for (popcount_bin = &kd->pt_popcounts[1]; res > 0; + addr++, res -= sizeof(*addr)) { + *popcount_bin += popcount_bytes(addr, 0, + MIN(res * NBBY, BITS_IN(*addr))); + if (++bin_popcounts == POPCOUNTS_IN(*addr)) { + popcount_bin++; + *popcount_bin = *(popcount_bin - 1); + bin_popcounts = 0; + } + } + + assert(pc_bins * sizeof(*popcount_bin) == + ((uintptr_t)popcount_bin - (uintptr_t)kd->pt_popcounts)); + + kd->pt_sparse_off = sparse_off; + kd->pt_sparse_size = (uint64_t)*popcount_bin * PAGE_SIZE; + kd->pt_page_size = page_size; + kd->pt_word_size = word_size; + return (0); } -void -_kvm_hpt_free(struct hpt *hpt) +/* + * Find the offset for the given physical page address; returns -1 otherwise. + * + * A page's offset is represented by the sparse page base offset plus the + * number of bits set before its bit multiplied by PAGE_SIZE. This means + * that if a page exists in the dump, it's necessary to know how many pages + * in the dump precede it. Reduce this O(n) counting to O(1) by caching the + * number of bits set at POPCOUNT_BITS intervals. + * + * Then to find the number of pages before the requested address, simply + * index into the cache and count the number of bits set between that cache + * bin and the page's bit. Halve the number of bytes that have to be + * checked by also counting down from the next higher bin if it's closer. + */ +off_t +_kvm_pt_find(kvm_t *kd, uint64_t pa) { - struct hpte *hpte, *next; - int i; + uint64_t *bitmap = kd->pt_map; + uint64_t pte_bit_id = pa / PAGE_SIZE; + uint64_t pte_u64 = pte_bit_id / BITS_IN(*bitmap); + uint64_t popcount_id = pte_bit_id / POPCOUNT_BITS; + uint64_t pte_mask = 1ULL << (pte_bit_id % BITS_IN(*bitmap)); + uint64_t bitN; + uint32_t count; + + /* Check whether the page address requested is in the dump. */ + if (pte_bit_id >= (kd->pt_map_size * NBBY) || + (bitmap[pte_u64] & pte_mask) == 0) + return (-1); - for (i = 0; i < HPT_SIZE; i++) { - for (hpte = hpt->hpt_head[i]; hpte != NULL; hpte = next) { - next = hpte->next; - free(hpte); - } + /* + * Add/sub popcounts from the bitmap until the PTE's bit is reached. + * For bits that are in the upper half between the calculated + * popcount id and the next one, use the next one and subtract to + * minimize the number of popcounts required. + */ + if ((pte_bit_id % POPCOUNT_BITS) < (POPCOUNT_BITS / 2)) { + count = kd->pt_popcounts[popcount_id] + popcount_bytes( + bitmap + popcount_id * POPCOUNTS_IN(*bitmap), + 0, pte_bit_id - popcount_id * POPCOUNT_BITS); + } else { + /* + * Counting in reverse is trickier, since we must avoid + * reading from bytes that are not in range, and invert. + */ + uint64_t pte_u64_bit_off = pte_u64 * BITS_IN(*bitmap); + + popcount_id++; + bitN = MIN(popcount_id * POPCOUNT_BITS, + kd->pt_map_size * BITS_IN(uint8_t)); + count = kd->pt_popcounts[popcount_id] - popcount_bytes( + bitmap + pte_u64, + pte_bit_id - pte_u64_bit_off, bitN - pte_u64_bit_off); } + + /* + * This can only happen if the core is truncated. Treat these + * entries as if they don't exist, since their backing doesn't. + */ + if (count >= (kd->pt_sparse_size / PAGE_SIZE)) + return (-1); + + return (kd->pt_sparse_off + (uint64_t)count * PAGE_SIZE); } static int Modified: head/lib/libkvm/kvm_private.h ============================================================================== --- head/lib/libkvm/kvm_private.h Mon Jul 18 01:03:39 2016 (r302975) +++ head/lib/libkvm/kvm_private.h Mon Jul 18 01:55:25 2016 (r302976) @@ -97,23 +97,21 @@ struct __kvm { uintptr_t *dpcpu_off; /* base array, indexed by CPU ID */ u_int dpcpu_curcpu; /* CPU we're currently working with */ kvaddr_t dpcpu_curoff; /* dpcpu base of current CPU */ -}; -/* - * Page table hash used by minidump backends to map physical addresses - * to file offsets. - */ -struct hpte { - struct hpte *next; - uint64_t pa; - off_t off; + /* Page table lookup structures. */ + uint64_t *pt_map; + size_t pt_map_size; + off_t pt_sparse_off; + uint64_t pt_sparse_size; + uint32_t *pt_popcounts; + unsigned int pt_page_size; + unsigned int pt_word_size; }; -#define HPT_SIZE 1024 - -struct hpt { - struct hpte *hpt_head[HPT_SIZE]; -}; +/* Page table lookup constants. */ +#define POPCOUNT_BITS 1024 +#define BITS_IN(v) (sizeof(v) * NBBY) +#define POPCOUNTS_IN(v) (POPCOUNT_BITS / BITS_IN(v)) /* * Functions used internally by kvm, but across kvm modules. @@ -154,6 +152,5 @@ kvaddr_t _kvm_dpcpu_validaddr(kvm_t *, k int _kvm_probe_elf_kernel(kvm_t *, int, int); int _kvm_is_minidump(kvm_t *); int _kvm_read_core_phdrs(kvm_t *, size_t *, GElf_Phdr **); -void _kvm_hpt_init(kvm_t *, struct hpt *, void *, size_t, off_t, int, int); -off_t _kvm_hpt_find(struct hpt *, uint64_t); -void _kvm_hpt_free(struct hpt *); +int _kvm_pt_init(kvm_t *, size_t, off_t, off_t, int, int); +off_t _kvm_pt_find(kvm_t *, uint64_t); From owner-svn-src-all@freebsd.org Mon Jul 18 02:13:58 2016 Return-Path: Delivered-To: svn-src-all@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 E1336B9AFBA; Mon, 18 Jul 2016 02:13:58 +0000 (UTC) (envelope-from will@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 AFC8113D8; Mon, 18 Jul 2016 02:13:58 +0000 (UTC) (envelope-from will@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I2Dvbb003692; Mon, 18 Jul 2016 02:13:57 GMT (envelope-from will@FreeBSD.org) Received: (from will@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I2DvL8003691; Mon, 18 Jul 2016 02:13:57 GMT (envelope-from will@FreeBSD.org) Message-Id: <201607180213.u6I2DvL8003691@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: will set sender to will@FreeBSD.org using -f From: Will Andrews Date: Mon, 18 Jul 2016 02:13:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302977 - head/tools/build X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 02:13:59 -0000 Author: will Date: Mon Jul 18 02:13:57 2016 New Revision: 302977 URL: https://svnweb.freebsd.org/changeset/base/302977 Log: Add my beinstall script. This is meant to install a new BE (boot environment) given a fully built world/kernel. In addition to installing world and kernel in the new BE, it also automatically performs /etc updates (using etcupdate or mergemaster) and package updates (using pkg). Because this process is performed in a new BE, it reduces the need for a second reboot. It also means a reboot into a partially updated system (due to install or hardware failure) can't happen. Inspired by and similar in function to Solaris/illumos-style upgrades. Added: head/tools/build/beinstall.sh (contents, props changed) Added: head/tools/build/beinstall.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/build/beinstall.sh Mon Jul 18 02:13:57 2016 (r302977) @@ -0,0 +1,153 @@ +#!/bin/sh +# +# Copyright (c) 2016 Will Andrews +# 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 +# in this position and unchanged. +# 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 ``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 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. +# +# $FreeBSD$ +# +## +# Install a boot environment using the current FreeBSD source tree. +# Requires a fully built world & kernel. +# +# Non-base tools required: beadm, pkg +# +# In a sandbox for the new boot environment, this script also runs etcupdate +# and pkg upgrade automatically in the sandbox. Upon successful completion, +# the system will be ready to boot into the new boot environment. Upon +# failure, the target boot environment will be destroyed. In all cases, the +# running system is left untouched. +# +## Usage: +# beinstall [optional world/kernel flags e.g. KERNCONF] +# +## User modifiable variables - set these in the environment if desired. +# If not empty, 'pkg upgrade' will be skipped. +NO_PKG_UPGRADE="${NO_PKG_UPGRADE:-""}" +# Config updater - 'etcupdate' and 'mergemaster' are supported. Set to an +# empty string to skip. +CONFIG_UPDATER="${CONFIG_UPDATER:-"etcupdate"}" +# Flags for etcupdate if used. +ETCUPDATE_FLAGS="${ETCUPDATE_FLAGS:-"-F"}" +# Flags for mergemaster if used. +MERGEMASTER_FLAGS="${MERGEMASTER_FLAGS:-"-iFU"}" + + +######################################################################## +## Constants +ETCUPDATE_CMD="etcupdate" +MERGEMASTER_CMD="mergemaster" + +## Functions +cleanup() { + [ -z "${cleanup_commands}" ] && return + echo "Cleaning up ..." + for command in ${cleanup_commands}; do + ${command} + done +} + +errx() { + cleanup + echo "error: $*" + exit 1 +} + +rmdir_be() { + chflags -R noschg ${BE_MNTPT} + rm -rf ${BE_MNTPT} +} + +cleanup_be() { + beadm destroy -F ${BENAME} +} + +update_mergemaster() { + mergemaster -m $(pwd) -D ${BE_MNTPT} -t ${BE_MM_ROOT} ${MERGEMASTER_FLAGS} +} + +update_etcupdate() { + etcupdate -s $(pwd) -D ${BE_MNTPT} ${ETCUPDATE_FLAGS} || return $? + etcupdate resolve -D ${BE_MNTPT} +} + + +cleanup_commands="" +trap 'errx "Interrupt caught"' HUP INT TERM + +[ "$(whoami)" != "root" ] && errx "Must be run as root" + +[ ! -f "Makefile.inc1" ] && errx "Must be in FreeBSD source tree" +objdir=$(make -V .OBJDIR 2>/dev/null) +[ ! -d "${objdir}" ] && errx "Must have built FreeBSD from source tree" + +if [ -d .git ] ; then + commit_time=$(git show --format='%ct' 2>/dev/null | head -1) + [ $? -ne 0 ] && errx "Can't lookup git commit timestamp" + commit_ts=$(date -r ${commit_time} '+%Y%m%d.%H%M%S') +elif [ -d .svn ] ; then + commit_ts=$( svn info | awk '/Last Changed Date/ {print $4 "." $5}' | tr -d :- ) + [ $? -ne 0 ] && errx "Can't lookup Subversion commit timestamp" +else + errx "Unable to determine sandbox type" +fi + +commit_ver=$(${objdir}/bin/freebsd-version/freebsd-version -u 2>/dev/null) +[ -z "${commit_ver}" ] && errx "Unable to determine FreeBSD version" + +BENAME="${commit_ver}-${commit_ts}" + +BE_TMP=$(mktemp -d /tmp/beinstall.XXXXXX) +[ $? -ne 0 -o ! -d ${BE_TMP} ] && errx "Unable to create mountpoint" +[ -z "$NO_CLEANUP_BE" ] && cleanup_commands="rmdir_be ${cleanup_commands}" +BE_MNTPT=${BE_TMP}/mnt +BE_MM_ROOT=${BE_TMP}/mergemaster # mergemaster will create +mkdir -p ${BE_MNTPT} + +beadm create ${BENAME} >/dev/null || errx "Unable to create BE ${BENAME}" +[ -z "$NO_CLEANUP_BE" ] && cleanup_commands="cleanup_be ${cleanup_commands}" + +beadm mount ${BENAME} ${BE_TMP}/mnt || errx "Unable to mount BE ${BENAME}." + +echo "Mounted ${BENAME} to ${BE_MNTPT}, performing install/update ..." +make $* DESTDIR=${BE_MNTPT} installkernel || errx "Installkernel failed!" +make $* DESTDIR=${BE_MNTPT} installworld || errx "Installworld failed!" + +if [ -n "${CONFIG_UPDATER}" ]; then + "update_${CONFIG_UPDATER}" + [ $? -ne 0 ] && errx "${CONFIG_UPDATER} failed!" +fi + +BE_PKG="chroot ${BE_MNTPT} env ASSUME_ALWAYS_YES=true pkg" +if [ -z "${NO_PKG_UPGRADE}" ]; then + ${BE_PKG} update || errx "Unable to update pkg" + ${BE_PKG} upgrade || errx "Unable to upgrade pkgs" +fi + +beadm unmount ${BENAME} || errx "Unable to unmount BE" +rmdir_be +beadm activate ${BENAME} || errx "Unable to activate BE" +echo +beadm list +echo +echo "Boot environment ${BENAME} setup complete; reboot to use it." From owner-svn-src-all@freebsd.org Mon Jul 18 03:59:05 2016 Return-Path: Delivered-To: svn-src-all@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 2EEC8B9C285; Mon, 18 Jul 2016 03:59:05 +0000 (UTC) (envelope-from sobomax@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 E9DF71F50; Mon, 18 Jul 2016 03:59:04 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I3x4ec041477; Mon, 18 Jul 2016 03:59:04 GMT (envelope-from sobomax@FreeBSD.org) Received: (from sobomax@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I3x4n3041476; Mon, 18 Jul 2016 03:59:04 GMT (envelope-from sobomax@FreeBSD.org) Message-Id: <201607180359.u6I3x4n3041476@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sobomax set sender to sobomax@FreeBSD.org using -f From: Maxim Sobolev Date: Mon, 18 Jul 2016 03:59:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302978 - head/sys/x86/x86 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 03:59:05 -0000 Author: sobomax Date: Mon Jul 18 03:59:03 2016 New Revision: 302978 URL: https://svnweb.freebsd.org/changeset/base/302978 Log: Don't print same value twice, one in decimal once in hex. This makes output more cryptic than it needs to be and wastes cpu cycles and console bandwidth. Modified: head/sys/x86/x86/mp_x86.c Modified: head/sys/x86/x86/mp_x86.c ============================================================================== --- head/sys/x86/x86/mp_x86.c Mon Jul 18 02:13:57 2016 (r302977) +++ head/sys/x86/x86/mp_x86.c Mon Jul 18 03:59:03 2016 (r302978) @@ -649,12 +649,10 @@ cpu_mp_announce(void) TOPO_FOREACH(node, &topo_root) { switch (node->type) { case TOPO_TYPE_PKG: - printf("Package HW ID = %u (%#x)\n", - node->hwid, node->hwid); + printf("Package HW ID = %u\n", node->hwid); break; case TOPO_TYPE_CORE: - printf("\tCore HW ID = %u (%#x)\n", - node->hwid, node->hwid); + printf("\tCore HW ID = %u\n", node->hwid); break; case TOPO_TYPE_PU: if (cpu_info[node->hwid].cpu_hyperthread) @@ -663,16 +661,14 @@ cpu_mp_announce(void) hyperthread = ""; if (node->subtype == 0) - printf("\t\tCPU (AP%s): APIC ID: %u (%#x)" - "(disabled)\n", hyperthread, node->hwid, - node->hwid); + printf("\t\tCPU (AP%s): APIC ID: %u" + "(disabled)\n", hyperthread, node->hwid); else if (node->id == 0) - printf("\t\tCPU0 (BSP): APIC ID: %u (%#x)\n", - node->hwid, node->hwid); - else - printf("\t\tCPU%u (AP%s): APIC ID: %u (%#x)\n", - node->id, hyperthread, node->hwid, + printf("\t\tCPU0 (BSP): APIC ID: %u\n", node->hwid); + else + printf("\t\tCPU%u (AP%s): APIC ID: %u\n", + node->id, hyperthread, node->hwid); break; default: /* ignored */ From owner-svn-src-all@freebsd.org Mon Jul 18 04:16:55 2016 Return-Path: Delivered-To: svn-src-all@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 28F8CB9C719; Mon, 18 Jul 2016 04:16:55 +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 E9A8E1831; Mon, 18 Jul 2016 04:16:54 +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 u6I4Gsq6048889; Mon, 18 Jul 2016 04:16:54 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I4Grl0048887; Mon, 18 Jul 2016 04:16:53 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201607180416.u6I4Grl0048887@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 18 Jul 2016 04:16:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r302979 - stable/11/sbin/ipfw X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 04:16:55 -0000 Author: ae Date: Mon Jul 18 04:16:53 2016 New Revision: 302979 URL: https://svnweb.freebsd.org/changeset/base/302979 Log: MFC r302561,302565: Flush buffer after output. This fixes adding new data to already printed flows. PR: 210882 Approved by: re (kib) Modified: stable/11/sbin/ipfw/dummynet.c stable/11/sbin/ipfw/ipfw2.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/ipfw/dummynet.c ============================================================================== --- stable/11/sbin/ipfw/dummynet.c Mon Jul 18 03:59:03 2016 (r302978) +++ stable/11/sbin/ipfw/dummynet.c Mon Jul 18 04:16:53 2016 (r302979) @@ -612,6 +612,7 @@ list_pipes(struct dn_id *oid, struct dn_ } list_flow(&bp, (struct dn_flow *)oid); printf("%s\n", bp.buf); + bp_flush(&bp); break; case DN_LINK: { Modified: stable/11/sbin/ipfw/ipfw2.h ============================================================================== --- stable/11/sbin/ipfw/ipfw2.h Mon Jul 18 03:59:03 2016 (r302978) +++ stable/11/sbin/ipfw/ipfw2.h Mon Jul 18 04:16:53 2016 (r302979) @@ -371,6 +371,9 @@ void fill_unreach6_code(u_short *codep, void fill_icmp6types(struct _ipfw_insn_icmp6 *cmd, char *av, int cblen); int fill_ext6hdr(struct _ipfw_insn *cmd, char *av); +/* ipfw2.c */ +void bp_flush(struct buf_pr *b); + /* tables.c */ struct _ipfw_obj_ctlv; int table_check_name(const char *tablename); From owner-svn-src-all@freebsd.org Mon Jul 18 04:20:27 2016 Return-Path: Delivered-To: svn-src-all@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 90D11B9C7B2; Mon, 18 Jul 2016 04:20:27 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6120D1A02; Mon, 18 Jul 2016 04:20:27 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I4KQH4049118; Mon, 18 Jul 2016 04:20:26 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I4KQYu049117; Mon, 18 Jul 2016 04:20:26 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201607180420.u6I4KQYu049117@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Mon, 18 Jul 2016 04:20:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302980 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 04:20:27 -0000 Author: alc Date: Mon Jul 18 04:20:26 2016 New Revision: 302980 URL: https://svnweb.freebsd.org/changeset/base/302980 Log: Break up vm_fault()'s implementation of the read-ahead and delete-behind optimizations into two distinct pieces. The first piece consists of the code that should only be performed once per page fault and requires the map to be locked. The second piece consists of the code that should be performed each time a pager is called on an object in the shadow chain. (This second piece expects the map to be unlocked.) Previously, the entire implementation could be executed multiple times. Moreover, the second and subsequent executions would occur with the map unlocked. Usually, the ensuing unsynchronized accesses to the map were harmless because the map was not changing. Nonetheless, it was possible for a use-after-free error to occur, where vm_fault() wrote to a freed map entry. This change corrects that problem. Reported by: avg Reviewed by: kib MFC after: 3 days Sponsored by: EMC / Isilon Storage Division Modified: head/sys/vm/vm_fault.c Modified: head/sys/vm/vm_fault.c ============================================================================== --- head/sys/vm/vm_fault.c Mon Jul 18 04:16:53 2016 (r302979) +++ head/sys/vm/vm_fault.c Mon Jul 18 04:20:26 2016 (r302980) @@ -291,14 +291,17 @@ vm_fault_hold(vm_map_t map, vm_offset_t int hardfault; struct faultstate fs; struct vnode *vp; + vm_offset_t e_end, e_start; vm_page_t m; - int ahead, behind, cluster_offset, error, locked; + int ahead, behind, cluster_offset, error, locked, rv; + u_char behavior; hardfault = 0; growstack = TRUE; PCPU_INC(cnt.v_vm_faults); fs.vp = NULL; faultcount = 0; + nera = -1; RetryFault:; @@ -549,29 +552,25 @@ fast_failed: readrest: /* - * We have either allocated a new page or found an existing - * page that is only partially valid. - * - * Attempt to fault-in the page if there is a chance that the - * pager has it, and potentially fault in additional pages - * at the same time. + * If the pager for the current object might have the page, + * then determine the number of additional pages to read and + * potentially reprioritize previously read pages for earlier + * reclamation. These operations should only be performed + * once per page fault. Even if the current pager doesn't + * have the page, the number of additional pages to read will + * apply to subsequent objects in the shadow chain. */ - if (fs.object->type != OBJT_DEFAULT) { - int rv; - u_char behavior = vm_map_entry_behavior(fs.entry); - + if (fs.object->type != OBJT_DEFAULT && nera == -1 && + !P_KILLED(curproc)) { + KASSERT(fs.lookup_still_valid, ("map unlocked")); era = fs.entry->read_ahead; - if (behavior == MAP_ENTRY_BEHAV_RANDOM || - P_KILLED(curproc)) { - behind = 0; + behavior = vm_map_entry_behavior(fs.entry); + if (behavior == MAP_ENTRY_BEHAV_RANDOM) { nera = 0; - ahead = 0; } else if (behavior == MAP_ENTRY_BEHAV_SEQUENTIAL) { - behind = 0; nera = VM_FAULT_READ_AHEAD_MAX; - ahead = nera; if (vaddr == fs.entry->next_read) - vm_fault_dontneed(&fs, vaddr, ahead); + vm_fault_dontneed(&fs, vaddr, nera); } else if (vaddr == fs.entry->next_read) { /* * This is a sequential fault. Arithmetically @@ -580,42 +579,51 @@ readrest: * number of pages is "# of sequential faults * x (read ahead min + 1) + read ahead min" */ - behind = 0; nera = VM_FAULT_READ_AHEAD_MIN; if (era > 0) { nera += era + 1; if (nera > VM_FAULT_READ_AHEAD_MAX) nera = VM_FAULT_READ_AHEAD_MAX; } - ahead = nera; if (era == VM_FAULT_READ_AHEAD_MAX) - vm_fault_dontneed(&fs, vaddr, ahead); + vm_fault_dontneed(&fs, vaddr, nera); } else { /* - * This is a non-sequential fault. Request a - * cluster of pages that is aligned to a - * VM_FAULT_READ_DEFAULT page offset boundary - * within the object. Alignment to a page - * offset boundary is more likely to coincide - * with the underlying file system block than - * alignment to a virtual address boundary. + * This is a non-sequential fault. */ - cluster_offset = fs.pindex % - VM_FAULT_READ_DEFAULT; - behind = ulmin(cluster_offset, - atop(vaddr - fs.entry->start)); nera = 0; - ahead = VM_FAULT_READ_DEFAULT - 1 - - cluster_offset; } - ahead = ulmin(ahead, atop(fs.entry->end - vaddr) - 1); - if (era != nera) + if (era != nera) { + /* + * A read lock on the map suffices to update + * the read ahead count safely. + */ fs.entry->read_ahead = nera; + } /* - * Call the pager to retrieve the data, if any, after - * releasing the lock on the map. We hold a ref on - * fs.object and the pages are exclusive busied. + * Prepare for unlocking the map. Save the map + * entry's start and end addresses, which are used to + * optimize the size of the pager operation below. + * Even if the map entry's addresses change after + * unlocking the map, using the saved addresses is + * safe. + */ + e_start = fs.entry->start; + e_end = fs.entry->end; + } + + /* + * Call the pager to retrieve the page if there is a chance + * that the pager has it, and potentially retrieve additional + * pages at the same time. + */ + if (fs.object->type != OBJT_DEFAULT) { + /* + * We have either allocated a new page or found an + * existing page that is only partially valid. We + * hold a reference on fs.object and the page is + * exclusive busied. */ unlock_map(&fs); @@ -656,6 +664,35 @@ vnode_locked: * Page in the requested page and hint the pager, * that it may bring up surrounding pages. */ + if (nera == -1 || behavior == MAP_ENTRY_BEHAV_RANDOM || + P_KILLED(curproc)) { + behind = 0; + ahead = 0; + } else { + /* Is this a sequential fault? */ + if (nera > 0) { + behind = 0; + ahead = nera; + } else { + /* + * Request a cluster of pages that is + * aligned to a VM_FAULT_READ_DEFAULT + * page offset boundary within the + * object. Alignment to a page offset + * boundary is more likely to coincide + * with the underlying file system + * block than alignment to a virtual + * address boundary. + */ + cluster_offset = fs.pindex % + VM_FAULT_READ_DEFAULT; + behind = ulmin(cluster_offset, + atop(vaddr - e_start)); + ahead = VM_FAULT_READ_DEFAULT - 1 - + cluster_offset; + } + ahead = ulmin(ahead, atop(e_end - vaddr) - 1); + } rv = vm_pager_get_pages(fs.object, &fs.m, 1, &behind, &ahead); if (rv == VM_PAGER_OK) { From owner-svn-src-all@freebsd.org Mon Jul 18 04:30:36 2016 Return-Path: Delivered-To: svn-src-all@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 3931FB9CA38; Mon, 18 Jul 2016 04:30:36 +0000 (UTC) (envelope-from kib@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 06D9B119F; Mon, 18 Jul 2016 04:30:35 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I4UZQJ054066; Mon, 18 Jul 2016 04:30:35 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I4UZQ3054065; Mon, 18 Jul 2016 04:30:35 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607180430.u6I4UZQ3054065@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 18 Jul 2016 04:30:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302981 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 04:30:36 -0000 Author: kib Date: Mon Jul 18 04:30:34 2016 New Revision: 302981 URL: https://svnweb.freebsd.org/changeset/base/302981 Log: Fix another bug after r302350. Reported and tested by: pho PR: 210884 Sponsored by: The FreeBSD Foundation MFC after: 3 days Modified: head/sys/kern/kern_exit.c Modified: head/sys/kern/kern_exit.c ============================================================================== --- head/sys/kern/kern_exit.c Mon Jul 18 04:20:26 2016 (r302980) +++ head/sys/kern/kern_exit.c Mon Jul 18 04:30:34 2016 (r302981) @@ -345,7 +345,7 @@ exit1(struct thread *td, int rval, int s * executing, prevent it from rearming itself and let it finish. */ if (timevalisset(&p->p_realtimer.it_value) && - callout_stop(&p->p_itcallout) == 0) { + _callout_stop_safe(&p->p_itcallout, CS_EXECUTING, NULL) == 0) { timevalclear(&p->p_realtimer.it_interval); msleep(&p->p_itcallout, &p->p_mtx, PWAIT, "ritwait", 0); KASSERT(!timevalisset(&p->p_realtimer.it_value), From owner-svn-src-all@freebsd.org Mon Jul 18 04:33:13 2016 Return-Path: Delivered-To: svn-src-all@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 C1BD8B9CB99; Mon, 18 Jul 2016 04:33:13 +0000 (UTC) (envelope-from kib@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 8C98E15E7; Mon, 18 Jul 2016 04:33:13 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I4XCZ0056220; Mon, 18 Jul 2016 04:33:12 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I4XC4Q056219; Mon, 18 Jul 2016 04:33:12 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607180433.u6I4XC4Q056219@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 18 Jul 2016 04:33:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r302982 - stable/11/sys/i386/i386 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 04:33:13 -0000 Author: kib Date: Mon Jul 18 04:33:12 2016 New Revision: 302982 URL: https://svnweb.freebsd.org/changeset/base/302982 Log: MFC r302573: Fill tf_trapno for trap frames created for syscall. Approved by: re (gjb) Modified: stable/11/sys/i386/i386/exception.s Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/i386/i386/exception.s ============================================================================== --- stable/11/sys/i386/i386/exception.s Mon Jul 18 04:30:34 2016 (r302981) +++ stable/11/sys/i386/i386/exception.s Mon Jul 18 04:33:12 2016 (r302982) @@ -234,7 +234,7 @@ IDTVEC(lcall_syscall) pushfl /* save eflags */ popl 8(%esp) /* shuffle into tf_eflags */ pushl $7 /* sizeof "lcall 7,0" */ - subl $4,%esp /* skip over tf_trapno */ + pushl $0 /* tf_trapno */ pushal pushl $0 movw %ds,(%esp) @@ -263,7 +263,7 @@ IDTVEC(lcall_syscall) SUPERALIGN_TEXT IDTVEC(int0x80_syscall) pushl $2 /* sizeof "int 0x80" */ - subl $4,%esp /* skip over tf_trapno */ + pushl $0 /* tf_trapno */ pushal pushl $0 movw %ds,(%esp) From owner-svn-src-all@freebsd.org Mon Jul 18 04:34:43 2016 Return-Path: Delivered-To: svn-src-all@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 99D4BB9CC08; Mon, 18 Jul 2016 04:34:43 +0000 (UTC) (envelope-from kib@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 5EB691730; Mon, 18 Jul 2016 04:34:43 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I4YguN056322; Mon, 18 Jul 2016 04:34:42 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I4Yg73056321; Mon, 18 Jul 2016 04:34:42 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607180434.u6I4Yg73056321@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 18 Jul 2016 04:34:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r302983 - stable/10/sys/i386/i386 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 04:34:43 -0000 Author: kib Date: Mon Jul 18 04:34:42 2016 New Revision: 302983 URL: https://svnweb.freebsd.org/changeset/base/302983 Log: MFC r302573: Fill tf_trapno for trap frames created for syscall. Modified: stable/10/sys/i386/i386/exception.s Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/i386/i386/exception.s ============================================================================== --- stable/10/sys/i386/i386/exception.s Mon Jul 18 04:33:12 2016 (r302982) +++ stable/10/sys/i386/i386/exception.s Mon Jul 18 04:34:42 2016 (r302983) @@ -235,7 +235,7 @@ IDTVEC(lcall_syscall) pushfl /* save eflags */ popl 8(%esp) /* shuffle into tf_eflags */ pushl $7 /* sizeof "lcall 7,0" */ - subl $4,%esp /* skip over tf_trapno */ + pushl $0 /* tf_trapno */ pushal pushl $0 movw %ds,(%esp) @@ -264,7 +264,7 @@ IDTVEC(lcall_syscall) SUPERALIGN_TEXT IDTVEC(int0x80_syscall) pushl $2 /* sizeof "int 0x80" */ - subl $4,%esp /* skip over tf_trapno */ + pushl $0 /* tf_trapno */ pushal pushl $0 movw %ds,(%esp) From owner-svn-src-all@freebsd.org Mon Jul 18 04:36:19 2016 Return-Path: Delivered-To: svn-src-all@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 8212FB9CC6B; Mon, 18 Jul 2016 04:36:19 +0000 (UTC) (envelope-from kib@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 442B118B4; Mon, 18 Jul 2016 04:36:19 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I4aIiP056435; Mon, 18 Jul 2016 04:36:18 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I4aIbi056434; Mon, 18 Jul 2016 04:36:18 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607180436.u6I4aIbi056434@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 18 Jul 2016 04:36:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r302984 - stable/9/sys/i386/i386 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 04:36:19 -0000 Author: kib Date: Mon Jul 18 04:36:18 2016 New Revision: 302984 URL: https://svnweb.freebsd.org/changeset/base/302984 Log: MFC r302573: Fill tf_trapno for trap frames created for syscall. Modified: stable/9/sys/i386/i386/exception.s Directory Properties: stable/9/ (props changed) stable/9/sys/ (props changed) Modified: stable/9/sys/i386/i386/exception.s ============================================================================== --- stable/9/sys/i386/i386/exception.s Mon Jul 18 04:34:42 2016 (r302983) +++ stable/9/sys/i386/i386/exception.s Mon Jul 18 04:36:18 2016 (r302984) @@ -235,7 +235,7 @@ IDTVEC(lcall_syscall) pushfl /* save eflags */ popl 8(%esp) /* shuffle into tf_eflags */ pushl $7 /* sizeof "lcall 7,0" */ - subl $4,%esp /* skip over tf_trapno */ + pushl $0 /* tf_trapno */ pushal pushl $0 movw %ds,(%esp) @@ -264,7 +264,7 @@ IDTVEC(lcall_syscall) SUPERALIGN_TEXT IDTVEC(int0x80_syscall) pushl $2 /* sizeof "int 0x80" */ - subl $4,%esp /* skip over tf_trapno */ + pushl $0 /* tf_trapno */ pushal pushl $0 movw %ds,(%esp) From owner-svn-src-all@freebsd.org Mon Jul 18 05:00:02 2016 Return-Path: Delivered-To: svn-src-all@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 6F3BEB9CED3; Mon, 18 Jul 2016 05:00:02 +0000 (UTC) (envelope-from sobomax@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 343B4105A; Mon, 18 Jul 2016 05:00:02 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I5017t063744; Mon, 18 Jul 2016 05:00:01 GMT (envelope-from sobomax@FreeBSD.org) Received: (from sobomax@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I501CX063743; Mon, 18 Jul 2016 05:00:01 GMT (envelope-from sobomax@FreeBSD.org) Message-Id: <201607180500.u6I501CX063743@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sobomax set sender to sobomax@FreeBSD.org using -f From: Maxim Sobolev Date: Mon, 18 Jul 2016 05:00:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302985 - head/sys/geom/label X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 05:00:02 -0000 Author: sobomax Date: Mon Jul 18 05:00:01 2016 New Revision: 302985 URL: https://svnweb.freebsd.org/changeset/base/302985 Log: Relax checking if the privider size matches size recorded in the superblock, allowing provider to be bit bigger, i.e. have some extra padding after the FS image. That in some cases might be a side-effect of using CLOOP format which enforces certain block size and trying to compress image that is not exactly the number of those blocks in size. The UFS itself does not have any issues mounting such padded file systems, so it's what GEOM_LABEL should do. Submitted by: @mizhka_gmail.com Differential Revision: https://reviews.freebsd.org/D6208 Modified: head/sys/geom/label/g_label_ufs.c Modified: head/sys/geom/label/g_label_ufs.c ============================================================================== --- head/sys/geom/label/g_label_ufs.c Mon Jul 18 04:36:18 2016 (r302984) +++ head/sys/geom/label/g_label_ufs.c Mon Jul 18 05:00:01 2016 (r302985) @@ -45,6 +45,15 @@ __FBSDID("$FreeBSD$"); #define G_LABEL_UFS_VOLUME 0 #define G_LABEL_UFS_ID 1 +/* + * G_LABEL_UFS_CMP returns true if difference between provider mediasize + * and filesystem size is less than G_LABEL_UFS_MAXDIFF sectors + */ +#define G_LABEL_UFS_CMP(prov, fsys, size) \ + ( abs( ((fsys)->size) - ( (prov)->mediasize / (fsys)->fs_fsize )) \ + < G_LABEL_UFS_MAXDIFF ) +#define G_LABEL_UFS_MAXDIFF 0x100 + static const int superblocks[] = SBLOCKSEARCH; static void @@ -82,18 +91,35 @@ g_label_ufs_taste_common(struct g_consum if (fs == NULL) continue; /* - * Check for magic. We also need to check if file system size is equal - * to providers size, because sysinstall(8) used to bogusly put first - * partition at offset 0 instead of 16, and glabel/ufs would find file - * system on slice instead of partition. + * Check for magic. We also need to check if file system size + * is almost equal to providers size, because sysinstall(8) + * used to bogusly put first partition at offset 0 + * instead of 16, and glabel/ufs would find file system on slice + * instead of partition. + * + * In addition, media size can be a bit bigger than file system + * size. For instance, mkuzip can append bytes to align data + * to large sector size (it improves compression rates). */ + switch (fs->fs_magic){ + case FS_UFS1_MAGIC: + case FS_UFS2_MAGIC: + G_LABEL_DEBUG(1, "%s %s params: %jd, %d, %d, %jd\n", + fs->fs_magic == FS_UFS1_MAGIC ? "UFS1" : "UFS2", + pp->name, pp->mediasize, fs->fs_fsize, + fs->fs_old_size, fs->fs_providersize); + break; + default: + break; + } + if (fs->fs_magic == FS_UFS1_MAGIC && fs->fs_fsize > 0 && - ((pp->mediasize / fs->fs_fsize == fs->fs_old_size) || - (pp->mediasize / fs->fs_fsize == fs->fs_providersize))) { + ( G_LABEL_UFS_CMP(pp, fs, fs_old_size) + || G_LABEL_UFS_CMP(pp, fs, fs_providersize))) { /* Valid UFS1. */ } else if (fs->fs_magic == FS_UFS2_MAGIC && fs->fs_fsize > 0 && - ((pp->mediasize / fs->fs_fsize == fs->fs_size) || - (pp->mediasize / fs->fs_fsize == fs->fs_providersize))) { + ( G_LABEL_UFS_CMP(pp, fs, fs_size) + || G_LABEL_UFS_CMP(pp, fs, fs_providersize))) { /* Valid UFS2. */ } else { g_free(fs); From owner-svn-src-all@freebsd.org Mon Jul 18 05:36:32 2016 Return-Path: Delivered-To: svn-src-all@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 896F6B9C73B; Mon, 18 Jul 2016 05:36:32 +0000 (UTC) (envelope-from sephe@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 3DADA125C; Mon, 18 Jul 2016 05:36:32 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I5aVi0078531; Mon, 18 Jul 2016 05:36:31 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I5aV3q078528; Mon, 18 Jul 2016 05:36:31 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607180536.u6I5aV3q078528@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Mon, 18 Jul 2016 05:36:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302986 - in head/sys/dev/hyperv: include vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 05:36:32 -0000 Author: sephe Date: Mon Jul 18 05:36:31 2016 New Revision: 302986 URL: https://svnweb.freebsd.org/changeset/base/302986 Log: hyperv/vmbus: Cosmetic vmbus channel open cleanup MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7217 Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/vmbus/hv_channel.c head/sys/dev/hyperv/vmbus/vmbus_reg.h Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Mon Jul 18 05:00:01 2016 (r302985) +++ head/sys/dev/hyperv/include/hyperv.h Mon Jul 18 05:36:31 2016 (r302986) @@ -276,15 +276,9 @@ hv_set_channel_read_state(hv_vmbus_chann channel->ch_flags |= VMBUS_CHAN_FLAG_BATCHREAD; } -int hv_vmbus_channel_open( - hv_vmbus_channel* channel, - uint32_t send_ring_buffer_size, - uint32_t recv_ring_buffer_size, - void* user_data, - uint32_t user_data_len, - vmbus_chan_callback_t cb, - void *cbarg); - +int hv_vmbus_channel_open(struct hv_vmbus_channel *chan, + int txbr_size, int rxbr_size, const void *udata, int udlen, + vmbus_chan_callback_t cb, void *cbarg); void hv_vmbus_channel_close(hv_vmbus_channel *channel); struct hv_vmbus_channel* vmbus_select_outgoing_channel(struct hv_vmbus_channel *promary); Modified: head/sys/dev/hyperv/vmbus/hv_channel.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel.c Mon Jul 18 05:00:01 2016 (r302985) +++ head/sys/dev/hyperv/vmbus/hv_channel.c Mon Jul 18 05:36:31 2016 (r302986) @@ -201,93 +201,75 @@ vmbus_chan_sysctl_create(struct hv_vmbus } } -/** - * @brief Open the specified channel - */ int -hv_vmbus_channel_open( - hv_vmbus_channel* new_channel, - uint32_t send_ring_buffer_size, - uint32_t recv_ring_buffer_size, - void* user_data, - uint32_t user_data_len, - vmbus_chan_callback_t cb, - void *cbarg) +hv_vmbus_channel_open(struct hv_vmbus_channel *chan, + int txbr_size, int rxbr_size, const void *udata, int udlen, + vmbus_chan_callback_t cb, void *cbarg) { - struct vmbus_softc *sc = new_channel->vmbus_sc; + struct vmbus_softc *sc = chan->vmbus_sc; const struct vmbus_chanmsg_chopen_resp *resp; const struct vmbus_message *msg; struct vmbus_chanmsg_chopen *req; struct vmbus_msghc *mh; uint32_t status; - int ret = 0; + int error; uint8_t *br; - if (user_data_len > VMBUS_CHANMSG_CHOPEN_UDATA_SIZE) { + if (udlen > VMBUS_CHANMSG_CHOPEN_UDATA_SIZE) { device_printf(sc->vmbus_dev, - "invalid udata len %u for chan%u\n", - user_data_len, new_channel->ch_id); + "invalid udata len %d for chan%u\n", udlen, chan->ch_id); return EINVAL; } - KASSERT((send_ring_buffer_size & PAGE_MASK) == 0, + KASSERT((txbr_size & PAGE_MASK) == 0, ("send bufring size is not multiple page")); - KASSERT((recv_ring_buffer_size & PAGE_MASK) == 0, + KASSERT((rxbr_size & PAGE_MASK) == 0, ("recv bufring size is not multiple page")); - if (atomic_testandset_int(&new_channel->ch_stflags, + if (atomic_testandset_int(&chan->ch_stflags, VMBUS_CHAN_ST_OPENED_SHIFT)) - panic("double-open chan%u", new_channel->ch_id); + panic("double-open chan%u", chan->ch_id); - new_channel->ch_cb = cb; - new_channel->ch_cbarg = cbarg; + chan->ch_cb = cb; + chan->ch_cbarg = cbarg; - vmbus_chan_update_evtflagcnt(sc, new_channel); + vmbus_chan_update_evtflagcnt(sc, chan); - new_channel->ch_tq = VMBUS_PCPU_GET(new_channel->vmbus_sc, event_tq, - new_channel->ch_cpuid); - if (new_channel->ch_flags & VMBUS_CHAN_FLAG_BATCHREAD) { - TASK_INIT(&new_channel->ch_task, 0, vmbus_chan_task, - new_channel); - } else { - TASK_INIT(&new_channel->ch_task, 0, vmbus_chan_task_nobatch, - new_channel); - } + chan->ch_tq = VMBUS_PCPU_GET(chan->vmbus_sc, event_tq, chan->ch_cpuid); + if (chan->ch_flags & VMBUS_CHAN_FLAG_BATCHREAD) + TASK_INIT(&chan->ch_task, 0, vmbus_chan_task, chan); + else + TASK_INIT(&chan->ch_task, 0, vmbus_chan_task_nobatch, chan); /* * Allocate the TX+RX bufrings. * XXX should use ch_dev dtag */ br = hyperv_dmamem_alloc(bus_get_dma_tag(sc->vmbus_dev), - PAGE_SIZE, 0, send_ring_buffer_size + recv_ring_buffer_size, - &new_channel->ch_bufring_dma, BUS_DMA_WAITOK | BUS_DMA_ZERO); + PAGE_SIZE, 0, txbr_size + rxbr_size, &chan->ch_bufring_dma, + BUS_DMA_WAITOK | BUS_DMA_ZERO); if (br == NULL) { device_printf(sc->vmbus_dev, "bufring allocation failed\n"); - ret = ENOMEM; + error = ENOMEM; goto failed; } - new_channel->ch_bufring = br; + chan->ch_bufring = br; /* TX bufring comes first */ - hv_vmbus_ring_buffer_init(&new_channel->outbound, - br, send_ring_buffer_size); + hv_vmbus_ring_buffer_init(&chan->outbound, br, txbr_size); /* RX bufring immediately follows TX bufring */ - hv_vmbus_ring_buffer_init(&new_channel->inbound, - br + send_ring_buffer_size, recv_ring_buffer_size); + hv_vmbus_ring_buffer_init(&chan->inbound, br + txbr_size, rxbr_size); /* Create sysctl tree for this channel */ - vmbus_chan_sysctl_create(new_channel); + vmbus_chan_sysctl_create(chan); /* * Connect the bufrings, both RX and TX, to this channel. */ - ret = vmbus_chan_gpadl_connect(new_channel, - new_channel->ch_bufring_dma.hv_paddr, - send_ring_buffer_size + recv_ring_buffer_size, - &new_channel->ch_bufring_gpadl); - if (ret != 0) { + error = vmbus_chan_gpadl_connect(chan, chan->ch_bufring_dma.hv_paddr, + txbr_size + rxbr_size, &chan->ch_bufring_gpadl); + if (error) { device_printf(sc->vmbus_dev, - "failed to connect bufring GPADL to chan%u\n", - new_channel->ch_id); + "failed to connect bufring GPADL to chan%u\n", chan->ch_id); goto failed; } @@ -298,26 +280,26 @@ hv_vmbus_channel_open( if (mh == NULL) { device_printf(sc->vmbus_dev, "can not get msg hypercall for chopen(chan%u)\n", - new_channel->ch_id); - ret = ENXIO; + chan->ch_id); + error = ENXIO; goto failed; } req = vmbus_msghc_dataptr(mh); req->chm_hdr.chm_type = VMBUS_CHANMSG_TYPE_CHOPEN; - req->chm_chanid = new_channel->ch_id; - req->chm_openid = new_channel->ch_id; - req->chm_gpadl = new_channel->ch_bufring_gpadl; - req->chm_vcpuid = new_channel->ch_vcpuid; - req->chm_rxbr_pgofs = send_ring_buffer_size >> PAGE_SHIFT; - if (user_data_len) - memcpy(req->chm_udata, user_data, user_data_len); + req->chm_chanid = chan->ch_id; + req->chm_openid = chan->ch_id; + req->chm_gpadl = chan->ch_bufring_gpadl; + req->chm_vcpuid = chan->ch_vcpuid; + req->chm_txbr_pgcnt = txbr_size >> PAGE_SHIFT; + if (udlen > 0) + memcpy(req->chm_udata, udata, udlen); - ret = vmbus_msghc_exec(sc, mh); - if (ret != 0) { + error = vmbus_msghc_exec(sc, mh); + if (error) { device_printf(sc->vmbus_dev, "chopen(chan%u) msg hypercall exec failed: %d\n", - new_channel->ch_id, ret); + chan->ch_id, error); vmbus_msghc_put(sc, mh); goto failed; } @@ -331,28 +313,25 @@ hv_vmbus_channel_open( if (status == 0) { if (bootverbose) { device_printf(sc->vmbus_dev, "chan%u opened\n", - new_channel->ch_id); + chan->ch_id); } return 0; } - device_printf(sc->vmbus_dev, "failed to open chan%u\n", - new_channel->ch_id); - ret = ENXIO; + device_printf(sc->vmbus_dev, "failed to open chan%u\n", chan->ch_id); + error = ENXIO; failed: - if (new_channel->ch_bufring_gpadl) { - vmbus_chan_gpadl_disconnect(new_channel, - new_channel->ch_bufring_gpadl); - new_channel->ch_bufring_gpadl = 0; - } - if (new_channel->ch_bufring != NULL) { - hyperv_dmamem_free(&new_channel->ch_bufring_dma, - new_channel->ch_bufring); - new_channel->ch_bufring = NULL; + if (chan->ch_bufring_gpadl) { + vmbus_chan_gpadl_disconnect(chan, chan->ch_bufring_gpadl); + chan->ch_bufring_gpadl = 0; } - atomic_clear_int(&new_channel->ch_stflags, VMBUS_CHAN_ST_OPENED); - return ret; + if (chan->ch_bufring != NULL) { + hyperv_dmamem_free(&chan->ch_bufring_dma, chan->ch_bufring); + chan->ch_bufring = NULL; + } + atomic_clear_int(&chan->ch_stflags, VMBUS_CHAN_ST_OPENED); + return error; } int Modified: head/sys/dev/hyperv/vmbus/vmbus_reg.h ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_reg.h Mon Jul 18 05:00:01 2016 (r302985) +++ head/sys/dev/hyperv/vmbus/vmbus_reg.h Mon Jul 18 05:36:31 2016 (r302986) @@ -202,7 +202,7 @@ struct vmbus_chanmsg_chopen { uint32_t chm_openid; uint32_t chm_gpadl; uint32_t chm_vcpuid; - uint32_t chm_rxbr_pgofs; + uint32_t chm_txbr_pgcnt; #define VMBUS_CHANMSG_CHOPEN_UDATA_SIZE 120 uint8_t chm_udata[VMBUS_CHANMSG_CHOPEN_UDATA_SIZE]; } __packed; From owner-svn-src-all@freebsd.org Mon Jul 18 05:38:39 2016 Return-Path: Delivered-To: svn-src-all@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 9DB7AB9C7D0; Mon, 18 Jul 2016 05:38:39 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from forward4m.cmail.yandex.net (forward4m.cmail.yandex.net [IPv6:2a02:6b8:b030::1b]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "forwards.mail.yandex.net", Issuer "Yandex CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1C55C144D; Mon, 18 Jul 2016 05:38:38 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from smtp3m.mail.yandex.net (smtp3m.mail.yandex.net [IPv6:2a02:6b8:0:2519::125]) by forward4m.cmail.yandex.net (Yandex) with ESMTP id 9694920252; Mon, 18 Jul 2016 08:38:25 +0300 (MSK) Received: from smtp3m.mail.yandex.net (localhost [127.0.0.1]) by smtp3m.mail.yandex.net (Yandex) with ESMTP id 9597527A0623; Mon, 18 Jul 2016 08:38:25 +0300 (MSK) Received: by smtp3m.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id ByD2Swcn5N-cPWeFijb; Mon, 18 Jul 2016 08:38:25 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1468820305; bh=b6KfwrS25HLDpB/z+OITHZd9f04A1Lw2/mKYBc5M6FU=; h=Subject:To:References:From:Message-ID:Date:In-Reply-To; b=uKd+NrhvfHTJloSVKsG2VBGT1oQvIFwV7sSHSnfAupOaWI7Dlg7Rv1H/n6W9c7YWY uiejDEH6VWnBVRAYXaE9hL3nODWRsXKLAlcGGjscVY45RBoWYDqYeW7SSsHaLX3Vud /SPGyWVSjVUxB64LQpkM4BKqEl6NNt4VunrF7+xk= Authentication-Results: smtp3m.mail.yandex.net; dkim=pass header.i=@yandex.ru X-Yandex-Suid-Status: 1 0,1 0,1 0,1 0 Subject: Re: svn commit: r302985 - head/sys/geom/label To: Maxim Sobolev , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201607180500.u6I501CX063743@repo.freebsd.org> From: "Andrey V. Elsukov" Message-ID: <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> Date: Mon, 18 Jul 2016 08:37:27 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <201607180500.u6I501CX063743@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="2ERp3G9mdf6KmBmS6R81sGpul9fOHrlRh" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 05:38:39 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --2ERp3G9mdf6KmBmS6R81sGpul9fOHrlRh Content-Type: multipart/mixed; boundary="b5nsrnGPUwu3nH59dAoPB01soVim997x2" From: "Andrey V. Elsukov" To: Maxim Sobolev , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> Subject: Re: svn commit: r302985 - head/sys/geom/label References: <201607180500.u6I501CX063743@repo.freebsd.org> In-Reply-To: <201607180500.u6I501CX063743@repo.freebsd.org> --b5nsrnGPUwu3nH59dAoPB01soVim997x2 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 18.07.16 08:00, Maxim Sobolev wrote: > Author: sobomax > Date: Mon Jul 18 05:00:01 2016 > New Revision: 302985 > URL: https://svnweb.freebsd.org/changeset/base/302985 >=20 > Log: > Relax checking if the privider size matches size recorded in the > superblock, allowing provider to be bit bigger, i.e. have some > extra padding after the FS image. That in some cases might be > a side-effect of using CLOOP format which enforces certain block > size and trying to compress image that is not exactly the number > of those blocks in size. The UFS itself does not have any issues > mounting such padded file systems, so it's what GEOM_LABEL should > do. While you are thinking this is good fix, I expect that this change will break many installations. This is not first time when this check was changed. --=20 WBR, Andrey V. Elsukov --b5nsrnGPUwu3nH59dAoPB01soVim997x2-- --2ERp3G9mdf6KmBmS6R81sGpul9fOHrlRh Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEvBAEBCAAZBQJXjGsXEhxidTdjaGVyQHlhbmRleC5ydQAKCRABxeoEEMihepeR B/9zKYBQUtqMQVnwMUPigqJoQbrM1cD4G2tloEvGrcGpvtu8d4WItC5fIkgBAyD2 PzYvBmdyOW5ERSnuNg4Un4n2NaVZvxgX5IkTmJHwW+/ZyYA4yD3ihAi0rtgScz35 gUg+TgVnosRek8xW8a+VTcgd+9W+0Zwyr8Q/HNYrw4ikbLErJ0KJQz9PRd3UG+L1 c77/ZFTvWTYQJ6im+v9kjOUZCHRkTq0xHmXPuWIi3Khgf5DzU23Mg/7eRlAOnkzH PXDiN9gJDiwoTD/gv0lhnF4w+LE8pdzffLNKGU1bF0SkZ05YeSQZYhBwRJDXzmne ja5QW7HEnP+JYqdG2uIolumS =5VKW -----END PGP SIGNATURE----- --2ERp3G9mdf6KmBmS6R81sGpul9fOHrlRh-- From owner-svn-src-all@freebsd.org Mon Jul 18 06:09:54 2016 Return-Path: Delivered-To: svn-src-all@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 03990B9CC51; Mon, 18 Jul 2016 06:09:54 +0000 (UTC) (envelope-from truckman@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 CC4071E42; Mon, 18 Jul 2016 06:09:53 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I69q96089412; Mon, 18 Jul 2016 06:09:52 GMT (envelope-from truckman@FreeBSD.org) Received: (from truckman@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I69qrU089411; Mon, 18 Jul 2016 06:09:52 GMT (envelope-from truckman@FreeBSD.org) Message-Id: <201607180609.u6I69qrU089411@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: truckman set sender to truckman@FreeBSD.org using -f From: Don Lewis Date: Mon, 18 Jul 2016 06:09:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r302987 - stable/10/sys/netpfil/ipfw X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 06:09:54 -0000 Author: truckman Date: Mon Jul 18 06:09:52 2016 New Revision: 302987 URL: https://svnweb.freebsd.org/changeset/base/302987 Log: MFC r302667 Fix problems in the FQ-PIE AQM cleanup code that could leak memory or cause a crash. Because dummynet calls pie_cleanup() while holding a mutex, pie_cleanup() is not able to use callout_drain() to make sure that all callouts are finished before it returns, and callout_stop() is not sufficient to make that guarantee. After pie_cleanup() returns, dummynet will free a structure that any remaining callouts will want to access. Fix these problems by allocating a separate structure to contain the data used by the callouts. In pie_cleanup(), call callout_reset_sbt() to replace the normal callout with a cleanup callout that does the cleanup work for each sub-queue. The instance of the cleanup callout that destroys the last flow will also free the extra allocated block of memory. Protect the reference count manipulation in the cleanup callout with DN_BH_WLOCK() to be consistent with all of the other usage of the reference count where this lock is held by the dummynet code. Submitted by: Rasool Al-Saadi Differential Revision: https://reviews.freebsd.org/D7174 Modified: stable/10/sys/netpfil/ipfw/dn_sched_fq_pie.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/netpfil/ipfw/dn_sched_fq_pie.c ============================================================================== --- stable/10/sys/netpfil/ipfw/dn_sched_fq_pie.c Mon Jul 18 05:36:31 2016 (r302986) +++ stable/10/sys/netpfil/ipfw/dn_sched_fq_pie.c Mon Jul 18 06:09:52 2016 (r302987) @@ -111,7 +111,7 @@ struct fq_pie_flow { int deficit; int active; /* 1: flow is active (in a list) */ struct pie_status pst; /* pie status variables */ - struct fq_pie_si *psi; /* parent scheduler instance */ + struct fq_pie_si_extra *psi_extra; STAILQ_ENTRY(fq_pie_flow) flowchain; }; @@ -120,23 +120,30 @@ struct fq_pie_schk { struct dn_sch_fq_pie_parms cfg; }; + +/* fq_pie scheduler instance extra state vars. + * The purpose of separation this structure is to preserve number of active + * sub-queues and the flows array pointer even after the scheduler instance + * is destroyed. + * Preserving these varaiables allows freeing the allocated memory by + * fqpie_callout_cleanup() independently from fq_pie_free_sched(). + */ +struct fq_pie_si_extra { + uint32_t nr_active_q; /* number of active queues */ + struct fq_pie_flow *flows; /* array of flows (queues) */ + }; + /* fq_pie scheduler instance */ struct fq_pie_si { - struct dn_sch_inst _si; /* standard scheduler instance */ + struct dn_sch_inst _si; /* standard scheduler instance. SHOULD BE FIRST */ struct dn_queue main_q; /* main queue is after si directly */ - uint32_t nr_active_q; - struct fq_pie_flow *flows; /* array of flows (queues) */ uint32_t perturbation; /* random value */ struct fq_pie_list newflows; /* list of new queues */ struct fq_pie_list oldflows; /* list of old queues */ + struct fq_pie_si_extra *si_extra; /* extra state vars*/ }; -struct mem_to_free { - void *mem_flows; - void *mem_callout; -}; -static struct mtx freemem_mtx; static struct dn_alg fq_pie_desc; /* Default FQ-PIE parameters including PIE */ @@ -371,22 +378,6 @@ fq_calculate_drop_prob(void *x) int64_t p, prob, oldprob; aqm_time_t now; - /* dealing with race condition */ - if (callout_pending(&pst->aqm_pie_callout)) { - /* callout was reset */ - mtx_unlock(&pst->lock_mtx); - return; - } - - if (!callout_active(&pst->aqm_pie_callout)) { - /* callout was stopped */ - mtx_unlock(&pst->lock_mtx); - mtx_destroy(&pst->lock_mtx); - q->psi->nr_active_q--; - return; - } - callout_deactivate(&pst->aqm_pie_callout); - now = AQM_UNOW; pprms = pst->parms; prob = pst->drop_prob; @@ -524,20 +515,17 @@ fq_deactivate_pie(struct pie_status *pst * Initialize PIE for sub-queue 'q' */ static int -pie_init(struct fq_pie_flow *q) +pie_init(struct fq_pie_flow *q, struct fq_pie_schk *fqpie_schk) { struct pie_status *pst=&q->pst; struct dn_aqm_pie_parms *pprms = pst->parms; - struct fq_pie_schk *fqpie_schk; - - fqpie_schk = (struct fq_pie_schk *)(q->psi->_si.sched+1); - int err = 0; + int err = 0; if (!pprms){ D("AQM_PIE is not configured"); err = EINVAL; } else { - q->psi->nr_active_q++; + q->psi_extra->nr_active_q++; /* For speed optimization, we caculate 1/3 queue size once here */ // XXX limit divided by number of queues divided by 3 ??? @@ -553,8 +541,36 @@ pie_init(struct fq_pie_flow *q) } /* + * callout function to destroy PIE lock, and free fq_pie flows and fq_pie si + * extra memory when number of active sub-queues reaches zero. + * 'x' is a fq_pie_flow to be destroyed + */ +static void +fqpie_callout_cleanup(void *x) +{ + struct fq_pie_flow *q = x; + struct pie_status *pst = &q->pst; + struct fq_pie_si_extra *psi_extra; + + mtx_unlock(&pst->lock_mtx); + mtx_destroy(&pst->lock_mtx); + psi_extra = q->psi_extra; + + DN_BH_WLOCK(); + psi_extra->nr_active_q--; + + /* when all sub-queues are destroyed, free flows fq_pie extra vars memory */ + if (!psi_extra->nr_active_q) { + free(psi_extra->flows, M_DUMMYNET); + free(psi_extra, M_DUMMYNET); + fq_pie_desc.ref_count--; + } + DN_BH_WUNLOCK(); +} + +/* * Clean up PIE status for sub-queue 'q' - * Stop callout timer and destroy mtx + * Stop callout timer and destroy mtx using fqpie_callout_cleanup() callout. */ static int pie_cleanup(struct fq_pie_flow *q) @@ -562,14 +578,9 @@ pie_cleanup(struct fq_pie_flow *q) struct pie_status *pst = &q->pst; mtx_lock(&pst->lock_mtx); - if (callout_stop(&pst->aqm_pie_callout) || !(pst->sflags & PIE_ACTIVE)) { - mtx_unlock(&pst->lock_mtx); - mtx_destroy(&pst->lock_mtx); - q->psi->nr_active_q--; - } else { - mtx_unlock(&pst->lock_mtx); - return EBUSY; - } + callout_reset_sbt(&pst->aqm_pie_callout, + SBT_1US, 0, fqpie_callout_cleanup, q, 0); + mtx_unlock(&pst->lock_mtx); return 0; } @@ -831,10 +842,12 @@ fq_pie_enqueue(struct dn_sch_inst *_si, struct fq_pie_schk *schk; struct dn_sch_fq_pie_parms *param; struct dn_queue *mainq; + struct fq_pie_flow *flows; int idx, drop, i, maxidx; mainq = (struct dn_queue *)(_si + 1); si = (struct fq_pie_si *)_si; + flows = si->si_extra->flows; schk = (struct fq_pie_schk *)(si->_si.sched+1); param = &schk->cfg; @@ -844,7 +857,7 @@ fq_pie_enqueue(struct dn_sch_inst *_si, /* enqueue packet into appropriate queue using PIE AQM. * Note: 'pie_enqueue' function returns 1 only when it unable to * add timestamp to packet (no limit check)*/ - drop = pie_enqueue(&si->flows[idx], m, si); + drop = pie_enqueue(&flows[idx], m, si); /* pie unable to timestamp a packet */ if (drop) @@ -853,11 +866,11 @@ fq_pie_enqueue(struct dn_sch_inst *_si, /* If the flow (sub-queue) is not active ,then add it to tail of * new flows list, initialize and activate it. */ - if (!si->flows[idx].active) { - STAILQ_INSERT_TAIL(&si->newflows, &si->flows[idx], flowchain); - si->flows[idx].deficit = param->quantum; - fq_activate_pie(&si->flows[idx]); - si->flows[idx].active = 1; + if (!flows[idx].active) { + STAILQ_INSERT_TAIL(&si->newflows, &flows[idx], flowchain); + flows[idx].deficit = param->quantum; + fq_activate_pie(&flows[idx]); + flows[idx].active = 1; } /* check the limit for all queues and remove a packet from the @@ -866,15 +879,15 @@ fq_pie_enqueue(struct dn_sch_inst *_si, if (mainq->ni.length > schk->cfg.limit) { /* find first active flow */ for (maxidx = 0; maxidx < schk->cfg.flows_cnt; maxidx++) - if (si->flows[maxidx].active) + if (flows[maxidx].active) break; if (maxidx < schk->cfg.flows_cnt) { /* find the largest sub- queue */ for (i = maxidx + 1; i < schk->cfg.flows_cnt; i++) - if (si->flows[i].active && si->flows[i].stats.length > - si->flows[maxidx].stats.length) + if (flows[i].active && flows[i].stats.length > + flows[maxidx].stats.length) maxidx = i; - pie_drop_head(&si->flows[maxidx], si); + pie_drop_head(&flows[maxidx], si); drop = 1; } } @@ -974,12 +987,13 @@ fq_pie_new_sched(struct dn_sch_inst *_si struct fq_pie_si *si; struct dn_queue *q; struct fq_pie_schk *schk; + struct fq_pie_flow *flows; int i; si = (struct fq_pie_si *)_si; schk = (struct fq_pie_schk *)(_si->sched+1); - if(si->flows) { + if(si->si_extra) { D("si already configured!"); return 0; } @@ -990,17 +1004,27 @@ fq_pie_new_sched(struct dn_sch_inst *_si q->_si = _si; q->fs = _si->sched->fs; + /* allocate memory for scheduler instance extra vars */ + si->si_extra = malloc(sizeof(struct fq_pie_si_extra), + M_DUMMYNET, M_NOWAIT | M_ZERO); + if (si->si_extra == NULL) { + D("cannot allocate memory for fq_pie si extra vars"); + return ENOMEM ; + } /* allocate memory for flows array */ - si->flows = malloc(schk->cfg.flows_cnt * sizeof(struct fq_pie_flow), + si->si_extra->flows = malloc(schk->cfg.flows_cnt * sizeof(struct fq_pie_flow), M_DUMMYNET, M_NOWAIT | M_ZERO); - if (si->flows == NULL) { - D("cannot allocate memory for fq_pie configuration parameters"); + flows = si->si_extra->flows; + if (flows == NULL) { + free(si->si_extra, M_DUMMYNET); + si->si_extra = NULL; + D("cannot allocate memory for fq_pie flows"); return ENOMEM ; } /* init perturbation for this si */ si->perturbation = random(); - si->nr_active_q = 0; + si->si_extra->nr_active_q = 0; /* init the old and new flows lists */ STAILQ_INIT(&si->newflows); @@ -1008,45 +1032,16 @@ fq_pie_new_sched(struct dn_sch_inst *_si /* init the flows (sub-queues) */ for (i = 0; i < schk->cfg.flows_cnt; i++) { - si->flows[i].pst.parms = &schk->cfg.pcfg; - si->flows[i].psi = si; - pie_init(&si->flows[i]); - } - - /* init mtx lock and callout function for free memory */ - if (!fq_pie_desc.ref_count) { - mtx_init(&freemem_mtx, "mtx_pie", NULL, MTX_DEF); + flows[i].pst.parms = &schk->cfg.pcfg; + flows[i].psi_extra = si->si_extra; + pie_init(&flows[i], schk); } - mtx_lock(&freemem_mtx); fq_pie_desc.ref_count++; - mtx_unlock(&freemem_mtx); return 0; } -/* - * Free FQ-PIE flows memory callout function. - * This function is scheduled when a flow or more still active and - * the scheduer is about to be destroyed, to prevent memory leak. - */ -static void -free_flows(void *_mem) -{ - struct mem_to_free *mem = _mem; - - free(mem->mem_flows, M_DUMMYNET); - free(mem->mem_callout, M_DUMMYNET); - free(_mem, M_DUMMYNET); - - fq_pie_desc.ref_count--; - if (!fq_pie_desc.ref_count) { - mtx_unlock(&freemem_mtx); - mtx_destroy(&freemem_mtx); - } else - mtx_unlock(&freemem_mtx); - //D("mem freed ok!"); -} /* * Free fq_pie scheduler instance. @@ -1056,61 +1051,17 @@ fq_pie_free_sched(struct dn_sch_inst *_s { struct fq_pie_si *si; struct fq_pie_schk *schk; + struct fq_pie_flow *flows; int i; si = (struct fq_pie_si *)_si; schk = (struct fq_pie_schk *)(_si->sched+1); - + flows = si->si_extra->flows; for (i = 0; i < schk->cfg.flows_cnt; i++) { - pie_cleanup(&si->flows[i]); - } - - /* if there are still some queues have a callout going to start, - * we cannot free flows memory. If we do so, a panic can happen - * as prob calculate callout function uses flows memory. - */ - if (!si->nr_active_q) { - /* free the flows array */ - free(si->flows , M_DUMMYNET); - si->flows = NULL; - mtx_lock(&freemem_mtx); - fq_pie_desc.ref_count--; - if (!fq_pie_desc.ref_count) { - mtx_unlock(&freemem_mtx); - mtx_destroy(&freemem_mtx); - } else - mtx_unlock(&freemem_mtx); - //D("ok!"); - return 0; - } else { - /* memory leak happens here. So, we register a callout function to free - * flows memory later. - */ - D("unable to stop all fq_pie sub-queues!"); - mtx_lock(&freemem_mtx); - - struct callout *mem_callout; - struct mem_to_free *mem; - - mem = malloc(sizeof(*mem), M_DUMMYNET, - M_NOWAIT | M_ZERO); - mem_callout = malloc(sizeof(*mem_callout), M_DUMMYNET, - M_NOWAIT | M_ZERO); - - callout_init_mtx(mem_callout, &freemem_mtx, - CALLOUT_RETURNUNLOCKED); - - mem->mem_flows = si->flows; - mem->mem_callout = mem_callout; - callout_reset_sbt(mem_callout, - (uint64_t)(si->flows[0].pst.parms->tupdate + 1000) * SBT_1US, - 0, free_flows, mem, 0); - - si->flows = NULL; - mtx_unlock(&freemem_mtx); - - return EBUSY; + pie_cleanup(&flows[i]); } + si->si_extra = NULL; + return 0; } /* From owner-svn-src-all@freebsd.org Mon Jul 18 06:35:41 2016 Return-Path: Delivered-To: svn-src-all@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 9D9C3B9C260; Mon, 18 Jul 2016 06:35:41 +0000 (UTC) (envelope-from loos@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 6A5F41BD4; Mon, 18 Jul 2016 06:35:41 +0000 (UTC) (envelope-from loos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I6ZeZO000618; Mon, 18 Jul 2016 06:35:40 GMT (envelope-from loos@FreeBSD.org) Received: (from loos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I6ZegR000617; Mon, 18 Jul 2016 06:35:40 GMT (envelope-from loos@FreeBSD.org) Message-Id: <201607180635.u6I6ZegR000617@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: loos set sender to loos@FreeBSD.org using -f From: Luiz Otavio O Souza Date: Mon, 18 Jul 2016 06:35:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302988 - head/sys/arm/ti/am335x X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 06:35:41 -0000 Author: loos Date: Mon Jul 18 06:35:40 2016 New Revision: 302988 URL: https://svnweb.freebsd.org/changeset/base/302988 Log: Fix a random memory overwrite at boot time, simplebus_init() and simplebus_add_device() expect a simplebus_softc structure associated with the device. Add the simplebus_softc as first member in am335x_pwmss_softc structure. Sponsored by: Rubicon Communications (Netgate) Modified: head/sys/arm/ti/am335x/am335x_pwmss.c Modified: head/sys/arm/ti/am335x/am335x_pwmss.c ============================================================================== --- head/sys/arm/ti/am335x/am335x_pwmss.c Mon Jul 18 06:09:52 2016 (r302987) +++ head/sys/arm/ti/am335x/am335x_pwmss.c Mon Jul 18 06:35:40 2016 (r302988) @@ -65,6 +65,7 @@ static device_attach_t am335x_pwmss_atta static device_detach_t am335x_pwmss_detach; struct am335x_pwmss_softc { + struct simplebus_softc sc_simplebus; device_t sc_dev; clk_ident_t sc_clk; }; From owner-svn-src-all@freebsd.org Mon Jul 18 06:46:50 2016 Return-Path: Delivered-To: svn-src-all@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 CBF8EB9C42B; Mon, 18 Jul 2016 06:46:50 +0000 (UTC) (envelope-from avg@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 981B61271; Mon, 18 Jul 2016 06:46:50 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I6knqS004619; Mon, 18 Jul 2016 06:46:49 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I6knKX004618; Mon, 18 Jul 2016 06:46:49 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607180646.u6I6knKX004618@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 18 Jul 2016 06:46:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r302989 - stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 06:46:50 -0000 Author: avg Date: Mon Jul 18 06:46:49 2016 New Revision: 302989 URL: https://svnweb.freebsd.org/changeset/base/302989 Log: MFC r302772: re-apply r299908: zfsctl_snapdir_lookup: clear VV_ROOT of snapshot's root Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c ============================================================================== --- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Mon Jul 18 06:35:40 2016 (r302988) +++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Mon Jul 18 06:46:49 2016 (r302989) @@ -1125,6 +1125,7 @@ domount: */ ASSERT(VTOZ(*vpp)->z_zfsvfs != zfsvfs); VTOZ(*vpp)->z_zfsvfs->z_parent = zfsvfs; + (*vpp)->v_flag &= ~VROOT; } ZFS_EXIT(zfsvfs); From owner-svn-src-all@freebsd.org Mon Jul 18 06:47:10 2016 Return-Path: Delivered-To: svn-src-all@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 20196B9C485; Mon, 18 Jul 2016 06:47:10 +0000 (UTC) (envelope-from avg@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 D986013B4; Mon, 18 Jul 2016 06:47:09 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I6l9UR004677; Mon, 18 Jul 2016 06:47:09 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I6l9MI004676; Mon, 18 Jul 2016 06:47:09 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607180647.u6I6l9MI004676@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 18 Jul 2016 06:47:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r302990 - stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 06:47:10 -0000 Author: avg Date: Mon Jul 18 06:47:08 2016 New Revision: 302990 URL: https://svnweb.freebsd.org/changeset/base/302990 Log: MFC r302772: re-apply r299908: zfsctl_snapdir_lookup: clear VV_ROOT of snapshot's root Modified: stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/cddl/contrib/opensolaris/ (props changed) Modified: stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c ============================================================================== --- stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Mon Jul 18 06:46:49 2016 (r302989) +++ stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Mon Jul 18 06:47:08 2016 (r302990) @@ -1125,6 +1125,7 @@ domount: */ ASSERT(VTOZ(*vpp)->z_zfsvfs != zfsvfs); VTOZ(*vpp)->z_zfsvfs->z_parent = zfsvfs; + (*vpp)->v_flag &= ~VROOT; } ZFS_EXIT(zfsvfs); From owner-svn-src-all@freebsd.org Mon Jul 18 06:57:25 2016 Return-Path: Delivered-To: svn-src-all@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 42A92B9C6CF; Mon, 18 Jul 2016 06:57:25 +0000 (UTC) (envelope-from avg@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 0B1D4188F; Mon, 18 Jul 2016 06:57:24 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I6vOIl008308; Mon, 18 Jul 2016 06:57:24 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I6vOxT008306; Mon, 18 Jul 2016 06:57:24 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607180657.u6I6vOxT008306@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 18 Jul 2016 06:57:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r302991 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor-sys/illumos/dist/uts/common/fs/zfs/sys vendor/illumos/dist/cmd/zdb vendor/illumos/dist/cmd/ztest X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 06:57:25 -0000 Author: avg Date: Mon Jul 18 06:57:24 2016 New Revision: 302991 URL: https://svnweb.freebsd.org/changeset/base/302991 Log: 6950 ARC should cache compressed data illumos/illumos-gate@dcbf3bd6a1f1360fc1afcee9e22c6dcff7844bf2 https://github.com/illumos/illumos-gate/commit/dcbf3bd6a1f1360fc1afcee9e22c6dcff7844bf2 https://www.illumos.org/issues/6950 When reading compressed data from disk, the ARC should keep the compressed block cached and only decompress it when consumers access the block. The uncompressed data should be short-lived allowing the ARC to cache a much larger amount of data. The DMU would also maintain a smaller cache of uncompressed blocks to minimize the impact of decompressing frequently accessed blocks. Reviewed by: Prakash Surya Reviewed by: Dan Kimmel Reviewed by: Matt Ahrens Reviewed by: Paul Dagnelie Reviewed by: Don Brady Reviewed by: Richard Elling Approved by: Richard Lowe Author: George Wilson Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c vendor-sys/illumos/dist/uts/common/fs/zfs/dmu.c vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_diff.c vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_send.c vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_traverse.c vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c vendor-sys/illumos/dist/uts/common/fs/zfs/dnode_sync.c vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c vendor-sys/illumos/dist/uts/common/fs/zfs/refcount.c vendor-sys/illumos/dist/uts/common/fs/zfs/sys/arc.h vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dbuf.h vendor-sys/illumos/dist/uts/common/fs/zfs/sys/refcount.h vendor-sys/illumos/dist/uts/common/fs/zfs/sys/spa.h vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zio.h vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zio_checksum.h vendor-sys/illumos/dist/uts/common/fs/zfs/zil.c vendor-sys/illumos/dist/uts/common/fs/zfs/zio.c vendor-sys/illumos/dist/uts/common/fs/zfs/zio_checksum.c Changes in other areas also in this revision: Modified: vendor/illumos/dist/cmd/zdb/zdb.c vendor/illumos/dist/cmd/ztest/ztest.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c Mon Jul 18 06:47:08 2016 (r302990) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c Mon Jul 18 06:57:24 2016 (r302991) @@ -120,9 +120,134 @@ * - ARC header release, as it removes from L2ARC buflists */ +/* + * ARC operation: + * + * Every block that is in the ARC is tracked by an arc_buf_hdr_t structure. + * This structure can point either to a block that is still in the cache or to + * one that is only accessible in an L2 ARC device, or it can provide + * information about a block that was recently evicted. If a block is + * only accessible in the L2ARC, then the arc_buf_hdr_t only has enough + * information to retrieve it from the L2ARC device. This information is + * stored in the l2arc_buf_hdr_t sub-structure of the arc_buf_hdr_t. A block + * that is in this state cannot access the data directly. + * + * Blocks that are actively being referenced or have not been evicted + * are cached in the L1ARC. The L1ARC (l1arc_buf_hdr_t) is a structure within + * the arc_buf_hdr_t that will point to the data block in memory. A block can + * only be read by a consumer if it has an l1arc_buf_hdr_t. The L1ARC + * caches data in two ways -- in a list of arc buffers (arc_buf_t) and + * also in the arc_buf_hdr_t's private physical data block pointer (b_pdata). + * Each arc buffer (arc_buf_t) is being actively accessed by a specific ARC + * consumer, and always contains uncompressed data. The ARC will provide + * references to this data and will keep it cached until it is no longer in + * use. Typically, the arc will try to cache only the L1ARC's physical data + * block and will aggressively evict any arc_buf_t that is no longer referenced. + * The amount of memory consumed by the arc_buf_t's can be seen via the + * "overhead_size" kstat. + * + * + * arc_buf_hdr_t + * +-----------+ + * | | + * | | + * | | + * +-----------+ + * l2arc_buf_hdr_t| | + * | | + * +-----------+ + * l1arc_buf_hdr_t| | + * | | arc_buf_t + * | b_buf +------------>+---------+ arc_buf_t + * | | |b_next +---->+---------+ + * | b_pdata +-+ |---------| |b_next +-->NULL + * +-----------+ | | | +---------+ + * | |b_data +-+ | | + * | +---------+ | |b_data +-+ + * +->+------+ | +---------+ | + * (potentially) | | | | + * compressed | | | | + * data +------+ | v + * +->+------+ +------+ + * uncompressed | | | | + * data | | | | + * +------+ +------+ + * + * The L1ARC's data pointer, however, may or may not be uncompressed. The + * ARC has the ability to store the physical data (b_pdata) associated with + * the DVA of the arc_buf_hdr_t. Since the b_pdata is a copy of the on-disk + * physical block, it will match its on-disk compression characteristics. + * If the block on-disk is compressed, then the physical data block + * in the cache will also be compressed and vice-versa. This behavior + * can be disabled by setting 'zfs_compressed_arc_enabled' to B_FALSE. When the + * compressed ARC functionality is disabled, the b_pdata will point to an + * uncompressed version of the on-disk data. + * + * When a consumer reads a block, the ARC must first look to see if the + * arc_buf_hdr_t is cached. If the hdr is cached and already has an arc_buf_t, + * then an additional arc_buf_t is allocated and the uncompressed data is + * bcopied from the existing arc_buf_t. If the hdr is cached but does not + * have an arc_buf_t, then the ARC allocates a new arc_buf_t and decompresses + * the b_pdata contents into the arc_buf_t's b_data. If the arc_buf_hdr_t's + * b_pdata is not compressed, then the block is shared with the newly + * allocated arc_buf_t. This block sharing only occurs with one arc_buf_t + * in the arc buffer chain. Sharing the block reduces the memory overhead + * required when the hdr is caching uncompressed blocks or the compressed + * arc functionality has been disabled via 'zfs_compressed_arc_enabled'. + * + * The diagram below shows an example of an uncompressed ARC hdr that is + * sharing its data with an arc_buf_t: + * + * arc_buf_hdr_t + * +-----------+ + * | | + * | | + * | | + * +-----------+ + * l2arc_buf_hdr_t| | + * | | + * +-----------+ + * l1arc_buf_hdr_t| | + * | | arc_buf_t (shared) + * | b_buf +------------>+---------+ arc_buf_t + * | | |b_next +---->+---------+ + * | b_pdata +-+ |---------| |b_next +-->NULL + * +-----------+ | | | +---------+ + * | |b_data +-+ | | + * | +---------+ | |b_data +-+ + * +->+------+ | +---------+ | + * | | | | + * uncompressed | | | | + * data +------+ | | + * ^ +->+------+ | + * | uncompressed | | | + * | data | | | + * | +------+ | + * +---------------------------------+ + * + * Writing to the arc requires that the ARC first discard the b_pdata + * since the physical block is about to be rewritten. The new data contents + * will be contained in the arc_buf_t (uncompressed). As the I/O pipeline + * performs the write, it may compress the data before writing it to disk. + * The ARC will be called with the transformed data and will bcopy the + * transformed on-disk block into a newly allocated b_pdata. + * + * When the L2ARC is in use, it will also take advantage of the b_pdata. The + * L2ARC will always write the contents of b_pdata to the L2ARC. This means + * that when compressed arc is enabled that the L2ARC blocks are identical + * to the on-disk block in the main data pool. This provides a significant + * advantage since the ARC can leverage the bp's checksum when reading from the + * L2ARC to determine if the contents are valid. However, if the compressed + * arc is disabled, then the L2ARC's block must be transformed to look + * like the physical block in the main data pool before comparing the + * checksum and determining its validity. + */ + #include #include +#include #include +#include #include #include #include @@ -151,10 +276,6 @@ static kcondvar_t arc_reclaim_thread_cv; static boolean_t arc_reclaim_thread_exit; static kcondvar_t arc_reclaim_waiters_cv; -static kmutex_t arc_user_evicts_lock; -static kcondvar_t arc_user_evicts_cv; -static boolean_t arc_user_evicts_thread_exit; - uint_t arc_reduce_dnlc_percent = 3; /* @@ -230,9 +351,10 @@ uint64_t zfs_arc_meta_min = 0; int zfs_arc_grow_retry = 0; int zfs_arc_shrink_shift = 0; int zfs_arc_p_min_shift = 0; -int zfs_disable_dup_eviction = 0; int zfs_arc_average_blocksize = 8 * 1024; /* 8KB */ +boolean_t zfs_compressed_arc_enabled = B_TRUE; + /* * Note that buffers can be in one of 6 states: * ARC_anon - anonymous (discussed below) @@ -273,7 +395,7 @@ typedef struct arc_state { /* * total amount of evictable data in this state */ - uint64_t arcs_lsize[ARC_BUFC_NUMTYPES]; + refcount_t arcs_esize[ARC_BUFC_NUMTYPES]; /* * total amount of data in this state; this includes: evictable, * non-evictable, ARC_BUFC_DATA, and ARC_BUFC_METADATA. @@ -338,6 +460,26 @@ typedef struct arc_stats { kstat_named_t arcstat_c_max; kstat_named_t arcstat_size; /* + * Number of compressed bytes stored in the arc_buf_hdr_t's b_pdata. + * Note that the compressed bytes may match the uncompressed bytes + * if the block is either not compressed or compressed arc is disabled. + */ + kstat_named_t arcstat_compressed_size; + /* + * Uncompressed size of the data stored in b_pdata. If compressed + * arc is disabled then this value will be identical to the stat + * above. + */ + kstat_named_t arcstat_uncompressed_size; + /* + * Number of bytes stored in all the arc_buf_t's. This is classified + * as "overhead" since this data is typically short-lived and will + * be evicted from the arc when it becomes unreferenced unless the + * zfs_keep_uncompressed_metadata or zfs_keep_uncompressed_level + * values have been set (see comment in dbuf.c for more information). + */ + kstat_named_t arcstat_overhead_size; + /* * Number of bytes consumed by internal ARC structures necessary * for tracking purposes; these structures are not actually * backed by ARC buffers. This includes arc_buf_hdr_t structures @@ -482,20 +624,13 @@ typedef struct arc_stats { kstat_named_t arcstat_l2_evict_reading; kstat_named_t arcstat_l2_evict_l1cached; kstat_named_t arcstat_l2_free_on_write; - kstat_named_t arcstat_l2_cdata_free_on_write; kstat_named_t arcstat_l2_abort_lowmem; kstat_named_t arcstat_l2_cksum_bad; kstat_named_t arcstat_l2_io_error; kstat_named_t arcstat_l2_size; kstat_named_t arcstat_l2_asize; kstat_named_t arcstat_l2_hdr_size; - kstat_named_t arcstat_l2_compress_successes; - kstat_named_t arcstat_l2_compress_zeros; - kstat_named_t arcstat_l2_compress_failures; kstat_named_t arcstat_memory_throttle_count; - kstat_named_t arcstat_duplicate_buffers; - kstat_named_t arcstat_duplicate_buffers_size; - kstat_named_t arcstat_duplicate_reads; kstat_named_t arcstat_meta_used; kstat_named_t arcstat_meta_limit; kstat_named_t arcstat_meta_max; @@ -537,6 +672,9 @@ static arc_stats_t arc_stats = { { "c_min", KSTAT_DATA_UINT64 }, { "c_max", KSTAT_DATA_UINT64 }, { "size", KSTAT_DATA_UINT64 }, + { "compressed_size", KSTAT_DATA_UINT64 }, + { "uncompressed_size", KSTAT_DATA_UINT64 }, + { "overhead_size", KSTAT_DATA_UINT64 }, { "hdr_size", KSTAT_DATA_UINT64 }, { "data_size", KSTAT_DATA_UINT64 }, { "metadata_size", KSTAT_DATA_UINT64 }, @@ -570,20 +708,13 @@ static arc_stats_t arc_stats = { { "l2_evict_reading", KSTAT_DATA_UINT64 }, { "l2_evict_l1cached", KSTAT_DATA_UINT64 }, { "l2_free_on_write", KSTAT_DATA_UINT64 }, - { "l2_cdata_free_on_write", KSTAT_DATA_UINT64 }, { "l2_abort_lowmem", KSTAT_DATA_UINT64 }, { "l2_cksum_bad", KSTAT_DATA_UINT64 }, { "l2_io_error", KSTAT_DATA_UINT64 }, { "l2_size", KSTAT_DATA_UINT64 }, { "l2_asize", KSTAT_DATA_UINT64 }, { "l2_hdr_size", KSTAT_DATA_UINT64 }, - { "l2_compress_successes", KSTAT_DATA_UINT64 }, - { "l2_compress_zeros", KSTAT_DATA_UINT64 }, - { "l2_compress_failures", KSTAT_DATA_UINT64 }, { "memory_throttle_count", KSTAT_DATA_UINT64 }, - { "duplicate_buffers", KSTAT_DATA_UINT64 }, - { "duplicate_buffers_size", KSTAT_DATA_UINT64 }, - { "duplicate_reads", KSTAT_DATA_UINT64 }, { "arc_meta_used", KSTAT_DATA_UINT64 }, { "arc_meta_limit", KSTAT_DATA_UINT64 }, { "arc_meta_max", KSTAT_DATA_UINT64 }, @@ -656,8 +787,12 @@ static arc_state_t *arc_l2c_only; #define arc_meta_used ARCSTAT(arcstat_meta_used) /* size of metadata */ #define arc_meta_max ARCSTAT(arcstat_meta_max) /* max size of metadata */ -#define L2ARC_IS_VALID_COMPRESS(_c_) \ - ((_c_) == ZIO_COMPRESS_LZ4 || (_c_) == ZIO_COMPRESS_EMPTY) +/* compressed size of entire arc */ +#define arc_compressed_size ARCSTAT(arcstat_compressed_size) +/* uncompressed size of entire arc */ +#define arc_uncompressed_size ARCSTAT(arcstat_uncompressed_size) +/* number of bytes in the arc from arc_buf_t's */ +#define arc_overhead_size ARCSTAT(arcstat_overhead_size) static int arc_no_grow; /* Don't try to grow cache size */ static uint64_t arc_tempreserve; @@ -717,6 +852,7 @@ struct arc_write_callback { */ typedef struct l1arc_buf_hdr { kmutex_t b_freeze_lock; + zio_cksum_t *b_freeze_cksum; #ifdef ZFS_DEBUG /* * used for debugging wtih kmem_flags - by allocating and freeing @@ -727,9 +863,10 @@ typedef struct l1arc_buf_hdr { #endif arc_buf_t *b_buf; - uint32_t b_datacnt; + uint32_t b_bufcnt; /* for waiting on writes to complete */ kcondvar_t b_cv; + uint8_t b_byteswap; /* protected by arc state mutex */ arc_state_t *b_state; @@ -742,8 +879,7 @@ typedef struct l1arc_buf_hdr { refcount_t b_refcnt; arc_callback_t *b_acb; - /* temporary buffer holder for in-flight compressed data */ - void *b_tmp_cdata; + void *b_pdata; } l1arc_buf_hdr_t; typedef struct l2arc_dev l2arc_dev_t; @@ -752,9 +888,6 @@ typedef struct l2arc_buf_hdr { /* protected by arc_buf_hdr mutex */ l2arc_dev_t *b_dev; /* L2ARC device */ uint64_t b_daddr; /* disk address, offset byte */ - /* real alloc'd buffer size depending on b_compress applied */ - int32_t b_asize; - uint8_t b_compress; list_node_t b_l2node; } l2arc_buf_hdr_t; @@ -763,20 +896,37 @@ struct arc_buf_hdr { /* protected by hash lock */ dva_t b_dva; uint64_t b_birth; - /* - * Even though this checksum is only set/verified when a buffer is in - * the L1 cache, it needs to be in the set of common fields because it - * must be preserved from the time before a buffer is written out to - * L2ARC until after it is read back in. - */ - zio_cksum_t *b_freeze_cksum; + arc_buf_contents_t b_type; arc_buf_hdr_t *b_hash_next; arc_flags_t b_flags; - /* immutable */ - int32_t b_size; - uint64_t b_spa; + /* + * This field stores the size of the data buffer after + * compression, and is set in the arc's zio completion handlers. + * It is in units of SPA_MINBLOCKSIZE (e.g. 1 == 512 bytes). + * + * While the block pointers can store up to 32MB in their psize + * field, we can only store up to 32MB minus 512B. This is due + * to the bp using a bias of 1, whereas we use a bias of 0 (i.e. + * a field of zeros represents 512B in the bp). We can't use a + * bias of 1 since we need to reserve a psize of zero, here, to + * represent holes and embedded blocks. + * + * This isn't a problem in practice, since the maximum size of a + * buffer is limited to 16MB, so we never need to store 32MB in + * this field. Even in the upstream illumos code base, the + * maximum size of a buffer is limited to 16MB. + */ + uint16_t b_psize; + + /* + * This field stores the size of the data buffer before + * compression, and cannot change once set. It is in units + * of SPA_MINBLOCKSIZE (e.g. 2 == 1024 bytes) + */ + uint16_t b_lsize; /* immutable */ + uint64_t b_spa; /* immutable */ /* L2ARC fields. Undefined when not in L2ARC. */ l2arc_buf_hdr_t b_l2hdr; @@ -784,9 +934,6 @@ struct arc_buf_hdr { l1arc_buf_hdr_t b_l1hdr; }; -static arc_buf_t *arc_eviction_list; -static arc_buf_hdr_t arc_eviction_hdr; - #define GHOST_STATE(state) \ ((state) == arc_mru_ghost || (state) == arc_mfu_ghost || \ (state) == arc_l2c_only) @@ -795,25 +942,35 @@ static arc_buf_hdr_t arc_eviction_hdr; #define HDR_IO_IN_PROGRESS(hdr) ((hdr)->b_flags & ARC_FLAG_IO_IN_PROGRESS) #define HDR_IO_ERROR(hdr) ((hdr)->b_flags & ARC_FLAG_IO_ERROR) #define HDR_PREFETCH(hdr) ((hdr)->b_flags & ARC_FLAG_PREFETCH) -#define HDR_FREED_IN_READ(hdr) ((hdr)->b_flags & ARC_FLAG_FREED_IN_READ) -#define HDR_BUF_AVAILABLE(hdr) ((hdr)->b_flags & ARC_FLAG_BUF_AVAILABLE) +#define HDR_COMPRESSION_ENABLED(hdr) \ + ((hdr)->b_flags & ARC_FLAG_COMPRESSED_ARC) #define HDR_L2CACHE(hdr) ((hdr)->b_flags & ARC_FLAG_L2CACHE) -#define HDR_L2COMPRESS(hdr) ((hdr)->b_flags & ARC_FLAG_L2COMPRESS) #define HDR_L2_READING(hdr) \ - (((hdr)->b_flags & ARC_FLAG_IO_IN_PROGRESS) && \ - ((hdr)->b_flags & ARC_FLAG_HAS_L2HDR)) + (((hdr)->b_flags & ARC_FLAG_IO_IN_PROGRESS) && \ + ((hdr)->b_flags & ARC_FLAG_HAS_L2HDR)) #define HDR_L2_WRITING(hdr) ((hdr)->b_flags & ARC_FLAG_L2_WRITING) #define HDR_L2_EVICTED(hdr) ((hdr)->b_flags & ARC_FLAG_L2_EVICTED) #define HDR_L2_WRITE_HEAD(hdr) ((hdr)->b_flags & ARC_FLAG_L2_WRITE_HEAD) +#define HDR_SHARED_DATA(hdr) ((hdr)->b_flags & ARC_FLAG_SHARED_DATA) #define HDR_ISTYPE_METADATA(hdr) \ - ((hdr)->b_flags & ARC_FLAG_BUFC_METADATA) + ((hdr)->b_flags & ARC_FLAG_BUFC_METADATA) #define HDR_ISTYPE_DATA(hdr) (!HDR_ISTYPE_METADATA(hdr)) #define HDR_HAS_L1HDR(hdr) ((hdr)->b_flags & ARC_FLAG_HAS_L1HDR) #define HDR_HAS_L2HDR(hdr) ((hdr)->b_flags & ARC_FLAG_HAS_L2HDR) +/* For storing compression mode in b_flags */ +#define HDR_COMPRESS_OFFSET (highbit64(ARC_FLAG_COMPRESS_0) - 1) + +#define HDR_GET_COMPRESS(hdr) ((enum zio_compress)BF32_GET((hdr)->b_flags, \ + HDR_COMPRESS_OFFSET, SPA_COMPRESSBITS)) +#define HDR_SET_COMPRESS(hdr, cmp) BF32_SET((hdr)->b_flags, \ + HDR_COMPRESS_OFFSET, SPA_COMPRESSBITS, (cmp)); + +#define ARC_BUF_LAST(buf) ((buf)->b_next == NULL) + /* * Other sizes */ @@ -866,16 +1023,6 @@ uint64_t zfs_crc64_table[256]; #define L2ARC_FEED_SECS 1 /* caching interval secs */ #define L2ARC_FEED_MIN_MS 200 /* min caching interval ms */ -/* - * Used to distinguish headers that are being process by - * l2arc_write_buffers(), but have yet to be assigned to a l2arc disk - * address. This can happen when the header is added to the l2arc's list - * of buffers to write in the first stage of l2arc_write_buffers(), but - * has not yet been written out which happens in the second stage of - * l2arc_write_buffers(). - */ -#define L2ARC_ADDR_UNSET ((uint64_t)(-1)) - #define l2arc_writes_sent ARCSTAT(arcstat_l2_writes_sent) #define l2arc_writes_done ARCSTAT(arcstat_l2_writes_done) @@ -917,12 +1064,10 @@ static kmutex_t l2arc_free_on_write_mtx; static uint64_t l2arc_ndev; /* number of devices */ typedef struct l2arc_read_callback { - arc_buf_t *l2rcb_buf; /* read buffer */ - spa_t *l2rcb_spa; /* spa */ + arc_buf_hdr_t *l2rcb_hdr; /* read buffer */ blkptr_t l2rcb_bp; /* original blkptr */ zbookmark_phys_t l2rcb_zb; /* original bookmark */ int l2rcb_flags; /* original flags */ - enum zio_compress l2rcb_compress; /* applied compress */ } l2arc_read_callback_t; typedef struct l2arc_write_callback { @@ -934,7 +1079,7 @@ typedef struct l2arc_data_free { /* protected by l2arc_free_on_write_mtx */ void *l2df_data; size_t l2df_size; - void (*l2df_func)(void *, size_t); + arc_buf_contents_t l2df_type; list_node_t l2df_list_node; } l2arc_data_free_t; @@ -942,21 +1087,22 @@ static kmutex_t l2arc_feed_thr_lock; static kcondvar_t l2arc_feed_thr_cv; static uint8_t l2arc_thread_exit; -static void arc_get_data_buf(arc_buf_t *); +static void *arc_get_data_buf(arc_buf_hdr_t *, uint64_t, void *); +static void arc_free_data_buf(arc_buf_hdr_t *, void *, uint64_t, void *); +static void arc_hdr_free_pdata(arc_buf_hdr_t *hdr); +static void arc_hdr_alloc_pdata(arc_buf_hdr_t *); static void arc_access(arc_buf_hdr_t *, kmutex_t *); static boolean_t arc_is_overflowing(); static void arc_buf_watch(arc_buf_t *); static arc_buf_contents_t arc_buf_type(arc_buf_hdr_t *); static uint32_t arc_bufc_to_flags(arc_buf_contents_t); +static inline void arc_hdr_set_flags(arc_buf_hdr_t *hdr, arc_flags_t flags); +static inline void arc_hdr_clear_flags(arc_buf_hdr_t *hdr, arc_flags_t flags); static boolean_t l2arc_write_eligible(uint64_t, arc_buf_hdr_t *); static void l2arc_read_done(zio_t *); -static boolean_t l2arc_compress_buf(arc_buf_hdr_t *); -static void l2arc_decompress_zio(zio_t *, arc_buf_hdr_t *, enum zio_compress); -static void l2arc_release_cdata_buf(arc_buf_hdr_t *); - static uint64_t buf_hash(uint64_t spa, const dva_t *dva, uint64_t birth) { @@ -974,14 +1120,14 @@ buf_hash(uint64_t spa, const dva_t *dva, return (crc); } -#define BUF_EMPTY(buf) \ - ((buf)->b_dva.dva_word[0] == 0 && \ - (buf)->b_dva.dva_word[1] == 0) - -#define BUF_EQUAL(spa, dva, birth, buf) \ - ((buf)->b_dva.dva_word[0] == (dva)->dva_word[0]) && \ - ((buf)->b_dva.dva_word[1] == (dva)->dva_word[1]) && \ - ((buf)->b_birth == birth) && ((buf)->b_spa == spa) +#define HDR_EMPTY(hdr) \ + ((hdr)->b_dva.dva_word[0] == 0 && \ + (hdr)->b_dva.dva_word[1] == 0) + +#define HDR_EQUAL(spa, dva, birth, hdr) \ + ((hdr)->b_dva.dva_word[0] == (dva)->dva_word[0]) && \ + ((hdr)->b_dva.dva_word[1] == (dva)->dva_word[1]) && \ + ((hdr)->b_birth == birth) && ((hdr)->b_spa == spa) static void buf_discard_identity(arc_buf_hdr_t *hdr) @@ -1003,7 +1149,7 @@ buf_hash_find(uint64_t spa, const blkptr mutex_enter(hash_lock); for (hdr = buf_hash_table.ht_table[idx]; hdr != NULL; hdr = hdr->b_hash_next) { - if (BUF_EQUAL(spa, dva, birth, hdr)) { + if (HDR_EQUAL(spa, dva, birth, hdr)) { *lockp = hash_lock; return (hdr); } @@ -1041,13 +1187,13 @@ buf_hash_insert(arc_buf_hdr_t *hdr, kmut for (fhdr = buf_hash_table.ht_table[idx], i = 0; fhdr != NULL; fhdr = fhdr->b_hash_next, i++) { - if (BUF_EQUAL(hdr->b_spa, &hdr->b_dva, hdr->b_birth, fhdr)) + if (HDR_EQUAL(hdr->b_spa, &hdr->b_dva, hdr->b_birth, fhdr)) return (fhdr); } hdr->b_hash_next = buf_hash_table.ht_table[idx]; buf_hash_table.ht_table[idx] = hdr; - hdr->b_flags |= ARC_FLAG_IN_HASH_TABLE; + arc_hdr_set_flags(hdr, ARC_FLAG_IN_HASH_TABLE); /* collect some hash table performance data */ if (i > 0) { @@ -1075,12 +1221,12 @@ buf_hash_remove(arc_buf_hdr_t *hdr) hdrp = &buf_hash_table.ht_table[idx]; while ((fhdr = *hdrp) != hdr) { - ASSERT(fhdr != NULL); + ASSERT3P(fhdr, !=, NULL); hdrp = &fhdr->b_hash_next; } *hdrp = hdr->b_hash_next; hdr->b_hash_next = NULL; - hdr->b_flags &= ~ARC_FLAG_IN_HASH_TABLE; + arc_hdr_clear_flags(hdr, ARC_FLAG_IN_HASH_TABLE); /* collect some hash table performance data */ ARCSTAT_BUMPDOWN(arcstat_hash_elements); @@ -1166,7 +1312,7 @@ hdr_full_dest(void *vbuf, void *unused) { arc_buf_hdr_t *hdr = vbuf; - ASSERT(BUF_EMPTY(hdr)); + ASSERT(HDR_EMPTY(hdr)); cv_destroy(&hdr->b_l1hdr.b_cv); refcount_destroy(&hdr->b_l1hdr.b_refcnt); mutex_destroy(&hdr->b_l1hdr.b_freeze_lock); @@ -1180,7 +1326,7 @@ hdr_l2only_dest(void *vbuf, void *unused { arc_buf_hdr_t *hdr = vbuf; - ASSERT(BUF_EMPTY(hdr)); + ASSERT(HDR_EMPTY(hdr)); arc_space_return(HDR_L2ONLY_SIZE, ARC_SPACE_L2HDRS); } @@ -1253,166 +1399,138 @@ retry: } } -/* - * Transition between the two allocation states for the arc_buf_hdr struct. - * The arc_buf_hdr struct can be allocated with (hdr_full_cache) or without - * (hdr_l2only_cache) the fields necessary for the L1 cache - the smaller - * version is used when a cache buffer is only in the L2ARC in order to reduce - * memory usage. - */ -static arc_buf_hdr_t * -arc_hdr_realloc(arc_buf_hdr_t *hdr, kmem_cache_t *old, kmem_cache_t *new) -{ - ASSERT(HDR_HAS_L2HDR(hdr)); - - arc_buf_hdr_t *nhdr; - l2arc_dev_t *dev = hdr->b_l2hdr.b_dev; - - ASSERT((old == hdr_full_cache && new == hdr_l2only_cache) || - (old == hdr_l2only_cache && new == hdr_full_cache)); - - nhdr = kmem_cache_alloc(new, KM_PUSHPAGE); - - ASSERT(MUTEX_HELD(HDR_LOCK(hdr))); - buf_hash_remove(hdr); - - bcopy(hdr, nhdr, HDR_L2ONLY_SIZE); - - if (new == hdr_full_cache) { - nhdr->b_flags |= ARC_FLAG_HAS_L1HDR; - /* - * arc_access and arc_change_state need to be aware that a - * header has just come out of L2ARC, so we set its state to - * l2c_only even though it's about to change. - */ - nhdr->b_l1hdr.b_state = arc_l2c_only; - - /* Verify previous threads set to NULL before freeing */ - ASSERT3P(nhdr->b_l1hdr.b_tmp_cdata, ==, NULL); - } else { - ASSERT(hdr->b_l1hdr.b_buf == NULL); - ASSERT0(hdr->b_l1hdr.b_datacnt); - - /* - * If we've reached here, We must have been called from - * arc_evict_hdr(), as such we should have already been - * removed from any ghost list we were previously on - * (which protects us from racing with arc_evict_state), - * thus no locking is needed during this check. - */ - ASSERT(!multilist_link_active(&hdr->b_l1hdr.b_arc_node)); - - /* - * A buffer must not be moved into the arc_l2c_only - * state if it's not finished being written out to the - * l2arc device. Otherwise, the b_l1hdr.b_tmp_cdata field - * might try to be accessed, even though it was removed. - */ - VERIFY(!HDR_L2_WRITING(hdr)); - VERIFY3P(hdr->b_l1hdr.b_tmp_cdata, ==, NULL); +#define ARC_MINTIME (hz>>4) /* 62 ms */ -#ifdef ZFS_DEBUG - if (hdr->b_l1hdr.b_thawed != NULL) { - kmem_free(hdr->b_l1hdr.b_thawed, 1); - hdr->b_l1hdr.b_thawed = NULL; - } -#endif +static inline boolean_t +arc_buf_is_shared(arc_buf_t *buf) +{ + boolean_t shared = (buf->b_data != NULL && + buf->b_data == buf->b_hdr->b_l1hdr.b_pdata); + IMPLY(shared, HDR_SHARED_DATA(buf->b_hdr)); + return (shared); +} - nhdr->b_flags &= ~ARC_FLAG_HAS_L1HDR; +static inline void +arc_cksum_free(arc_buf_hdr_t *hdr) +{ + ASSERT(HDR_HAS_L1HDR(hdr)); + mutex_enter(&hdr->b_l1hdr.b_freeze_lock); + if (hdr->b_l1hdr.b_freeze_cksum != NULL) { + kmem_free(hdr->b_l1hdr.b_freeze_cksum, sizeof (zio_cksum_t)); + hdr->b_l1hdr.b_freeze_cksum = NULL; } - /* - * The header has been reallocated so we need to re-insert it into any - * lists it was on. - */ - (void) buf_hash_insert(nhdr, NULL); - - ASSERT(list_link_active(&hdr->b_l2hdr.b_l2node)); - - mutex_enter(&dev->l2ad_mtx); - - /* - * We must place the realloc'ed header back into the list at - * the same spot. Otherwise, if it's placed earlier in the list, - * l2arc_write_buffers() could find it during the function's - * write phase, and try to write it out to the l2arc. - */ - list_insert_after(&dev->l2ad_buflist, hdr, nhdr); - list_remove(&dev->l2ad_buflist, hdr); - - mutex_exit(&dev->l2ad_mtx); - - /* - * Since we're using the pointer address as the tag when - * incrementing and decrementing the l2ad_alloc refcount, we - * must remove the old pointer (that we're about to destroy) and - * add the new pointer to the refcount. Otherwise we'd remove - * the wrong pointer address when calling arc_hdr_destroy() later. - */ - - (void) refcount_remove_many(&dev->l2ad_alloc, - hdr->b_l2hdr.b_asize, hdr); - - (void) refcount_add_many(&dev->l2ad_alloc, - nhdr->b_l2hdr.b_asize, nhdr); - - buf_discard_identity(hdr); - hdr->b_freeze_cksum = NULL; - kmem_cache_free(old, hdr); - - return (nhdr); + mutex_exit(&hdr->b_l1hdr.b_freeze_lock); } - -#define ARC_MINTIME (hz>>4) /* 62 ms */ - static void arc_cksum_verify(arc_buf_t *buf) { + arc_buf_hdr_t *hdr = buf->b_hdr; zio_cksum_t zc; if (!(zfs_flags & ZFS_DEBUG_MODIFY)) return; - mutex_enter(&buf->b_hdr->b_l1hdr.b_freeze_lock); - if (buf->b_hdr->b_freeze_cksum == NULL || HDR_IO_ERROR(buf->b_hdr)) { - mutex_exit(&buf->b_hdr->b_l1hdr.b_freeze_lock); + ASSERT(HDR_HAS_L1HDR(hdr)); + + mutex_enter(&hdr->b_l1hdr.b_freeze_lock); + if (hdr->b_l1hdr.b_freeze_cksum == NULL || HDR_IO_ERROR(hdr)) { + mutex_exit(&hdr->b_l1hdr.b_freeze_lock); return; } - fletcher_2_native(buf->b_data, buf->b_hdr->b_size, NULL, &zc); - if (!ZIO_CHECKSUM_EQUAL(*buf->b_hdr->b_freeze_cksum, zc)) + fletcher_2_native(buf->b_data, HDR_GET_LSIZE(hdr), NULL, &zc); + if (!ZIO_CHECKSUM_EQUAL(*hdr->b_l1hdr.b_freeze_cksum, zc)) panic("buffer modified while frozen!"); - mutex_exit(&buf->b_hdr->b_l1hdr.b_freeze_lock); + mutex_exit(&hdr->b_l1hdr.b_freeze_lock); } -static int -arc_cksum_equal(arc_buf_t *buf) +static boolean_t +arc_cksum_is_equal(arc_buf_hdr_t *hdr, zio_t *zio) { - zio_cksum_t zc; - int equal; + enum zio_compress compress = BP_GET_COMPRESS(zio->io_bp); + boolean_t valid_cksum; - mutex_enter(&buf->b_hdr->b_l1hdr.b_freeze_lock); - fletcher_2_native(buf->b_data, buf->b_hdr->b_size, NULL, &zc); - equal = ZIO_CHECKSUM_EQUAL(*buf->b_hdr->b_freeze_cksum, zc); - mutex_exit(&buf->b_hdr->b_l1hdr.b_freeze_lock); + ASSERT(!BP_IS_EMBEDDED(zio->io_bp)); + VERIFY3U(BP_GET_PSIZE(zio->io_bp), ==, HDR_GET_PSIZE(hdr)); + + /* + * We rely on the blkptr's checksum to determine if the block + * is valid or not. When compressed arc is enabled, the l2arc + * writes the block to the l2arc just as it appears in the pool. + * This allows us to use the blkptr's checksum to validate the + * data that we just read off of the l2arc without having to store + * a separate checksum in the arc_buf_hdr_t. However, if compressed + * arc is disabled, then the data written to the l2arc is always + * uncompressed and won't match the block as it exists in the main + * pool. When this is the case, we must first compress it if it is + * compressed on the main pool before we can validate the checksum. + */ + if (!HDR_COMPRESSION_ENABLED(hdr) && compress != ZIO_COMPRESS_OFF) { + ASSERT3U(HDR_GET_COMPRESS(hdr), ==, ZIO_COMPRESS_OFF); + uint64_t lsize = HDR_GET_LSIZE(hdr); + uint64_t csize; + + void *cbuf = zio_buf_alloc(HDR_GET_PSIZE(hdr)); + csize = zio_compress_data(compress, zio->io_data, cbuf, lsize); + ASSERT3U(csize, <=, HDR_GET_PSIZE(hdr)); + if (csize < HDR_GET_PSIZE(hdr)) { + /* + * Compressed blocks are always a multiple of the + * smallest ashift in the pool. Ideally, we would + * like to round up the csize to the next + * spa_min_ashift but that value may have changed + * since the block was last written. Instead, + * we rely on the fact that the hdr's psize + * was set to the psize of the block when it was + * last written. We set the csize to that value + * and zero out any part that should not contain + * data. + */ + bzero((char *)cbuf + csize, HDR_GET_PSIZE(hdr) - csize); + csize = HDR_GET_PSIZE(hdr); + } + zio_push_transform(zio, cbuf, csize, HDR_GET_PSIZE(hdr), NULL); + } - return (equal); + /* + * Block pointers always store the checksum for the logical data. + * If the block pointer has the gang bit set, then the checksum + * it represents is for the reconstituted data and not for an + * individual gang member. The zio pipeline, however, must be able to + * determine the checksum of each of the gang constituents so it + * treats the checksum comparison differently than what we need + * for l2arc blocks. This prevents us from using the + * zio_checksum_error() interface directly. Instead we must call the + * zio_checksum_error_impl() so that we can ensure the checksum is + * generated using the correct checksum algorithm and accounts for the + * logical I/O size and not just a gang fragment. + */ + valid_cksum = (zio_checksum_error_impl(zio->io_spa, zio->io_bp, + BP_GET_CHECKSUM(zio->io_bp), zio->io_data, zio->io_size, + zio->io_offset, NULL) == 0); + zio_pop_transforms(zio); + return (valid_cksum); } static void -arc_cksum_compute(arc_buf_t *buf, boolean_t force) +arc_cksum_compute(arc_buf_t *buf) { - if (!force && !(zfs_flags & ZFS_DEBUG_MODIFY)) + arc_buf_hdr_t *hdr = buf->b_hdr; + + if (!(zfs_flags & ZFS_DEBUG_MODIFY)) return; + ASSERT(HDR_HAS_L1HDR(hdr)); mutex_enter(&buf->b_hdr->b_l1hdr.b_freeze_lock); - if (buf->b_hdr->b_freeze_cksum != NULL) { - mutex_exit(&buf->b_hdr->b_l1hdr.b_freeze_lock); + if (hdr->b_l1hdr.b_freeze_cksum != NULL) { + mutex_exit(&hdr->b_l1hdr.b_freeze_lock); return; } - buf->b_hdr->b_freeze_cksum = kmem_alloc(sizeof (zio_cksum_t), KM_SLEEP); - fletcher_2_native(buf->b_data, buf->b_hdr->b_size, - NULL, buf->b_hdr->b_freeze_cksum); - mutex_exit(&buf->b_hdr->b_l1hdr.b_freeze_lock); + hdr->b_l1hdr.b_freeze_cksum = kmem_alloc(sizeof (zio_cksum_t), + KM_SLEEP); + fletcher_2_native(buf->b_data, HDR_GET_LSIZE(hdr), NULL, + hdr->b_l1hdr.b_freeze_cksum); + mutex_exit(&hdr->b_l1hdr.b_freeze_lock); arc_buf_watch(buf); } @@ -1451,7 +1569,7 @@ arc_buf_watch(arc_buf_t *buf) procctl_t ctl; ctl.cmd = PCWATCH; ctl.prwatch.pr_vaddr = (uintptr_t)buf->b_data; - ctl.prwatch.pr_size = buf->b_hdr->b_size; + ctl.prwatch.pr_size = HDR_GET_LSIZE(buf->b_hdr); ctl.prwatch.pr_wflags = WA_WRITE; result = write(arc_procfd, &ctl, sizeof (ctl)); ASSERT3U(result, ==, sizeof (ctl)); @@ -1462,11 +1580,14 @@ arc_buf_watch(arc_buf_t *buf) static arc_buf_contents_t arc_buf_type(arc_buf_hdr_t *hdr) { + arc_buf_contents_t type; if (HDR_ISTYPE_METADATA(hdr)) { - return (ARC_BUFC_METADATA); + type = ARC_BUFC_METADATA; } else { - return (ARC_BUFC_DATA); + type = ARC_BUFC_DATA; } + VERIFY3U(hdr->b_type, ==, type); + return (type); } static uint32_t @@ -1488,29 +1609,29 @@ arc_bufc_to_flags(arc_buf_contents_t typ void arc_buf_thaw(arc_buf_t *buf) { + arc_buf_hdr_t *hdr = buf->b_hdr; + if (zfs_flags & ZFS_DEBUG_MODIFY) { - if (buf->b_hdr->b_l1hdr.b_state != arc_anon) + if (hdr->b_l1hdr.b_state != arc_anon) panic("modifying non-anon buffer!"); - if (HDR_IO_IN_PROGRESS(buf->b_hdr)) + if (HDR_IO_IN_PROGRESS(hdr)) panic("modifying buffer while i/o in progress!"); arc_cksum_verify(buf); } - mutex_enter(&buf->b_hdr->b_l1hdr.b_freeze_lock); - if (buf->b_hdr->b_freeze_cksum != NULL) { - kmem_free(buf->b_hdr->b_freeze_cksum, sizeof (zio_cksum_t)); - buf->b_hdr->b_freeze_cksum = NULL; - } + ASSERT(HDR_HAS_L1HDR(hdr)); + arc_cksum_free(hdr); + mutex_enter(&hdr->b_l1hdr.b_freeze_lock); #ifdef ZFS_DEBUG if (zfs_flags & ZFS_DEBUG_MODIFY) { - if (buf->b_hdr->b_l1hdr.b_thawed != NULL) - kmem_free(buf->b_hdr->b_l1hdr.b_thawed, 1); - buf->b_hdr->b_l1hdr.b_thawed = kmem_alloc(1, KM_SLEEP); + if (hdr->b_l1hdr.b_thawed != NULL) + kmem_free(hdr->b_l1hdr.b_thawed, 1); + hdr->b_l1hdr.b_thawed = kmem_alloc(1, KM_SLEEP); } #endif - mutex_exit(&buf->b_hdr->b_l1hdr.b_freeze_lock); + mutex_exit(&hdr->b_l1hdr.b_freeze_lock); arc_buf_unwatch(buf); } @@ -1518,53 +1639,246 @@ arc_buf_thaw(arc_buf_t *buf) void arc_buf_freeze(arc_buf_t *buf) { + arc_buf_hdr_t *hdr = buf->b_hdr; kmutex_t *hash_lock; if (!(zfs_flags & ZFS_DEBUG_MODIFY)) return; - hash_lock = HDR_LOCK(buf->b_hdr); + hash_lock = HDR_LOCK(hdr); mutex_enter(hash_lock); - ASSERT(buf->b_hdr->b_freeze_cksum != NULL || - buf->b_hdr->b_l1hdr.b_state == arc_anon); - arc_cksum_compute(buf, B_FALSE); + ASSERT(HDR_HAS_L1HDR(hdr)); + ASSERT(hdr->b_l1hdr.b_freeze_cksum != NULL || + hdr->b_l1hdr.b_state == arc_anon); + arc_cksum_compute(buf); mutex_exit(hash_lock); } +/* + * The arc_buf_hdr_t's b_flags should never be modified directly. Instead, + * the following functions should be used to ensure that the flags are + * updated in a thread-safe way. When manipulating the flags either + * the hash_lock must be held or the hdr must be undiscoverable. This + * ensures that we're not racing with any other threads when updating + * the flags. + */ +static inline void +arc_hdr_set_flags(arc_buf_hdr_t *hdr, arc_flags_t flags) +{ + ASSERT(MUTEX_HELD(HDR_LOCK(hdr)) || HDR_EMPTY(hdr)); + hdr->b_flags |= flags; +} + +static inline void +arc_hdr_clear_flags(arc_buf_hdr_t *hdr, arc_flags_t flags) +{ + ASSERT(MUTEX_HELD(HDR_LOCK(hdr)) || HDR_EMPTY(hdr)); + hdr->b_flags &= ~flags; +} + +/* + * Setting the compression bits in the arc_buf_hdr_t's b_flags is + * done in a special way since we have to clear and set bits + * at the same time. Consumers that wish to set the compression bits + * must use this function to ensure that the flags are updated in + * thread-safe manner. + */ +static void +arc_hdr_set_compress(arc_buf_hdr_t *hdr, enum zio_compress cmp) +{ + ASSERT(MUTEX_HELD(HDR_LOCK(hdr)) || HDR_EMPTY(hdr)); + + /* + * Holes and embedded blocks will always have a psize = 0 so + * we ignore the compression of the blkptr and set the + * arc_buf_hdr_t's compression to ZIO_COMPRESS_OFF. + * Holes and embedded blocks remain anonymous so we don't + * want to uncompress them. Mark them as uncompressed. + */ + if (!zfs_compressed_arc_enabled || HDR_GET_PSIZE(hdr) == 0) { + arc_hdr_clear_flags(hdr, ARC_FLAG_COMPRESSED_ARC); + HDR_SET_COMPRESS(hdr, ZIO_COMPRESS_OFF); + ASSERT(!HDR_COMPRESSION_ENABLED(hdr)); + ASSERT3U(HDR_GET_COMPRESS(hdr), ==, ZIO_COMPRESS_OFF); + } else { + arc_hdr_set_flags(hdr, ARC_FLAG_COMPRESSED_ARC); + HDR_SET_COMPRESS(hdr, cmp); + ASSERT3U(HDR_GET_COMPRESS(hdr), ==, cmp); + ASSERT(HDR_COMPRESSION_ENABLED(hdr)); + } +} + +static int +arc_decompress(arc_buf_t *buf) +{ + arc_buf_hdr_t *hdr = buf->b_hdr; + dmu_object_byteswap_t bswap = hdr->b_l1hdr.b_byteswap; + int error; + + if (arc_buf_is_shared(buf)) { + ASSERT3U(HDR_GET_COMPRESS(hdr), ==, ZIO_COMPRESS_OFF); + } else if (HDR_GET_COMPRESS(hdr) == ZIO_COMPRESS_OFF) { + /* + * The arc_buf_hdr_t is either not compressed or is + * associated with an embedded block or a hole in which + * case they remain anonymous. + */ + IMPLY(HDR_COMPRESSION_ENABLED(hdr), HDR_GET_PSIZE(hdr) == 0 || + HDR_GET_PSIZE(hdr) == HDR_GET_LSIZE(hdr)); + ASSERT(!HDR_SHARED_DATA(hdr)); + bcopy(hdr->b_l1hdr.b_pdata, buf->b_data, HDR_GET_LSIZE(hdr)); + } else { + ASSERT(!HDR_SHARED_DATA(hdr)); + ASSERT3U(HDR_GET_LSIZE(hdr), !=, HDR_GET_PSIZE(hdr)); + error = zio_decompress_data(HDR_GET_COMPRESS(hdr), + hdr->b_l1hdr.b_pdata, buf->b_data, HDR_GET_PSIZE(hdr), + HDR_GET_LSIZE(hdr)); + if (error != 0) { + zfs_dbgmsg("hdr %p, compress %d, psize %d, lsize %d", + hdr, HDR_GET_COMPRESS(hdr), HDR_GET_PSIZE(hdr), + HDR_GET_LSIZE(hdr)); + return (SET_ERROR(EIO)); + } + } + if (bswap != DMU_BSWAP_NUMFUNCS) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Jul 18 06:57:25 2016 Return-Path: Delivered-To: svn-src-all@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 7EA9CB9C6D9; Mon, 18 Jul 2016 06:57:25 +0000 (UTC) (envelope-from avg@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 56AB11890; Mon, 18 Jul 2016 06:57:25 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I6vOYI008315; Mon, 18 Jul 2016 06:57:24 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I6vO1f008313; Mon, 18 Jul 2016 06:57:24 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607180657.u6I6vO1f008313@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 18 Jul 2016 06:57:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r302991 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor-sys/illumos/dist/uts/common/fs/zfs/sys vendor/illumos/dist/cmd/zdb vendor/illumos/dist/cmd/ztest X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 06:57:25 -0000 Author: avg Date: Mon Jul 18 06:57:24 2016 New Revision: 302991 URL: https://svnweb.freebsd.org/changeset/base/302991 Log: 6950 ARC should cache compressed data illumos/illumos-gate@dcbf3bd6a1f1360fc1afcee9e22c6dcff7844bf2 https://github.com/illumos/illumos-gate/commit/dcbf3bd6a1f1360fc1afcee9e22c6dcff7844bf2 https://www.illumos.org/issues/6950 When reading compressed data from disk, the ARC should keep the compressed block cached and only decompress it when consumers access the block. The uncompressed data should be short-lived allowing the ARC to cache a much larger amount of data. The DMU would also maintain a smaller cache of uncompressed blocks to minimize the impact of decompressing frequently accessed blocks. Reviewed by: Prakash Surya Reviewed by: Dan Kimmel Reviewed by: Matt Ahrens Reviewed by: Paul Dagnelie Reviewed by: Don Brady Reviewed by: Richard Elling Approved by: Richard Lowe Author: George Wilson Modified: vendor/illumos/dist/cmd/zdb/zdb.c vendor/illumos/dist/cmd/ztest/ztest.c Changes in other areas also in this revision: Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c vendor-sys/illumos/dist/uts/common/fs/zfs/dmu.c vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_diff.c vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_send.c vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_traverse.c vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c vendor-sys/illumos/dist/uts/common/fs/zfs/dnode_sync.c vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c vendor-sys/illumos/dist/uts/common/fs/zfs/refcount.c vendor-sys/illumos/dist/uts/common/fs/zfs/sys/arc.h vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dbuf.h vendor-sys/illumos/dist/uts/common/fs/zfs/sys/refcount.h vendor-sys/illumos/dist/uts/common/fs/zfs/sys/spa.h vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zio.h vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zio_checksum.h vendor-sys/illumos/dist/uts/common/fs/zfs/zil.c vendor-sys/illumos/dist/uts/common/fs/zfs/zio.c vendor-sys/illumos/dist/uts/common/fs/zfs/zio_checksum.c Modified: vendor/illumos/dist/cmd/zdb/zdb.c ============================================================================== --- vendor/illumos/dist/cmd/zdb/zdb.c Mon Jul 18 06:47:08 2016 (r302990) +++ vendor/illumos/dist/cmd/zdb/zdb.c Mon Jul 18 06:57:24 2016 (r302991) @@ -1262,7 +1262,7 @@ visit_indirect(spa_t *spa, const dnode_p } if (!err) ASSERT3U(fill, ==, BP_GET_FILL(bp)); - (void) arc_buf_remove_ref(buf, &buf); + arc_buf_destroy(buf, &buf); } return (err); Modified: vendor/illumos/dist/cmd/ztest/ztest.c ============================================================================== --- vendor/illumos/dist/cmd/ztest/ztest.c Mon Jul 18 06:47:08 2016 (r302990) +++ vendor/illumos/dist/cmd/ztest/ztest.c Mon Jul 18 06:57:24 2016 (r302991) @@ -187,6 +187,7 @@ extern uint64_t metaslab_gang_bang; extern uint64_t metaslab_df_alloc_threshold; extern uint64_t zfs_deadman_synctime_ms; extern int metaslab_preload_limit; +extern boolean_t zfs_compressed_arc_enabled; static ztest_shared_opts_t *ztest_shared_opts; static ztest_shared_opts_t ztest_opts; @@ -5353,6 +5354,12 @@ ztest_resume_thread(void *arg) if (spa_suspended(spa)) ztest_resume(spa); (void) poll(NULL, 0, 100); + + /* + * Periodically change the zfs_compressed_arc_enabled setting. + */ + if (ztest_random(10) == 0) + zfs_compressed_arc_enabled = ztest_random(2); } return (NULL); } From owner-svn-src-all@freebsd.org Mon Jul 18 06:58:40 2016 Return-Path: Delivered-To: svn-src-all@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 AED93B9C781; Mon, 18 Jul 2016 06:58:40 +0000 (UTC) (envelope-from avg@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 7B8611B83; Mon, 18 Jul 2016 06:58:40 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I6wdmK008404; Mon, 18 Jul 2016 06:58:39 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I6wd0F008403; Mon, 18 Jul 2016 06:58:39 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607180658.u6I6wd0F008403@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 18 Jul 2016 06:58:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r302992 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 06:58:40 -0000 Author: avg Date: Mon Jul 18 06:58:39 2016 New Revision: 302992 URL: https://svnweb.freebsd.org/changeset/base/302992 Log: 7071 lzc_snapshot does not fill in errlist on ENOENT illumos/illumos-gate@25f7d993adbfb3452ac4625b3791670746d35ae3 https://github.com/illumos/illumos-gate/commit/25f7d993adbfb3452ac4625b3791670746d35ae3 https://www.illumos.org/issues/7071 upstream DLPX-40482 lzc_snapshot does not fill in errlist on ENOENT Reviewed by: Igor Kozhukhov Reviewed by: George Wilson Reviewed by: Dan Kimmel Approved by: Robert Mustacchi Author: Matthew Ahrens Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Mon Jul 18 06:57:24 2016 (r302991) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c Mon Jul 18 06:58:39 2016 (r302992) @@ -491,6 +491,14 @@ zfs_secpolicy_write_perms(const char *na dsl_dataset_t *ds; dsl_pool_t *dp; + /* + * First do a quick check for root in the global zone, which + * is allowed to do all write_perms. This ensures that zfs_ioc_* + * will get to handle nonexistent datasets. + */ + if (INGLOBALZONE(curproc) && secpolicy_zfs(cr) == 0) + return (0); + error = dsl_pool_hold(name, FTAG, &dp); if (error != 0) return (error); From owner-svn-src-all@freebsd.org Mon Jul 18 07:03:40 2016 Return-Path: Delivered-To: svn-src-all@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 8D596B9C909; Mon, 18 Jul 2016 07:03:40 +0000 (UTC) (envelope-from avg@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 512A51F7C; Mon, 18 Jul 2016 07:03:40 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I73dGX012171; Mon, 18 Jul 2016 07:03:39 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I73dIi012166; Mon, 18 Jul 2016 07:03:39 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607180703.u6I73dIi012166@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 18 Jul 2016 07:03:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r302993 - in vendor-sys/illumos/dist/uts/common: fs/zfs fs/zfs/sys sys/fs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 07:03:40 -0000 Author: avg Date: Mon Jul 18 07:03:39 2016 New Revision: 302993 URL: https://svnweb.freebsd.org/changeset/base/302993 Log: 7104 increase indirect block size illumos/illumos-gate@4b5c8e93cab28d3c65ba9d407fd8f46e3be1db1c https://github.com/illumos/illumos-gate/commit/4b5c8e93cab28d3c65ba9d407fd8f46e3be1db1c https://www.illumos.org/issues/7104 The current default indirect block size is 16KB. We can improve performance by increasing it to 128KB. This is especially helpful for any workload that needs to read most of the metadata, e.g. scrub/resilver, file deletion, filesystem deletion, and zfs send. We also need to fix a few space estimation errors to make the tests pass. Reviewed by: George Wilson Reviewed by: Paul Dagnelie Reviewed by: Dan McDonald Approved by: Robert Mustacchi Author: Matthew Ahrens Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c vendor-sys/illumos/dist/uts/common/fs/zfs/spa_misc.c vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dnode.h vendor-sys/illumos/dist/uts/common/sys/fs/zfs.h Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c Mon Jul 18 06:58:39 2016 (r302992) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c Mon Jul 18 07:03:39 2016 (r302993) @@ -787,11 +787,17 @@ dmu_objset_create_impl(spa_t *spa, dsl_d /* * Determine the number of levels necessary for the meta-dnode - * to contain DN_MAX_OBJECT dnodes. + * to contain DN_MAX_OBJECT dnodes. Note that in order to + * ensure that we do not overflow 64 bits, there has to be + * a nlevels that gives us a number of blocks > DN_MAX_OBJECT + * but < 2^64. Therefore, + * (mdn->dn_indblkshift - SPA_BLKPTRSHIFT) (10) must be + * less than (64 - log2(DN_MAX_OBJECT)) (16). */ - while ((uint64_t)mdn->dn_nblkptr << (mdn->dn_datablkshift + + while ((uint64_t)mdn->dn_nblkptr << + (mdn->dn_datablkshift - DNODE_SHIFT + (levels - 1) * (mdn->dn_indblkshift - SPA_BLKPTRSHIFT)) < - DN_MAX_OBJECT * sizeof (dnode_phys_t)) + DN_MAX_OBJECT) levels++; mdn->dn_next_nlevels[tx->tx_txg & TXG_MASK] = Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/spa_misc.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/spa_misc.c Mon Jul 18 06:58:39 2016 (r302992) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/spa_misc.c Mon Jul 18 07:03:39 2016 (r302993) @@ -341,9 +341,14 @@ int spa_asize_inflation = 24; * it is possible to run the pool completely out of space, causing it to * be permanently read-only. * + * Note that on very small pools, the slop space will be larger than + * 3.2%, in an effort to have it be at least spa_min_slop (128MB), + * but we never allow it to be more than half the pool size. + * * See also the comments in zfs_space_check_t. */ int spa_slop_shift = 5; +uint64_t spa_min_slop = 128 * 1024 * 1024; /* * ========================================================================== @@ -1637,14 +1642,16 @@ spa_get_asize(spa_t *spa, uint64_t lsize /* * Return the amount of slop space in bytes. It is 1/32 of the pool (3.2%), - * or at least 32MB. + * or at least 128MB, unless that would cause it to be more than half the + * pool size. * * See the comment above spa_slop_shift for details. */ uint64_t -spa_get_slop_space(spa_t *spa) { +spa_get_slop_space(spa_t *spa) +{ uint64_t space = spa_get_dspace(spa); - return (MAX(space >> spa_slop_shift, SPA_MINDEVSIZE >> 1)); + return (MAX(space >> spa_slop_shift, MIN(space >> 1, spa_min_slop))); } uint64_t Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dnode.h ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dnode.h Mon Jul 18 06:58:39 2016 (r302992) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dnode.h Mon Jul 18 07:03:39 2016 (r302993) @@ -58,7 +58,7 @@ extern "C" { */ #define DNODE_SHIFT 9 /* 512 bytes */ #define DN_MIN_INDBLKSHIFT 12 /* 4k */ -#define DN_MAX_INDBLKSHIFT 14 /* 16k */ +#define DN_MAX_INDBLKSHIFT 17 /* 128k */ #define DNODE_BLOCK_SHIFT 14 /* 16k */ #define DNODE_CORE_SIZE 64 /* 64 bytes for dnode sans blkptrs */ #define DN_MAX_OBJECT_SHIFT 48 /* 256 trillion (zfs_fid_t limit) */ @@ -88,6 +88,11 @@ extern "C" { #define DNODES_PER_BLOCK_SHIFT (DNODE_BLOCK_SHIFT - DNODE_SHIFT) #define DNODES_PER_BLOCK (1ULL << DNODES_PER_BLOCK_SHIFT) + +/* + * This is inaccurate if the indblkshift of the particular object is not the + * max. But it's only used by userland to calculate the zvol reservation. + */ #define DNODES_PER_LEVEL_SHIFT (DN_MAX_INDBLKSHIFT - SPA_BLKPTRSHIFT) #define DNODES_PER_LEVEL (1ULL << DNODES_PER_LEVEL_SHIFT) Modified: vendor-sys/illumos/dist/uts/common/sys/fs/zfs.h ============================================================================== --- vendor-sys/illumos/dist/uts/common/sys/fs/zfs.h Mon Jul 18 06:58:39 2016 (r302992) +++ vendor-sys/illumos/dist/uts/common/sys/fs/zfs.h Mon Jul 18 07:03:39 2016 (r302993) @@ -600,6 +600,8 @@ typedef struct zpool_rewind_policy { /* * This is needed in userland to report the minimum necessary device size. + * + * Note that the zfs test suite uses 64MB vdevs. */ #define SPA_MINDEVSIZE (64ULL << 20) From owner-svn-src-all@freebsd.org Mon Jul 18 07:06:45 2016 Return-Path: Delivered-To: svn-src-all@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 80DA1B9CA2F; Mon, 18 Jul 2016 07:06:45 +0000 (UTC) (envelope-from avg@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 4BDC21279; Mon, 18 Jul 2016 07:06:45 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I76iIc012325; Mon, 18 Jul 2016 07:06:44 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I76i1u012324; Mon, 18 Jul 2016 07:06:44 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607180706.u6I76i1u012324@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Mon, 18 Jul 2016 07:06:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r302994 - stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 07:06:45 -0000 Author: avg Date: Mon Jul 18 07:06:44 2016 New Revision: 302994 URL: https://svnweb.freebsd.org/changeset/base/302994 Log: MFC r302772: re-apply r299908: zfsctl_snapdir_lookup: clear VV_ROOT of snapshot's root The change has been undone in r301275 on the assumption that it was no longer required. But that was incorrect, because in this case (and only in this case) the snapshot root vnode is looked up before z_parent is fixed up. Approved by: re (delphij) Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c ============================================================================== --- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Mon Jul 18 07:03:39 2016 (r302993) +++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Mon Jul 18 07:06:44 2016 (r302994) @@ -1125,6 +1125,7 @@ domount: */ ASSERT(VTOZ(*vpp)->z_zfsvfs != zfsvfs); VTOZ(*vpp)->z_zfsvfs->z_parent = zfsvfs; + (*vpp)->v_flag &= ~VROOT; } ZFS_EXIT(zfsvfs); From owner-svn-src-all@freebsd.org Mon Jul 18 08:20:33 2016 Return-Path: Delivered-To: svn-src-all@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 35726B9C1E9; Mon, 18 Jul 2016 08:20:33 +0000 (UTC) (envelope-from jch@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 DD404141A; Mon, 18 Jul 2016 08:20:32 +0000 (UTC) (envelope-from jch@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I8KWX0037799; Mon, 18 Jul 2016 08:20:32 GMT (envelope-from jch@FreeBSD.org) Received: (from jch@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I8KVfd037797; Mon, 18 Jul 2016 08:20:31 GMT (envelope-from jch@FreeBSD.org) Message-Id: <201607180820.u6I8KVfd037797@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jch set sender to jch@FreeBSD.org using -f From: Julien Charbon Date: Mon, 18 Jul 2016 08:20:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r302995 - stable/10/sys/netinet X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 08:20:33 -0000 Author: jch Date: Mon Jul 18 08:20:31 2016 New Revision: 302995 URL: https://svnweb.freebsd.org/changeset/base/302995 Log: MFC r261242: Decrease lock contention within the TCP accept case by removing the INP_INFO lock from tcp_usr_accept. As the PR/patch states this was following the advice already in the code. See the PR below for a full discussion of this change and its measured effects. PR: 183659 Submitted by: Julien Charbon Reviewed by: jhb Modified: stable/10/sys/netinet/tcp_syncache.c stable/10/sys/netinet/tcp_usrreq.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/netinet/tcp_syncache.c ============================================================================== --- stable/10/sys/netinet/tcp_syncache.c Mon Jul 18 07:06:44 2016 (r302994) +++ stable/10/sys/netinet/tcp_syncache.c Mon Jul 18 08:20:31 2016 (r302995) @@ -683,7 +683,7 @@ syncache_socket(struct syncache *sc, str * connection when the SYN arrived. If we can't create * the connection, abort it. */ - so = sonewconn(lso, SS_ISCONNECTED); + so = sonewconn(lso, 0); if (so == NULL) { /* * Drop the connection; we will either send a RST or @@ -922,6 +922,8 @@ syncache_socket(struct syncache *sc, str INP_WUNLOCK(inp); + soisconnected(so); + TCPSTAT_INC(tcps_accepts); return (so); Modified: stable/10/sys/netinet/tcp_usrreq.c ============================================================================== --- stable/10/sys/netinet/tcp_usrreq.c Mon Jul 18 07:06:44 2016 (r302994) +++ stable/10/sys/netinet/tcp_usrreq.c Mon Jul 18 08:20:31 2016 (r302995) @@ -643,13 +643,6 @@ out: /* * Accept a connection. Essentially all the work is done at higher levels; * just return the address of the peer, storing through addr. - * - * The rationale for acquiring the tcbinfo lock here is somewhat complicated, - * and is described in detail in the commit log entry for r175612. Acquiring - * it delays an accept(2) racing with sonewconn(), which inserts the socket - * before the inpcb address/port fields are initialized. A better fix would - * prevent the socket from being placed in the listen queue until all fields - * are fully initialized. */ static int tcp_usr_accept(struct socket *so, struct sockaddr **nam) @@ -666,7 +659,6 @@ tcp_usr_accept(struct socket *so, struct inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp_usr_accept: inp == NULL")); - INP_INFO_RLOCK(&V_tcbinfo); INP_WLOCK(inp); if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = ECONNABORTED; @@ -686,7 +678,6 @@ tcp_usr_accept(struct socket *so, struct out: TCPDEBUG2(PRU_ACCEPT); INP_WUNLOCK(inp); - INP_INFO_RUNLOCK(&V_tcbinfo); if (error == 0) *nam = in_sockaddr(port, &addr); return error; From owner-svn-src-all@freebsd.org Mon Jul 18 08:53:58 2016 Return-Path: Delivered-To: svn-src-all@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 42E5AB9CEF6; Mon, 18 Jul 2016 08:53:58 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (glebi.us [96.95.210.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 1C00115B0; Mon, 18 Jul 2016 08:53:57 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id u6I8ruKx087536 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 18 Jul 2016 01:53:57 -0700 (PDT) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id u6I8rugV087535; Mon, 18 Jul 2016 01:53:56 -0700 (PDT) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@FreeBSD.org using -f Date: Mon, 18 Jul 2016 01:53:56 -0700 From: Gleb Smirnoff To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r302894 - head/sys/kern Message-ID: <20160718085356.GO1076@FreeBSD.org> References: <201607150928.u6F9SW3h065100@repo.freebsd.org> <23f60f35-db99-ea20-837b-becd9c5c1887@selasky.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <23f60f35-db99-ea20-837b-becd9c5c1887@selasky.org> User-Agent: Mutt/1.6.1 (2016-04-27) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 08:53:58 -0000 On Fri, Jul 15, 2016 at 04:29:45PM +0200, Hans Petter Selasky wrote: H> On 07/15/16 11:28, Gleb Smirnoff wrote: H> > Author: glebius H> > Date: Fri Jul 15 09:28:32 2016 H> > New Revision: 302894 H> > URL: https://svnweb.freebsd.org/changeset/base/302894 H> > H> > Log: H> > Fix regression introduced by r302350. The change of return value for a H> > callout that wasn't scheduled at all was unintentional and yielded in H> > several panics. H> > H> > PR: 210884 H> > H> > Modified: H> > head/sys/kern/kern_timeout.c H> > H> > Modified: head/sys/kern/kern_timeout.c H> > ============================================================================== H> > --- head/sys/kern/kern_timeout.c Fri Jul 15 09:23:18 2016 (r302893) H> > +++ head/sys/kern/kern_timeout.c Fri Jul 15 09:28:32 2016 (r302894) H> > @@ -1381,7 +1381,7 @@ again: H> > CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", H> > c, c->c_func, c->c_arg); H> > CC_UNLOCK(cc); H> > - return (cancelled); H> > + return (0); H> > } H> > H> > c->c_iflags &= ~CALLOUT_PENDING; H> > H> > H> H> Hi, H> H> I think r302894 and r302350 changes the return value of the following H> case, which is not described in the commit message? Is this also a H> regression? H> H> In this revision: H> > https://svnweb.freebsd.org/base/head/sys/kern/kern_timeout.c?view=markup&pathrev=296320 H> H> Assume we enter _callout_stop_safe() having the following assertions: H> H> (c->c_iflags & CALLOUT_PENDING) == 0 (satisfied) H> cc_exec_curr(cc, direct) != c (satisfied) H> H> Then we exit returning (-1). H> H> In this revision: H> > https://svnweb.freebsd.org/base/head/sys/kern/kern_timeout.c?view=markup&pathrev=296320#l1253 H> H> After your changes, entering the same function under the same conditions: H> H> cc_exec_curr(cc, direct) == c (not satisifed) H> (c->c_iflags & CALLOUT_PENDING) == 0 (satisfied) H> H> Then we exit returning (0). H> H> > https://svnweb.freebsd.org/base/head/sys/kern/kern_timeout.c?revision=302894&view=markup#l1384 H> H> If we call callout_stop() on a never scheduled callout, we now get a H> return value of 0 instead of -1, which by manual page definition is H> wrong ???? H> H> Am I wrong? Do others see this too? You are right, the new -1 value was introduced by you and rrs@ in the commit: ------------------------------------------------------------------------ r290664 | rrs | 2015-11-10 06:49:32 -0800 (вт, 10 ноÑб. 2015) | 6 lines Add new async_drain to the callout system. This is so-far not used but should be used by TCP for sure in its cleanup of the IN-PCB (will be coming shortly). Sponsored by: Netflix Inc. Differential Revision: https://reviews.freebsd.org/D4076 ------------------------------------------------------------------------ So commit not only extended the KPI, but also changed it. And I missed that, using stable/10 version as reference. -- Totus tuus, Glebius. From owner-svn-src-all@freebsd.org Mon Jul 18 09:26:07 2016 Return-Path: Delivered-To: svn-src-all@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 86437B9CD0F; Mon, 18 Jul 2016 09:26:07 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4B9E718C8; Mon, 18 Jul 2016 09:26:07 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I9Q6me063553; Mon, 18 Jul 2016 09:26:06 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I9Q6ak063552; Mon, 18 Jul 2016 09:26:06 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201607180926.u6I9Q6ak063552@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 18 Jul 2016 09:26:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302997 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 09:26:07 -0000 Author: glebius Date: Mon Jul 18 09:26:06 2016 New Revision: 302997 URL: https://svnweb.freebsd.org/changeset/base/302997 Log: Redo the r302894: the very new value for a non-scheduled callout is -1. This was recently added in r290664. Noticed by: hselasky PR: 210884 Modified: head/sys/kern/kern_timeout.c Modified: head/sys/kern/kern_timeout.c ============================================================================== --- head/sys/kern/kern_timeout.c Mon Jul 18 09:19:45 2016 (r302996) +++ head/sys/kern/kern_timeout.c Mon Jul 18 09:26:06 2016 (r302997) @@ -1381,7 +1381,7 @@ again: CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", c, c->c_func, c->c_arg); CC_UNLOCK(cc); - return (0); + return (-1); } c->c_iflags &= ~CALLOUT_PENDING; From owner-svn-src-all@freebsd.org Mon Jul 18 09:29:10 2016 Return-Path: Delivered-To: svn-src-all@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 4F4BDB9CE9A; Mon, 18 Jul 2016 09:29:10 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0F1C41BEB; Mon, 18 Jul 2016 09:29:09 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6I9T9DK063706; Mon, 18 Jul 2016 09:29:09 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6I9T9Uw063705; Mon, 18 Jul 2016 09:29:09 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201607180929.u6I9T9Uw063705@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 18 Jul 2016 09:29:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302998 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 09:29:10 -0000 Author: glebius Date: Mon Jul 18 09:29:08 2016 New Revision: 302998 URL: https://svnweb.freebsd.org/changeset/base/302998 Log: Revert the last commit. It must get more review and testing first. Modified: head/sys/kern/kern_timeout.c Modified: head/sys/kern/kern_timeout.c ============================================================================== --- head/sys/kern/kern_timeout.c Mon Jul 18 09:26:06 2016 (r302997) +++ head/sys/kern/kern_timeout.c Mon Jul 18 09:29:08 2016 (r302998) @@ -1381,7 +1381,7 @@ again: CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", c, c->c_func, c->c_arg); CC_UNLOCK(cc); - return (-1); + return (0); } c->c_iflags &= ~CALLOUT_PENDING; From owner-svn-src-all@freebsd.org Mon Jul 18 10:53:48 2016 Return-Path: Delivered-To: svn-src-all@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 EE0C3B99FA9; Mon, 18 Jul 2016 10:53:48 +0000 (UTC) (envelope-from kib@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 A74C31CD6; Mon, 18 Jul 2016 10:53:48 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IArlkh096492; Mon, 18 Jul 2016 10:53:47 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IArlUY096490; Mon, 18 Jul 2016 10:53:47 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607181053.u6IArlUY096490@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 18 Jul 2016 10:53:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r302999 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 10:53:49 -0000 Author: kib Date: Mon Jul 18 10:53:47 2016 New Revision: 302999 URL: https://svnweb.freebsd.org/changeset/base/302999 Log: The assertion re-added in r302614 was triggered when stopping signal is delivered to vforked child. Issue is that we avoid stopping such children in issignal() to not block parents. But executed AST, which ignored stops, leaves the child with the signal pending but no AST pending. On first exec after vfork(), call signotify() to handle pending reenabled signals. Adjust the assert to not check vfork children until exec. Reported and tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/sys/kern/kern_exec.c head/sys/kern/subr_trap.c Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Mon Jul 18 09:29:08 2016 (r302998) +++ head/sys/kern/kern_exec.c Mon Jul 18 10:53:47 2016 (r302999) @@ -760,6 +760,8 @@ interpret: if (p->p_flag & P_PPWAIT) { p->p_flag &= ~(P_PPWAIT | P_PPTRACE); cv_broadcast(&p->p_pwait); + /* STOPs are no longer ignored, arrange for AST */ + signotify(td); } /* Modified: head/sys/kern/subr_trap.c ============================================================================== --- head/sys/kern/subr_trap.c Mon Jul 18 09:29:08 2016 (r302998) +++ head/sys/kern/subr_trap.c Mon Jul 18 10:53:47 2016 (r302999) @@ -107,15 +107,20 @@ userret(struct thread *td, struct trapfr * multi-threaded processes, where signal distribution might * change due to other threads changing sigmask, the check is * racy and cannot be performed reliably. + * If current process is vfork child, indicated by P_PPWAIT, then + * issignal() ignores stops, so we block the check to avoid + * classifying pending signals. */ if (p->p_numthreads == 1) { PROC_LOCK(p); thread_lock(td); - KASSERT(!SIGPENDING(td) || - (td->td_flags & (TDF_NEEDSIGCHK | TDF_ASTPENDING)) == - (TDF_NEEDSIGCHK | TDF_ASTPENDING), - ("failed to set signal flags for ast p %p td %p fl %x", - p, td, td->td_flags)); + if ((p->p_flag & P_PPWAIT) == 0) { + KASSERT(!SIGPENDING(td) || (td->td_flags & + (TDF_NEEDSIGCHK | TDF_ASTPENDING)) == + (TDF_NEEDSIGCHK | TDF_ASTPENDING), + ("failed to set signal flags for ast p %p " + "td %p fl %x", p, td, td->td_flags)); + } thread_unlock(td); PROC_UNLOCK(p); } @@ -281,12 +286,15 @@ ast(struct trapframe *framep) * td_flags, since signal might have been delivered * after we cleared td_flags above. This is one of * the reason for looping check for AST condition. + * See comment in userret() about P_PPWAIT. */ - KASSERT(!SIGPENDING(td) || - (td->td_flags & (TDF_NEEDSIGCHK | TDF_ASTPENDING)) == - (TDF_NEEDSIGCHK | TDF_ASTPENDING), - ("failed2 to set signal flags for ast p %p td %p fl %x %x", - p, td, flags, td->td_flags)); + if ((p->p_flag & P_PPWAIT) == 0) { + KASSERT(!SIGPENDING(td) || (td->td_flags & + (TDF_NEEDSIGCHK | TDF_ASTPENDING)) == + (TDF_NEEDSIGCHK | TDF_ASTPENDING), + ("failed2 to set signal flags for ast p %p td %p " + "fl %x %x", p, td, flags, td->td_flags)); + } thread_unlock(td); PROC_UNLOCK(p); } From owner-svn-src-all@freebsd.org Mon Jul 18 14:25:18 2016 Return-Path: Delivered-To: svn-src-all@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 35534B9DABC for ; Mon, 18 Jul 2016 14:25:18 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: from mail-it0-x230.google.com (mail-it0-x230.google.com [IPv6:2607:f8b0:4001:c0b::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F354E12CE for ; Mon, 18 Jul 2016 14:25:17 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: by mail-it0-x230.google.com with SMTP id f6so75084751ith.0 for ; Mon, 18 Jul 2016 07:25:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sippysoft-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=XO4vw+7omxcJK7HtqU64jkw4YmvT3n0Nm6jDcapuD1o=; b=UZik9gNk0he9I+eeDGTsqGUsdIYeBUZazNLBwOp9LeOwZqHIzmSoH6TlMdR771M+WB k7Z8sNEDOIhOvJSufCciUlm/2z6/oNBfHtHFntrZwPmafBBUj2uiFYbXZk8amnOW/dIV 8DKw700kZWUJ7CepnFlM4ng9vIK4OT0roylY+4Lr+zLznrH0a31dAVfK14JPtkj7LC6z j3LRtVb7pkVbc0YSWL+HK1UYZA4HFIWHc9SIwW62uftrLRYR6WB/XM4/3oBlbCgWfMbX foj8EueavIgABuWWcfm1RTYZCVRG12Rze7kW6iWkigL9hi5y2ZmsSz8F+El01ka/HZu6 YNJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=XO4vw+7omxcJK7HtqU64jkw4YmvT3n0Nm6jDcapuD1o=; b=YMBO28JVW2HP+9PTQYUdM8Bbe8Cu8kkCpgis0iRT7+hDN5TncjYHPL6TxlIn/z2zjf /fqdc6aAq+evyK3qD63JRp+dwzpLAST8FXs+c309YbL5wznI3KOViB6slb7WoeRFk2hb h6WZvLiUeI9y+0b4xN3YF8L/I+IAS4pSC7a0ndE0jq2L2us6JURNQPOGK+BV/BdzyVgm FcDHNpq3xinVBrZJQHJmItCoJfAsn5u6zS0Ogdrs+u7lrzY9NMqP1e76skrqijqDXGV7 iQs+nZNOPYFS2D6mOGe9WpI1A+lda8JlpWK3qgfoDOgRrLoL0xWNCOtDsAgQ85AZFl8/ S3bA== X-Gm-Message-State: ALyK8tJXvWwzF3BX+UIHoXyAPoCjwCHqk6eFQBN4wOODTNtEoquMkbpU3M/eXHfIZvXIuhoMMiEx4rldWc1t5Qwo X-Received: by 10.36.90.79 with SMTP id v76mr33065129ita.16.1468851917008; Mon, 18 Jul 2016 07:25:17 -0700 (PDT) MIME-Version: 1.0 Sender: sobomax@sippysoft.com Received: by 10.36.59.193 with HTTP; Mon, 18 Jul 2016 07:24:42 -0700 (PDT) In-Reply-To: <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> References: <201607180500.u6I501CX063743@repo.freebsd.org> <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> From: Maxim Sobolev Date: Mon, 18 Jul 2016 07:24:42 -0700 X-Google-Sender-Auth: dzBhpS6fIDO95zMgElgDpQrwIP0 Message-ID: Subject: Re: svn commit: r302985 - head/sys/geom/label To: "Andrey V. Elsukov" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 14:25:18 -0000 Andrey, are you talking about this: --- r156299 | pjd | 2006-03-04 11:41:54 -0800 (=D1=81=D0=B1, 04 =D0=BC=D0=B0=D1= =80 2006) | 11 lines We need to check if file system size is equal to provider's size, because sysinstall(8) still bogusly puts first partition at offset 0 instead of 16, so glabel/ufs will find file system on slice instead of partition. Before sysinstall is fixed, we must keep this code, which means that we wont't be able to detect UFS file systems created with 'newfs -s ...'. PS. bsdlabel(8) creates partitions properly. MFC after: 3 days --- In which case this particular change has a better chance of working since it's not removing this check but making it less strict. Therefore it might attach to a wrong provider only if first UFS slice is the only one slice on partition (or if the other partition is very small - less than 256 blocks in size). In either of those cases I don't think it makes much difference if we are attaching to a slice or a partition. -Maxim On Sun, Jul 17, 2016 at 10:37 PM, Andrey V. Elsukov wrote: > On 18.07.16 08:00, Maxim Sobolev wrote: > > Author: sobomax > > Date: Mon Jul 18 05:00:01 2016 > > New Revision: 302985 > > URL: https://svnweb.freebsd.org/changeset/base/302985 > > > > Log: > > Relax checking if the privider size matches size recorded in the > > superblock, allowing provider to be bit bigger, i.e. have some > > extra padding after the FS image. That in some cases might be > > a side-effect of using CLOOP format which enforces certain block > > size and trying to compress image that is not exactly the number > > of those blocks in size. The UFS itself does not have any issues > > mounting such padded file systems, so it's what GEOM_LABEL should > > do. > > While you are thinking this is good fix, I expect that this change will > break many installations. This is not first time when this check was > changed. > > -- > WBR, Andrey V. Elsukov > > From owner-svn-src-all@freebsd.org Mon Jul 18 14:40:15 2016 Return-Path: Delivered-To: svn-src-all@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 6563DB9DF0B; Mon, 18 Jul 2016 14:40:15 +0000 (UTC) (envelope-from mav@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 3CAFA1CE9; Mon, 18 Jul 2016 14:40:14 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IEeDBb078315; Mon, 18 Jul 2016 14:40:13 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IEeDD3078314; Mon, 18 Jul 2016 14:40:13 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607181440.u6IEeDD3078314@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 18 Jul 2016 14:40:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303000 - head/sys/dev/vmware/vmxnet3 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 14:40:15 -0000 Author: mav Date: Mon Jul 18 14:40:13 2016 New Revision: 303000 URL: https://svnweb.freebsd.org/changeset/base/303000 Log: Update if_hwassist when interface options are changed. In particular for me this fixes checksum problem when if_bridge attached to the interface requests TXCSUM to be disabled, but effectively ignored. MFC after: 3 days Sponsored by: iXsystems, Inc. Modified: head/sys/dev/vmware/vmxnet3/if_vmx.c Modified: head/sys/dev/vmware/vmxnet3/if_vmx.c ============================================================================== --- head/sys/dev/vmware/vmxnet3/if_vmx.c Mon Jul 18 10:53:47 2016 (r302999) +++ head/sys/dev/vmware/vmxnet3/if_vmx.c Mon Jul 18 14:40:13 2016 (r303000) @@ -130,6 +130,7 @@ static int vmxnet3_alloc_queue_data(stru static void vmxnet3_free_queue_data(struct vmxnet3_softc *); static int vmxnet3_alloc_mcast_table(struct vmxnet3_softc *); static void vmxnet3_init_shared_data(struct vmxnet3_softc *); +static void vmxnet3_init_hwassist(struct vmxnet3_softc *); static void vmxnet3_reinit_interface(struct vmxnet3_softc *); static void vmxnet3_reinit_rss_shared_data(struct vmxnet3_softc *); static void vmxnet3_reinit_shared_data(struct vmxnet3_softc *); @@ -1583,6 +1584,24 @@ vmxnet3_init_shared_data(struct vmxnet3_ } static void +vmxnet3_init_hwassist(struct vmxnet3_softc *sc) +{ + struct ifnet *ifp = sc->vmx_ifp; + uint64_t hwassist; + + hwassist = 0; + if (ifp->if_capenable & IFCAP_TXCSUM) + hwassist |= VMXNET3_CSUM_OFFLOAD; + if (ifp->if_capenable & IFCAP_TXCSUM_IPV6) + hwassist |= VMXNET3_CSUM_OFFLOAD_IPV6; + if (ifp->if_capenable & IFCAP_TSO4) + hwassist |= CSUM_IP_TSO; + if (ifp->if_capenable & IFCAP_TSO6) + hwassist |= CSUM_IP6_TSO; + ifp->if_hwassist = hwassist; +} + +static void vmxnet3_reinit_interface(struct vmxnet3_softc *sc) { struct ifnet *ifp; @@ -1593,15 +1612,7 @@ vmxnet3_reinit_interface(struct vmxnet3_ bcopy(IF_LLADDR(sc->vmx_ifp), sc->vmx_lladdr, ETHER_ADDR_LEN); vmxnet3_set_lladdr(sc); - ifp->if_hwassist = 0; - if (ifp->if_capenable & IFCAP_TXCSUM) - ifp->if_hwassist |= VMXNET3_CSUM_OFFLOAD; - if (ifp->if_capenable & IFCAP_TXCSUM_IPV6) - ifp->if_hwassist |= VMXNET3_CSUM_OFFLOAD_IPV6; - if (ifp->if_capenable & IFCAP_TSO4) - ifp->if_hwassist |= CSUM_IP_TSO; - if (ifp->if_capenable & IFCAP_TSO6) - ifp->if_hwassist |= CSUM_IP6_TSO; + vmxnet3_init_hwassist(sc); } static void @@ -3284,6 +3295,8 @@ vmxnet3_ioctl(struct ifnet *ifp, u_long if (reinit && (ifp->if_drv_flags & IFF_DRV_RUNNING)) { ifp->if_drv_flags &= ~IFF_DRV_RUNNING; vmxnet3_init_locked(sc); + } else { + vmxnet3_init_hwassist(sc); } VMXNET3_CORE_UNLOCK(sc); From owner-svn-src-all@freebsd.org Mon Jul 18 14:53:57 2016 Return-Path: Delivered-To: svn-src-all@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 12382B9D2F9; Mon, 18 Jul 2016 14:53:57 +0000 (UTC) (envelope-from jhb@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 C439C16F2; Mon, 18 Jul 2016 14:53:56 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IErt4p085722; Mon, 18 Jul 2016 14:53:55 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IErtP6085715; Mon, 18 Jul 2016 14:53:55 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607181453.u6IErtP6085715@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 18 Jul 2016 14:53:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303001 - in head: lib/libc/sys sys/kern sys/sys tests/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 14:53:57 -0000 Author: jhb Date: Mon Jul 18 14:53:55 2016 New Revision: 303001 URL: https://svnweb.freebsd.org/changeset/base/303001 Log: Add PTRACE_VFORK to trace vfork events. First, PL_FLAG_FORKED events now also set a PL_FLAG_VFORKED flag when the new child was created via vfork() rather than fork(). Second, a new PL_FLAG_VFORK_DONE event can now be enabled via the PTRACE_VFORK event mask. This new stop is reported after the vfork parent resumes due to the child calling exit or exec. Debuggers can use this stop to reinsert breakpoints in the vfork parent process before it resumes. Reviewed by: kib MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D7045 Modified: head/lib/libc/sys/ptrace.2 head/sys/kern/kern_fork.c head/sys/kern/subr_syscall.c head/sys/kern/sys_process.c head/sys/sys/proc.h head/sys/sys/ptrace.h head/tests/sys/kern/ptrace_test.c Modified: head/lib/libc/sys/ptrace.2 ============================================================================== --- head/lib/libc/sys/ptrace.2 Mon Jul 18 14:40:13 2016 (r303000) +++ head/lib/libc/sys/ptrace.2 Mon Jul 18 14:53:55 2016 (r303001) @@ -2,7 +2,7 @@ .\" $NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $ .\" .\" This file is in the public domain. -.Dd July 15, 2016 +.Dd July 18, 2016 .Dt PTRACE 2 .Os .Sh NAME @@ -141,6 +141,11 @@ The process ID of the new child process .Va pl_child_pid member of .Vt "struct ptrace_lwpinfo" . +If the new child process was created via +.Xr vfork 2 , +the traced process's stop will also include the +.Dv PL_FLAG_VFORKED +flag. Note that new child processes will be attached with the default tracing event mask; they do not inherit the event mask of the traced process. @@ -163,6 +168,33 @@ Note that new processes do not report an initial thread, and exiting processes do not report an event for the termination of the last thread. +.It Dv PTRACE_VFORK +Report a stop event when a parent process resumes after a +.Xr vfork 2 . +.Pp +When a thread in the traced process creates a new child process via +.Xr vfork 2 , +the stop that reports +.Dv PL_FLAG_FORKED +and +.Dv PL_FLAG_SCX +occurs just after the child process is created, +but before the thread waits for the child process to stop sharing process +memory. +If a debugger is not tracing the new child process, +it must ensure that no breakpoints are enabled in the shared process +memory before detaching from the new child process. +This means that no breakpoints are enabled in the parent process either. +.Pp +The +.Dv PTRACE_VFORK +flag enables a new stop that indicates when the new child process stops +sharing the process memory of the parent process. +A debugger can reinsert breakpoints in the parent process and resume it +in response to this event. +This event is indicated by setting the +.Dv PL_FLAG_VFORK_DONE +flag. .El .Pp The default tracing event mask when attaching to a process via @@ -491,6 +523,16 @@ is enabled. Note that this event is not reported when the last LWP in a process exits. The termination of the last thread is reported via a normal process exit event. +.It PL_FLAG_VFORKED +Indicates that the thread is returning from a call to +.Xr vfork 2 +that created a new child process. +This flag is set in addition to +.Dv PL_FLAG_FORKED . +.It PL_FLAG_VFORK_DONE +Indicates that the thread has resumed after a child process created via +.Xr vfork 2 +has stopped sharing its address space with the traced process. .El .It pl_sigmask The current signal mask of the LWP Modified: head/sys/kern/kern_fork.c ============================================================================== --- head/sys/kern/kern_fork.c Mon Jul 18 14:40:13 2016 (r303000) +++ head/sys/kern/kern_fork.c Mon Jul 18 14:53:55 2016 (r303001) @@ -735,6 +735,7 @@ do_fork(struct thread *td, struct fork_r if (fr->fr_flags & RFPPWAIT) { td->td_pflags |= TDP_RFPPWAIT; td->td_rfppwait_p = p2; + td->td_dbgflags |= TDB_VFORK; } PROC_UNLOCK(p2); Modified: head/sys/kern/subr_syscall.c ============================================================================== --- head/sys/kern/subr_syscall.c Mon Jul 18 14:40:13 2016 (r303000) +++ head/sys/kern/subr_syscall.c Mon Jul 18 14:53:55 2016 (r303001) @@ -242,5 +242,13 @@ again: cv_timedwait(&p2->p_pwait, &p2->p_mtx, hz); } PROC_UNLOCK(p2); + + if (td->td_dbgflags & TDB_VFORK) { + PROC_LOCK(p); + if (p->p_ptevents & PTRACE_VFORK) + ptracestop(td, SIGTRAP); + td->td_dbgflags &= ~TDB_VFORK; + PROC_UNLOCK(p); + } } } Modified: head/sys/kern/sys_process.c ============================================================================== --- head/sys/kern/sys_process.c Mon Jul 18 14:40:13 2016 (r303000) +++ head/sys/kern/sys_process.c Mon Jul 18 14:53:55 2016 (r303001) @@ -993,7 +993,7 @@ kern_ptrace(struct thread *td, int req, } tmp = *(int *)addr; if ((tmp & ~(PTRACE_EXEC | PTRACE_SCE | PTRACE_SCX | - PTRACE_FORK | PTRACE_LWP)) != 0) { + PTRACE_FORK | PTRACE_LWP | PTRACE_VFORK)) != 0) { error = EINVAL; break; } @@ -1303,7 +1303,11 @@ kern_ptrace(struct thread *td, int req, if (td2->td_dbgflags & TDB_FORK) { pl->pl_flags |= PL_FLAG_FORKED; pl->pl_child_pid = td2->td_dbg_forked; - } + if (td2->td_dbgflags & TDB_VFORK) + pl->pl_flags |= PL_FLAG_VFORKED; + } else if ((td2->td_dbgflags & (TDB_SCX | TDB_VFORK)) == + TDB_VFORK) + pl->pl_flags |= PL_FLAG_VFORK_DONE; if (td2->td_dbgflags & TDB_CHILD) pl->pl_flags |= PL_FLAG_CHILD; if (td2->td_dbgflags & TDB_BORN) Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Mon Jul 18 14:40:13 2016 (r303000) +++ head/sys/sys/proc.h Mon Jul 18 14:53:55 2016 (r303001) @@ -422,6 +422,7 @@ do { \ #define TDB_CHILD 0x00000100 /* New child indicator for ptrace() */ #define TDB_BORN 0x00000200 /* New LWP indicator for ptrace() */ #define TDB_EXIT 0x00000400 /* Exiting LWP indicator for ptrace() */ +#define TDB_VFORK 0x00000800 /* vfork indicator for ptrace() */ /* * "Private" flags kept in td_pflags: Modified: head/sys/sys/ptrace.h ============================================================================== --- head/sys/sys/ptrace.h Mon Jul 18 14:40:13 2016 (r303000) +++ head/sys/sys/ptrace.h Mon Jul 18 14:53:55 2016 (r303001) @@ -89,6 +89,7 @@ #define PTRACE_SYSCALL (PTRACE_SCE | PTRACE_SCX) #define PTRACE_FORK 0x0008 #define PTRACE_LWP 0x0010 +#define PTRACE_VFORK 0x0020 #define PTRACE_DEFAULT (PTRACE_EXEC) @@ -124,6 +125,8 @@ struct ptrace_lwpinfo { #define PL_FLAG_CHILD 0x80 /* I am from child */ #define PL_FLAG_BORN 0x100 /* new LWP */ #define PL_FLAG_EXITED 0x200 /* exiting LWP */ +#define PL_FLAG_VFORKED 0x400 /* new child via vfork */ +#define PL_FLAG_VFORK_DONE 0x800 /* vfork parent has resumed */ sigset_t pl_sigmask; /* LWP signal mask */ sigset_t pl_siglist; /* LWP pending signal */ struct __siginfo pl_siginfo; /* siginfo for signal */ Modified: head/tests/sys/kern/ptrace_test.c ============================================================================== --- head/tests/sys/kern/ptrace_test.c Mon Jul 18 14:40:13 2016 (r303000) +++ head/tests/sys/kern/ptrace_test.c Mon Jul 18 14:53:55 2016 (r303001) @@ -1549,6 +1549,130 @@ ATF_TC_BODY(ptrace__event_mask, tc) ATF_REQUIRE(errno == ECHILD); } +/* + * Verify that the expected ptrace events are reported for PTRACE_VFORK. + */ +ATF_TC_WITHOUT_HEAD(ptrace__ptrace_vfork); +ATF_TC_BODY(ptrace__ptrace_vfork, tc) +{ + struct ptrace_lwpinfo pl; + pid_t fpid, wpid; + int events, status; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + follow_fork_parent(true); + } + + /* The first wait() should report the stop from SIGSTOP. */ + wpid = waitpid(fpid, &status, 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGSTOP); + + ATF_REQUIRE(ptrace(PT_GET_EVENT_MASK, fpid, (caddr_t)&events, + sizeof(events)) == 0); + events |= PTRACE_VFORK; + ATF_REQUIRE(ptrace(PT_SET_EVENT_MASK, fpid, (caddr_t)&events, + sizeof(events)) == 0); + + /* Continue the child ignoring the SIGSTOP. */ + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) != -1); + + /* The next event should report the end of the vfork. */ + wpid = wait(&status); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl, sizeof(pl)) != -1); + ATF_REQUIRE((pl.pl_flags & PL_FLAG_VFORK_DONE) != 0); + + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) != -1); + + wpid = wait(&status); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFEXITED(status)); + ATF_REQUIRE(WEXITSTATUS(status) == 1); + + wpid = wait(&status); + ATF_REQUIRE(wpid == -1); + ATF_REQUIRE(errno == ECHILD); +} + +ATF_TC_WITHOUT_HEAD(ptrace__ptrace_vfork_follow); +ATF_TC_BODY(ptrace__ptrace_vfork_follow, tc) +{ + struct ptrace_lwpinfo pl[2]; + pid_t children[2], fpid, wpid; + int events, status; + + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + trace_me(); + follow_fork_parent(true); + } + + /* Parent process. */ + children[0] = fpid; + + /* The first wait() should report the stop from SIGSTOP. */ + wpid = waitpid(children[0], &status, 0); + ATF_REQUIRE(wpid == children[0]); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGSTOP); + + ATF_REQUIRE(ptrace(PT_GET_EVENT_MASK, children[0], (caddr_t)&events, + sizeof(events)) == 0); + events |= PTRACE_FORK | PTRACE_VFORK; + ATF_REQUIRE(ptrace(PT_SET_EVENT_MASK, children[0], (caddr_t)&events, + sizeof(events)) == 0); + + /* Continue the child ignoring the SIGSTOP. */ + ATF_REQUIRE(ptrace(PT_CONTINUE, children[0], (caddr_t)1, 0) != -1); + + /* Wait for both halves of the fork event to get reported. */ + children[1] = handle_fork_events(children[0], pl); + ATF_REQUIRE(children[1] > 0); + + ATF_REQUIRE((pl[0].pl_flags & PL_FLAG_VFORKED) != 0); + + ATF_REQUIRE(ptrace(PT_CONTINUE, children[0], (caddr_t)1, 0) != -1); + ATF_REQUIRE(ptrace(PT_CONTINUE, children[1], (caddr_t)1, 0) != -1); + + /* + * The child can't exit until the grandchild reports status, so the + * grandchild should report its exit first to the debugger. + */ + wpid = waitpid(children[1], &status, 0); + ATF_REQUIRE(wpid == children[1]); + ATF_REQUIRE(WIFEXITED(status)); + ATF_REQUIRE(WEXITSTATUS(status) == 2); + + /* + * The child should report it's vfork() completion before it + * exits. + */ + wpid = wait(&status); + ATF_REQUIRE(wpid == children[0]); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGTRAP); + ATF_REQUIRE(ptrace(PT_LWPINFO, wpid, (caddr_t)&pl[0], sizeof(pl[0])) != + -1); + ATF_REQUIRE((pl[0].pl_flags & PL_FLAG_VFORK_DONE) != 0); + + ATF_REQUIRE(ptrace(PT_CONTINUE, children[0], (caddr_t)1, 0) != -1); + + wpid = wait(&status); + ATF_REQUIRE(wpid == children[0]); + ATF_REQUIRE(WIFEXITED(status)); + ATF_REQUIRE(WEXITSTATUS(status) == 1); + + wpid = wait(&status); + ATF_REQUIRE(wpid == -1); + ATF_REQUIRE(errno == ECHILD); +} + ATF_TP_ADD_TCS(tp) { @@ -1574,6 +1698,8 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, ptrace__ptrace_exec_disable); ATF_TP_ADD_TC(tp, ptrace__ptrace_exec_enable); ATF_TP_ADD_TC(tp, ptrace__event_mask); + ATF_TP_ADD_TC(tp, ptrace__ptrace_vfork); + ATF_TP_ADD_TC(tp, ptrace__ptrace_vfork_follow); return (atf_no_error()); } From owner-svn-src-all@freebsd.org Mon Jul 18 15:14:25 2016 Return-Path: Delivered-To: svn-src-all@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 39D74B9D7D9; Mon, 18 Jul 2016 15:14:25 +0000 (UTC) (envelope-from jhb@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 157B61489; Mon, 18 Jul 2016 15:14:25 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IFEOcl093032; Mon, 18 Jul 2016 15:14:24 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IFEOFp093029; Mon, 18 Jul 2016 15:14:24 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607181514.u6IFEOFp093029@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Mon, 18 Jul 2016 15:14:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303002 - in head: sys/kern sys/sys usr.bin/gcore X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 15:14:25 -0000 Author: jhb Date: Mon Jul 18 15:14:23 2016 New Revision: 303002 URL: https://svnweb.freebsd.org/changeset/base/303002 Log: Include process IDs in core dumps. When threads were added to the kernel, the pr_pid member of the NT_PRSTATUS note was repurposed to store LWP IDs instead of process IDs. However, the process ID was no longer recorded in core dumps. This change adds a pr_pid field to prpsinfo (NT_PRSINFO). Rather than bumping the prpsinfo version number, note parsers can use the note's payload size to determine if pr_pid is present. Reviewed by: kib, emaste (older version) MFC after: 2 months Differential Revision: https://reviews.freebsd.org/D7117 Modified: head/sys/kern/imgact_elf.c head/sys/sys/procfs.h head/usr.bin/gcore/elfcore.c Modified: head/sys/kern/imgact_elf.c ============================================================================== --- head/sys/kern/imgact_elf.c Mon Jul 18 14:53:55 2016 (r303001) +++ head/sys/kern/imgact_elf.c Mon Jul 18 15:14:23 2016 (r303002) @@ -1874,6 +1874,7 @@ __elfN(note_prpsinfo)(void *arg, struct *cp = ' '; } } + psinfo->pr_pid = p->p_pid; sbuf_bcat(sb, psinfo, sizeof(*psinfo)); free(psinfo, M_TEMP); } Modified: head/sys/sys/procfs.h ============================================================================== --- head/sys/sys/procfs.h Mon Jul 18 14:53:55 2016 (r303001) +++ head/sys/sys/procfs.h Mon Jul 18 15:14:23 2016 (r303002) @@ -49,7 +49,10 @@ typedef struct fpreg fpregset_t; /* * The parenthsized numbers like (1) indicate the minimum version number - * for which each element exists in the structure. + * for which each element exists in the structure. The version number is + * not bumped when adding new fields to the end, only if the meaning of + * an existing field changes. Additional fields are annotated as (1a), + * (1b), etc. to indicate the groupings of additions. */ #define PRSTATUS_VERSION 1 /* Current version of prstatus_t */ @@ -61,7 +64,7 @@ typedef struct prstatus { size_t pr_fpregsetsz; /* sizeof(fpregset_t) (1) */ int pr_osreldate; /* Kernel version (1) */ int pr_cursig; /* Current signal (1) */ - pid_t pr_pid; /* Process ID (1) */ + pid_t pr_pid; /* LWP (Thread) ID (1) */ gregset_t pr_reg; /* General purpose registers (1) */ } prstatus_t; @@ -78,6 +81,7 @@ typedef struct prpsinfo { size_t pr_psinfosz; /* sizeof(prpsinfo_t) (1) */ char pr_fname[PRFNAMESZ+1]; /* Command name, null terminated (1) */ char pr_psargs[PRARGSZ+1]; /* Arguments, null terminated (1) */ + pid_t pr_pid; /* Process ID (1a) */ } prpsinfo_t; typedef struct thrmisc { @@ -104,6 +108,7 @@ typedef struct prpsinfo32 { uint32_t pr_psinfosz; char pr_fname[PRFNAMESZ+1]; char pr_psargs[PRARGSZ+1]; + int32_t pr_pid; } prpsinfo32_t; struct thrmisc32 { Modified: head/usr.bin/gcore/elfcore.c ============================================================================== --- head/usr.bin/gcore/elfcore.c Mon Jul 18 14:53:55 2016 (r303001) +++ head/usr.bin/gcore/elfcore.c Mon Jul 18 15:14:23 2016 (r303002) @@ -586,6 +586,7 @@ elf_note_prpsinfo(void *arg, size_t *siz } else strlcpy(psinfo->pr_psargs, kip.ki_comm, sizeof(psinfo->pr_psargs)); + psinfo->pr_pid = pid; *sizep = sizeof(*psinfo); return (psinfo); From owner-svn-src-all@freebsd.org Mon Jul 18 15:44:27 2016 Return-Path: Delivered-To: svn-src-all@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 A439AB9D19D for ; Mon, 18 Jul 2016 15:44:27 +0000 (UTC) (envelope-from rrs@netflix.com) Received: from mail-it0-x232.google.com (mail-it0-x232.google.com [IPv6:2607:f8b0:4001:c0b::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6E6781674 for ; Mon, 18 Jul 2016 15:44:27 +0000 (UTC) (envelope-from rrs@netflix.com) Received: by mail-it0-x232.google.com with SMTP id u186so71273780ita.0 for ; Mon, 18 Jul 2016 08:44:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=cl07vYfD4s86oHc4oH/LPcCQpKewvEwKAX06POndnUc=; b=OftsgzVbWwdiKWrwJRETtDLNI3RXBFnb0kehISAu50G/nOuUVwCuxYr2rZfAKYo98O UUZjpV92U7V2QpQck6fiUWwtBg00ZMt/ARHFXOQTKeICAZ8lMHSsGj+2nPeKSdv1Uxqc mVz3MOMVIdxsBdrHvbsysGpCaYa9ur2d5J2Sc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=cl07vYfD4s86oHc4oH/LPcCQpKewvEwKAX06POndnUc=; b=Djme7M+TJHDrbi2UBunmf8HE9hMbitJKJ7hNaNsmSWG4TXOslpe5VUBgGhuKH7q7sY EWE1dM/1fLZLYNmDDCKA/xWlsRc3v5Wdx6FSCJ+l29VAHjlas+6dheBfig2rG9y6AUTD wS2PT7V0lW5RNrNIVyzPpdMvc2TtX24nMEpTmwLak1/SVZTcMwr97hDPY7NoPJ/lMxV9 9PJb1noY4/hwPKklcBM6dr2H2N7bL2e1WeRcK/yhQZQIWHuALG2nb3WhGgg7f2mWBkhG 8mmFQMKkChJSP+iJV/jCTXlY+rXSdjq4mpEf35V8mMAkKjeSur3GA3T7UMD60NU3fCdb R35Q== X-Gm-Message-State: ALyK8tKEUUEPBSCAW79KkseXeofYJRkohs8VCnG7UOEfbj4MOk3Hkir0WhIDYHNPmpldYQ3l X-Received: by 10.36.34.14 with SMTP id o14mr36173789ito.11.1468856666594; Mon, 18 Jul 2016 08:44:26 -0700 (PDT) Received: from [100.127.65.10] ([69.53.245.200]) by smtp.gmail.com with ESMTPSA id v11sm9023876iod.43.2016.07.18.08.44.24 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 18 Jul 2016 08:44:25 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: svn commit: r302998 - head/sys/kern From: Randall Stewart In-Reply-To: <201607180929.u6I9T9Uw063705@repo.freebsd.org> Date: Mon, 18 Jul 2016 17:44:20 +0200 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <64C1543A-3EDE-4852-88EA-5B0B78FCF016@netflix.com> References: <201607180929.u6I9T9Uw063705@repo.freebsd.org> To: Gleb Smirnoff X-Mailer: Apple Mail (2.3124) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 15:44:27 -0000 Gleb: This now leaks TCP-PCB=E2=80=99s since you have broken the return codes = with all your fixes that used to be in here. It was return 1 =E2=80=94 You stopped the callout return 0 =E2=80=94 The callout could not be stopped return -1 =E2=80=94 The callout was not running. The LLRef code that was crashing in in.c depended on this to know to = free the memory.. i.e. if was > 0 then they needed to free the memory. TCP depends on a return 0 to indicate the async-drain function will be = called back and thus increments a refcnt and waits for the callback. You now return 0 when no timer was active.. which makes the stack then = wait for the not forth coming async-drain call. R > On Jul 18, 2016, at 11:29 AM, Gleb Smirnoff = wrote: >=20 > Author: glebius > Date: Mon Jul 18 09:29:08 2016 > New Revision: 302998 > URL: https://svnweb.freebsd.org/changeset/base/302998 >=20 > Log: > Revert the last commit. It must get more review and testing first. >=20 > Modified: > head/sys/kern/kern_timeout.c >=20 > Modified: head/sys/kern/kern_timeout.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/kern/kern_timeout.c Mon Jul 18 09:26:06 2016 = (r302997) > +++ head/sys/kern/kern_timeout.c Mon Jul 18 09:29:08 2016 = (r302998) > @@ -1381,7 +1381,7 @@ again: > CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", > c, c->c_func, c->c_arg); > CC_UNLOCK(cc); > - return (-1); > + return (0); > } >=20 > c->c_iflags &=3D ~CALLOUT_PENDING; >=20 -------- Randall Stewart rrs@netflix.com 803-317-4952 From owner-svn-src-all@freebsd.org Mon Jul 18 15:50:56 2016 Return-Path: Delivered-To: svn-src-all@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 06D96B9D6D5; Mon, 18 Jul 2016 15:50:55 +0000 (UTC) (envelope-from gjb@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 B4B6A1C39; Mon, 18 Jul 2016 15:50:55 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IFosck004401; Mon, 18 Jul 2016 15:50:54 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IFosQS004400; Mon, 18 Jul 2016 15:50:54 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201607181550.u6IFosQS004400@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 18 Jul 2016 15:50:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303003 - head/release X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 15:50:56 -0000 Author: gjb Date: Mon Jul 18 15:50:54 2016 New Revision: 303003 URL: https://svnweb.freebsd.org/changeset/base/303003 Log: Make sure we clean up the rdoc and reldoc directories if NODOC is not set. MFC after: 3 days Sponsored by: The FreeBSD Foundation Modified: head/release/Makefile Modified: head/release/Makefile ============================================================================== --- head/release/Makefile Mon Jul 18 15:14:23 2016 (r303002) +++ head/release/Makefile Mon Jul 18 15:50:54 2016 (r303003) @@ -119,6 +119,9 @@ CLEANFILES+= ${I}.xz CLEANFILES+= pkg-stage .endif CLEANDIRS= dist ftp disc1 bootonly dvd +.if !defined(NODOC) +CLEANDIRS+= reldoc rdoc +.endif beforeclean: chflags -R noschg . .include From owner-svn-src-all@freebsd.org Mon Jul 18 16:06:22 2016 Return-Path: Delivered-To: svn-src-all@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 5AF39B9DA6A; Mon, 18 Jul 2016 16:06:22 +0000 (UTC) (envelope-from ache@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 1DB19163A; Mon, 18 Jul 2016 16:06:22 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IG6LEZ011644; Mon, 18 Jul 2016 16:06:21 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IG6LOd011643; Mon, 18 Jul 2016 16:06:21 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607181606.u6IG6LOd011643@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Mon, 18 Jul 2016 16:06:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303004 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 16:06:22 -0000 Author: ache Date: Mon Jul 18 16:06:21 2016 New Revision: 303004 URL: https://svnweb.freebsd.org/changeset/base/303004 Log: 1) POSIX defines well when GLOB_ABORTED can be returned (only for directory open/read errors and with GLOB_ERR and gl_errfunc processing), so we can't blindly return it on any MAXPATHLEN overflow. Even our manpage disagrees with such GLOB_ABORTED usage. Use GLOB_NOSPACE for that now with errno is set to 0 as for limits. 2) Return GLOB_NOSPACE when valid ~ expansion can't happens due to MAXPATHLEN overflow too. 3) POSIX (and our manpage) says, if GLOB_ERR is set, GLOB_ABORTED should be returned immediatelly, without using gl_errfunc. Implement it now. Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Mon Jul 18 15:50:54 2016 (r303003) +++ head/lib/libc/gen/glob.c Mon Jul 18 16:06:21 2016 (r303004) @@ -421,7 +421,7 @@ globtilde(const Char *pattern, Char *pat continue; if (*p != EOS && *p != SLASH) - return (pattern); + return (NULL); *b = EOS; h = NULL; @@ -446,8 +446,9 @@ globtilde(const Char *pattern, Char *pat /* * Expand a ~user */ - if (g_Ctoc(patbuf, (char *)wbuf, sizeof(wbuf)) || - (pwd = getpwnam((char *)wbuf)) == NULL) + if (g_Ctoc(patbuf, (char *)wbuf, sizeof(wbuf))) + return (NULL); + if ((pwd = getpwnam((char *)wbuf)) == NULL) return (pattern); else h = pwd->pw_dir; @@ -474,13 +475,13 @@ globtilde(const Char *pattern, Char *pat sc += clen; } if (too_long) - return (pattern); + return (NULL); dc = wbuf; for (b = patbuf; b < eb && *dc != EOS; *b++ = *dc++) continue; if (*dc != EOS) - return (pattern); + return (NULL); /* Append the rest of the pattern */ if (*p != EOS) { @@ -492,7 +493,7 @@ globtilde(const Char *pattern, Char *pat } } if (too_long) - return (pattern); + return (NULL); } else *b = EOS; @@ -515,6 +516,10 @@ glob0(const Char *pattern, glob_t *pglob Char *bufnext, c, patbuf[MAXPATHLEN]; qpatnext = globtilde(pattern, patbuf, MAXPATHLEN, pglob); + if (qpatnext == NULL) { + errno = 0; + return (GLOB_NOSPACE); + } oldpathc = pglob->gl_pathc; bufnext = patbuf; @@ -638,7 +643,7 @@ glob2(Char *pathbuf, Char *pathend, Char limit->l_stat_cnt++ >= GLOB_LIMIT_STAT) { errno = 0; if (pathend + 1 > pathend_last) - return (GLOB_ABORTED); + return (GLOB_NOSPACE); *pathend++ = SEP; *pathend = EOS; return (GLOB_NOSPACE); @@ -648,8 +653,10 @@ glob2(Char *pathbuf, Char *pathend, Char || (S_ISLNK(sb.st_mode) && (g_stat(pathbuf, &sb, pglob) == 0) && S_ISDIR(sb.st_mode)))) { - if (pathend + 1 > pathend_last) - return (GLOB_ABORTED); + if (pathend + 1 > pathend_last) { + errno = 0; + return (GLOB_NOSPACE); + } *pathend++ = SEP; *pathend = EOS; } @@ -663,8 +670,10 @@ glob2(Char *pathbuf, Char *pathend, Char while (*p != EOS && *p != SEP) { if (ismeta(*p)) anymeta = 1; - if (q + 1 > pathend_last) - return (GLOB_ABORTED); + if (q + 1 > pathend_last) { + errno = 0; + return (GLOB_NOSPACE); + } *q++ = *p++; } @@ -672,8 +681,10 @@ glob2(Char *pathbuf, Char *pathend, Char pathend = q; pattern = p; while (*pattern == SEP) { - if (pathend + 1 > pathend_last) - return (GLOB_ABORTED); + if (pathend + 1 > pathend_last) { + errno = 0; + return (GLOB_NOSPACE); + } *pathend++ = *pattern++; } } else /* Need expansion, recurse. */ @@ -695,18 +706,21 @@ glob3(Char *pathbuf, Char *pathend, Char struct dirent *(*readdirfunc)(DIR *); + errno = 0; if (pathend > pathend_last) - return (GLOB_ABORTED); + return (GLOB_NOSPACE); *pathend = EOS; - errno = 0; if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { /* TODO: don't call for ENOENT or ENOTDIR? */ + if (pglob->gl_flags & GLOB_ERR) + return (GLOB_ABORTED); if (pglob->gl_errfunc) { - if (g_Ctoc(pathbuf, buf, sizeof(buf))) - return (GLOB_ABORTED); - if (pglob->gl_errfunc(buf, errno) || - pglob->gl_flags & GLOB_ERR) + if (g_Ctoc(pathbuf, buf, sizeof(buf))) { + errno = 0; + return (GLOB_NOSPACE); + } + if (pglob->gl_errfunc(buf, errno)) return (GLOB_ABORTED); } return (0); @@ -732,7 +746,7 @@ glob3(Char *pathbuf, Char *pathend, Char limit->l_readdir_cnt++ >= GLOB_LIMIT_READDIR) { errno = 0; if (pathend + 1 > pathend_last) - err = GLOB_ABORTED; + err = GLOB_NOSPACE; else { *pathend++ = SEP; *pathend = EOS; @@ -831,6 +845,7 @@ globextend(const Char *path, glob_t *pgl if ((copy = malloc(len)) != NULL) { if (g_Ctoc(path, copy, len)) { free(copy); + errno = 0; return (GLOB_NOSPACE); } pathv[pglob->gl_offs + pglob->gl_pathc++] = copy; From owner-svn-src-all@freebsd.org Mon Jul 18 16:19:36 2016 Return-Path: Delivered-To: svn-src-all@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 C0085B9DDF7 for ; Mon, 18 Jul 2016 16:19:36 +0000 (UTC) (envelope-from rrs@netflix.com) Received: from mail-io0-x234.google.com (mail-io0-x234.google.com [IPv6:2607:f8b0:4001:c06::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 86BC21F72 for ; Mon, 18 Jul 2016 16:19:36 +0000 (UTC) (envelope-from rrs@netflix.com) Received: by mail-io0-x234.google.com with SMTP id m101so163836436ioi.2 for ; Mon, 18 Jul 2016 09:19:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=Fb1z4EzxM5VPUnvWqeiYOEor6VbgTwpPIsxUs3j8IRc=; b=p3EfKBxlUV6ZyuVOrwHJ02e3H+CnzdFVBznpa5LBg8DG3dMBlP+PUO5DV3ngYxjJ4r p/NIG11M/H3B0xIWklc+D0jtU0PUgTUm2CcWCZ63FnS+Czp/yPzLj4h520t6p4NASRGG eZGi4mFfqyM9d0gu5CRRMeyWhocY8Rx1bPpbM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=Fb1z4EzxM5VPUnvWqeiYOEor6VbgTwpPIsxUs3j8IRc=; b=mWfr7gcV5mlEPAhDTH3ACYlBkPhgHSLi7YnfNLP4+b0MMO/BCKM6xbsEugm7Wh4vmg /ErtYFIr4jmza4Aq/qU3EzURCQ2SH2OQ0jmPOypr+GLDO4vjzBzq06JscVwPtqe/jYXS 02er3O36a5P5BGtJH1PYWODJ/+uE7tUp8C1ld9NUiolrTHehthj+nM4sjBR4Qr/DpOeD 2531Vqq67Hfnbfhjz2ejWaEuGY78lOfF5MwO9MaV40PZNzjDEVRVthLH47YLZuX4sEkW mvs32z7V4zm/YayziCfH9hPQxJuh29uOUK7iOSFG+mIJnVISAKmhtUckRk9xVufa+/df Ip2Q== X-Gm-Message-State: ALyK8tI9b8BZrA/rd45FjYNuqKQi8Ob46gXarb5heSx27VWrygUru9y/tiVKU/w5Tzc8k6v2 X-Received: by 10.107.22.6 with SMTP id 6mr34463967iow.128.1468858775780; Mon, 18 Jul 2016 09:19:35 -0700 (PDT) Received: from [100.127.65.10] ([69.53.245.200]) by smtp.gmail.com with ESMTPSA id u7sm4903209ita.21.2016.07.18.09.19.33 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 18 Jul 2016 09:19:35 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: svn commit: r302998 - head/sys/kern From: Randall Stewart In-Reply-To: <64C1543A-3EDE-4852-88EA-5B0B78FCF016@netflix.com> Date: Mon, 18 Jul 2016 18:19:31 +0200 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <58868615-8255-4D8B-BD9E-8E19A734CB6C@netflix.com> References: <201607180929.u6I9T9Uw063705@repo.freebsd.org> <64C1543A-3EDE-4852-88EA-5B0B78FCF016@netflix.com> To: Gleb Smirnoff X-Mailer: Apple Mail (2.3124) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 16:19:36 -0000 I have worked out a fix of this in Netflix code base (I have the same = code running there). I will get that tested tonight I will get the fixes in to restore the = behavior. I will setup a phabricator shortly.. most likely I will update the one I = already have on the one problem your earlier patch did not fix. R > On Jul 18, 2016, at 5:44 PM, Randall Stewart wrote: >=20 > Gleb: >=20 > This now leaks TCP-PCB=E2=80=99s since you have broken the return = codes with all your > fixes that used to be in here. >=20 > It was >=20 > return 1 =E2=80=94 You stopped the callout > return 0 =E2=80=94 The callout could not be stopped > return -1 =E2=80=94 The callout was not running. >=20 > The LLRef code that was crashing in in.c depended on this to know to = free > the memory.. i.e. if was > 0 then they needed to free the memory. >=20 > TCP depends on a return 0 to indicate the async-drain function will be = called back and > thus increments a refcnt and waits for the callback. >=20 > You now return 0 when no timer was active.. which makes the stack then = wait > for the not forth coming async-drain call. >=20 > R >> On Jul 18, 2016, at 11:29 AM, Gleb Smirnoff = wrote: >>=20 >> Author: glebius >> Date: Mon Jul 18 09:29:08 2016 >> New Revision: 302998 >> URL: https://svnweb.freebsd.org/changeset/base/302998 >>=20 >> Log: >> Revert the last commit. It must get more review and testing first. >>=20 >> Modified: >> head/sys/kern/kern_timeout.c >>=20 >> Modified: head/sys/kern/kern_timeout.c >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/sys/kern/kern_timeout.c Mon Jul 18 09:26:06 2016 = (r302997) >> +++ head/sys/kern/kern_timeout.c Mon Jul 18 09:29:08 2016 = (r302998) >> @@ -1381,7 +1381,7 @@ again: >> CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", >> c, c->c_func, c->c_arg); >> CC_UNLOCK(cc); >> - return (-1); >> + return (0); >> } >>=20 >> c->c_iflags &=3D ~CALLOUT_PENDING; >>=20 >=20 > -------- > Randall Stewart > rrs@netflix.com > 803-317-4952 >=20 >=20 >=20 >=20 >=20 -------- Randall Stewart rrs@netflix.com 803-317-4952 From owner-svn-src-all@freebsd.org Mon Jul 18 16:34:13 2016 Return-Path: Delivered-To: svn-src-all@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 9B654B9C463; Mon, 18 Jul 2016 16:34:13 +0000 (UTC) (envelope-from dchagin@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 568F61C71; Mon, 18 Jul 2016 16:34:13 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IGYC1v023116; Mon, 18 Jul 2016 16:34:12 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IGYBUq023109; Mon, 18 Jul 2016 16:34:11 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201607181634.u6IGYBUq023109@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Mon, 18 Jul 2016 16:34:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303005 - in stable/11/sys: amd64/linux amd64/linux32 compat/linux i386/linux X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 16:34:13 -0000 Author: dchagin Date: Mon Jul 18 16:34:11 2016 New Revision: 303005 URL: https://svnweb.freebsd.org/changeset/base/303005 Log: MFC r302515: Implement Linux personality() system call mainly due to READ_IMPLIES_EXEC flag. In Linux if this flag is set, PROT_READ implies PROT_EXEC for mmap(). Linux/i386 set this flag automatically if the binary requires executable stack. READ_IMPLIES_EXEC flag will be used in the next Linux mmap() commit. Approved by: re (gjb) Added: stable/11/sys/compat/linux/linux_persona.h - copied unchanged from r302515, head/sys/compat/linux/linux_persona.h Modified: stable/11/sys/amd64/linux/syscalls.master stable/11/sys/amd64/linux32/syscalls.master stable/11/sys/compat/linux/linux_emul.c stable/11/sys/compat/linux/linux_emul.h stable/11/sys/compat/linux/linux_misc.c stable/11/sys/i386/linux/syscalls.master Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/amd64/linux/syscalls.master ============================================================================== --- stable/11/sys/amd64/linux/syscalls.master Mon Jul 18 16:06:21 2016 (r303004) +++ stable/11/sys/amd64/linux/syscalls.master Mon Jul 18 16:34:11 2016 (r303005) @@ -270,7 +270,7 @@ 133 AUE_MKNOD STD { int linux_mknod(char *path, l_int mode, \ l_dev_t dev); } 134 AUE_USELIB UNIMPL uselib -135 AUE_PERSONALITY STD { int linux_personality(l_ulong per); } +135 AUE_PERSONALITY STD { int linux_personality(l_uint per); } 136 AUE_NULL STD { int linux_ustat(l_dev_t dev, \ struct l_ustat *ubuf); } 137 AUE_STATFS STD { int linux_statfs(char *path, \ Modified: stable/11/sys/amd64/linux32/syscalls.master ============================================================================== --- stable/11/sys/amd64/linux32/syscalls.master Mon Jul 18 16:06:21 2016 (r303004) +++ stable/11/sys/amd64/linux32/syscalls.master Mon Jul 18 16:34:11 2016 (r303005) @@ -238,7 +238,7 @@ 134 AUE_BDFLUSH STD { int linux_bdflush(void); } 135 AUE_NULL STD { int linux_sysfs(l_int option, \ l_ulong arg1, l_ulong arg2); } -136 AUE_PERSONALITY STD { int linux_personality(l_ulong per); } +136 AUE_PERSONALITY STD { int linux_personality(l_uint per); } 137 AUE_NULL UNIMPL afs_syscall 138 AUE_SETFSUID STD { int linux_setfsuid16(l_uid16_t uid); } 139 AUE_SETFSGID STD { int linux_setfsgid16(l_gid16_t gid); } Modified: stable/11/sys/compat/linux/linux_emul.c ============================================================================== --- stable/11/sys/compat/linux/linux_emul.c Mon Jul 18 16:06:21 2016 (r303004) +++ stable/11/sys/compat/linux/linux_emul.c Mon Jul 18 16:34:11 2016 (r303005) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include @@ -127,7 +128,7 @@ linux_proc_init(struct thread *td, struc /* epoll should be destroyed in a case of exec. */ pem = pem_find(p); KASSERT(pem != NULL, ("proc_exit: proc emuldata not found.\n")); - + pem->persona = 0; if (pem->epoll != NULL) { emd = pem->epoll; pem->epoll = NULL; @@ -220,6 +221,9 @@ linux_proc_exec(void *arg __unused, stru { struct thread *td = curthread; struct thread *othertd; +#if defined(__amd64__) + struct linux_pemuldata *pem; +#endif /* * In a case of execing from linux binary properly detach @@ -243,6 +247,17 @@ linux_proc_exec(void *arg __unused, stru linux_proc_init(td, NULL, 0); else linux_proc_init(td, td, 0); +#if defined(__amd64__) + /* + * An IA32 executable which has executable stack will have the + * READ_IMPLIES_EXEC personality flag set automatically. + */ + if (SV_PROC_FLAG(td->td_proc, SV_ILP32) && + imgp->stack_prot & VM_PROT_EXECUTE) { + pem = pem_find(p); + pem->persona |= LINUX_READ_IMPLIES_EXEC; + } +#endif } } Modified: stable/11/sys/compat/linux/linux_emul.h ============================================================================== --- stable/11/sys/compat/linux/linux_emul.h Mon Jul 18 16:06:21 2016 (r303004) +++ stable/11/sys/compat/linux/linux_emul.h Mon Jul 18 16:34:11 2016 (r303005) @@ -67,6 +67,7 @@ struct linux_pemuldata { uint32_t flags; /* process emuldata flags */ struct sx pem_sx; /* lock for this struct */ void *epoll; /* epoll data */ + uint32_t persona; /* process execution domain */ }; #define LINUX_PEM_XLOCK(p) sx_xlock(&(p)->pem_sx) Modified: stable/11/sys/compat/linux/linux_misc.c ============================================================================== --- stable/11/sys/compat/linux/linux_misc.c Mon Jul 18 16:06:21 2016 (r303004) +++ stable/11/sys/compat/linux/linux_misc.c Mon Jul 18 16:34:11 2016 (r303005) @@ -1200,15 +1200,23 @@ linux_mknodat(struct thread *td, struct int linux_personality(struct thread *td, struct linux_personality_args *args) { + struct linux_pemuldata *pem; + struct proc *p = td->td_proc; + uint32_t old; + #ifdef DEBUG if (ldebug(personality)) - printf(ARGS(personality, "%lu"), (unsigned long)args->per); + printf(ARGS(personality, "%u"), args->per); #endif - if (args->per != 0) - return (EINVAL); - /* Yes Jim, it's still a Linux... */ - td->td_retval[0] = 0; + PROC_LOCK(p); + pem = pem_find(p); + old = pem->persona; + if (args->per != 0xffffffff) + pem->persona = args->per; + PROC_UNLOCK(p); + + td->td_retval[0] = old; return (0); } Copied: stable/11/sys/compat/linux/linux_persona.h (from r302515, head/sys/compat/linux/linux_persona.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/compat/linux/linux_persona.h Mon Jul 18 16:34:11 2016 (r303005, copy of r302515, head/sys/compat/linux/linux_persona.h) @@ -0,0 +1,56 @@ +/* + * $FreeBSD$ + */ + +#ifndef LINUX_PERSONALITY_H +#define LINUX_PERSONALITY_H + +/* + * Flags for bug emulation. + * + * These occupy the top three bytes. + */ +enum { + LINUX_UNAME26 = 0x0020000, + LINUX_ADDR_NO_RANDOMIZE = 0x0040000, /* disable randomization + * of VA space + */ + LINUX_FDPIC_FUNCPTRS = 0x0080000, /* userspace function + * ptrs point to descriptors + * (signal handling) + */ + LINUX_MMAP_PAGE_ZERO = 0x0100000, + LINUX_ADDR_COMPAT_LAYOUT = 0x0200000, + LINUX_READ_IMPLIES_EXEC = 0x0400000, + LINUX_ADDR_LIMIT_32BIT = 0x0800000, + LINUX_SHORT_INODE = 0x1000000, + LINUX_WHOLE_SECONDS = 0x2000000, + LINUX_STICKY_TIMEOUTS = 0x4000000, + LINUX_ADDR_LIMIT_3GB = 0x8000000, +}; + +/* + * Security-relevant compatibility flags that must be + * cleared upon setuid or setgid exec: + */ +#define LINUX_PER_CLEAR_ON_SETID (LINUX_READ_IMPLIES_EXEC | \ + LINUX_ADDR_NO_RANDOMIZE | \ + LINUX_ADDR_COMPAT_LAYOUT | \ + LINUX_MMAP_PAGE_ZERO) + +/* + * Personality types. + * + * These go in the low byte. Avoid using the top bit, it will + * conflict with error returns. + */ +enum { + LINUX_PER_LINUX = 0x0000, + LINUX_PER_LINUX_32BIT = 0x0000 | LINUX_ADDR_LIMIT_32BIT, + LINUX_PER_LINUX_FDPIC = 0x0000 | LINUX_FDPIC_FUNCPTRS, + LINUX_PER_LINUX32 = 0x0008, + LINUX_PER_LINUX32_3GB = 0x0008 | LINUX_ADDR_LIMIT_3GB, + LINUX_PER_MASK = 0x00ff, +}; + +#endif /* LINUX_PERSONALITY_H */ Modified: stable/11/sys/i386/linux/syscalls.master ============================================================================== --- stable/11/sys/i386/linux/syscalls.master Mon Jul 18 16:06:21 2016 (r303004) +++ stable/11/sys/i386/linux/syscalls.master Mon Jul 18 16:34:11 2016 (r303005) @@ -240,7 +240,7 @@ 134 AUE_BDFLUSH STD { int linux_bdflush(void); } 135 AUE_NULL STD { int linux_sysfs(l_int option, \ l_ulong arg1, l_ulong arg2); } -136 AUE_PERSONALITY STD { int linux_personality(l_ulong per); } +136 AUE_PERSONALITY STD { int linux_personality(l_uint per); } 137 AUE_NULL UNIMPL afs_syscall 138 AUE_SETFSUID STD { int linux_setfsuid16(l_uid16_t uid); } 139 AUE_SETFSGID STD { int linux_setfsgid16(l_gid16_t gid); } From owner-svn-src-all@freebsd.org Mon Jul 18 16:35:47 2016 Return-Path: Delivered-To: svn-src-all@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 7CB92B9C55C; Mon, 18 Jul 2016 16:35:47 +0000 (UTC) (envelope-from dchagin@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 569961E72; Mon, 18 Jul 2016 16:35:47 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IGZkT8023245; Mon, 18 Jul 2016 16:35:46 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IGZjZN023230; Mon, 18 Jul 2016 16:35:45 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201607181635.u6IGZjZN023230@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Mon, 18 Jul 2016 16:35:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303006 - in stable/11/sys: amd64/linux amd64/linux32 i386/linux X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 16:35:47 -0000 Author: dchagin Date: Mon Jul 18 16:35:44 2016 New Revision: 303006 URL: https://svnweb.freebsd.org/changeset/base/303006 Log: MFC r302516: Regen for r302515 (Linux personality). Approved by: re (gjb) Modified: stable/11/sys/amd64/linux/linux_proto.h stable/11/sys/amd64/linux/linux_syscall.h stable/11/sys/amd64/linux/linux_syscalls.c stable/11/sys/amd64/linux/linux_sysent.c stable/11/sys/amd64/linux/linux_systrace_args.c stable/11/sys/amd64/linux32/linux32_proto.h stable/11/sys/amd64/linux32/linux32_syscall.h stable/11/sys/amd64/linux32/linux32_syscalls.c stable/11/sys/amd64/linux32/linux32_sysent.c stable/11/sys/amd64/linux32/linux32_systrace_args.c stable/11/sys/i386/linux/linux_proto.h stable/11/sys/i386/linux/linux_syscall.h stable/11/sys/i386/linux/linux_syscalls.c stable/11/sys/i386/linux/linux_sysent.c stable/11/sys/i386/linux/linux_systrace_args.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/amd64/linux/linux_proto.h ============================================================================== --- stable/11/sys/amd64/linux/linux_proto.h Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/amd64/linux/linux_proto.h Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ #ifndef _LINUX_SYSPROTO_H_ @@ -499,7 +499,7 @@ struct linux_mknod_args { char dev_l_[PADL_(l_dev_t)]; l_dev_t dev; char dev_r_[PADR_(l_dev_t)]; }; struct linux_personality_args { - char per_l_[PADL_(l_ulong)]; l_ulong per; char per_r_[PADR_(l_ulong)]; + char per_l_[PADL_(l_uint)]; l_uint per; char per_r_[PADR_(l_uint)]; }; struct linux_ustat_args { char dev_l_[PADL_(l_dev_t)]; l_dev_t dev; char dev_r_[PADR_(l_dev_t)]; @@ -1397,6 +1397,13 @@ int linux_finit_module(struct thread *, #endif /* COMPAT_FREEBSD7 */ + +#ifdef COMPAT_FREEBSD10 + +#define nosys linux_nosys + +#endif /* COMPAT_FREEBSD10 */ + #define LINUX_SYS_AUE_linux_open AUE_OPEN_RWTC #define LINUX_SYS_AUE_linux_newstat AUE_STAT #define LINUX_SYS_AUE_linux_newfstat AUE_FSTAT Modified: stable/11/sys/amd64/linux/linux_syscall.h ============================================================================== --- stable/11/sys/amd64/linux/linux_syscall.h Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/amd64/linux/linux_syscall.h Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ #define LINUX_SYS_read 0 Modified: stable/11/sys/amd64/linux/linux_syscalls.c ============================================================================== --- stable/11/sys/amd64/linux/linux_syscalls.c Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/amd64/linux/linux_syscalls.c Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ const char *linux_syscallnames[] = { Modified: stable/11/sys/amd64/linux/linux_sysent.c ============================================================================== --- stable/11/sys/amd64/linux/linux_sysent.c Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/amd64/linux/linux_sysent.c Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ #include Modified: stable/11/sys/amd64/linux/linux_systrace_args.c ============================================================================== --- stable/11/sys/amd64/linux/linux_systrace_args.c Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/amd64/linux/linux_systrace_args.c Mon Jul 18 16:35:44 2016 (r303006) @@ -1120,7 +1120,7 @@ systrace_args(int sysnum, void *params, /* linux_personality */ case 135: { struct linux_personality_args *p = params; - iarg[0] = p->per; /* l_ulong */ + iarg[0] = p->per; /* l_uint */ *n_args = 1; break; } @@ -4112,7 +4112,7 @@ systrace_entry_setargdesc(int sysnum, in case 135: switch(ndx) { case 0: - p = "l_ulong"; + p = "l_uint"; break; default: break; Modified: stable/11/sys/amd64/linux32/linux32_proto.h ============================================================================== --- stable/11/sys/amd64/linux32/linux32_proto.h Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/amd64/linux32/linux32_proto.h Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ #ifndef _LINUX32_SYSPROTO_H_ @@ -427,7 +427,7 @@ struct linux_sysfs_args { char arg2_l_[PADL_(l_ulong)]; l_ulong arg2; char arg2_r_[PADR_(l_ulong)]; }; struct linux_personality_args { - char per_l_[PADL_(l_ulong)]; l_ulong per; char per_r_[PADR_(l_ulong)]; + char per_l_[PADL_(l_uint)]; l_uint per; char per_r_[PADR_(l_uint)]; }; struct linux_setfsuid16_args { char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_t)]; @@ -1466,6 +1466,13 @@ int linux_process_vm_writev(struct threa #endif /* COMPAT_FREEBSD7 */ + +#ifdef COMPAT_FREEBSD10 + +#define nosys linux_nosys + +#endif /* COMPAT_FREEBSD10 */ + #define LINUX32_SYS_AUE_linux_exit AUE_EXIT #define LINUX32_SYS_AUE_linux_fork AUE_FORK #define LINUX32_SYS_AUE_linux_open AUE_OPEN_RWTC Modified: stable/11/sys/amd64/linux32/linux32_syscall.h ============================================================================== --- stable/11/sys/amd64/linux32/linux32_syscall.h Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/amd64/linux32/linux32_syscall.h Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ #define LINUX32_SYS_linux_exit 1 Modified: stable/11/sys/amd64/linux32/linux32_syscalls.c ============================================================================== --- stable/11/sys/amd64/linux32/linux32_syscalls.c Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/amd64/linux32/linux32_syscalls.c Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ const char *linux32_syscallnames[] = { Modified: stable/11/sys/amd64/linux32/linux32_sysent.c ============================================================================== --- stable/11/sys/amd64/linux32/linux32_sysent.c Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/amd64/linux32/linux32_sysent.c Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ #include "opt_compat.h" Modified: stable/11/sys/amd64/linux32/linux32_systrace_args.c ============================================================================== --- stable/11/sys/amd64/linux32/linux32_systrace_args.c Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/amd64/linux32/linux32_systrace_args.c Mon Jul 18 16:35:44 2016 (r303006) @@ -910,7 +910,7 @@ systrace_args(int sysnum, void *params, /* linux_personality */ case 136: { struct linux_personality_args *p = params; - iarg[0] = p->per; /* l_ulong */ + iarg[0] = p->per; /* l_uint */ *n_args = 1; break; } @@ -3715,7 +3715,7 @@ systrace_entry_setargdesc(int sysnum, in case 136: switch(ndx) { case 0: - p = "l_ulong"; + p = "l_uint"; break; default: break; Modified: stable/11/sys/i386/linux/linux_proto.h ============================================================================== --- stable/11/sys/i386/linux/linux_proto.h Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/i386/linux/linux_proto.h Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/i386/linux/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/i386/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ #ifndef _LINUX_SYSPROTO_H_ @@ -435,7 +435,7 @@ struct linux_sysfs_args { char arg2_l_[PADL_(l_ulong)]; l_ulong arg2; char arg2_r_[PADR_(l_ulong)]; }; struct linux_personality_args { - char per_l_[PADL_(l_ulong)]; l_ulong per; char per_r_[PADR_(l_ulong)]; + char per_l_[PADL_(l_uint)]; l_uint per; char per_r_[PADR_(l_uint)]; }; struct linux_setfsuid16_args { char uid_l_[PADL_(l_uid16_t)]; l_uid16_t uid; char uid_r_[PADR_(l_uid16_t)]; @@ -1486,6 +1486,13 @@ int linux_process_vm_writev(struct threa #endif /* COMPAT_FREEBSD7 */ + +#ifdef COMPAT_FREEBSD10 + +#define nosys linux_nosys + +#endif /* COMPAT_FREEBSD10 */ + #define LINUX_SYS_AUE_linux_exit AUE_EXIT #define LINUX_SYS_AUE_linux_fork AUE_FORK #define LINUX_SYS_AUE_linux_open AUE_OPEN_RWTC Modified: stable/11/sys/i386/linux/linux_syscall.h ============================================================================== --- stable/11/sys/i386/linux/linux_syscall.h Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/i386/linux/linux_syscall.h Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/i386/linux/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/i386/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ #define LINUX_SYS_linux_exit 1 Modified: stable/11/sys/i386/linux/linux_syscalls.c ============================================================================== --- stable/11/sys/i386/linux/linux_syscalls.c Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/i386/linux/linux_syscalls.c Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/i386/linux/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/i386/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ const char *linux_syscallnames[] = { Modified: stable/11/sys/i386/linux/linux_sysent.c ============================================================================== --- stable/11/sys/i386/linux/linux_sysent.c Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/i386/linux/linux_sysent.c Mon Jul 18 16:35:44 2016 (r303006) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/i386/linux/syscalls.master 300359 2016-05-21 08:01:14Z dchagin + * created from FreeBSD: head/sys/i386/linux/syscalls.master 302515 2016-07-10 08:15:50Z dchagin */ #include Modified: stable/11/sys/i386/linux/linux_systrace_args.c ============================================================================== --- stable/11/sys/i386/linux/linux_systrace_args.c Mon Jul 18 16:34:11 2016 (r303005) +++ stable/11/sys/i386/linux/linux_systrace_args.c Mon Jul 18 16:35:44 2016 (r303006) @@ -948,7 +948,7 @@ systrace_args(int sysnum, void *params, /* linux_personality */ case 136: { struct linux_personality_args *p = params; - iarg[0] = p->per; /* l_ulong */ + iarg[0] = p->per; /* l_uint */ *n_args = 1; break; } @@ -3849,7 +3849,7 @@ systrace_entry_setargdesc(int sysnum, in case 136: switch(ndx) { case 0: - p = "l_ulong"; + p = "l_uint"; break; default: break; From owner-svn-src-all@freebsd.org Mon Jul 18 16:38:08 2016 Return-Path: Delivered-To: svn-src-all@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 AAF4FB9C5EF; Mon, 18 Jul 2016 16:38:08 +0000 (UTC) (envelope-from dchagin@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 4307F117E; Mon, 18 Jul 2016 16:38:08 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IGc72h023380; Mon, 18 Jul 2016 16:38:07 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IGc6GT023369; Mon, 18 Jul 2016 16:38:06 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201607181638.u6IGc6GT023369@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Mon, 18 Jul 2016 16:38:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303007 - in stable/11/sys: amd64/linux amd64/linux32 compat/linux i386/linux modules/linux modules/linux_common X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 16:38:08 -0000 Author: dchagin Date: Mon Jul 18 16:38:06 2016 New Revision: 303007 URL: https://svnweb.freebsd.org/changeset/base/303007 Log: MFC r302517: Fix a copy/paste bug introduced during X86_64 Linuxulator work. FreeBSD support NX bit on X86_64 processors out of the box, for i386 emulation use READ_IMPLIES_EXEC flag, introduced in r302515. While here move common part of mmap() and mprotect() code to the files in compat/linux to reduce code dupcliation between Linuxulator's Approved by: re (gjb) Added: stable/11/sys/compat/linux/linux_mmap.c - copied unchanged from r302517, head/sys/compat/linux/linux_mmap.c stable/11/sys/compat/linux/linux_mmap.h - copied unchanged from r302517, head/sys/compat/linux/linux_mmap.h Modified: stable/11/sys/amd64/linux/linux.h stable/11/sys/amd64/linux/linux_machdep.c stable/11/sys/amd64/linux32/linux.h stable/11/sys/amd64/linux32/linux32_machdep.c stable/11/sys/i386/linux/linux.h stable/11/sys/i386/linux/linux_machdep.c stable/11/sys/modules/linux/Makefile stable/11/sys/modules/linux_common/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/amd64/linux/linux.h ============================================================================== --- stable/11/sys/amd64/linux/linux.h Mon Jul 18 16:35:44 2016 (r303006) +++ stable/11/sys/amd64/linux/linux.h Mon Jul 18 16:38:06 2016 (r303007) @@ -139,13 +139,6 @@ struct l_rlimit { l_ulong rlim_max; }; -/* mmap options */ -#define LINUX_MAP_SHARED 0x0001 -#define LINUX_MAP_PRIVATE 0x0002 -#define LINUX_MAP_FIXED 0x0010 -#define LINUX_MAP_ANON 0x0020 -#define LINUX_MAP_GROWSDOWN 0x0100 - /* * stat family of syscalls */ Modified: stable/11/sys/amd64/linux/linux_machdep.c ============================================================================== --- stable/11/sys/amd64/linux/linux_machdep.c Mon Jul 18 16:35:44 2016 (r303006) +++ stable/11/sys/amd64/linux/linux_machdep.c Mon Jul 18 16:38:06 2016 (r303007) @@ -83,6 +83,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -122,181 +123,19 @@ linux_set_upcall_kse(struct thread *td, return (0); } -#define STACK_SIZE (2 * 1024 * 1024) -#define GUARD_SIZE (4 * PAGE_SIZE) - int linux_mmap2(struct thread *td, struct linux_mmap2_args *args) { - struct proc *p = td->td_proc; - struct mmap_args /* { - caddr_t addr; - size_t len; - int prot; - int flags; - int fd; - long pad; - off_t pos; - } */ bsd_args; - int error; - struct file *fp; - cap_rights_t rights; - - LINUX_CTR6(mmap2, "0x%lx, %ld, %ld, 0x%08lx, %ld, 0x%lx", - args->addr, args->len, args->prot, - args->flags, args->fd, args->pgoff); - - error = 0; - bsd_args.flags = 0; - fp = NULL; - - /* - * Linux mmap(2): - * You must specify exactly one of MAP_SHARED and MAP_PRIVATE - */ - if (! ((args->flags & LINUX_MAP_SHARED) ^ - (args->flags & LINUX_MAP_PRIVATE))) - return (EINVAL); - - if (args->flags & LINUX_MAP_SHARED) - bsd_args.flags |= MAP_SHARED; - if (args->flags & LINUX_MAP_PRIVATE) - bsd_args.flags |= MAP_PRIVATE; - if (args->flags & LINUX_MAP_FIXED) - bsd_args.flags |= MAP_FIXED; - if (args->flags & LINUX_MAP_ANON) - bsd_args.flags |= MAP_ANON; - else - bsd_args.flags |= MAP_NOSYNC; - if (args->flags & LINUX_MAP_GROWSDOWN) - bsd_args.flags |= MAP_STACK; - - /* - * PROT_READ, PROT_WRITE, or PROT_EXEC implies PROT_READ and PROT_EXEC - * on Linux/i386. We do this to ensure maximum compatibility. - * Linux/ia64 does the same in i386 emulation mode. - */ - bsd_args.prot = args->prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - - /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ - bsd_args.fd = (bsd_args.flags & MAP_ANON) ? -1 : args->fd; - if (bsd_args.fd != -1) { - /* - * Linux follows Solaris mmap(2) description: - * The file descriptor fildes is opened with - * read permission, regardless of the - * protection options specified. - */ - - error = fget(td, bsd_args.fd, - cap_rights_init(&rights, CAP_MMAP), &fp); - if (error != 0 ) - return (error); - if (fp->f_type != DTYPE_VNODE) { - fdrop(fp, td); - return (EINVAL); - } - - /* Linux mmap() just fails for O_WRONLY files */ - if (!(fp->f_flag & FREAD)) { - fdrop(fp, td); - return (EACCES); - } - - fdrop(fp, td); - } - if (args->flags & LINUX_MAP_GROWSDOWN) { - /* - * The Linux MAP_GROWSDOWN option does not limit auto - * growth of the region. Linux mmap with this option - * takes as addr the initial BOS, and as len, the initial - * region size. It can then grow down from addr without - * limit. However, Linux threads has an implicit internal - * limit to stack size of STACK_SIZE. Its just not - * enforced explicitly in Linux. But, here we impose - * a limit of (STACK_SIZE - GUARD_SIZE) on the stack - * region, since we can do this with our mmap. - * - * Our mmap with MAP_STACK takes addr as the maximum - * downsize limit on BOS, and as len the max size of - * the region. It then maps the top SGROWSIZ bytes, - * and auto grows the region down, up to the limit - * in addr. - * - * If we don't use the MAP_STACK option, the effect - * of this code is to allocate a stack region of a - * fixed size of (STACK_SIZE - GUARD_SIZE). - */ - - if ((caddr_t)PTRIN(args->addr) + args->len > - p->p_vmspace->vm_maxsaddr) { - /* - * Some Linux apps will attempt to mmap - * thread stacks near the top of their - * address space. If their TOS is greater - * than vm_maxsaddr, vm_map_growstack() - * will confuse the thread stack with the - * process stack and deliver a SEGV if they - * attempt to grow the thread stack past their - * current stacksize rlimit. To avoid this, - * adjust vm_maxsaddr upwards to reflect - * the current stacksize rlimit rather - * than the maximum possible stacksize. - * It would be better to adjust the - * mmap'ed region, but some apps do not check - * mmap's return value. - */ - PROC_LOCK(p); - p->p_vmspace->vm_maxsaddr = (char *)USRSTACK - - lim_cur_proc(p, RLIMIT_STACK); - PROC_UNLOCK(p); - } - - /* - * This gives us our maximum stack size and a new BOS. - * If we're using VM_STACK, then mmap will just map - * the top SGROWSIZ bytes, and let the stack grow down - * to the limit at BOS. If we're not using VM_STACK - * we map the full stack, since we don't have a way - * to autogrow it. - */ - if (args->len > STACK_SIZE - GUARD_SIZE) { - bsd_args.addr = (caddr_t)PTRIN(args->addr); - bsd_args.len = args->len; - } else { - bsd_args.addr = (caddr_t)PTRIN(args->addr) - - (STACK_SIZE - GUARD_SIZE - args->len); - bsd_args.len = STACK_SIZE - GUARD_SIZE; - } - } else { - bsd_args.addr = (caddr_t)PTRIN(args->addr); - bsd_args.len = args->len; - } - bsd_args.pos = (off_t)args->pgoff; - - error = sys_mmap(td, &bsd_args); - - LINUX_CTR2(mmap2, "return: %d (%p)", - error, td->td_retval[0]); - return (error); + return (linux_mmap_common(td, PTROUT(args->addr), args->len, args->prot, + args->flags, args->fd, args->pgoff)); } int linux_mprotect(struct thread *td, struct linux_mprotect_args *uap) { - struct mprotect_args bsd_args; - - LINUX_CTR(mprotect); - bsd_args.addr = uap->addr; - bsd_args.len = uap->len; - bsd_args.prot = uap->prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - return (sys_mprotect(td, &bsd_args)); + return (linux_mprotect_common(td, PTROUT(uap->addr), uap->len, uap->prot)); } int Modified: stable/11/sys/amd64/linux32/linux.h ============================================================================== --- stable/11/sys/amd64/linux32/linux.h Mon Jul 18 16:35:44 2016 (r303006) +++ stable/11/sys/amd64/linux32/linux.h Mon Jul 18 16:38:06 2016 (r303007) @@ -165,13 +165,6 @@ struct l_rusage { l_long ru_nivcsw; } __packed; -/* mmap options */ -#define LINUX_MAP_SHARED 0x0001 -#define LINUX_MAP_PRIVATE 0x0002 -#define LINUX_MAP_FIXED 0x0010 -#define LINUX_MAP_ANON 0x0020 -#define LINUX_MAP_GROWSDOWN 0x0100 - struct l_mmap_argv { l_uintptr_t addr; l_size_t len; Modified: stable/11/sys/amd64/linux32/linux32_machdep.c ============================================================================== --- stable/11/sys/amd64/linux32/linux32_machdep.c Mon Jul 18 16:35:44 2016 (r303006) +++ stable/11/sys/amd64/linux32/linux32_machdep.c Mon Jul 18 16:38:06 2016 (r303007) @@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -84,9 +85,6 @@ struct l_old_select_argv { l_uintptr_t timeout; } __packed; -static int linux_mmap_common(struct thread *td, l_uintptr_t addr, - l_size_t len, l_int prot, l_int flags, l_int fd, - l_loff_t pos); static void bsd_to_linux_rusage(struct rusage *ru, struct l_rusage *lru) @@ -448,9 +446,6 @@ linux_set_upcall_kse(struct thread *td, return (0); } -#define STACK_SIZE (2 * 1024 * 1024) -#define GUARD_SIZE (4 * PAGE_SIZE) - int linux_mmap2(struct thread *td, struct linux_mmap2_args *args) { @@ -489,184 +484,11 @@ linux_mmap(struct thread *td, struct lin (uint32_t)linux_args.pgoff)); } -static int -linux_mmap_common(struct thread *td, l_uintptr_t addr, l_size_t len, l_int prot, - l_int flags, l_int fd, l_loff_t pos) -{ - struct proc *p = td->td_proc; - struct mmap_args /* { - caddr_t addr; - size_t len; - int prot; - int flags; - int fd; - long pad; - off_t pos; - } */ bsd_args; - int error; - struct file *fp; - cap_rights_t rights; - - error = 0; - bsd_args.flags = 0; - fp = NULL; - - /* - * Linux mmap(2): - * You must specify exactly one of MAP_SHARED and MAP_PRIVATE - */ - if (!((flags & LINUX_MAP_SHARED) ^ (flags & LINUX_MAP_PRIVATE))) - return (EINVAL); - - if (flags & LINUX_MAP_SHARED) - bsd_args.flags |= MAP_SHARED; - if (flags & LINUX_MAP_PRIVATE) - bsd_args.flags |= MAP_PRIVATE; - if (flags & LINUX_MAP_FIXED) - bsd_args.flags |= MAP_FIXED; - if (flags & LINUX_MAP_ANON) { - /* Enforce pos to be on page boundary, then ignore. */ - if ((pos & PAGE_MASK) != 0) - return (EINVAL); - pos = 0; - bsd_args.flags |= MAP_ANON; - } else - bsd_args.flags |= MAP_NOSYNC; - if (flags & LINUX_MAP_GROWSDOWN) - bsd_args.flags |= MAP_STACK; - - /* - * PROT_READ, PROT_WRITE, or PROT_EXEC implies PROT_READ and PROT_EXEC - * on Linux/i386. We do this to ensure maximum compatibility. - * Linux/ia64 does the same in i386 emulation mode. - */ - bsd_args.prot = prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - - /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ - bsd_args.fd = (bsd_args.flags & MAP_ANON) ? -1 : fd; - if (bsd_args.fd != -1) { - /* - * Linux follows Solaris mmap(2) description: - * The file descriptor fildes is opened with - * read permission, regardless of the - * protection options specified. - */ - - error = fget(td, bsd_args.fd, - cap_rights_init(&rights, CAP_MMAP), &fp); - if (error != 0) - return (error); - if (fp->f_type != DTYPE_VNODE) { - fdrop(fp, td); - return (EINVAL); - } - - /* Linux mmap() just fails for O_WRONLY files */ - if (!(fp->f_flag & FREAD)) { - fdrop(fp, td); - return (EACCES); - } - - fdrop(fp, td); - } - - if (flags & LINUX_MAP_GROWSDOWN) { - /* - * The Linux MAP_GROWSDOWN option does not limit auto - * growth of the region. Linux mmap with this option - * takes as addr the initial BOS, and as len, the initial - * region size. It can then grow down from addr without - * limit. However, Linux threads has an implicit internal - * limit to stack size of STACK_SIZE. Its just not - * enforced explicitly in Linux. But, here we impose - * a limit of (STACK_SIZE - GUARD_SIZE) on the stack - * region, since we can do this with our mmap. - * - * Our mmap with MAP_STACK takes addr as the maximum - * downsize limit on BOS, and as len the max size of - * the region. It then maps the top SGROWSIZ bytes, - * and auto grows the region down, up to the limit - * in addr. - * - * If we don't use the MAP_STACK option, the effect - * of this code is to allocate a stack region of a - * fixed size of (STACK_SIZE - GUARD_SIZE). - */ - - if ((caddr_t)PTRIN(addr) + len > p->p_vmspace->vm_maxsaddr) { - /* - * Some Linux apps will attempt to mmap - * thread stacks near the top of their - * address space. If their TOS is greater - * than vm_maxsaddr, vm_map_growstack() - * will confuse the thread stack with the - * process stack and deliver a SEGV if they - * attempt to grow the thread stack past their - * current stacksize rlimit. To avoid this, - * adjust vm_maxsaddr upwards to reflect - * the current stacksize rlimit rather - * than the maximum possible stacksize. - * It would be better to adjust the - * mmap'ed region, but some apps do not check - * mmap's return value. - */ - PROC_LOCK(p); - p->p_vmspace->vm_maxsaddr = (char *)LINUX32_USRSTACK - - lim_cur_proc(p, RLIMIT_STACK); - PROC_UNLOCK(p); - } - - /* - * This gives us our maximum stack size and a new BOS. - * If we're using VM_STACK, then mmap will just map - * the top SGROWSIZ bytes, and let the stack grow down - * to the limit at BOS. If we're not using VM_STACK - * we map the full stack, since we don't have a way - * to autogrow it. - */ - if (len > STACK_SIZE - GUARD_SIZE) { - bsd_args.addr = (caddr_t)PTRIN(addr); - bsd_args.len = len; - } else { - bsd_args.addr = (caddr_t)PTRIN(addr) - - (STACK_SIZE - GUARD_SIZE - len); - bsd_args.len = STACK_SIZE - GUARD_SIZE; - } - } else { - bsd_args.addr = (caddr_t)PTRIN(addr); - bsd_args.len = len; - } - bsd_args.pos = pos; - -#ifdef DEBUG - if (ldebug(mmap)) - printf("-> %s(%p, %d, %d, 0x%08x, %d, 0x%x)\n", - __func__, - (void *)bsd_args.addr, (int)bsd_args.len, bsd_args.prot, - bsd_args.flags, bsd_args.fd, (int)bsd_args.pos); -#endif - error = sys_mmap(td, &bsd_args); -#ifdef DEBUG - if (ldebug(mmap)) - printf("-> %s() return: 0x%x (0x%08x)\n", - __func__, error, (u_int)td->td_retval[0]); -#endif - return (error); -} - int linux_mprotect(struct thread *td, struct linux_mprotect_args *uap) { - struct mprotect_args bsd_args; - bsd_args.addr = uap->addr; - bsd_args.len = uap->len; - bsd_args.prot = uap->prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - return (sys_mprotect(td, &bsd_args)); + return (linux_mprotect_common(td, PTROUT(uap->addr), uap->len, uap->prot)); } int Copied: stable/11/sys/compat/linux/linux_mmap.c (from r302517, head/sys/compat/linux/linux_mmap.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/compat/linux/linux_mmap.c Mon Jul 18 16:38:06 2016 (r303007, copy of r302517, head/sys/compat/linux/linux_mmap.c) @@ -0,0 +1,257 @@ +/*- + * Copyright (c) 2004 Tim J. Robbins + * Copyright (c) 2002 Doug Rabson + * Copyright (c) 2000 Marcel Moolenaar + * Copyright (c) 1994-1995 Søren Schmidt + * 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 + * in this position and unchanged. + * 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. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + * + * $FreeBSD$ + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include + + +#define STACK_SIZE (2 * 1024 * 1024) +#define GUARD_SIZE (4 * PAGE_SIZE) + +#if defined(__amd64__) +static void linux_fixup_prot(struct thread *td, int *prot); +#endif + + +int +linux_mmap_common(struct thread *td, uintptr_t addr, size_t len, int prot, + int flags, int fd, off_t pos) +{ + struct proc *p = td->td_proc; + struct vmspace *vms = td->td_proc->p_vmspace; + struct mmap_args /* { + caddr_t addr; + size_t len; + int prot; + int flags; + int fd; + off_t pos; + } */ bsd_args; + int error; + struct file *fp; + + cap_rights_t rights; + LINUX_CTR6(mmap2, "0x%lx, %ld, %ld, 0x%08lx, %ld, 0x%lx", + addr, len, prot, flags, fd, pos); + + error = 0; + bsd_args.flags = 0; + fp = NULL; + + /* + * Linux mmap(2): + * You must specify exactly one of MAP_SHARED and MAP_PRIVATE + */ + if (!((flags & LINUX_MAP_SHARED) ^ (flags & LINUX_MAP_PRIVATE))) + return (EINVAL); + + if (flags & LINUX_MAP_SHARED) + bsd_args.flags |= MAP_SHARED; + if (flags & LINUX_MAP_PRIVATE) + bsd_args.flags |= MAP_PRIVATE; + if (flags & LINUX_MAP_FIXED) + bsd_args.flags |= MAP_FIXED; + if (flags & LINUX_MAP_ANON) { + /* Enforce pos to be on page boundary, then ignore. */ + if ((pos & PAGE_MASK) != 0) + return (EINVAL); + pos = 0; + bsd_args.flags |= MAP_ANON; + } else + bsd_args.flags |= MAP_NOSYNC; + if (flags & LINUX_MAP_GROWSDOWN) + bsd_args.flags |= MAP_STACK; + + /* + * PROT_READ, PROT_WRITE, or PROT_EXEC implies PROT_READ and PROT_EXEC + * on Linux/i386 if the binary requires executable stack. + * We do this only for IA32 emulation as on native i386 this is does not + * make sense without PAE. + * + * XXX. Linux checks that the file system is not mounted with noexec. + */ + bsd_args.prot = prot; +#if defined(__amd64__) + linux_fixup_prot(td, &bsd_args.prot); +#endif + + /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ + bsd_args.fd = (bsd_args.flags & MAP_ANON) ? -1 : fd; + if (bsd_args.fd != -1) { + /* + * Linux follows Solaris mmap(2) description: + * The file descriptor fildes is opened with + * read permission, regardless of the + * protection options specified. + */ + + error = fget(td, bsd_args.fd, + cap_rights_init(&rights, CAP_MMAP), &fp); + if (error != 0) + return (error); + if (fp->f_type != DTYPE_VNODE) { + fdrop(fp, td); + return (EINVAL); + } + + /* Linux mmap() just fails for O_WRONLY files */ + if (!(fp->f_flag & FREAD)) { + fdrop(fp, td); + return (EACCES); + } + + fdrop(fp, td); + } + + if (flags & LINUX_MAP_GROWSDOWN) { + /* + * The Linux MAP_GROWSDOWN option does not limit auto + * growth of the region. Linux mmap with this option + * takes as addr the initial BOS, and as len, the initial + * region size. It can then grow down from addr without + * limit. However, Linux threads has an implicit internal + * limit to stack size of STACK_SIZE. Its just not + * enforced explicitly in Linux. But, here we impose + * a limit of (STACK_SIZE - GUARD_SIZE) on the stack + * region, since we can do this with our mmap. + * + * Our mmap with MAP_STACK takes addr as the maximum + * downsize limit on BOS, and as len the max size of + * the region. It then maps the top SGROWSIZ bytes, + * and auto grows the region down, up to the limit + * in addr. + * + * If we don't use the MAP_STACK option, the effect + * of this code is to allocate a stack region of a + * fixed size of (STACK_SIZE - GUARD_SIZE). + */ + + if ((caddr_t)addr + len > vms->vm_maxsaddr) { + /* + * Some Linux apps will attempt to mmap + * thread stacks near the top of their + * address space. If their TOS is greater + * than vm_maxsaddr, vm_map_growstack() + * will confuse the thread stack with the + * process stack and deliver a SEGV if they + * attempt to grow the thread stack past their + * current stacksize rlimit. To avoid this, + * adjust vm_maxsaddr upwards to reflect + * the current stacksize rlimit rather + * than the maximum possible stacksize. + * It would be better to adjust the + * mmap'ed region, but some apps do not check + * mmap's return value. + */ + PROC_LOCK(p); + vms->vm_maxsaddr = (char *)p->p_sysent->sv_usrstack - + lim_cur_proc(p, RLIMIT_STACK); + PROC_UNLOCK(p); + } + + /* + * This gives us our maximum stack size and a new BOS. + * If we're using VM_STACK, then mmap will just map + * the top SGROWSIZ bytes, and let the stack grow down + * to the limit at BOS. If we're not using VM_STACK + * we map the full stack, since we don't have a way + * to autogrow it. + */ + if (len > STACK_SIZE - GUARD_SIZE) { + bsd_args.addr = (caddr_t)addr; + bsd_args.len = len; + } else { + bsd_args.addr = (caddr_t)addr - + (STACK_SIZE - GUARD_SIZE - len); + bsd_args.len = STACK_SIZE - GUARD_SIZE; + } + } else { + bsd_args.addr = (caddr_t)addr; + bsd_args.len = len; + } + bsd_args.pos = pos; + + error = sys_mmap(td, &bsd_args); + + LINUX_CTR2(mmap2, "return: %d (%p)", error, td->td_retval[0]); + + return (error); +} + +int +linux_mprotect_common(struct thread *td, uintptr_t addr, size_t len, int prot) +{ + struct mprotect_args bsd_args; + + bsd_args.addr = (void *)addr; + bsd_args.len = len; + bsd_args.prot = prot; + +#if defined(__amd64__) + linux_fixup_prot(td, &bsd_args.prot); +#endif + return (sys_mprotect(td, &bsd_args)); +} + +#if defined(__amd64__) +static void +linux_fixup_prot(struct thread *td, int *prot) +{ + struct linux_pemuldata *pem; + + if (SV_PROC_FLAG(td->td_proc, SV_ILP32) && *prot & PROT_READ) { + pem = pem_find(td->td_proc); + if (pem->persona & LINUX_READ_IMPLIES_EXEC) + *prot |= PROT_EXEC; + } + +} +#endif Copied: stable/11/sys/compat/linux/linux_mmap.h (from r302517, head/sys/compat/linux/linux_mmap.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/compat/linux/linux_mmap.h Mon Jul 18 16:38:06 2016 (r303007, copy of r302517, head/sys/compat/linux/linux_mmap.h) @@ -0,0 +1,49 @@ +/*- + * Copyright (c) 2004 Tim J. Robbins + * Copyright (c) 2002 Doug Rabson + * Copyright (c) 2000 Marcel Moolenaar + * Copyright (c) 1994-1995 Søren Schmidt + * 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 + * in this position and unchanged. + * 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. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. + * + * $FreeBSD$ + */ + +#ifndef _LINUX_MMAP_H_ +#define _LINUX_MMAP_H_ + +/* mmap options */ +#define LINUX_MAP_SHARED 0x0001 +#define LINUX_MAP_PRIVATE 0x0002 +#define LINUX_MAP_FIXED 0x0010 +#define LINUX_MAP_ANON 0x0020 +#define LINUX_MAP_GROWSDOWN 0x0100 + + +int linux_mmap_common(struct thread *, uintptr_t, size_t, int, int, + int, off_t); +int linux_mprotect_common(struct thread *, uintptr_t, size_t, int); + +#endif /* _LINUX_MMAP_H_ */ Modified: stable/11/sys/i386/linux/linux.h ============================================================================== --- stable/11/sys/i386/linux/linux.h Mon Jul 18 16:35:44 2016 (r303006) +++ stable/11/sys/i386/linux/linux.h Mon Jul 18 16:38:06 2016 (r303007) @@ -140,13 +140,6 @@ struct l_rlimit { l_ulong rlim_max; }; -/* mmap options */ -#define LINUX_MAP_SHARED 0x0001 -#define LINUX_MAP_PRIVATE 0x0002 -#define LINUX_MAP_FIXED 0x0010 -#define LINUX_MAP_ANON 0x0020 -#define LINUX_MAP_GROWSDOWN 0x0100 - struct l_mmap_argv { l_uintptr_t addr; l_size_t len; Modified: stable/11/sys/i386/linux/linux_machdep.c ============================================================================== --- stable/11/sys/i386/linux/linux_machdep.c Mon Jul 18 16:35:44 2016 (r303006) +++ stable/11/sys/i386/linux/linux_machdep.c Mon Jul 18 16:38:06 2016 (r303007) @@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -95,10 +96,6 @@ struct l_old_select_argv { struct l_timeval *timeout; }; -static int linux_mmap_common(struct thread *td, l_uintptr_t addr, - l_size_t len, l_int prot, l_int flags, l_int fd, - l_loff_t pos); - int linux_execve(struct thread *td, struct linux_execve_args *args) @@ -340,9 +337,6 @@ linux_set_upcall_kse(struct thread *td, return (0); } -#define STACK_SIZE (2 * 1024 * 1024) -#define GUARD_SIZE (4 * PAGE_SIZE) - int linux_mmap2(struct thread *td, struct linux_mmap2_args *args) { @@ -381,187 +375,11 @@ linux_mmap(struct thread *td, struct lin (uint32_t)linux_args.pgoff)); } -static int -linux_mmap_common(struct thread *td, l_uintptr_t addr, l_size_t len, l_int prot, - l_int flags, l_int fd, l_loff_t pos) -{ - struct proc *p = td->td_proc; - struct mmap_args /* { - caddr_t addr; - size_t len; - int prot; - int flags; - int fd; - long pad; - off_t pos; - } */ bsd_args; - int error; - struct file *fp; - cap_rights_t rights; - - error = 0; - bsd_args.flags = 0; - fp = NULL; - - /* - * Linux mmap(2): - * You must specify exactly one of MAP_SHARED and MAP_PRIVATE - */ - if (!((flags & LINUX_MAP_SHARED) ^ (flags & LINUX_MAP_PRIVATE))) - return (EINVAL); - - if (flags & LINUX_MAP_SHARED) - bsd_args.flags |= MAP_SHARED; - if (flags & LINUX_MAP_PRIVATE) - bsd_args.flags |= MAP_PRIVATE; - if (flags & LINUX_MAP_FIXED) - bsd_args.flags |= MAP_FIXED; - if (flags & LINUX_MAP_ANON) { - /* Enforce pos to be on page boundary, then ignore. */ - if ((pos & PAGE_MASK) != 0) - return (EINVAL); - pos = 0; - bsd_args.flags |= MAP_ANON; - } else - bsd_args.flags |= MAP_NOSYNC; - if (flags & LINUX_MAP_GROWSDOWN) - bsd_args.flags |= MAP_STACK; - - /* - * PROT_READ, PROT_WRITE, or PROT_EXEC implies PROT_READ and PROT_EXEC - * on Linux/i386. We do this to ensure maximum compatibility. - * Linux/ia64 does the same in i386 emulation mode. - */ - bsd_args.prot = prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - - /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ - bsd_args.fd = (bsd_args.flags & MAP_ANON) ? -1 : fd; - if (bsd_args.fd != -1) { - /* - * Linux follows Solaris mmap(2) description: - * The file descriptor fildes is opened with - * read permission, regardless of the - * protection options specified. - * - * Checking just CAP_MMAP is fine here, since the real work - * is done in the FreeBSD mmap(). - */ - - error = fget(td, bsd_args.fd, - cap_rights_init(&rights, CAP_MMAP), &fp); - if (error != 0) - return (error); - if (fp->f_type != DTYPE_VNODE) { - fdrop(fp, td); - return (EINVAL); - } - - /* Linux mmap() just fails for O_WRONLY files */ - if (!(fp->f_flag & FREAD)) { - fdrop(fp, td); - return (EACCES); - } - - fdrop(fp, td); - } - - if (flags & LINUX_MAP_GROWSDOWN) { - /* - * The Linux MAP_GROWSDOWN option does not limit auto - * growth of the region. Linux mmap with this option - * takes as addr the inital BOS, and as len, the initial - * region size. It can then grow down from addr without - * limit. However, linux threads has an implicit internal - * limit to stack size of STACK_SIZE. Its just not - * enforced explicitly in linux. But, here we impose - * a limit of (STACK_SIZE - GUARD_SIZE) on the stack - * region, since we can do this with our mmap. - * - * Our mmap with MAP_STACK takes addr as the maximum - * downsize limit on BOS, and as len the max size of - * the region. It them maps the top SGROWSIZ bytes, - * and auto grows the region down, up to the limit - * in addr. - * - * If we don't use the MAP_STACK option, the effect - * of this code is to allocate a stack region of a - * fixed size of (STACK_SIZE - GUARD_SIZE). - */ - - if ((caddr_t)PTRIN(addr) + len > p->p_vmspace->vm_maxsaddr) { - /* - * Some linux apps will attempt to mmap - * thread stacks near the top of their - * address space. If their TOS is greater - * than vm_maxsaddr, vm_map_growstack() - * will confuse the thread stack with the - * process stack and deliver a SEGV if they - * attempt to grow the thread stack past their - * current stacksize rlimit. To avoid this, - * adjust vm_maxsaddr upwards to reflect - * the current stacksize rlimit rather - * than the maximum possible stacksize. - * It would be better to adjust the - * mmap'ed region, but some apps do not check - * mmap's return value. - */ - PROC_LOCK(p); - p->p_vmspace->vm_maxsaddr = (char *)USRSTACK - - lim_cur_proc(p, RLIMIT_STACK); - PROC_UNLOCK(p); - } - - /* - * This gives us our maximum stack size and a new BOS. - * If we're using VM_STACK, then mmap will just map - * the top SGROWSIZ bytes, and let the stack grow down - * to the limit at BOS. If we're not using VM_STACK - * we map the full stack, since we don't have a way - * to autogrow it. - */ - if (len > STACK_SIZE - GUARD_SIZE) { - bsd_args.addr = (caddr_t)PTRIN(addr); - bsd_args.len = len; - } else { - bsd_args.addr = (caddr_t)PTRIN(addr) - - (STACK_SIZE - GUARD_SIZE - len); - bsd_args.len = STACK_SIZE - GUARD_SIZE; - } - } else { - bsd_args.addr = (caddr_t)PTRIN(addr); - bsd_args.len = len; - } - bsd_args.pos = pos; - -#ifdef DEBUG - if (ldebug(mmap)) - printf("-> %s(%p, %d, %d, 0x%08x, %d, 0x%x)\n", - __func__, - (void *)bsd_args.addr, bsd_args.len, bsd_args.prot, - bsd_args.flags, bsd_args.fd, (int)bsd_args.pos); -#endif - error = sys_mmap(td, &bsd_args); -#ifdef DEBUG - if (ldebug(mmap)) - printf("-> %s() return: 0x%x (0x%08x)\n", - __func__, error, (u_int)td->td_retval[0]); -#endif - return (error); -} - int linux_mprotect(struct thread *td, struct linux_mprotect_args *uap) { - struct mprotect_args bsd_args; - bsd_args.addr = uap->addr; - bsd_args.len = uap->len; - bsd_args.prot = uap->prot; - if (bsd_args.prot & (PROT_READ | PROT_WRITE | PROT_EXEC)) - bsd_args.prot |= PROT_READ | PROT_EXEC; - return (sys_mprotect(td, &bsd_args)); + return (linux_mprotect_common(td, PTROUT(uap->addr), uap->len, uap->prot)); } int Modified: stable/11/sys/modules/linux/Makefile ============================================================================== --- stable/11/sys/modules/linux/Makefile Mon Jul 18 16:35:44 2016 (r303006) +++ stable/11/sys/modules/linux/Makefile Mon Jul 18 16:38:06 2016 (r303007) @@ -30,7 +30,7 @@ SRCS+= opt_apic.h OBJS= ${VDSO}.so .if ${MACHINE_CPUARCH} == "i386" -SRCS+= linux_ptrace.c imgact_linux.c linux_util.c linux_mib.c \ +SRCS+= linux_ptrace.c imgact_linux.c linux_util.c linux_mib.c linux_mmap.c \ linux_emul.c opt_cpu.h linux.c *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Jul 18 16:39:55 2016 Return-Path: Delivered-To: svn-src-all@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 2E10DB9C70F; Mon, 18 Jul 2016 16:39:55 +0000 (UTC) (envelope-from dchagin@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 C18C913A1; Mon, 18 Jul 2016 16:39:54 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IGdrDZ023496; Mon, 18 Jul 2016 16:39:53 GMT (envelope-from dchagin@FreeBSD.org) Received: (from dchagin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IGdrah023493; Mon, 18 Jul 2016 16:39:53 GMT (envelope-from dchagin@FreeBSD.org) Message-Id: <201607181639.u6IGdrah023493@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dchagin set sender to dchagin@FreeBSD.org using -f From: Dmitry Chagin Date: Mon, 18 Jul 2016 16:39:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303008 - stable/11/sys/conf X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 16:39:55 -0000 Author: dchagin Date: Mon Jul 18 16:39:53 2016 New Revision: 303008 URL: https://svnweb.freebsd.org/changeset/base/303008 Log: MFC r302518, r302626: Add linux_mmap.c to the appropriate conf/files. Approved by: re (gjb) Modified: stable/11/sys/conf/files.amd64 stable/11/sys/conf/files.i386 stable/11/sys/conf/files.pc98 Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/files.amd64 ============================================================================== --- stable/11/sys/conf/files.amd64 Mon Jul 18 16:38:06 2016 (r303007) +++ stable/11/sys/conf/files.amd64 Mon Jul 18 16:39:53 2016 (r303008) @@ -530,6 +530,7 @@ compat/linux/linux_ioctl.c optional comp compat/linux/linux_ipc.c optional compat_linux32 compat/linux/linux_mib.c optional compat_linux32 compat/linux/linux_misc.c optional compat_linux32 +compat/linux/linux_mmap.c optional compat_linux32 compat/linux/linux_signal.c optional compat_linux32 compat/linux/linux_socket.c optional compat_linux32 compat/linux/linux_stats.c optional compat_linux32 Modified: stable/11/sys/conf/files.i386 ============================================================================== --- stable/11/sys/conf/files.i386 Mon Jul 18 16:38:06 2016 (r303007) +++ stable/11/sys/conf/files.i386 Mon Jul 18 16:39:53 2016 (r303008) @@ -96,6 +96,7 @@ compat/linux/linux_ioctl.c optional comp compat/linux/linux_ipc.c optional compat_linux compat/linux/linux_mib.c optional compat_linux compat/linux/linux_misc.c optional compat_linux +compat/linux/linux_mmap.c optional compat_linux compat/linux/linux_signal.c optional compat_linux compat/linux/linux_socket.c optional compat_linux compat/linux/linux_stats.c optional compat_linux Modified: stable/11/sys/conf/files.pc98 ============================================================================== --- stable/11/sys/conf/files.pc98 Mon Jul 18 16:38:06 2016 (r303007) +++ stable/11/sys/conf/files.pc98 Mon Jul 18 16:39:53 2016 (r303008) @@ -63,6 +63,7 @@ compat/linux/linux_ioctl.c optional comp compat/linux/linux_ipc.c optional compat_linux compat/linux/linux_mib.c optional compat_linux compat/linux/linux_misc.c optional compat_linux +compat/linux/linux_mmap.c optional compat_linux compat/linux/linux_signal.c optional compat_linux compat/linux/linux_socket.c optional compat_linux compat/linux/linux_stats.c optional compat_linux From owner-svn-src-all@freebsd.org Mon Jul 18 16:58:48 2016 Return-Path: Delivered-To: svn-src-all@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 8DC8BB9CD4B; Mon, 18 Jul 2016 16:58:48 +0000 (UTC) (envelope-from mav@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 6049E1154; Mon, 18 Jul 2016 16:58:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IGwlN4031396; Mon, 18 Jul 2016 16:58:47 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IGwlUZ031395; Mon, 18 Jul 2016 16:58:47 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607181658.u6IGwlUZ031395@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 18 Jul 2016 16:58:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303009 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 16:58:48 -0000 Author: mav Date: Mon Jul 18 16:58:47 2016 New Revision: 303009 URL: https://svnweb.freebsd.org/changeset/base/303009 Log: Negotiate/disable TXCSUM_IPV6 same as TXCSUM. Modified: head/sys/net/if_bridge.c Modified: head/sys/net/if_bridge.c ============================================================================== --- head/sys/net/if_bridge.c Mon Jul 18 16:39:53 2016 (r303008) +++ head/sys/net/if_bridge.c Mon Jul 18 16:58:47 2016 (r303009) @@ -166,7 +166,8 @@ __FBSDID("$FreeBSD$"); /* * List of capabilities to possibly mask on the member interface. */ -#define BRIDGE_IFCAPS_MASK (IFCAP_TOE|IFCAP_TSO|IFCAP_TXCSUM) +#define BRIDGE_IFCAPS_MASK (IFCAP_TOE|IFCAP_TSO|IFCAP_TXCSUM|\ + IFCAP_TXCSUM_IPV6) /* * List of capabilities to strip From owner-svn-src-all@freebsd.org Mon Jul 18 17:09:31 2016 Return-Path: Delivered-To: svn-src-all@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 8DBE3B9D26E; Mon, 18 Jul 2016 17:09:31 +0000 (UTC) (envelope-from devin@shxd.cx) Received: from shxd.cx (mail.shxd.cx [64.201.244.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7E5951A5C; Mon, 18 Jul 2016 17:09:31 +0000 (UTC) (envelope-from devin@shxd.cx) Received: from 50-196-156-133-static.hfc.comcastbusiness.net ([50.196.156.133]:27806 helo=[10.19.158.225]) by shxd.cx with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.77 (FreeBSD)) (envelope-from ) id 1bOe6f-000JJx-D2; Sun, 17 Jul 2016 04:55:09 +0000 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r302985 - head/sys/geom/label From: Devin Teske In-Reply-To: Date: Mon, 18 Jul 2016 10:09:27 -0700 Cc: "Andrey V. Elsukov" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Devin Teske Content-Transfer-Encoding: quoted-printable Message-Id: <343F413D-48B9-47C6-9C3C-1B2C78C3FA39@freebsd.org> References: <201607180500.u6I501CX063743@repo.freebsd.org> <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> To: Maxim Sobolev X-Mailer: Apple Mail (2.2104) Sender: devin@shxd.cx X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 17:09:31 -0000 > On Jul 18, 2016, at 7:24 AM, Maxim Sobolev = wrote: >=20 > Andrey, are you talking about this: >=20 > --- > r156299 | pjd | 2006-03-04 11:41:54 -0800 (=D1=81=D0=B1, 04 =D0=BC=D0=B0= =D1=80 2006) | 11 lines >=20 > We need to check if file system size is equal to provider's size, = because > sysinstall(8) ?? sysinstall ?? in head ?? --=20 Devin From owner-svn-src-all@freebsd.org Mon Jul 18 18:24:32 2016 Return-Path: Delivered-To: svn-src-all@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 9BF5FB9DA83; Mon, 18 Jul 2016 18:24:32 +0000 (UTC) (envelope-from ache@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 4BB9F1350; Mon, 18 Jul 2016 18:24:32 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IIOVvt065409; Mon, 18 Jul 2016 18:24:31 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IIOVNn065407; Mon, 18 Jul 2016 18:24:31 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607181824.u6IIOVNn065407@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Mon, 18 Jul 2016 18:24:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303010 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 18:24:32 -0000 Author: ache Date: Mon Jul 18 18:24:31 2016 New Revision: 303010 URL: https://svnweb.freebsd.org/changeset/base/303010 Log: 1) Add all characters from ~ expansion as protected to be not interpreted as pattern meta chars. 2) GLOB_ERR and gl_errfunc are supposed to work only for real directories per POSIX, so don't act on missing or plain files, for ENOENT or ENOTDIR (as TODO in the code suggested). 3) Remove the hack in the manpage describing how to skip ENOENT and ENOTDIR in gl_errfunc, it is unneeded now. 4) Set errno to ENAMETOOLONG if g_Ctoc() expansion fails in g_opendir(), as in other places in the code which are wrappers around system functions. Modified: head/lib/libc/gen/glob.3 head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.3 ============================================================================== --- head/lib/libc/gen/glob.3 Mon Jul 18 16:58:47 2016 (r303009) +++ head/lib/libc/gen/glob.3 Mon Jul 18 18:24:31 2016 (r303010) @@ -275,24 +275,10 @@ is .Pf non- Dv NULL , .Fn glob calls -.Fa \*(lp*errfunc\*(rp Ns ( Fa path , errno ) . -This may be unintuitive: a pattern like -.Ql */Makefile -will try to -.Xr stat 2 -.Ql foo/Makefile -even if -.Ql foo -is not a directory, resulting in a -call to -.Fa errfunc . -The error routine can suppress this action by testing for -.Er ENOENT -and -.Er ENOTDIR ; +.Fa \*(lp*errfunc\*(rp Ns ( Fa path , errno ) , however, the .Dv GLOB_ERR -flag will still cause an immediate +flag will cause an immediate return when this happens. .Pp If Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Mon Jul 18 16:58:47 2016 (r303009) +++ head/lib/libc/gen/glob.c Mon Jul 18 18:24:31 2016 (r303010) @@ -478,7 +478,7 @@ globtilde(const Char *pattern, Char *pat return (NULL); dc = wbuf; - for (b = patbuf; b < eb && *dc != EOS; *b++ = *dc++) + for (b = patbuf; b < eb && *dc != EOS; *b++ = *dc++ | M_PROTECT) continue; if (*dc != EOS) return (NULL); @@ -712,7 +712,8 @@ glob3(Char *pathbuf, Char *pathend, Char *pathend = EOS; if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { - /* TODO: don't call for ENOENT or ENOTDIR? */ + if (errno == ENOENT || errno == ENOTDIR) + return (0); if (pglob->gl_flags & GLOB_ERR) return (GLOB_ABORTED); if (pglob->gl_errfunc) { @@ -937,8 +938,10 @@ g_opendir(Char *str, glob_t *pglob) if (*str == EOS) strcpy(buf, "."); else { - if (g_Ctoc(str, buf, sizeof(buf))) + if (g_Ctoc(str, buf, sizeof(buf))) { + errno = ENAMETOOLONG; return (NULL); + } } if (pglob->gl_flags & GLOB_ALTDIRFUNC) From owner-svn-src-all@freebsd.org Mon Jul 18 18:28:18 2016 Return-Path: Delivered-To: svn-src-all@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 DAD59B9DB31 for ; Mon, 18 Jul 2016 18:28:18 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: from mail-it0-x231.google.com (mail-it0-x231.google.com [IPv6:2607:f8b0:4001:c0b::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ABE4416E9 for ; Mon, 18 Jul 2016 18:28:18 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: by mail-it0-x231.google.com with SMTP id f6so16405043ith.0 for ; Mon, 18 Jul 2016 11:28:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sippysoft-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=hH2HSF1ATlu64pBHRbjIQDBZAQ6Nm/0pU03a9lYiJAE=; b=SnsrWiAkeKu5EbREPDm3TIfScl4tk6uiRUNnpjnuEwYQWhdguae/6LkviJIgmGt2MG Rguug/C4J1WP0fjV/XBjrY3dDc4dZCO4pihSo/Cpps9LnNHOlSBYeKSwhibplykxh0DY OaQWCeNqXaqaL52pjGx8YG+quJ1e2mzNjOFlv+8fbbhkOmVCegGFYRs+o5OLOGtRSaXm cd+0LkVNS/b0h9nzlSO8XdXsMXyxSYjS3rk7MZlwmjsKL8GXfCzRyE2gApEcbnYkEVSC b0GCh5NAKbgCJy3g2X3qhvpQurydxuYX5z2cfU8p8ekMiZkEq+EbTfMsWloVBVFMvFgb 7aSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=hH2HSF1ATlu64pBHRbjIQDBZAQ6Nm/0pU03a9lYiJAE=; b=jZSmp7gZZLIeP/gzXL0dm6audzuKe0LtWArre8W/+qQ2my2GapbbSLBsDXsgl7H5MM uF+5ThVttPPlgPmUJbgtG6qTQk8qPP4X1t4hLwc37Vd8PeosPp8rdP1hiv4r9BLUjzLL m23mX6AyAGT6ItU2wjbCCRSGO9rgI793o9xccMBrr3JmUq+xhZKFmoJmynGo6h6b2+Yp QhBbPMnNViHlD2pfwDhQWuhHBsYN0c/HfxRzpaZ6AImghP3S9ziNFXf23NCzpAmVr6nD zgfva0o4qoZS1wQqtKq5D9K54TyUYnUT6mE/KqJzdBdEflFROaq6tX7S/9YkoWifQ7it lo/Q== X-Gm-Message-State: ALyK8tI+WCDW4IwNpgjEcnz/L18E6Baj9zCoUtgHa3G8oPU+mMsZ/Vm6jgIaxYoMMSuUKUxZOdW+yrDEAhlPq/dy X-Received: by 10.36.122.129 with SMTP id a123mr47294700itc.44.1468866498086; Mon, 18 Jul 2016 11:28:18 -0700 (PDT) MIME-Version: 1.0 Sender: sobomax@sippysoft.com Received: by 10.36.59.193 with HTTP; Mon, 18 Jul 2016 11:28:17 -0700 (PDT) In-Reply-To: <343F413D-48B9-47C6-9C3C-1B2C78C3FA39@freebsd.org> References: <201607180500.u6I501CX063743@repo.freebsd.org> <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> <343F413D-48B9-47C6-9C3C-1B2C78C3FA39@freebsd.org> From: Maxim Sobolev Date: Mon, 18 Jul 2016 11:28:17 -0700 X-Google-Sender-Auth: 9hLpG8ESej2qT6ROKSas4xmlaUo Message-ID: Subject: Re: svn commit: r302985 - head/sys/geom/label To: Devin Teske Cc: "Andrey V. Elsukov" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 18:28:19 -0000 I think people might be worried about existing deployed systems that might stop booting if geom label obscures the whole disk making one or more slices unavailable via geom_label mechanism. -Max On Mon, Jul 18, 2016 at 10:09 AM, Devin Teske wrote: > > > On Jul 18, 2016, at 7:24 AM, Maxim Sobolev wrote: > > > > Andrey, are you talking about this: > > > > --- > > r156299 | pjd | 2006-03-04 11:41:54 -0800 (=D1=81=D0=B1, 04 =D0=BC=D0= =B0=D1=80 2006) | 11 lines > > > > We need to check if file system size is equal to provider's size, becau= se > > sysinstall(8) > > > ?? sysinstall ?? in head ?? > > -- > Devin > > From owner-svn-src-all@freebsd.org Mon Jul 18 19:14:44 2016 Return-Path: Delivered-To: svn-src-all@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 7E376B9D76D; Mon, 18 Jul 2016 19:14:44 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from forward4p.cmail.yandex.net (forward4p.cmail.yandex.net [IPv6:2a02:6b8:0:1465::14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "forwards.mail.yandex.net", Issuer "Yandex CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ED7181B27; Mon, 18 Jul 2016 19:14:43 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from smtp1h.mail.yandex.net (smtp1h.mail.yandex.net [IPv6:2a02:6b8:0:f05::115]) by forward4p.cmail.yandex.net (Yandex) with ESMTP id 305162039C; Mon, 18 Jul 2016 22:14:31 +0300 (MSK) Received: from smtp1h.mail.yandex.net (localhost [127.0.0.1]) by smtp1h.mail.yandex.net (Yandex) with ESMTP id 2D7E51340354; Mon, 18 Jul 2016 22:14:31 +0300 (MSK) Received: by smtp1h.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id QbgBrklslL-EUWSFm99; Mon, 18 Jul 2016 22:14:30 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1468869270; bh=FXJyvP/5852d++VhK9pBE3Tf2NFB9UM7aVKUA/DRiPE=; h=Subject:To:References:Cc:From:Message-ID:Date:In-Reply-To; b=jbKnqjWsc8hFW69cNsTupRIDdMzSEN4lubyM3bMVrMS4u8UCeCTLvjws4rNLwCQ4i 1egTxWiZyXKmmuA8j4e2FrudU7wwQkQecHUOXh9XfH7pTv8aDc/f1PxfwfTyqUVRFC ymKt/XxSw5A7ByIjiR2Oj4nJOKfHUTZrAhAwSSaM= Authentication-Results: smtp1h.mail.yandex.net; dkim=pass header.i=@yandex.ru X-Yandex-Suid-Status: 1 0,1 0,1 0,1 0 Subject: Re: svn commit: r302985 - head/sys/geom/label To: Maxim Sobolev References: <201607180500.u6I501CX063743@repo.freebsd.org> <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: "Andrey V. Elsukov" Message-ID: <61cba001-2717-49ee-843e-5ed6d18fa17b@yandex.ru> Date: Mon, 18 Jul 2016 22:13:31 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="ueGpDXr6A1K3eXTg85Ifr9keESwJkPJ5Q" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 19:14:44 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --ueGpDXr6A1K3eXTg85Ifr9keESwJkPJ5Q Content-Type: multipart/mixed; boundary="CnHlJHfBC52c2jQvNlb5Aw9bv8gw2eqNq" From: "Andrey V. Elsukov" To: Maxim Sobolev Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <61cba001-2717-49ee-843e-5ed6d18fa17b@yandex.ru> Subject: Re: svn commit: r302985 - head/sys/geom/label References: <201607180500.u6I501CX063743@repo.freebsd.org> <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> In-Reply-To: --CnHlJHfBC52c2jQvNlb5Aw9bv8gw2eqNq Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 18.07.16 17:24, Maxim Sobolev wrote: > Andrey, are you talking about this: >=20 > --- > r156299 | pjd | 2006-03-04 11:41:54 -0800 (=D1=81=D0=B1, 04 =D0=BC=D0=B0= =D1=80 2006) | 11 lines >=20 > We need to check if file system size is equal to provider's size, becau= se > sysinstall(8) still bogusly puts first partition at offset 0 instead of= 16, > so glabel/ufs will find file system on slice instead of partition. >=20 > Before sysinstall is fixed, we must keep this code, which means that we= > wont't be able to detect UFS file systems created with 'newfs -s ...'. >=20 > PS. bsdlabel(8) creates partitions properly. >=20 > MFC after: 3 days > --- >=20 > In which case this particular change has a better chance of working > since it's not removing this check but making it less strict. Therefore= > it might attach to a wrong provider only if first UFS slice is the only= > one slice on partition (or if the other partition is very small - less > than 256 blocks in size). In either of those cases I don't think it > makes much difference if we are attaching to a slice or a partition. No, I mean r235918, that was reverted after several complains. UFS label is a special label. It always had the same size that provider. Now it will attach to first provider that will be tasted. It can be gmirror, generic glabel, geli, gpart, mbr, whole disk. https://lists.freebsd.org/pipermail/freebsd-geom/2009-April/003473.html --=20 WBR, Andrey V. Elsukov --CnHlJHfBC52c2jQvNlb5Aw9bv8gw2eqNq-- --ueGpDXr6A1K3eXTg85Ifr9keESwJkPJ5Q Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEvBAEBCAAZBQJXjSpcEhxidTdjaGVyQHlhbmRleC5ydQAKCRABxeoEEMihejOx B/9DwDnHZOgrc/BmUPhgptCCCJR9ZElPnKvqqCQrO4hwLaOhaAHRSD/FwV3168eD Nd8YQn3rK5Sx8oEgDtEymzp0y/crCRmX7d5fbliqPW3atvlNVzEhPEvGByLbW06s Tg11jLnjQLwFAYrf5JQZU5h68nVggRNSJ2T1e6ZTl/pdFbblxViXkLfvVeGdieKP edtnIb37lNzsoLpniwfibRFB5iXGWE0YDQC7cSfYuDQXw/1/TMV6W3xZrXwk77/r uF+5nqXc3zpzoMrGMyenBC7PrCKRbJ46IOMHsXBM2hO+Y0NrOHjLr1Don4Lp16EI FdHOTBffUR8xRgfJ+LuAxVQ5 =toTJ -----END PGP SIGNATURE----- --ueGpDXr6A1K3eXTg85Ifr9keESwJkPJ5Q-- From owner-svn-src-all@freebsd.org Mon Jul 18 19:20:50 2016 Return-Path: Delivered-To: svn-src-all@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 87333B9DA84; Mon, 18 Jul 2016 19:20:50 +0000 (UTC) (envelope-from ache@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 59EB41EA9; Mon, 18 Jul 2016 19:20:50 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IJKn7i087515; Mon, 18 Jul 2016 19:20:49 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IJKnXS087514; Mon, 18 Jul 2016 19:20:49 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607181920.u6IJKnXS087514@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Mon, 18 Jul 2016 19:20:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303011 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 19:20:50 -0000 Author: ache Date: Mon Jul 18 19:20:49 2016 New Revision: 303011 URL: https://svnweb.freebsd.org/changeset/base/303011 Log: Change patch from r303004 case 3. According to POSIX gl_errfunc should be called first, then GLOB_ERR should be considered. Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Mon Jul 18 18:24:31 2016 (r303010) +++ head/lib/libc/gen/glob.c Mon Jul 18 19:20:49 2016 (r303011) @@ -714,9 +714,7 @@ glob3(Char *pathbuf, Char *pathend, Char if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { if (errno == ENOENT || errno == ENOTDIR) return (0); - if (pglob->gl_flags & GLOB_ERR) - return (GLOB_ABORTED); - if (pglob->gl_errfunc) { + if (pglob->gl_errfunc != NULL) { if (g_Ctoc(pathbuf, buf, sizeof(buf))) { errno = 0; return (GLOB_NOSPACE); @@ -724,6 +722,8 @@ glob3(Char *pathbuf, Char *pathend, Char if (pglob->gl_errfunc(buf, errno)) return (GLOB_ABORTED); } + if (pglob->gl_flags & GLOB_ERR) + return (GLOB_ABORTED); return (0); } From owner-svn-src-all@freebsd.org Mon Jul 18 19:37:42 2016 Return-Path: Delivered-To: svn-src-all@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 DA8AFB9D04F for ; Mon, 18 Jul 2016 19:37:42 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: from mail-it0-x234.google.com (mail-it0-x234.google.com [IPv6:2607:f8b0:4001:c0b::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A714E1947 for ; Mon, 18 Jul 2016 19:37:42 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: by mail-it0-x234.google.com with SMTP id u186so76478965ita.0 for ; Mon, 18 Jul 2016 12:37:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sippysoft-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=Gt2MRXUzSh3TrtgviKtD+ogKOXWEELccKlxlVu25fT4=; b=rm0/zGd97tBYJXzYDbqFQkCnUDTZQUWgO1eJCaBOrwilaRmC/RFe4ve9TZKU6kAHu+ ktGTiKxrBaTXCjU3vsiUrGrE5S7teaWQc0VTHJfR/WVPgiy1EFIG824lpFyzuuWK1o7b iDM1XZb8JPFGMSBF6I5BO4cCVFUKnASZt21CKTbHhOkgnM1V5iRd2vKjHbUljggUbGWp x/36NzSSJm9rSBxwTr6+853sIFVChLEUsOyulwR5m5eFq7onXt+CpoG0U0KLOHtt0vK/ q5NACr/SgxcyENgGVqXr7y2ICKgOkPuq4mkTo6IrS7DW8HmEbf1IrdFEFNrMY+w3tae+ 15qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=Gt2MRXUzSh3TrtgviKtD+ogKOXWEELccKlxlVu25fT4=; b=ScLUmVdCvOz5o2vu4kEGVDWqJnnRF0NaMqOX8j1ybGE63C8VtDjBMHgtBgptFx1FsA FC9+eeueRelQjDnvYM2xuXG+EEGfQcHYhfSkSo2IUwitkFb6QrpQveXSryJqqwlTtwLF NjTUBwcCZuaTSlmvG82mrWBQapCJ9vU1eDe0Z4ZrCEsR3+UrdGGBq9VuIuYTAD8JsHhD cEXJtbdjZ9Li9ggEud88SG0JqOp/GHWMC5YlrgzsWe9GM/13b7/uQSeBPjOsgXnODpzm mAXTCcYEymmQ6ppHQ/Fk2kZQHJ+uT0s2l2qecvGKEvu/O4y4hXkZjmfZQZe86fyV/z5e RT6A== X-Gm-Message-State: ALyK8tJ3f3pC1Y7Xm1TSLnxJqN1gyM0uQStk/Rm1Ss6iHBDtrK50PpLDcTgtwMbXJTjiXQgxJN4ho6JUCV0pdhE/ X-Received: by 10.36.118.19 with SMTP id z19mr122919itb.44.1468870661149; Mon, 18 Jul 2016 12:37:41 -0700 (PDT) MIME-Version: 1.0 Sender: sobomax@sippysoft.com Received: by 10.36.59.193 with HTTP; Mon, 18 Jul 2016 12:37:40 -0700 (PDT) In-Reply-To: <61cba001-2717-49ee-843e-5ed6d18fa17b@yandex.ru> References: <201607180500.u6I501CX063743@repo.freebsd.org> <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> <61cba001-2717-49ee-843e-5ed6d18fa17b@yandex.ru> From: Maxim Sobolev Date: Mon, 18 Jul 2016 12:37:40 -0700 X-Google-Sender-Auth: klxnuK1TIf9wcAiLv9zxjE-qS1g Message-ID: Subject: Re: svn commit: r302985 - head/sys/geom/label To: "Andrey V. Elsukov" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 19:37:42 -0000 Well, this looks to me exactly what I am talking about. With this change we are only allowing underlying provider to be *slighly* bigger than the UFS size. So as I said it's pretty harmless to do so, or at least I think it is. In general I think this case is underlying some missing design feature of GEOM framework, which basically gives provider to a first bidder that likes the taste of it. What needs to be happening instead is to have some rank in there, so if consumer A and consumer B both "like" the taste, but provider A has bigger rank it would be given a preference. Then "whole disk" partitioning schemes (mbr, gpt) could be given biggest rank, BSD label and friends slightly smaller, encryption/compression yet smaller and providers that just "decorate" things, like LABEL the lowest possible. -Max On Mon, Jul 18, 2016 at 12:13 PM, Andrey V. Elsukov wrote: > On 18.07.16 17:24, Maxim Sobolev wrote: > > Andrey, are you talking about this: > > > > --- > > r156299 | pjd | 2006-03-04 11:41:54 -0800 (=D1=81=D0=B1, 04 =D0=BC=D0= =B0=D1=80 2006) | 11 lines > > > > We need to check if file system size is equal to provider's size, becau= se > > sysinstall(8) still bogusly puts first partition at offset 0 instead of > 16, > > so glabel/ufs will find file system on slice instead of partition. > > > > Before sysinstall is fixed, we must keep this code, which means that we > > wont't be able to detect UFS file systems created with 'newfs -s ...'. > > > > PS. bsdlabel(8) creates partitions properly. > > > > MFC after: 3 days > > --- > > > > In which case this particular change has a better chance of working > > since it's not removing this check but making it less strict. Therefore > > it might attach to a wrong provider only if first UFS slice is the only > > one slice on partition (or if the other partition is very small - less > > than 256 blocks in size). In either of those cases I don't think it > > makes much difference if we are attaching to a slice or a partition. > > No, I mean r235918, that was reverted after several complains. > UFS label is a special label. It always had the same size that provider. > Now it will attach to first provider that will be tasted. It can be > gmirror, generic glabel, geli, gpart, mbr, whole disk. > > https://lists.freebsd.org/pipermail/freebsd-geom/2009-April/003473.html > > -- > WBR, Andrey V. Elsukov > > From owner-svn-src-all@freebsd.org Mon Jul 18 19:46:33 2016 Return-Path: Delivered-To: svn-src-all@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 C9FDCB9D299; Mon, 18 Jul 2016 19:46:33 +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 6CE261F1B; Mon, 18 Jul 2016 19:46:33 +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 u6IJkWpV096725; Mon, 18 Jul 2016 19:46:32 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IJkVKO096708; Mon, 18 Jul 2016 19:46:31 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201607181946.u6IJkVKO096708@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Mon, 18 Jul 2016 19:46:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303012 - in head: sbin/ipfw sys/conf sys/modules sys/modules/ipfw_nptv6 sys/netinet sys/netinet6 sys/netpfil/ipfw/nptv6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 19:46:33 -0000 Author: ae Date: Mon Jul 18 19:46:31 2016 New Revision: 303012 URL: https://svnweb.freebsd.org/changeset/base/303012 Log: Add ipfw_nptv6 module that implements Network Prefix Translation for IPv6 as defined in RFC 6296. The module works together with ipfw(4) and implemented as its external action module. When it is loaded, it registers as eaction and can be used in rules. The usage pattern is similar to ipfw_nat(4). All matched by rule traffic goes to the NPT module. Reviewed by: hrs Obtained from: Yandex LLC MFC after: 1 month Relnotes: yes Sponsored by: Yandex LLC Differential Revision: https://reviews.freebsd.org/D6420 Added: head/sbin/ipfw/nptv6.c (contents, props changed) head/sys/modules/ipfw_nptv6/ head/sys/modules/ipfw_nptv6/Makefile (contents, props changed) head/sys/netinet6/ip_fw_nptv6.h (contents, props changed) head/sys/netpfil/ipfw/nptv6/ head/sys/netpfil/ipfw/nptv6/ip_fw_nptv6.c (contents, props changed) head/sys/netpfil/ipfw/nptv6/nptv6.c (contents, props changed) head/sys/netpfil/ipfw/nptv6/nptv6.h (contents, props changed) Modified: head/sbin/ipfw/Makefile head/sbin/ipfw/ipfw.8 head/sbin/ipfw/ipfw2.c head/sbin/ipfw/ipfw2.h head/sbin/ipfw/main.c head/sys/conf/NOTES head/sys/conf/files head/sys/conf/options head/sys/modules/Makefile head/sys/netinet/ip_fw.h Modified: head/sbin/ipfw/Makefile ============================================================================== --- head/sbin/ipfw/Makefile Mon Jul 18 19:20:49 2016 (r303011) +++ head/sbin/ipfw/Makefile Mon Jul 18 19:46:31 2016 (r303012) @@ -5,6 +5,7 @@ PACKAGE=ipfw PROG= ipfw SRCS= ipfw2.c dummynet.c ipv6.c main.c nat.c tables.c +SRCS+= nptv6.c WARNS?= 2 .if ${MK_PF} != "no" Modified: head/sbin/ipfw/ipfw.8 ============================================================================== --- head/sbin/ipfw/ipfw.8 Mon Jul 18 19:20:49 2016 (r303011) +++ head/sbin/ipfw/ipfw.8 Mon Jul 18 19:46:31 2016 (r303012) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 26, 2016 +.Dd July 18, 2016 .Dt IPFW 8 .Os .Sh NAME @@ -113,6 +113,19 @@ in-kernel NAT. .Oc .Oc .Ar pathname +.Ss IPv6-to-IPv6 NETWORK PREFIX TRANSLATION +.Nm +.Oo Cm set Ar N Oc Cm nptv6 Ar name Cm create Ar create-options +.Nm +.Oo Cm set Ar N Oc Cm nptv6 +.Brq Ar name | all +.Brq Cm list | show +.Nm +.Oo Cm set Ar N Oc Cm nptv6 +.Brq Ar name | all +.Cm destroy +.Nm +.Oo Cm set Ar N Oc Cm nptv6 Ar name Cm stats .Ss INTERNAL DIAGNOSTICS .Nm .Cm internal iflist @@ -813,6 +826,11 @@ nat instance see the .Sx NETWORK ADDRESS TRANSLATION (NAT) Section for further information. +.It Cm nptv6 Ar name +Pass packet to a NPTv6 instance (for IPv6-to-IPv6 network prefix translation): +see the +.Sx IPv6-to-IPv6 NETWORK PREFIX TRANSLATION (NPTv6) +Section for further information. .It Cm pipe Ar pipe_nr Pass packet to a .Nm dummynet @@ -2885,6 +2903,47 @@ instances. See .Sx SYSCTL VARIABLES for more info. +.Sh IPv6-to-IPv6 NETWORK PREFIX TRANSLATION (NPTv6) +.Nm +support in-kernel IPv6-to-IPv6 network prefix translation as described +in RFC6296. +The kernel module +.Cm ipfw_nptv6 +should be loaded or kernel should has +.Cm options IPFIREWALL_NPTV6 +to be able use NPTv6 translator. +.Pp +The NPTv6 configuration command is the following: +.Bd -ragged -offset indent +.Bk -words +.Cm nptv6 +.Ar name +.Cm create +.Ar create-options +.Ek +.Ed +.Pp +The following parameters can be configured: +.Bl -tag -width indent +.It Cm int_prefix Ar ipv6_prefix +IPv6 prefix used in internal network. +NPTv6 module translates source address when it matches this prefix. +.It Cm ext_prefix Ar ipv6_prefix +IPv6 prefix used in external network. +NPTv6 module translates destination address when it matches this prefix. +.It Cm prefixlen Ar length +The length of specified IPv6 prefixes. It must be in range from 8 to 64. +.El +.Pp +Note that the prefix translation rules are silently ignored when IPv6 packet +forwarding is disabled. +To enable the packet forwarding, set the sysctl variable +.Va net.inet6.ip6.forwarding +to 1. +.Pp +To let the packet continue after being translated, set the sysctl variable +.Va net.inet.ip.fw.one_pass +to 0. .Sh LOADER TUNABLES Tunables can be set in .Xr loader 8 Modified: head/sbin/ipfw/ipfw2.c ============================================================================== --- head/sbin/ipfw/ipfw2.c Mon Jul 18 19:20:49 2016 (r303011) +++ head/sbin/ipfw/ipfw2.c Mon Jul 18 19:46:31 2016 (r303012) @@ -235,6 +235,7 @@ static struct _s_x ether_types[] = { }; static struct _s_x rule_eactions[] = { + { "nptv6", TOK_NPTV6 }, { NULL, 0 } /* terminator */ }; Modified: head/sbin/ipfw/ipfw2.h ============================================================================== --- head/sbin/ipfw/ipfw2.h Mon Jul 18 19:20:49 2016 (r303011) +++ head/sbin/ipfw/ipfw2.h Mon Jul 18 19:46:31 2016 (r303012) @@ -254,6 +254,13 @@ enum tokens { TOK_UNLOCK, TOK_VLIST, TOK_OLIST, + TOK_STATS, + + /* NPTv6 tokens */ + TOK_NPTV6, + TOK_INTPREFIX, + TOK_EXTPREFIX, + TOK_PREFIXLEN, }; /* @@ -340,6 +347,7 @@ void ipfw_flush(int force); void ipfw_zero(int ac, char *av[], int optname); void ipfw_list(int ac, char *av[], int show_counters); void ipfw_internal_handler(int ac, char *av[]); +void ipfw_nptv6_handler(int ac, char *av[]); int ipfw_check_object_name(const char *name); #ifdef PF Modified: head/sbin/ipfw/main.c ============================================================================== --- head/sbin/ipfw/main.c Mon Jul 18 19:20:49 2016 (r303011) +++ head/sbin/ipfw/main.c Mon Jul 18 19:46:31 2016 (r303012) @@ -425,6 +425,8 @@ ipfw_main(int oldac, char **oldav) if (co.use_set || try_next) { if (_substrcmp(*av, "delete") == 0) ipfw_delete(av); + else if (!strncmp(*av, "nptv6", strlen(*av))) + ipfw_nptv6_handler(ac, av); else if (_substrcmp(*av, "flush") == 0) ipfw_flush(co.do_force); else if (_substrcmp(*av, "zero") == 0) Added: head/sbin/ipfw/nptv6.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/ipfw/nptv6.c Mon Jul 18 19:46:31 2016 (r303012) @@ -0,0 +1,399 @@ +/*- + * Copyright (c) 2016 Yandex LLC + * Copyright (c) 2016 Andrey V. Elsukov + * 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 ``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 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 + +#include "ipfw2.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + + +typedef int (nptv6_cb_t)(ipfw_nptv6_cfg *i, const char *name, uint8_t set); +static int nptv6_foreach(nptv6_cb_t *f, const char *name, uint8_t set, + int sort); + +static void nptv6_create(const char *name, uint8_t set, int ac, char **av); +static void nptv6_destroy(const char *name, uint8_t set); +static void nptv6_stats(const char *name, uint8_t set); +static int nptv6_show_cb(ipfw_nptv6_cfg *cfg, const char *name, uint8_t set); +static int nptv6_destroy_cb(ipfw_nptv6_cfg *cfg, const char *name, uint8_t set); + +static struct _s_x nptv6cmds[] = { + { "create", TOK_CREATE }, + { "destroy", TOK_DESTROY }, + { "list", TOK_LIST }, + { "show", TOK_LIST }, + { "stats", TOK_STATS }, + { NULL, 0 } +}; + +/* + * This one handles all NPTv6-related commands + * ipfw [set N] nptv6 NAME {create | config} ... + * ipfw [set N] nptv6 NAME stats + * ipfw [set N] nptv6 {NAME | all} destroy + * ipfw [set N] nptv6 {NAME | all} {list | show} + */ +#define nptv6_check_name table_check_name +void +ipfw_nptv6_handler(int ac, char *av[]) +{ + const char *name; + int tcmd; + uint8_t set; + + if (co.use_set != 0) + set = co.use_set - 1; + else + set = 0; + ac--; av++; + + NEED1("nptv6 needs instance name"); + name = *av; + if (nptv6_check_name(name) != 0) { + if (strcmp(name, "all") == 0) { + name = NULL; + } else + errx(EX_USAGE, "nptv6 instance name %s is invalid", + name); + } + ac--; av++; + NEED1("nptv6 needs command"); + + tcmd = get_token(nptv6cmds, *av, "nptv6 command"); + if (name == NULL && tcmd != TOK_DESTROY && tcmd != TOK_LIST) + errx(EX_USAGE, "nptv6 instance name required"); + switch (tcmd) { + case TOK_CREATE: + ac--; av++; + nptv6_create(name, set, ac, av); + break; + case TOK_LIST: + nptv6_foreach(nptv6_show_cb, name, set, 1); + break; + case TOK_DESTROY: + if (name == NULL) + nptv6_foreach(nptv6_destroy_cb, NULL, set, 0); + else + nptv6_destroy(name, set); + break; + case TOK_STATS: + nptv6_stats(name, set); + } +} + + +static void +nptv6_fill_ntlv(ipfw_obj_ntlv *ntlv, const char *name, uint8_t set) +{ + + ntlv->head.type = IPFW_TLV_EACTION_NAME(1); /* it doesn't matter */ + ntlv->head.length = sizeof(ipfw_obj_ntlv); + ntlv->idx = 1; + ntlv->set = set; + strlcpy(ntlv->name, name, sizeof(ntlv->name)); +} + +static struct _s_x nptv6newcmds[] = { + { "int_prefix", TOK_INTPREFIX }, + { "ext_prefix", TOK_EXTPREFIX }, + { "prefixlen", TOK_PREFIXLEN }, + { NULL, 0 } +}; + + +static void +nptv6_parse_prefix(const char *arg, struct in6_addr *prefix, int *len) +{ + char *p, *l; + + p = strdup(arg); + if (p == NULL) + err(EX_OSERR, NULL); + if ((l = strchr(p, '/')) != NULL) + *l++ = '\0'; + if (inet_pton(AF_INET6, p, prefix) != 1) + errx(EX_USAGE, "Bad prefix: %s", p); + if (l != NULL) { + *len = (int)strtol(l, &l, 10); + if (*l != '\0' || *len <= 0 || *len > 64) + errx(EX_USAGE, "Bad prefix length: %s", arg); + } else + *len = 0; + free(p); +} +/* + * Creates new nptv6 instance + * ipfw nptv6 create int_prefix ext_prefix + * Request: [ ipfw_obj_lheader ipfw_nptv6_cfg ] + */ +#define NPTV6_HAS_INTPREFIX 0x01 +#define NPTV6_HAS_EXTPREFIX 0x02 +#define NPTV6_HAS_PREFIXLEN 0x04 +static void +nptv6_create(const char *name, uint8_t set, int ac, char *av[]) +{ + char buf[sizeof(ipfw_obj_lheader) + sizeof(ipfw_nptv6_cfg)]; + struct in6_addr mask; + ipfw_nptv6_cfg *cfg; + ipfw_obj_lheader *olh; + int tcmd, flags, plen; + char *p = "\0"; + + plen = 0; + memset(buf, 0, sizeof(buf)); + olh = (ipfw_obj_lheader *)buf; + cfg = (ipfw_nptv6_cfg *)(olh + 1); + cfg->set = set; + flags = 0; + while (ac > 0) { + tcmd = get_token(nptv6newcmds, *av, "option"); + ac--; av++; + + switch (tcmd) { + case TOK_INTPREFIX: + NEED1("IPv6 prefix required"); + nptv6_parse_prefix(*av, &cfg->internal, &plen); + flags |= NPTV6_HAS_INTPREFIX; + if (plen > 0) + goto check_prefix; + ac--; av++; + break; + case TOK_EXTPREFIX: + NEED1("IPv6 prefix required"); + nptv6_parse_prefix(*av, &cfg->external, &plen); + flags |= NPTV6_HAS_EXTPREFIX; + if (plen > 0) + goto check_prefix; + ac--; av++; + break; + case TOK_PREFIXLEN: + NEED1("IPv6 prefix length required"); + plen = strtol(*av, &p, 10); +check_prefix: + if (*p != '\0' || plen < 8 || plen > 64) + errx(EX_USAGE, "wrong prefix length: %s", *av); + /* RFC 6296 Sec. 3.1 */ + if (cfg->plen > 0 && cfg->plen != plen) { + warnx("Prefix length mismatch (%d vs %d). " + "It was extended up to %d", + cfg->plen, plen, MAX(plen, cfg->plen)); + plen = MAX(plen, cfg->plen); + } + cfg->plen = plen; + flags |= NPTV6_HAS_PREFIXLEN; + ac--; av++; + break; + } + } + + /* Check validness */ + if ((flags & NPTV6_HAS_INTPREFIX) != NPTV6_HAS_INTPREFIX) + errx(EX_USAGE, "int_prefix required"); + if ((flags & NPTV6_HAS_EXTPREFIX) != NPTV6_HAS_EXTPREFIX) + errx(EX_USAGE, "ext_prefix required"); + if ((flags & NPTV6_HAS_PREFIXLEN) != NPTV6_HAS_PREFIXLEN) + errx(EX_USAGE, "prefixlen required"); + + n2mask(&mask, cfg->plen); + APPLY_MASK(&cfg->internal, &mask); + APPLY_MASK(&cfg->external, &mask); + + olh->count = 1; + olh->objsize = sizeof(*cfg); + olh->size = sizeof(buf); + strlcpy(cfg->name, name, sizeof(cfg->name)); + if (do_set3(IP_FW_NPTV6_CREATE, &olh->opheader, sizeof(buf)) != 0) + err(EX_OSERR, "nptv6 instance creation failed"); +} + +/* + * Destroys NPTv6 instance. + * Request: [ ipfw_obj_header ] + */ +static void +nptv6_destroy(const char *name, uint8_t set) +{ + ipfw_obj_header oh; + + memset(&oh, 0, sizeof(oh)); + nptv6_fill_ntlv(&oh.ntlv, name, set); + if (do_set3(IP_FW_NPTV6_DESTROY, &oh.opheader, sizeof(oh)) != 0) + err(EX_OSERR, "failed to destroy nat instance %s", name); +} + +/* + * Get NPTv6 instance statistics. + * Request: [ ipfw_obj_header ] + * Reply: [ ipfw_obj_header ipfw_obj_ctlv [ uint64_t x N ] ] + */ +static int +nptv6_get_stats(const char *name, uint8_t set, struct ipfw_nptv6_stats *stats) +{ + ipfw_obj_header *oh; + ipfw_obj_ctlv *oc; + size_t sz; + + sz = sizeof(*oh) + sizeof(*oc) + sizeof(*stats); + oh = calloc(1, sz); + nptv6_fill_ntlv(&oh->ntlv, name, set); + if (do_get3(IP_FW_NPTV6_STATS, &oh->opheader, &sz) == 0) { + oc = (ipfw_obj_ctlv *)(oh + 1); + memcpy(stats, oc + 1, sizeof(*stats)); + free(oh); + return (0); + } + free(oh); + return (-1); +} + +static void +nptv6_stats(const char *name, uint8_t set) +{ + struct ipfw_nptv6_stats stats; + + if (nptv6_get_stats(name, set, &stats) != 0) + err(EX_OSERR, "Error retrieving stats"); + + printf("Number of packets translated (internal to external): %ju\n", + (uintmax_t)stats.in2ex); + printf("Number of packets translated (external to internal): %ju\n", + (uintmax_t)stats.ex2in); + printf("Number of packets dropped due to some error: %ju\n", + (uintmax_t)stats.dropped); +} + +static int +nptv6_show_cb(ipfw_nptv6_cfg *cfg, const char *name, uint8_t set) +{ + char abuf[INET6_ADDRSTRLEN]; + + if (name != NULL && strcmp(cfg->name, name) != 0) + return (ESRCH); + + if (co.use_set != 0 && cfg->set != set) + return (ESRCH); + + if (co.use_set != 0 || cfg->set != 0) + printf("set %u ", cfg->set); + inet_ntop(AF_INET6, &cfg->internal, abuf, sizeof(abuf)); + printf("nptv6 %s int_prefix %s ", cfg->name, abuf); + inet_ntop(AF_INET6, &cfg->external, abuf, sizeof(abuf)); + printf("ext_prefix %s prefixlen %u\n", abuf, cfg->plen); + return (0); +} + +static int +nptv6_destroy_cb(ipfw_nptv6_cfg *cfg, const char *name, uint8_t set) +{ + + if (co.use_set != 0 && cfg->set != set) + return (ESRCH); + + nptv6_destroy(cfg->name, cfg->set); + return (0); +} + + +/* + * Compare NPTv6 instances names. + * Honor number comparison. + */ +static int +nptv6name_cmp(const void *a, const void *b) +{ + ipfw_nptv6_cfg *ca, *cb; + + ca = (ipfw_nptv6_cfg *)a; + cb = (ipfw_nptv6_cfg *)b; + + if (ca->set > cb->set) + return (1); + else if (ca->set < cb->set) + return (-1); + return (stringnum_cmp(ca->name, cb->name)); +} + +/* + * Retrieves NPTv6 instance list from kernel, + * Request: [ ipfw_obj_lheader ] + * Reply: [ ipfw_obj_lheader ipfw_nptv6_cfg x N ] + */ +static int +nptv6_foreach(nptv6_cb_t *f, const char *name, uint8_t set, int sort) +{ + ipfw_obj_lheader *olh; + ipfw_nptv6_cfg *cfg; + size_t sz; + int i, error; + + /* Start with reasonable default */ + sz = sizeof(*olh) + 16 * sizeof(*cfg); + for (;;) { + if ((olh = calloc(1, sz)) == NULL) + return (ENOMEM); + + olh->size = sz; + if (do_get3(IP_FW_NPTV6_LIST, &olh->opheader, &sz) != 0) { + sz = olh->size; + free(olh); + if (errno != ENOMEM) + return (errno); + continue; + } + + if (sort != 0) + qsort(olh + 1, olh->count, olh->objsize, nptv6name_cmp); + + cfg = (ipfw_nptv6_cfg *)(olh + 1); + for (i = 0; i < olh->count; i++) { + error = f(cfg, name, set); + cfg = (ipfw_nptv6_cfg *)((caddr_t)cfg + olh->objsize); + } + free(olh); + break; + } + return (0); +} + Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Mon Jul 18 19:20:49 2016 (r303011) +++ head/sys/conf/NOTES Mon Jul 18 19:46:31 2016 (r303012) @@ -965,6 +965,8 @@ device lagg # IPFIREWALL_NAT adds support for in kernel nat in ipfw, and it requires # LIBALIAS. # +# IPFIREWALL_NPTV6 adds support for in kernel NPTv6 in ipfw. +# # IPSTEALTH enables code to support stealth forwarding (i.e., forwarding # packets without touching the TTL). This can be useful to hide firewalls # from traceroute and similar tools. @@ -986,6 +988,7 @@ options IPFIREWALL_VERBOSE #enable logg options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default options IPFIREWALL_NAT #ipfw kernel nat support +options IPFIREWALL_NPTV6 #ipfw kernel IPv6 NPT support options IPDIVERT #divert sockets options IPFILTER #ipfilter support options IPFILTER_LOG #ipfilter logging Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Mon Jul 18 19:20:49 2016 (r303011) +++ head/sys/conf/files Mon Jul 18 19:46:31 2016 (r303012) @@ -3859,6 +3859,10 @@ netpfil/ipfw/ip_fw_table_algo.c optional netpfil/ipfw/ip_fw_table_value.c optional inet ipfirewall netpfil/ipfw/ip_fw_iface.c optional inet ipfirewall netpfil/ipfw/ip_fw_nat.c optional inet ipfirewall_nat +netpfil/ipfw/nptv6/ip_fw_nptv6.c optional inet inet6 ipfirewall \ + ipfirewall_nptv6 +netpfil/ipfw/nptv6/nptv6.c optional inet inet6 ipfirewall \ + ipfirewall_nptv6 netpfil/pf/if_pflog.c optional pflog pf inet netpfil/pf/if_pfsync.c optional pfsync pf inet netpfil/pf/pf.c optional pf inet Modified: head/sys/conf/options ============================================================================== --- head/sys/conf/options Mon Jul 18 19:20:49 2016 (r303011) +++ head/sys/conf/options Mon Jul 18 19:46:31 2016 (r303012) @@ -417,6 +417,7 @@ IPFILTER_LOOKUP opt_ipfilter.h IPFIREWALL opt_ipfw.h IPFIREWALL_DEFAULT_TO_ACCEPT opt_ipfw.h IPFIREWALL_NAT opt_ipfw.h +IPFIREWALL_NPTV6 opt_ipfw.h IPFIREWALL_VERBOSE opt_ipfw.h IPFIREWALL_VERBOSE_LIMIT opt_ipfw.h IPSEC opt_ipsec.h Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Mon Jul 18 19:20:49 2016 (r303011) +++ head/sys/modules/Makefile Mon Jul 18 19:46:31 2016 (r303012) @@ -167,6 +167,7 @@ SUBDIR= \ ${_ipfilter} \ ${_ipfw} \ ipfw_nat \ + ${_ipfw_nptv6} \ ${_ipmi} \ ip6_mroute_mod \ ip_mroute_mod \ @@ -460,6 +461,10 @@ _ipdivert= ipdivert _ipfw= ipfw .endif +.if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES) +_ipfw_nptv6= ipfw_nptv6 +.endif + .if ${MK_IPFILTER} != "no" || defined(ALL_MODULES) _ipfilter= ipfilter .endif Added: head/sys/modules/ipfw_nptv6/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/modules/ipfw_nptv6/Makefile Mon Jul 18 19:46:31 2016 (r303012) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../netpfil/ipfw/nptv6 + +KMOD= ipfw_nptv6 +SRCS= ip_fw_nptv6.c nptv6.c opt_ipfw.h + +.include Modified: head/sys/netinet/ip_fw.h ============================================================================== --- head/sys/netinet/ip_fw.h Mon Jul 18 19:20:49 2016 (r303011) +++ head/sys/netinet/ip_fw.h Mon Jul 18 19:46:31 2016 (r303012) @@ -109,6 +109,12 @@ typedef struct _ip_fw3_opheader { #define IP_FW_DUMP_SOPTCODES 116 /* Dump available sopts/versions */ #define IP_FW_DUMP_SRVOBJECTS 117 /* Dump existing named objects */ +#define IP_FW_NPTV6_CREATE 150 /* Create NPTv6 instance */ +#define IP_FW_NPTV6_DESTROY 151 /* Destroy NPTv6 instance */ +#define IP_FW_NPTV6_CONFIG 152 /* Modify NPTv6 instance */ +#define IP_FW_NPTV6_LIST 153 /* List NPTv6 instances */ +#define IP_FW_NPTV6_STATS 154 /* Get NPTv6 instance statistics */ + /* * The kernel representation of ipfw rules is made of a list of * 'instructions' (for all practical purposes equivalent to BPF @@ -783,6 +789,7 @@ typedef struct _ipfw_obj_tlv { #define IPFW_TLV_TBLENT_LIST 8 #define IPFW_TLV_RANGE 9 #define IPFW_TLV_EACTION 10 +#define IPFW_TLV_COUNTERS 11 #define IPFW_TLV_EACTION_BASE 1000 #define IPFW_TLV_EACTION_NAME(arg) (IPFW_TLV_EACTION_BASE + (arg)) Added: head/sys/netinet6/ip_fw_nptv6.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/netinet6/ip_fw_nptv6.h Mon Jul 18 19:46:31 2016 (r303012) @@ -0,0 +1,51 @@ +/*- + * Copyright (c) 2016 Yandex LLC + * Copyright (c) 2016 Andrey V. Elsukov + * 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 ``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 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. + * + * $FreeBSD$ + */ + +#ifndef _NETINET6_IP_FW_NPTV6_H_ +#define _NETINET6_IP_FW_NPTV6_H_ + +struct ipfw_nptv6_stats { + uint64_t in2ex; /* Int->Ext packets translated */ + uint64_t ex2in; /* Ext->Int packets translated */ + uint64_t dropped; /* dropped due to some errors */ + uint64_t reserved[5]; +}; + +typedef struct _ipfw_nptv6_cfg { + char name[64]; /* NPTv6 instance name */ + struct in6_addr internal; /* NPTv6 internal prefix */ + struct in6_addr external; /* NPTv6 external prefix */ + uint8_t plen; /* Prefix length */ + uint8_t set; /* Named instance set [0..31] */ + uint8_t spare[2]; + uint32_t flags; +} ipfw_nptv6_cfg; + +#endif /* _NETINET6_IP_FW_NPTV6_H_ */ + Added: head/sys/netpfil/ipfw/nptv6/ip_fw_nptv6.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/netpfil/ipfw/nptv6/ip_fw_nptv6.c Mon Jul 18 19:46:31 2016 (r303012) @@ -0,0 +1,99 @@ +/*- + * Copyright (c) 2016 Yandex LLC + * Copyright (c) 2016 Andrey V. Elsukov + * 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 ``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 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 +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +#include +#include + +static int +vnet_ipfw_nptv6_init(const void *arg __unused) +{ + + return (nptv6_init(&V_layer3_chain, IS_DEFAULT_VNET(curvnet))); +} + +static int +vnet_ipfw_nptv6_uninit(const void *arg __unused) +{ + + nptv6_uninit(&V_layer3_chain, IS_DEFAULT_VNET(curvnet)); + return (0); +} + +static int +ipfw_nptv6_modevent(module_t mod, int type, void *unused) +{ + + switch (type) { + case MOD_LOAD: + case MOD_UNLOAD: + break; + default: + return (EOPNOTSUPP); + } + return (0); +} + +static moduledata_t ipfw_nptv6_mod = { + "ipfw_nptv6", + ipfw_nptv6_modevent, + 0 +}; + +/* Define startup order. */ +#define IPFW_NPTV6_SI_SUB_FIREWALL SI_SUB_PROTO_IFATTACHDOMAIN +#define IPFW_NPTV6_MODEVENT_ORDER (SI_ORDER_ANY - 128) /* after ipfw */ +#define IPFW_NPTV6_MODULE_ORDER (IPFW_NPTV6_MODEVENT_ORDER + 1) +#define IPFW_NPTV6_VNET_ORDER (IPFW_NPTV6_MODEVENT_ORDER + 2) + +DECLARE_MODULE(ipfw_nptv6, ipfw_nptv6_mod, IPFW_NPTV6_SI_SUB_FIREWALL, + IPFW_NPTV6_MODULE_ORDER); +MODULE_DEPEND(ipfw_nptv6, ipfw, 3, 3, 3); +MODULE_VERSION(ipfw_nptv6, 1); + +VNET_SYSINIT(vnet_ipfw_nptv6_init, IPFW_NPTV6_SI_SUB_FIREWALL, + IPFW_NPTV6_VNET_ORDER, vnet_ipfw_nptv6_init, NULL); +VNET_SYSUNINIT(vnet_ipfw_nptv6_uninit, IPFW_NPTV6_SI_SUB_FIREWALL, + IPFW_NPTV6_VNET_ORDER, vnet_ipfw_nptv6_uninit, NULL); Added: head/sys/netpfil/ipfw/nptv6/nptv6.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/netpfil/ipfw/nptv6/nptv6.c Mon Jul 18 19:46:31 2016 (r303012) @@ -0,0 +1,856 @@ +/*- + * Copyright (c) 2016 Yandex LLC + * Copyright (c) 2016 Andrey V. Elsukov + * 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 ``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 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +static VNET_DEFINE(uint16_t, nptv6_eid) = 0; +#define V_nptv6_eid VNET(nptv6_eid) +#define IPFW_TLV_NPTV6_NAME IPFW_TLV_EACTION_NAME(V_nptv6_eid) + +static struct nptv6_cfg *nptv6_alloc_config(const char *name, uint8_t set); +static void nptv6_free_config(struct nptv6_cfg *cfg); +static struct nptv6_cfg *nptv6_find(struct namedobj_instance *ni, + const char *name, uint8_t set); +static int nptv6_rewrite_internal(struct nptv6_cfg *cfg, struct mbuf **mp, + int offset); +static int nptv6_rewrite_external(struct nptv6_cfg *cfg, struct mbuf **mp, + int offset); + +#define NPTV6_LOOKUP(chain, cmd) \ + (struct nptv6_cfg *)SRV_OBJECT((chain), (cmd)->arg1) + +#ifndef IN6_MASK_ADDR +#define IN6_MASK_ADDR(a, m) do { \ + (a)->s6_addr32[0] &= (m)->s6_addr32[0]; \ + (a)->s6_addr32[1] &= (m)->s6_addr32[1]; \ + (a)->s6_addr32[2] &= (m)->s6_addr32[2]; \ + (a)->s6_addr32[3] &= (m)->s6_addr32[3]; \ +} while (0) +#endif +#ifndef IN6_ARE_MASKED_ADDR_EQUAL +#define IN6_ARE_MASKED_ADDR_EQUAL(d, a, m) ( \ + (((d)->s6_addr32[0] ^ (a)->s6_addr32[0]) & (m)->s6_addr32[0]) == 0 && \ + (((d)->s6_addr32[1] ^ (a)->s6_addr32[1]) & (m)->s6_addr32[1]) == 0 && \ + (((d)->s6_addr32[2] ^ (a)->s6_addr32[2]) & (m)->s6_addr32[2]) == 0 && \ + (((d)->s6_addr32[3] ^ (a)->s6_addr32[3]) & (m)->s6_addr32[3]) == 0 ) +#endif + +#if 0 +#define NPTV6_DEBUG(fmt, ...) do { \ + printf("%s: " fmt "\n", __func__, ## __VA_ARGS__); \ +} while (0) +#define NPTV6_IPDEBUG(fmt, ...) do { \ + char _s[INET6_ADDRSTRLEN], _d[INET6_ADDRSTRLEN]; \ + printf("%s: " fmt "\n", __func__, ## __VA_ARGS__); \ +} while (0) +#else +#define NPTV6_DEBUG(fmt, ...) +#define NPTV6_IPDEBUG(fmt, ...) +#endif + +static int +nptv6_getlasthdr(struct nptv6_cfg *cfg, struct mbuf *m, int *offset) +{ + struct ip6_hdr *ip6; + struct ip6_hbh *hbh; + int proto, hlen; + + hlen = (offset == NULL) ? 0: *offset; + if (m->m_len < hlen) + return (-1); + ip6 = mtodo(m, hlen); + hlen += sizeof(*ip6); + proto = ip6->ip6_nxt; + while (proto == IPPROTO_HOPOPTS || proto == IPPROTO_ROUTING || + proto == IPPROTO_DSTOPTS) { + hbh = mtodo(m, hlen); + if (m->m_len < hlen) + return (-1); + proto = hbh->ip6h_nxt; + hlen += hbh->ip6h_len << 3; + } + if (offset != NULL) + *offset = hlen; + return (proto); +} + +static int +nptv6_translate_icmpv6(struct nptv6_cfg *cfg, struct mbuf **mp, int offset) +{ + struct icmp6_hdr *icmp6; + struct ip6_hdr *ip6; + struct mbuf *m; + + m = *mp; + if (offset > m->m_len) + return (-1); + icmp6 = mtodo(m, offset); + NPTV6_DEBUG("ICMPv6 type %d", icmp6->icmp6_type); + switch (icmp6->icmp6_type) { + case ICMP6_DST_UNREACH: + case ICMP6_PACKET_TOO_BIG: + case ICMP6_TIME_EXCEEDED: + case ICMP6_PARAM_PROB: + break; + case ICMP6_ECHO_REQUEST: + case ICMP6_ECHO_REPLY: + /* nothing to translate */ + return (0); + default: + /* + * XXX: We can add some checks to not translate NDP and MLD + * messages. Currently user must explicitly allow these message + * types, otherwise packets will be dropped. + */ + return (-1); + } + offset += sizeof(*icmp6); + if (offset + sizeof(*ip6) > m->m_pkthdr.len) + return (-1); + if (offset + sizeof(*ip6) > m->m_len) + *mp = m = m_pullup(m, offset + sizeof(*ip6)); + if (m == NULL) + return (-1); + ip6 = mtodo(m, offset); + NPTV6_IPDEBUG("offset %d, %s -> %s %d", offset, + inet_ntop(AF_INET6, &ip6->ip6_src, _s, sizeof(_s)), + inet_ntop(AF_INET6, &ip6->ip6_dst, _d, sizeof(_d)), + ip6->ip6_nxt); + if (IN6_ARE_MASKED_ADDR_EQUAL(&ip6->ip6_src, + &cfg->external, &cfg->mask)) + return (nptv6_rewrite_external(cfg, mp, offset)); + else if (IN6_ARE_MASKED_ADDR_EQUAL(&ip6->ip6_dst, + &cfg->internal, &cfg->mask)) + return (nptv6_rewrite_internal(cfg, mp, offset)); + /* + * Addresses in the inner IPv6 header doesn't matched to + * our prefixes. + */ + return (-1); +} + +static int +nptv6_search_index(struct nptv6_cfg *cfg, struct in6_addr *a) +{ + int idx; + + if (cfg->flags & NPTV6_48PLEN) + return (3); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Mon Jul 18 20:19:22 2016 Return-Path: Delivered-To: svn-src-all@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 CDAA2B9DCE5; Mon, 18 Jul 2016 20:19:22 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from forward2p.cmail.yandex.net (forward2p.cmail.yandex.net [IPv6:2a02:6b8:0:1465::12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "forwards.mail.yandex.net", Issuer "Yandex CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4CCE01C0B; Mon, 18 Jul 2016 20:19:22 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from smtp2o.mail.yandex.net (smtp2o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::26]) by forward2p.cmail.yandex.net (Yandex) with ESMTP id 5477320BFF; Mon, 18 Jul 2016 23:19:19 +0300 (MSK) Received: from smtp2o.mail.yandex.net (localhost [127.0.0.1]) by smtp2o.mail.yandex.net (Yandex) with ESMTP id 4C18C36A0142; Mon, 18 Jul 2016 23:19:19 +0300 (MSK) Received: by smtp2o.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id FUVxW9rkDc-JIqCVn7F; Mon, 18 Jul 2016 23:19:18 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1468873158; bh=Jf8K0/fmJA3imzdKbrB3gUgY4gLmtp2aJAD7ivgc390=; h=Subject:To:References:Cc:From:Message-ID:Date:In-Reply-To; b=k8Gn+9FInWDYMavEA+wmL/wfh1jDNeK/JHcU5JBco13RL3jzfFze5RlwEY6/y2AgE GJC8+9KVgDJWN7bd5EapMEpd2ZqkOvYYeUfY2i8jr1NqJaNgHko9G+xV3Jg9sydbG8 9zDEmW+dp6fjS94x5nke4a7wIced/LyiOUiMy4+I= Authentication-Results: smtp2o.mail.yandex.net; dkim=pass header.i=@yandex.ru X-Yandex-Suid-Status: 1 0,1 0,1 0,1 0 Subject: Re: svn commit: r302985 - head/sys/geom/label To: Maxim Sobolev References: <201607180500.u6I501CX063743@repo.freebsd.org> <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> <61cba001-2717-49ee-843e-5ed6d18fa17b@yandex.ru> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: "Andrey V. Elsukov" Message-ID: Date: Mon, 18 Jul 2016 23:18:23 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="wreecAFKFdkWKNgeGUDHMPliFBrdlQJgm" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 20:19:22 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --wreecAFKFdkWKNgeGUDHMPliFBrdlQJgm Content-Type: multipart/mixed; boundary="FAepU4tSjmrHo8c9r2AgS4V4vrGpWkGt5" From: "Andrey V. Elsukov" To: Maxim Sobolev Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: Subject: Re: svn commit: r302985 - head/sys/geom/label References: <201607180500.u6I501CX063743@repo.freebsd.org> <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> <61cba001-2717-49ee-843e-5ed6d18fa17b@yandex.ru> In-Reply-To: --FAepU4tSjmrHo8c9r2AgS4V4vrGpWkGt5 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 18.07.16 22:37, Maxim Sobolev wrote: > Well, this looks to me exactly what I am talking about. With this chang= e > we are only allowing underlying provider to be *slighly* bigger than th= e > UFS size. So as I said it's pretty harmless to do so, or at least I So, this isn't true. 1. You use abs() in the macro - it can be less or bigger. 2. fs_fsize is size of frag blocks, so use it as divider looks incorrect.= --=20 WBR, Andrey V. Elsukov --FAepU4tSjmrHo8c9r2AgS4V4vrGpWkGt5-- --wreecAFKFdkWKNgeGUDHMPliFBrdlQJgm Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEvBAEBCAAZBQJXjTmPEhxidTdjaGVyQHlhbmRleC5ydQAKCRABxeoEEMiheh6A B/44rvP4rq1As7fp9yCYCoeQjc7sz95aa4VH4BLHL2WhVm8DVuj8R2meh0O2UdQs jyJY5UpHhM3maJhDZ9aiqlHS1k6uqDQilfha2oyLO9XKiue3waBzhw+4bBVYmLBX qOnEVs5TSSW8FeaFn2E3EfEGErLJhqhkchIDqWbML8P/fKitAm2SbSpCjUeGPRhX XhnNgDj3C4HJngT4ZycCv+WPieruJiJShSk8//r1CHA48IX6JFIaSFllvj4IQYD1 tBQlWr6HUK4n8yQaWTRee31FAQAMDOYbfvjMvlPFFA6QdkeSx/bAYAE0Zx++Sco7 V8slSI90Y7ZFtpvINJz3adWp =UYpW -----END PGP SIGNATURE----- --wreecAFKFdkWKNgeGUDHMPliFBrdlQJgm-- From owner-svn-src-all@freebsd.org Mon Jul 18 20:24:14 2016 Return-Path: Delivered-To: svn-src-all@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 883DAB9DEE3; Mon, 18 Jul 2016 20:24:14 +0000 (UTC) (envelope-from ache@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 5A5CA126D; Mon, 18 Jul 2016 20:24:14 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6IKODg1012387; Mon, 18 Jul 2016 20:24:13 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6IKODvd012386; Mon, 18 Jul 2016 20:24:13 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607182024.u6IKODvd012386@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Mon, 18 Jul 2016 20:24:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303013 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 20:24:14 -0000 Author: ache Date: Mon Jul 18 20:24:13 2016 New Revision: 303013 URL: https://svnweb.freebsd.org/changeset/base/303013 Log: g_Ctoc() conversion buffers are smaller than needed up to MB_CUR_MAX - 1 since whole conversion needs a room for (len >= MB_CUR_MAX). It is no difference when MB_CUR_MAX == 1, but for multi-byte locales last few chars ('\0' and before) may need just one byte, and the rest of MB_CUR_MAX - 1 space becomes unavailable in the MAXPATHLEN-sized buffer, which cause conversion error on near MAXPATHLEN long pathes. Increase g_Ctoc() conversion buffers to MB_LEN_MAX - 1. Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Mon Jul 18 19:46:31 2016 (r303012) +++ head/lib/libc/gen/glob.c Mon Jul 18 20:24:13 2016 (r303013) @@ -702,7 +702,7 @@ glob3(Char *pathbuf, Char *pathend, Char struct dirent *dp; DIR *dirp; int err; - char buf[MAXPATHLEN]; + char buf[MAXPATHLEN + MB_LEN_MAX - 1]; struct dirent *(*readdirfunc)(DIR *); @@ -933,7 +933,7 @@ globfree(glob_t *pglob) static DIR * g_opendir(Char *str, glob_t *pglob) { - char buf[MAXPATHLEN]; + char buf[MAXPATHLEN + MB_LEN_MAX - 1]; if (*str == EOS) strcpy(buf, "."); @@ -953,7 +953,7 @@ g_opendir(Char *str, glob_t *pglob) static int g_lstat(Char *fn, struct stat *sb, glob_t *pglob) { - char buf[MAXPATHLEN]; + char buf[MAXPATHLEN + MB_LEN_MAX - 1]; if (g_Ctoc(fn, buf, sizeof(buf))) { errno = ENAMETOOLONG; @@ -967,7 +967,7 @@ g_lstat(Char *fn, struct stat *sb, glob_ static int g_stat(Char *fn, struct stat *sb, glob_t *pglob) { - char buf[MAXPATHLEN]; + char buf[MAXPATHLEN + MB_LEN_MAX - 1]; if (g_Ctoc(fn, buf, sizeof(buf))) { errno = ENAMETOOLONG; From owner-svn-src-all@freebsd.org Mon Jul 18 20:34:04 2016 Return-Path: Delivered-To: svn-src-all@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 04C0BB9B3BB for ; Mon, 18 Jul 2016 20:34:04 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: from mail-it0-x22e.google.com (mail-it0-x22e.google.com [IPv6:2607:f8b0:4001:c0b::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C81041AD8 for ; Mon, 18 Jul 2016 20:34:03 +0000 (UTC) (envelope-from sobomax@sippysoft.com) Received: by mail-it0-x22e.google.com with SMTP id f6so1467472ith.0 for ; Mon, 18 Jul 2016 13:34:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sippysoft-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=xbNYJEcy0zRGVGRJ4L41t8xBoCLLxUcoXuLYsR5Nr6Y=; b=hxeCnXJi2hjzL7uc3zFJxVgNnsqIJjnlhxDkSQtzeMuqjwD6pjlJdNAnmjaDEG0/Tz rG5GPEONLk4zUDeZgF9IdAtJ5HZn7Ydk5ChM8M87d0sTDmY8SfNUCnvIaEwreCp9O2mc 5Ak6cah2+cqEUGPQZjztFhfDCO94rrnbD6ripnvivv8i417eyvABAqRU6CrnypyK3WC+ 2rYu1r2tn8gSv2WPA9JkED9aIao5PeZUldq4EWH8LbTBAlJ7nn9ma5XMg7doZi/YVIf9 hbKNnQOxDrRrF7YPEyavEbo76KZqBYkomQw4SXncb4dTve9xHW7bM5fuQZFnY/5O1v/i 1b9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=xbNYJEcy0zRGVGRJ4L41t8xBoCLLxUcoXuLYsR5Nr6Y=; b=V+4ZA88m3GZ0G5CCkxnwK2OkzS37CKEFt1sSTIDZ/0rp5x13WRsRqpsMO8hkFVm1rK YyWhlkkWo+k6BhnXTSxtIFn+WUdP5RKN/oB9MQHlNV86zxKDAZzeXJtZZEXn5Kt3pZPe ihPYRjvqFAxxc9+zqw6Y8k/3KDTWFZg2b+EVxBJlXruVkVwFXVbvorfHD+LQHCvMQbOG jP2y/j2SVA8pkPLlcq/5wAxQ+vzbKL71RCvXcEU+U+5F1cUFbGmbQW5sefv9FNjyK+oE I+qnuThDnpLVfSau72p5W/uhwQGkiL1Jrf0/bGUujsr2Vm5Zj6FO/Dp6cOB9nq2qZMph ZyGw== X-Gm-Message-State: ALyK8tISLZArgiIeUiEz9RhKfYR29w+84zuppMA4JiwJ08JqbnRNu/ErE8jjR32l1ePOdfsNUlnfmI/SpUvIb3j2 X-Received: by 10.36.188.65 with SMTP id n62mr51471955ite.61.1468874043060; Mon, 18 Jul 2016 13:34:03 -0700 (PDT) MIME-Version: 1.0 Sender: sobomax@sippysoft.com Received: by 10.36.59.193 with HTTP; Mon, 18 Jul 2016 13:34:02 -0700 (PDT) In-Reply-To: References: <201607180500.u6I501CX063743@repo.freebsd.org> <20ae3dfe-96f4-c897-67d0-71bb94d14858@yandex.ru> <61cba001-2717-49ee-843e-5ed6d18fa17b@yandex.ru> From: Maxim Sobolev Date: Mon, 18 Jul 2016 13:34:02 -0700 X-Google-Sender-Auth: Q1h0YVHaIOFQCYqTp74xxc7Onlg Message-ID: Subject: Re: svn commit: r302985 - head/sys/geom/label To: "Andrey V. Elsukov" , Michael Zhilin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2016 20:34:04 -0000 Andrey, would you mind leaving your comments in the phabricator so that the Mikhail (original contributor of the patch) could work on an improved version? You might be correct about the abs(), I've overlooked that, but the fs_fsize math is just copied over the previous code as far as I can tell. So if it worked with the strict comparison, it should also work with relaxed bound one. https://reviews.freebsd.org/D6208 Thanks! -Max On Mon, Jul 18, 2016 at 1:18 PM, Andrey V. Elsukov wrote: > On 18.07.16 22:37, Maxim Sobolev wrote: > > Well, this looks to me exactly what I am talking about. With this change > > we are only allowing underlying provider to be *slighly* bigger than the > > UFS size. So as I said it's pretty harmless to do so, or at least I > > So, this isn't true. > 1. You use abs() in the macro - it can be less or bigger. > 2. fs_fsize is size of frag blocks, so use it as divider looks incorrect. > > -- > WBR, Andrey V. Elsukov > > From owner-svn-src-all@freebsd.org Tue Jul 19 00:11:53 2016 Return-Path: Delivered-To: svn-src-all@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 13260B9D90F; Tue, 19 Jul 2016 00:11:53 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from c.mail.sonic.net (c.mail.sonic.net [64.142.111.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F41961716; Tue, 19 Jul 2016 00:11:52 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from zeppelin.tachypleus.net (75-101-50-44.static.sonic.net [75.101.50.44]) (authenticated bits=0) by c.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6J0Bhf3030306 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Mon, 18 Jul 2016 17:11:44 -0700 Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201606051620.u55GKD5S066398@repo.freebsd.org> From: Nathan Whitehorn Message-ID: Date: Mon, 18 Jul 2016 17:11:43 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <201606051620.u55GKD5S066398@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Sonic-CAuth: UmFuZG9tSVbsaVpkc+18HGPTHI9Ed/VAE7Dua3+ur79jkgHn/CAQOi/xkErnRNe8LPFtkRtJYq2mIwU3ys6nlW5KbKJ2D+Co2ahbWPqx9MY= X-Sonic-ID: C;oLi4X0VN5hGd95tMTlz00w== M;gEIXYEVN5hGd95tMTlz00w== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 00:11:53 -0000 Could you please describe what this change is in more detail? It breaks a lot of encapsulations we have worked very hard to maintain, moves ARM code into MI parts of the kernel, and the OFW parts violate IEEE 1275 (the Open Firmware standard). In particular, there is no guarantee that the interrupts for a newbus (or OF) device are encoded in a property called "interrupts" (or, indeed, in any property at all) on that node and there are many, many device trees where that is not the case (e.g. ones with interrupt maps, as well as Apple hardware). By putting that knowledge into the OF root bus device, which we have tried to keep it out of, this enforces a standard that doesn't actually exist. I'm hesitant to ask for reversion on something that landed 6 weeks ago without me noticing, but this needs a lot more architectural work before any parts of the kernel should use it. -Nathan On 06/05/16 09:20, Svatopluk Kraus wrote: > Author: skra > Date: Sun Jun 5 16:20:12 2016 > New Revision: 301453 > URL: https://svnweb.freebsd.org/changeset/base/301453 > > Log: > INTRNG - change the way how an interrupt mapping data are provided > to the framework in OFW (FDT) case. > > This is a follow-up to r301451. > > Differential Revision: https://reviews.freebsd.org/D6634 > > Modified: > head/sys/arm/arm/nexus.c > head/sys/arm64/arm64/gic_v3.c > head/sys/arm64/arm64/nexus.c > head/sys/dev/fdt/simplebus.c > head/sys/dev/gpio/ofw_gpiobus.c > head/sys/dev/iicbus/ofw_iicbus.c > head/sys/dev/ofw/ofw_bus_subr.c > head/sys/dev/ofw/ofw_bus_subr.h > head/sys/dev/ofw/ofwbus.c > head/sys/dev/pci/pci_host_generic.c > head/sys/dev/vnic/mrml_bridge.c > head/sys/dev/vnic/thunder_mdio_fdt.c > head/sys/kern/subr_intr.c > head/sys/mips/mips/nexus.c > head/sys/sys/intr.h > > Modified: head/sys/arm/arm/nexus.c > ============================================================================== > --- head/sys/arm/arm/nexus.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/arm/arm/nexus.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -412,6 +412,10 @@ nexus_ofw_map_intr(device_t dev, device_ > pcell_t *intr) > { > > +#ifdef INTRNG > + return (INTR_IRQ_INVALID); > +#else > return (intr_fdt_map_irq(iparent, intr, icells)); > +#endif > } > #endif > > Modified: head/sys/arm64/arm64/gic_v3.c > ============================================================================== > --- head/sys/arm64/arm64/gic_v3.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/arm64/arm64/gic_v3.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -58,6 +58,10 @@ __FBSDID("$FreeBSD$"); > #include > #include > > +#ifdef FDT > +#include > +#endif > + > #include "pic_if.h" > > #include "gic_v3_reg.h" > > Modified: head/sys/arm64/arm64/nexus.c > ============================================================================== > --- head/sys/arm64/arm64/nexus.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/arm64/arm64/nexus.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -448,7 +448,7 @@ nexus_ofw_map_intr(device_t dev, device_ > pcell_t *intr) > { > #ifdef INTRNG > - return (intr_fdt_map_irq(iparent, intr, icells)); > + return (INTR_IRQ_INVALID); > #else > int irq; > > > Modified: head/sys/dev/fdt/simplebus.c > ============================================================================== > --- head/sys/dev/fdt/simplebus.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/dev/fdt/simplebus.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -251,7 +251,9 @@ simplebus_setup_dinfo(device_t dev, phan > > resource_list_init(&ndi->rl); > ofw_bus_reg_to_rl(dev, node, sc->acells, sc->scells, &ndi->rl); > +#ifndef INTRNG > ofw_bus_intr_to_rl(dev, node, &ndi->rl, NULL); > +#endif > > return (ndi); > } > > Modified: head/sys/dev/gpio/ofw_gpiobus.c > ============================================================================== > --- head/sys/dev/gpio/ofw_gpiobus.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/dev/gpio/ofw_gpiobus.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -321,11 +321,13 @@ ofw_gpiobus_setup_devinfo(device_t bus, > devi->pins[i] = pins[i].pin; > } > free(pins, M_DEVBUF); > +#ifndef INTRNG > /* Parse the interrupt resources. */ > if (ofw_bus_intr_to_rl(bus, node, &dinfo->opd_dinfo.rl, NULL) != 0) { > ofw_gpiobus_destroy_devinfo(bus, dinfo); > return (NULL); > } > +#endif > device_set_ivars(child, dinfo); > > return (dinfo); > > Modified: head/sys/dev/iicbus/ofw_iicbus.c > ============================================================================== > --- head/sys/dev/iicbus/ofw_iicbus.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/dev/iicbus/ofw_iicbus.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -187,8 +187,10 @@ ofw_iicbus_attach(device_t dev) > > childdev = device_add_child(dev, NULL, -1); > resource_list_init(&dinfo->opd_dinfo.rl); > +#ifndef INTRNG > ofw_bus_intr_to_rl(childdev, child, > &dinfo->opd_dinfo.rl, NULL); > +#endif > device_set_ivars(childdev, dinfo); > } > > > Modified: head/sys/dev/ofw/ofw_bus_subr.c > ============================================================================== > --- head/sys/dev/ofw/ofw_bus_subr.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/dev/ofw/ofw_bus_subr.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -516,6 +516,7 @@ ofw_bus_find_iparent(phandle_t node) > return (iparent); > } > > +#ifndef INTRNG > int > ofw_bus_intr_to_rl(device_t dev, phandle_t node, > struct resource_list *rl, int *rlen) > @@ -581,6 +582,78 @@ ofw_bus_intr_to_rl(device_t dev, phandle > free(intr, M_OFWPROP); > return (err); > } > +#endif > + > +int > +ofw_bus_intr_by_rid(device_t dev, phandle_t node, int wanted_rid, > + phandle_t *producer, int *ncells, pcell_t **cells) > +{ > + phandle_t iparent; > + uint32_t icells, *intr; > + int err, i, nintr, rid; > + boolean_t extended; > + > + nintr = OF_getencprop_alloc(node, "interrupts", sizeof(*intr), > + (void **)&intr); > + if (nintr > 0) { > + iparent = ofw_bus_find_iparent(node); > + if (iparent == 0) { > + device_printf(dev, "No interrupt-parent found, " > + "assuming direct parent\n"); > + iparent = OF_parent(node); > + iparent = OF_xref_from_node(iparent); > + } > + if (OF_searchencprop(OF_node_from_xref(iparent), > + "#interrupt-cells", &icells, sizeof(icells)) == -1) { > + device_printf(dev, "Missing #interrupt-cells " > + "property, assuming <1>\n"); > + icells = 1; > + } > + if (icells < 1 || icells > nintr) { > + device_printf(dev, "Invalid #interrupt-cells property " > + "value <%d>, assuming <1>\n", icells); > + icells = 1; > + } > + extended = false; > + } else { > + nintr = OF_getencprop_alloc(node, "interrupts-extended", > + sizeof(*intr), (void **)&intr); > + if (nintr <= 0) > + return (ESRCH); > + extended = true; > + } > + err = ESRCH; > + rid = 0; > + for (i = 0; i < nintr; i += icells, rid++) { > + if (extended) { > + iparent = intr[i++]; > + if (OF_searchencprop(OF_node_from_xref(iparent), > + "#interrupt-cells", &icells, sizeof(icells)) == -1) { > + device_printf(dev, "Missing #interrupt-cells " > + "property\n"); > + err = ENOENT; > + break; > + } > + if (icells < 1 || (i + icells) > nintr) { > + device_printf(dev, "Invalid #interrupt-cells " > + "property value <%d>\n", icells); > + err = ERANGE; > + break; > + } > + } > + if (rid == wanted_rid) { > + *cells = malloc(icells * sizeof(**cells), M_OFWPROP, > + M_WAITOK); > + *producer = iparent; > + *ncells= icells; > + memcpy(*cells, intr + i, icells * sizeof(**cells)); > + err = 0; > + break; > + } > + } > + free(intr, M_OFWPROP); > + return (err); > +} > > phandle_t > ofw_bus_find_child(phandle_t start, const char *child_name) > > Modified: head/sys/dev/ofw/ofw_bus_subr.h > ============================================================================== > --- head/sys/dev/ofw/ofw_bus_subr.h Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/dev/ofw/ofw_bus_subr.h Sun Jun 5 16:20:12 2016 (r301453) > @@ -52,6 +52,13 @@ struct ofw_compat_data { > uintptr_t ocd_data; > }; > > +struct intr_map_data_fdt { > + struct intr_map_data hdr; > + phandle_t iparent; > + u_int ncells; > + pcell_t *cells; > +}; > + > #define SIMPLEBUS_PNP_DESCR "Z:compat;P:private;" > #define SIMPLEBUS_PNP_INFO(t) \ > MODULE_PNP_INFO(SIMPLEBUS_PNP_DESCR, simplebus, t, t, sizeof(t[0]), sizeof(t) / sizeof(t[0])); > @@ -82,7 +89,11 @@ int ofw_bus_msimap(phandle_t, uint16_t, > /* Routines for parsing device-tree data into resource lists. */ > int ofw_bus_reg_to_rl(device_t, phandle_t, pcell_t, pcell_t, > struct resource_list *); > +#ifndef INTRNG > int ofw_bus_intr_to_rl(device_t, phandle_t, struct resource_list *, int *); > +#endif > +int ofw_bus_intr_by_rid(device_t, phandle_t, int, phandle_t *, int *, > + pcell_t **); > > /* Helper to get device status property */ > const char *ofw_bus_get_status(device_t dev); > > Modified: head/sys/dev/ofw/ofwbus.c > ============================================================================== > --- head/sys/dev/ofw/ofwbus.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/dev/ofw/ofwbus.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -43,6 +43,9 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > +#ifdef INTRNG > +#include > +#endif > > #include > #include > @@ -77,6 +80,9 @@ static device_attach_t ofwbus_attach; > static bus_alloc_resource_t ofwbus_alloc_resource; > static bus_adjust_resource_t ofwbus_adjust_resource; > static bus_release_resource_t ofwbus_release_resource; > +#ifdef INTRNG > +static bus_map_intr_t ofwbus_map_intr; > +#endif > > static device_method_t ofwbus_methods[] = { > /* Device interface */ > @@ -90,6 +96,9 @@ static device_method_t ofwbus_methods[] > DEVMETHOD(bus_alloc_resource, ofwbus_alloc_resource), > DEVMETHOD(bus_adjust_resource, ofwbus_adjust_resource), > DEVMETHOD(bus_release_resource, ofwbus_release_resource), > +#ifdef INTRNG > + DEVMETHOD(bus_map_intr, ofwbus_map_intr), > +#endif > > DEVMETHOD_END > }; > @@ -290,3 +299,53 @@ ofwbus_release_resource(device_t bus, de > } > return (rman_release_resource(r)); > } > + > +#ifdef INTRNG > +static void > +ofwbus_destruct_map_data(struct intr_map_data *map_data) > +{ > + struct intr_map_data_fdt *fdt_map_data; > + > + KASSERT(map_data->type == INTR_MAP_DATA_FDT, > + ("%s: bad map_data type %d", __func__, map_data->type)); > + > + fdt_map_data = (struct intr_map_data_fdt *)map_data; > + OF_prop_free(fdt_map_data->cells); > + free(fdt_map_data, M_OFWPROP); > +} > + > +static int > +ofwbus_map_intr(device_t bus, device_t child, int *rid, rman_res_t *start, > + rman_res_t *end, rman_res_t *count, struct intr_map_data **imd) > +{ > + phandle_t iparent, node; > + pcell_t *cells; > + int ncells, rv; > + u_int irq; > + struct intr_map_data_fdt *fdt_data; > + > + node = ofw_bus_get_node(child); > + rv = ofw_bus_intr_by_rid(child, node, *rid, &iparent, &ncells, &cells); > + if (rv != 0) > + return (rv); > + > + fdt_data = malloc(sizeof(*fdt_data), M_OFWPROP, M_WAITOK | M_ZERO); > + fdt_data->hdr.type = INTR_MAP_DATA_FDT; > + fdt_data->hdr.destruct = ofwbus_destruct_map_data; > + fdt_data->iparent = iparent; > + fdt_data->ncells = ncells; > + fdt_data->cells = cells; > + rv = intr_map_irq(NULL, iparent, (struct intr_map_data *)fdt_data, > + &irq); > + if (rv != 0) { > + ofwbus_destruct_map_data((struct intr_map_data *)fdt_data); > + return (rv); > + } > + > + *start = irq; > + *end = irq; > + *count = 1; > + *imd = (struct intr_map_data *)fdt_data; > + return (0); > +} > +#endif > > Modified: head/sys/dev/pci/pci_host_generic.c > ============================================================================== > --- head/sys/dev/pci/pci_host_generic.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/dev/pci/pci_host_generic.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -949,7 +949,9 @@ generic_pcie_ofw_bus_attach(device_t dev > resource_list_init(&di->di_rl); > ofw_bus_reg_to_rl(dev, node, addr_cells, size_cells, > &di->di_rl); > +#ifndef INTRNG > ofw_bus_intr_to_rl(dev, node, &di->di_rl, NULL); > +#endif > > /* Add newbus device for this FDT node */ > child = device_add_child(dev, NULL, -1); > > Modified: head/sys/dev/vnic/mrml_bridge.c > ============================================================================== > --- head/sys/dev/vnic/mrml_bridge.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/dev/vnic/mrml_bridge.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -263,7 +263,9 @@ mrmlb_ofw_bus_attach(device_t dev) > resource_list_init(&di->di_rl); > ofw_bus_reg_to_rl(dev, node, sc->acells, sc->scells, > &di->di_rl); > +#ifndef INTRNG > ofw_bus_intr_to_rl(dev, node, &di->di_rl, NULL); > +#endif > > /* Add newbus device for this FDT node */ > child = device_add_child(dev, NULL, -1); > > Modified: head/sys/dev/vnic/thunder_mdio_fdt.c > ============================================================================== > --- head/sys/dev/vnic/thunder_mdio_fdt.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/dev/vnic/thunder_mdio_fdt.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -271,7 +271,9 @@ mdionexus_ofw_bus_attach(device_t dev) > resource_list_init(&di->di_rl); > ofw_bus_reg_to_rl(dev, node, sc->acells, sc->scells, > &di->di_rl); > +#ifndef INTRNG > ofw_bus_intr_to_rl(dev, node, &di->di_rl, NULL); > +#endif > > /* Add newbus device for this FDT node */ > child = device_add_child(dev, NULL, -1); > > Modified: head/sys/kern/subr_intr.c > ============================================================================== > --- head/sys/kern/subr_intr.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/kern/subr_intr.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -64,12 +64,6 @@ __FBSDID("$FreeBSD$"); > #include > #include > > -#ifdef FDT > -#include > -#include > -#include > -#endif > - > #ifdef DDB > #include > #endif > @@ -625,33 +619,6 @@ intr_acpi_map_irq(device_t dev, u_int ir > return (ddata->idd_irq); > } > #endif > -#ifdef FDT > -/* > - * Map interrupt source according to FDT data into framework. If such mapping > - * does not exist, create it. Return unique interrupt number (resource handle) > - * associated with mapped interrupt source. > - */ > -u_int > -intr_fdt_map_irq(phandle_t node, pcell_t *cells, u_int ncells) > -{ > - size_t cellsize; > - struct intr_dev_data *ddata; > - struct intr_map_data_fdt *daf; > - > - cellsize = ncells * sizeof(*cells); > - ddata = intr_ddata_alloc(sizeof(struct intr_map_data_fdt) + cellsize); > - if (ddata == NULL) > - return (INTR_IRQ_INVALID); /* no space left */ > - > - ddata->idd_xref = (intptr_t)node; > - ddata->idd_data->type = INTR_MAP_DATA_FDT; > - > - daf = (struct intr_map_data_fdt *)ddata->idd_data; > - daf->ncells = ncells; > - memcpy(daf->cells, cells, cellsize); > - return (ddata->idd_irq); > -} > -#endif > > /* > * Store GPIO interrupt decription in framework and return unique interrupt > @@ -1107,7 +1074,11 @@ intr_alloc_irq(device_t dev, struct reso > KASSERT(rman_get_start(res) == rman_get_end(res), > ("%s: more interrupts in resource", __func__)); > > - isrc = intr_ddata_lookup(rman_get_start(res), &data); > + data = rman_get_virtual(res); > + if (data == NULL) > + isrc = intr_ddata_lookup(rman_get_start(res), &data); > + else > + isrc = isrc_lookup(rman_get_start(res)); > if (isrc == NULL) > return (EINVAL); > > @@ -1123,7 +1094,11 @@ intr_release_irq(device_t dev, struct re > KASSERT(rman_get_start(res) == rman_get_end(res), > ("%s: more interrupts in resource", __func__)); > > - isrc = intr_ddata_lookup(rman_get_start(res), &data); > + data = rman_get_virtual(res); > + if (data == NULL) > + isrc = intr_ddata_lookup(rman_get_start(res), &data); > + else > + isrc = isrc_lookup(rman_get_start(res)); > if (isrc == NULL) > return (EINVAL); > > @@ -1142,7 +1117,11 @@ intr_setup_irq(device_t dev, struct reso > KASSERT(rman_get_start(res) == rman_get_end(res), > ("%s: more interrupts in resource", __func__)); > > - isrc = intr_ddata_lookup(rman_get_start(res), &data); > + data = rman_get_virtual(res); > + if (data == NULL) > + isrc = intr_ddata_lookup(rman_get_start(res), &data); > + else > + isrc = isrc_lookup(rman_get_start(res)); > if (isrc == NULL) > return (EINVAL); > > @@ -1202,7 +1181,11 @@ intr_teardown_irq(device_t dev, struct r > KASSERT(rman_get_start(res) == rman_get_end(res), > ("%s: more interrupts in resource", __func__)); > > - isrc = intr_ddata_lookup(rman_get_start(res), &data); > + data = rman_get_virtual(res); > + if (data == NULL) > + isrc = intr_ddata_lookup(rman_get_start(res), &data); > + else > + isrc = isrc_lookup(rman_get_start(res)); > if (isrc == NULL || isrc->isrc_handlers == 0) > return (EINVAL); > > > Modified: head/sys/mips/mips/nexus.c > ============================================================================== > --- head/sys/mips/mips/nexus.c Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/mips/mips/nexus.c Sun Jun 5 16:20:12 2016 (r301453) > @@ -524,7 +524,11 @@ nexus_ofw_map_intr(device_t dev, device_ > pcell_t *intr) > { > > +#ifdef INTRNG > + return (INTR_IRQ_INVALID); > +#else > return (intr_fdt_map_irq(iparent, intr, icells)); > +#endif > } > #endif > #endif /* INTRNG */ > > Modified: head/sys/sys/intr.h > ============================================================================== > --- head/sys/sys/intr.h Sun Jun 5 16:09:31 2016 (r301452) > +++ head/sys/sys/intr.h Sun Jun 5 16:20:12 2016 (r301453) > @@ -42,13 +42,6 @@ struct intr_map_data_acpi { > enum intr_trigger trig; > }; > #endif > -#ifdef FDT > -struct intr_map_data_fdt { > - struct intr_map_data hdr; > - u_int ncells; > - pcell_t cells[0]; > -}; > -#endif > > struct intr_map_data_gpio { > struct intr_map_data hdr; > @@ -135,9 +128,7 @@ int intr_release_msix(device_t, device_t > u_int intr_acpi_map_irq(device_t, u_int, enum intr_polarity, > enum intr_trigger); > #endif > -#ifdef FDT > -u_int intr_fdt_map_irq(phandle_t, pcell_t *, u_int); > -#endif > + > u_int intr_gpio_map_irq(device_t dev, u_int pin_num, u_int pin_flags, > u_int intr_mode); > > From owner-svn-src-all@freebsd.org Tue Jul 19 00:25:29 2016 Return-Path: Delivered-To: svn-src-all@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 2691EB9DC3F; Tue, 19 Jul 2016 00:25:29 +0000 (UTC) (envelope-from ache@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 D1CB11E6A; Tue, 19 Jul 2016 00:25:28 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6J0PSso001259; Tue, 19 Jul 2016 00:25:28 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6J0PSnQ001258; Tue, 19 Jul 2016 00:25:28 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607190025.u6J0PSnQ001258@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Tue, 19 Jul 2016 00:25:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303014 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 00:25:29 -0000 Author: ache Date: Tue Jul 19 00:25:27 2016 New Revision: 303014 URL: https://svnweb.freebsd.org/changeset/base/303014 Log: 1) Don't protect \/ and \. even if user say so. They are not special chars in any case and needed for further processing. For ~ expansion too. 2) Don't terminate *pathend with / when GLOB_LIMIT_STAT is reached, it will be not visible outside in any case since error is returned. 3) Cosmetic: change if expression to better reflect its semantic. Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Mon Jul 18 20:24:13 2016 (r303013) +++ head/lib/libc/gen/glob.c Tue Jul 19 00:25:27 2016 (r303014) @@ -244,7 +244,8 @@ glob(const char * __restrict pattern, in return (GLOB_NOMATCH); else if (clen == 0) break; - *bufnext++ = wc | prot; + *bufnext++ = wc | ((wc != DOT && wc != SEP) ? + prot : 0); patnext += clen; } } @@ -478,8 +479,8 @@ globtilde(const Char *pattern, Char *pat return (NULL); dc = wbuf; - for (b = patbuf; b < eb && *dc != EOS; *b++ = *dc++ | M_PROTECT) - continue; + for (b = patbuf; b < eb && *dc != EOS; b++, dc++) + *b = *dc | ((*dc != DOT && *dc != SEP) ? M_PROTECT : 0); if (*dc != EOS) return (NULL); @@ -642,10 +643,6 @@ glob2(Char *pathbuf, Char *pathend, Char if ((pglob->gl_flags & GLOB_LIMIT) && limit->l_stat_cnt++ >= GLOB_LIMIT_STAT) { errno = 0; - if (pathend + 1 > pathend_last) - return (GLOB_NOSPACE); - *pathend++ = SEP; - *pathend = EOS; return (GLOB_NOSPACE); } if (((pglob->gl_flags & GLOB_MARK) && @@ -886,7 +883,7 @@ match(Char *name, Char *pat, Char *paten ok = 0; if ((k = *name++) == EOS) return (0); - if ((negate_range = ((*pat & M_MASK) == M_NOT)) != EOS) + if ((negate_range = ((*pat & M_MASK) == M_NOT)) != 0) ++pat; while (((c = *pat++) & M_MASK) != M_END) if ((*pat & M_MASK) == M_RNG) { From owner-svn-src-all@freebsd.org Tue Jul 19 00:27:19 2016 Return-Path: Delivered-To: svn-src-all@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 2F922B9DCD3; Tue, 19 Jul 2016 00:27:19 +0000 (UTC) (envelope-from adrian@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 E259F1172; Tue, 19 Jul 2016 00:27:18 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6J0RI63001363; Tue, 19 Jul 2016 00:27:18 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6J0RInI001362; Tue, 19 Jul 2016 00:27:18 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201607190027.u6J0RInI001362@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Tue, 19 Jul 2016 00:27:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303015 - head/sys/dev/ath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 00:27:19 -0000 Author: adrian Date: Tue Jul 19 00:27:17 2016 New Revision: 303015 URL: https://svnweb.freebsd.org/changeset/base/303015 Log: [ath] don't do LDPC, STBC or short-gi for locationing frames. The 11n duration calculation function in net80211 and the HAL round /up/ the duration calculation for short-gi, so we can't use that. The 11n duration calculation doesn't know about the extra symbol time needed for STBC, nor the LDPC encoding duration, so we can't use that. This (along with other, local hacks) allow the locationing services to get down to around 200nS (yes, nanoseconds) of variance when speaking to a "good" AP. Tested: * AR9380, STA mode, local locationing frame hacks Modified: head/sys/dev/ath/if_ath_tx_ht.c Modified: head/sys/dev/ath/if_ath_tx_ht.c ============================================================================== --- head/sys/dev/ath/if_ath_tx_ht.c Tue Jul 19 00:25:27 2016 (r303014) +++ head/sys/dev/ath/if_ath_tx_ht.c Tue Jul 19 00:27:17 2016 (r303015) @@ -242,6 +242,14 @@ ath_tx_rate_fill_rcflags(struct ath_soft if ((ni->ni_vap->iv_htcaps & IEEE80211_HTCAP_LDPC) && (ni->ni_htcap & IEEE80211_HTCAP_LDPC)) do_ldpc = 1; + + /* + * The 11n duration calculation doesn't know about LDPC, + * so don't enable it for positioning. + */ + if (bf->bf_flags & ATH_BUF_TOA_PROBE) + do_ldpc = 0; + do_stbc = 0; for (i = 0; i < ATH_RC_NUM; i++) { @@ -279,29 +287,43 @@ ath_tx_rate_fill_rcflags(struct ath_soft if (ni->ni_chw == 40) rc[i].flags |= ATH_RC_CW40_FLAG; + /* + * NOTE: Don't do short-gi for positioning frames. + * + * For now, the ath_hal and net80211 HT duration + * calculation rounds up the 11n data txtime + * to the nearest multiple of 3.6 microseconds + * and doesn't return the fractional part, so + * we are always "out" by some amount. + */ if (ni->ni_chw == 40 && ic->ic_htcaps & IEEE80211_HTCAP_SHORTGI40 && ni->ni_htcap & IEEE80211_HTCAP_SHORTGI40 && - vap->iv_flags_ht & IEEE80211_FHT_SHORTGI40) + vap->iv_flags_ht & IEEE80211_FHT_SHORTGI40 && + (bf->bf_flags & ATH_BUF_TOA_PROBE) == 0) { rc[i].flags |= ATH_RC_SGI_FLAG; + } if (ni->ni_chw == 20 && ic->ic_htcaps & IEEE80211_HTCAP_SHORTGI20 && ni->ni_htcap & IEEE80211_HTCAP_SHORTGI20 && - vap->iv_flags_ht & IEEE80211_FHT_SHORTGI20) + vap->iv_flags_ht & IEEE80211_FHT_SHORTGI20 && + (bf->bf_flags & ATH_BUF_TOA_PROBE) == 0) { rc[i].flags |= ATH_RC_SGI_FLAG; + } /* * If we have STBC TX enabled and the receiver * can receive (at least) 1 stream STBC, AND it's * MCS 0-7, AND we have at least two chains enabled, - * enable STBC. + * and we're not doing positioning, enable STBC. */ if (ic->ic_htcaps & IEEE80211_HTCAP_TXSTBC && ni->ni_vap->iv_flags_ht & IEEE80211_FHT_STBC_TX && ni->ni_htcap & IEEE80211_HTCAP_RXSTBC_1STREAM && (sc->sc_cur_txchainmask > 1) && - HT_RC_2_STREAMS(rate) == 1) { + (HT_RC_2_STREAMS(rate) == 1) && + (bf->bf_flags & ATH_BUF_TOA_PROBE) == 0) { rc[i].flags |= ATH_RC_STBC_FLAG; do_stbc = 1; } From owner-svn-src-all@freebsd.org Tue Jul 19 00:43:47 2016 Return-Path: Delivered-To: svn-src-all@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 EAEFBB9C069; Tue, 19 Jul 2016 00:43:47 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from d.mail.sonic.net (d.mail.sonic.net [64.142.111.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D2E55194C; Tue, 19 Jul 2016 00:43:47 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from zeppelin.tachypleus.net (75-101-50-44.static.sonic.net [75.101.50.44]) (authenticated bits=0) by d.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6J0hdIe026866 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Mon, 18 Jul 2016 17:43:40 -0700 Subject: Re: svn commit: r302897 - head/usr.sbin/bsdinstall/scripts To: Bartek Rutkowski , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201607151507.u6FF7OGH090313@repo.freebsd.org> From: Nathan Whitehorn Message-ID: <1d8eded8-cb28-0fe0-341a-99d03e9fc768@freebsd.org> Date: Mon, 18 Jul 2016 17:43:39 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <201607151507.u6FF7OGH090313@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Sonic-CAuth: UmFuZG9tSVbHKZUKFt87Fv0pNQdlXq1Ai+D9Py1bA4ucwCIImiNZCf1cYq8x8ZQevhUP0hUB+rHkyseaGBCIFSgRwX4s8hbZqIlBF3fgm6U= X-Sonic-ID: C;vvTK1UlN5hGFmJNwxPCmMQ== M;Kr8M1klN5hGFmJNwxPCmMQ== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 00:43:48 -0000 On 07/15/16 08:07, Bartek Rutkowski wrote: > Author: robak (ports committer) > Date: Fri Jul 15 15:07:24 2016 > New Revision: 302897 > URL: https://svnweb.freebsd.org/changeset/base/302897 > > Log: > Add new System Hardening menu and options to bsdinstall. > > This patch add new 'hardening' file responsible for new bsdinstall > 'System Hardening' menu allowing users to set some sane and carefully > picked system security options (like random process id's, hiding > other users/groups processes and others). > > All options are OFF by default in this patch due to POLA principle > with intention to turn change some of them to ON by default in future. > > Reviewed by: adrian, allanjude, bdrewery, nwhitehorn > Approved by: adrian, allanjude > MFC after: 7 days > Thanks for this! One nit below. > Modified: head/usr.sbin/bsdinstall/scripts/auto > ============================================================================== > --- head/usr.sbin/bsdinstall/scripts/auto Fri Jul 15 13:25:47 2016 (r302896) > +++ head/usr.sbin/bsdinstall/scripts/auto Fri Jul 15 15:07:24 2016 (r302897) > @@ -385,6 +385,7 @@ if [ "$NETCONFIG_DONE" != yes ]; then > fi > bsdinstall time > bsdinstall services > +bsdinstall hardening As discussed in the review, I'd prefer it if this were not here and only the part below (in the final menu) were present in the auto script, in particular for 11.0-RELEASE. This keeps the installer flow and avoids preventing the user with a new menu of optional off-by-default things that you have to get through to finish the installation (Handbook installation is in the same category). Would it be possible to change that? -Nathan > dialog --backtitle "FreeBSD Installer" --title "Add User Accounts" --yesno \ > "Would you like to add users to the installed system now?" 0 0 && \ > @@ -401,6 +402,7 @@ finalconfig() { > "Hostname" "Set system hostname" \ > "Network" "Networking configuration" \ > "Services" "Set daemons to run on startup" \ > + "System Hardening" "Set security options" \ > "Time Zone" "Set system timezone" \ > "Handbook" "Install FreeBSD Handbook (requires network)" 2>&1 1>&3) > exec 3>&- > @@ -426,6 +428,10 @@ finalconfig() { > bsdinstall services > finalconfig > ;; > + "System Hardening") > + bsdinstall hardening > + finalconfig > + ;; > "Time Zone") > bsdinstall time > finalconfig > From owner-svn-src-all@freebsd.org Tue Jul 19 00:47:01 2016 Return-Path: Delivered-To: svn-src-all@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 A3041B9C0FE; Tue, 19 Jul 2016 00:47:01 +0000 (UTC) (envelope-from emaste@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 5E39C1AD4; Tue, 19 Jul 2016 00:47:01 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6J0l0qD008708; Tue, 19 Jul 2016 00:47:00 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6J0l0Un008707; Tue, 19 Jul 2016 00:47:00 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607190047.u6J0l0Un008707@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 19 Jul 2016 00:47:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303016 - head/contrib/llvm/projects/libunwind/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 00:47:01 -0000 Author: emaste Date: Tue Jul 19 00:47:00 2016 New Revision: 303016 URL: https://svnweb.freebsd.org/changeset/base/303016 Log: llvm-libunwind: use conventional (non-Darwin) X86 register numbers For historical reasons Darwin/i386 has ebp and esp swapped in the eh_frame register numbering. That is: Darwin Other Reg # eh_frame eh_frame DWARF ===== ======== ======== ===== 4 ebp esp esp 5 esp ebp ebp Although the UNW_X86_* constants are not supposed to be coupled to DWARF / eh_frame numbering they are currently conflated in LLVM libunwind, and thus we require the non-Darwin numbering. MFC after: 3 days Sponsored by: The FreeBSD Foundation Modified: head/contrib/llvm/projects/libunwind/include/libunwind.h Modified: head/contrib/llvm/projects/libunwind/include/libunwind.h ============================================================================== --- head/contrib/llvm/projects/libunwind/include/libunwind.h Tue Jul 19 00:27:17 2016 (r303015) +++ head/contrib/llvm/projects/libunwind/include/libunwind.h Tue Jul 19 00:47:00 2016 (r303016) @@ -151,8 +151,8 @@ enum { UNW_X86_ECX = 1, UNW_X86_EDX = 2, UNW_X86_EBX = 3, - UNW_X86_EBP = 4, - UNW_X86_ESP = 5, + UNW_X86_ESP = 4, + UNW_X86_EBP = 5, UNW_X86_ESI = 6, UNW_X86_EDI = 7 }; From owner-svn-src-all@freebsd.org Tue Jul 19 03:13:53 2016 Return-Path: Delivered-To: svn-src-all@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 4230FB9C46A; Tue, 19 Jul 2016 03:13:53 +0000 (UTC) (envelope-from scottl@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 172731CBD; Tue, 19 Jul 2016 03:13:53 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6J3Dqmi063899; Tue, 19 Jul 2016 03:13:52 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6J3DpJU063896; Tue, 19 Jul 2016 03:13:51 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201607190313.u6J3DpJU063896@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Tue, 19 Jul 2016 03:13:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303017 - in head/sys/dev: nvd nvme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 03:13:53 -0000 Author: scottl Date: Tue Jul 19 03:13:51 2016 New Revision: 303017 URL: https://svnweb.freebsd.org/changeset/base/303017 Log: Implement crashdump support on NVME MFC after: 3 days Sponsored by: Netflix, Inc. Modified: head/sys/dev/nvd/nvd.c head/sys/dev/nvme/nvme.h head/sys/dev/nvme/nvme_ns_cmd.c Modified: head/sys/dev/nvd/nvd.c ============================================================================== --- head/sys/dev/nvd/nvd.c Tue Jul 19 00:47:00 2016 (r303016) +++ head/sys/dev/nvd/nvd.c Tue Jul 19 03:13:51 2016 (r303017) @@ -47,6 +47,7 @@ struct nvd_disk; static disk_ioctl_t nvd_ioctl; static disk_strategy_t nvd_strategy; +static dumper_t nvd_dump; static void nvd_done(void *arg, const struct nvme_completion *cpl); @@ -226,6 +227,26 @@ nvd_ioctl(struct disk *ndisk, u_long cmd return (ret); } +static int +nvd_dump(void *arg, void *virt, vm_offset_t phys, off_t offset, size_t len) +{ + struct nvd_disk *ndisk; + struct disk *dp; + int error; + + dp = arg; + ndisk = dp->d_drv1; + + if (len > 0) { + if ((error = nvme_ns_dump(ndisk->ns, virt, offset, len)) != 0) + return (error); + } else { + /* XXX sync to stable storage */ + } + + return (0); +} + static void nvd_done(void *arg, const struct nvme_completion *cpl) { @@ -302,6 +323,7 @@ nvd_new_disk(struct nvme_namespace *ns, disk = disk_alloc(); disk->d_strategy = nvd_strategy; disk->d_ioctl = nvd_ioctl; + disk->d_dump = nvd_dump; disk->d_name = NVD_STR; disk->d_drv1 = ndisk; Modified: head/sys/dev/nvme/nvme.h ============================================================================== --- head/sys/dev/nvme/nvme.h Tue Jul 19 00:47:00 2016 (r303016) +++ head/sys/dev/nvme/nvme.h Tue Jul 19 03:13:51 2016 (r303017) @@ -876,6 +876,8 @@ int nvme_ns_cmd_deallocate(struct nvme_n void *cb_arg); int nvme_ns_cmd_flush(struct nvme_namespace *ns, nvme_cb_fn_t cb_fn, void *cb_arg); +int nvme_ns_dump(struct nvme_namespace *ns, void *virt, off_t offset, + size_t len); /* Registration functions */ struct nvme_consumer * nvme_register_consumer(nvme_cons_ns_fn_t ns_fn, Modified: head/sys/dev/nvme/nvme_ns_cmd.c ============================================================================== --- head/sys/dev/nvme/nvme_ns_cmd.c Tue Jul 19 00:47:00 2016 (r303016) +++ head/sys/dev/nvme/nvme_ns_cmd.c Tue Jul 19 03:13:51 2016 (r303017) @@ -151,3 +151,47 @@ nvme_ns_cmd_flush(struct nvme_namespace return (0); } + +/* Timeout = 1 sec */ +#define NVD_DUMP_TIMEOUT 100000 + +int +nvme_ns_dump(struct nvme_namespace *ns, void *virt, off_t offset, size_t len) +{ + struct nvme_completion_poll_status status; + struct nvme_request *req; + struct nvme_command *cmd; + uint64_t lba, lba_count; + int i; + + status.done = FALSE; + req = nvme_allocate_request_vaddr(virt, len, nvme_completion_poll_cb, + &status); + if (req == NULL) + return (ENOMEM); + + cmd = &req->cmd; + cmd->opc = NVME_OPC_WRITE; + cmd->nsid = ns->id; + + lba = offset / nvme_ns_get_sector_size(ns); + lba_count = len / nvme_ns_get_sector_size(ns); + + *(uint64_t *)&cmd->cdw10 = lba; + cmd->cdw12 = lba_count - 1; + + nvme_ctrlr_submit_io_request(ns->ctrlr, req); + if (req->qpair == NULL) + return (ENXIO); + + i = 0; + while ((i++ < NVD_DUMP_TIMEOUT) && (status.done == FALSE)) { + DELAY(10); + nvme_qpair_process_completions(req->qpair); + } + + if (status.done == FALSE) + return (ETIMEDOUT); + + return (0); +} From owner-svn-src-all@freebsd.org Tue Jul 19 04:57:01 2016 Return-Path: Delivered-To: svn-src-all@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 17D05B9DB39; Tue, 19 Jul 2016 04:57:01 +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 D815717B2; Tue, 19 Jul 2016 04:57:00 +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 u6J4v0wZ000679; Tue, 19 Jul 2016 04:57:00 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6J4uxft000668; Tue, 19 Jul 2016 04:56:59 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201607190456.u6J4uxft000668@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Tue, 19 Jul 2016 04:56:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303018 - in head: sbin/ipfw sys/netinet sys/netpfil/ipfw X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 04:57:01 -0000 Author: ae Date: Tue Jul 19 04:56:59 2016 New Revision: 303018 URL: https://svnweb.freebsd.org/changeset/base/303018 Log: Add named dynamic states support to ipfw(4). The keep-state, limit and check-state now will have additional argument flowname. This flowname will be assigned to dynamic rule by keep-state or limit opcode. And then can be matched by check-state opcode or O_PROBE_STATE internal opcode. To reduce possible breakage and to maximize compatibility with old rulesets default flowname introduced. It will be assigned to the rules when user has omitted state name in keep-state and check-state opcodes. Also if name is ambiguous (can be evaluated as rule opcode) it will be replaced to default. Reviewed by: julian Obtained from: Yandex LLC MFC after: 1 month Relnotes: yes Sponsored by: Yandex LLC Differential Revision: https://reviews.freebsd.org/D6674 Modified: head/sbin/ipfw/ipfw.8 head/sbin/ipfw/ipfw2.c head/sys/netinet/ip_fw.h head/sys/netpfil/ipfw/ip_fw2.c head/sys/netpfil/ipfw/ip_fw_dynamic.c head/sys/netpfil/ipfw/ip_fw_private.h head/sys/netpfil/ipfw/ip_fw_sockopt.c Modified: head/sbin/ipfw/ipfw.8 ============================================================================== --- head/sbin/ipfw/ipfw.8 Tue Jul 19 03:13:51 2016 (r303017) +++ head/sbin/ipfw/ipfw.8 Tue Jul 19 04:56:59 2016 (r303018) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 18, 2016 +.Dd July 19, 2016 .Dt IPFW 8 .Os .Sh NAME @@ -750,7 +750,7 @@ will be executed when the packet matches .It Cm allow | accept | pass | permit Allow packets that match rule. The search terminates. -.It Cm check-state +.It Cm check-state Op Ar flowname | Cm any Checks the packet against the dynamic ruleset. If a match is found, execute the action associated with the rule which generated this dynamic rule, otherwise @@ -765,6 +765,17 @@ rule is found, the dynamic ruleset is ch or .Cm limit rule. +The +.Ar flowname +is symbolic name assigned to dynamic rule by +.Cm keep-state +opcode. +The special flowname +.Cm any +can be used to ignore states flowname when matching. +The +.Cm default +keyword is special name used for compatibility with old rulesets. .It Cm count Update counters for all packets that match rule. The search continues with the next rule. @@ -1593,7 +1604,7 @@ specified in the same way as .It Cm ipversion Ar ver Matches IP packets whose IP version field is .Ar ver . -.It Cm keep-state +.It Cm keep-state Op Ar flowname Upon a match, the firewall will create a dynamic rule, whose default behaviour is to match bidirectional traffic between source and destination IP/port using the same protocol. @@ -1601,11 +1612,20 @@ The rule has a limited lifetime (control .Xr sysctl 8 variables), and the lifetime is refreshed every time a matching packet is found. +The +.Ar flowname +is used to assign additional to addresses, ports and protocol parameter +to dynamic rule. It can be used for more accurate matching by +.Cm check-state +rule. +The +.Cm default +keyword is special name used for compatibility with old rulesets. .It Cm layer2 Matches only layer2 packets, i.e., those passed to .Nm from ether_demux() and ether_output_frame(). -.It Cm limit Bro Cm src-addr | src-port | dst-addr | dst-port Brc Ar N +.It Cm limit Bro Cm src-addr | src-port | dst-addr | dst-port Brc Ar N Op Ar flowname The firewall will only allow .Ar N connections with the same @@ -1613,8 +1633,6 @@ set of parameters as specified in the ru One or more of source and destination addresses and ports can be specified. -Currently, -only IPv4 flows are supported. .It Cm lookup Bro Cm dst-ip | dst-port | src-ip | src-port | uid | jail Brc Ar name Search an entry in lookup table .Ar name @@ -2207,6 +2225,12 @@ and .Em dst are used here only to denote the initial match addresses, but they are completely equivalent afterwards). +Rules created by +.Cm keep-state +option also have a +.Ar flowname +taken from it. +This name is used in matching together with addresses, ports and protocol. Dynamic rules will be checked at the first .Cm check-state, keep-state or @@ -2215,23 +2239,23 @@ occurrence, and the action performed upo as in the parent rule. .Pp Note that no additional attributes other than protocol and IP addresses -and ports are checked on dynamic rules. +and ports and flowname are checked on dynamic rules. .Pp The typical use of dynamic rules is to keep a closed firewall configuration, but let the first TCP SYN packet from the inside network install a dynamic rule for the flow so that packets belonging to that session will be allowed through the firewall: .Pp -.Dl "ipfw add check-state" -.Dl "ipfw add allow tcp from my-subnet to any setup keep-state" +.Dl "ipfw add check-state OUTBOUND" +.Dl "ipfw add allow tcp from my-subnet to any setup keep-state OUTBOUND" .Dl "ipfw add deny tcp from any to any" .Pp A similar approach can be used for UDP, where an UDP packet coming from the inside will install a dynamic rule to let the response through the firewall: .Pp -.Dl "ipfw add check-state" -.Dl "ipfw add allow udp from my-subnet to any keep-state" +.Dl "ipfw add check-state OUTBOUND" +.Dl "ipfw add allow udp from my-subnet to any keep-state OUTBOUND" .Dl "ipfw add deny udp from any to any" .Pp Dynamic rules expire after some time, which depends on the status Modified: head/sbin/ipfw/ipfw2.c ============================================================================== --- head/sbin/ipfw/ipfw2.c Tue Jul 19 03:13:51 2016 (r303017) +++ head/sbin/ipfw/ipfw2.c Tue Jul 19 04:56:59 2016 (r303018) @@ -1404,6 +1404,7 @@ show_static_rule(struct cmdline_opts *co int l; ipfw_insn *cmd, *has_eaction = NULL, *tagptr = NULL; const char *comment = NULL; /* ptr to comment if we have one */ + const char *ename; int proto = 0; /* default */ int flags = 0; /* prerequisites */ ipfw_insn_log *logptr = NULL; /* set if we find an O_LOG */ @@ -1473,6 +1474,12 @@ show_static_rule(struct cmdline_opts *co switch(cmd->opcode) { case O_CHECK_STATE: bprintf(bp, "check-state"); + if (cmd->arg1 != 0) + ename = object_search_ctlv(fo->tstate, + cmd->arg1, IPFW_TLV_STATE_NAME); + else + ename = NULL; + bprintf(bp, " %s", ename ? ename: "any"); /* avoid printing anything else */ flags = HAVE_PROTO | HAVE_SRCIP | HAVE_DSTIP | HAVE_IP; @@ -1587,8 +1594,6 @@ show_static_rule(struct cmdline_opts *co break; case O_EXTERNAL_ACTION: { - const char *ename; - /* * The external action can consists of two following * each other opcodes - O_EXTERNAL_ACTION and @@ -1609,8 +1614,6 @@ show_static_rule(struct cmdline_opts *co } case O_EXTERNAL_INSTANCE: { - const char *ename; - if (has_eaction == NULL) break; /* @@ -2066,6 +2069,9 @@ show_static_rule(struct cmdline_opts *co case O_KEEP_STATE: bprintf(bp, " keep-state"); + bprintf(bp, " %s", + object_search_ctlv(fo->tstate, cmd->arg1, + IPFW_TLV_STATE_NAME)); break; case O_LIMIT: { @@ -2082,6 +2088,9 @@ show_static_rule(struct cmdline_opts *co comma = ","; } bprint_uint_arg(bp, " ", c->conn_limit); + bprintf(bp, " %s", + object_search_ctlv(fo->tstate, cmd->arg1, + IPFW_TLV_STATE_NAME)); break; } @@ -2180,7 +2189,10 @@ show_dyn_state(struct cmdline_opts *co, bprintf(bp, " <-> %s %d", inet_ntop(AF_INET6, &d->id.dst_ip6, buf, sizeof(buf)), d->id.dst_port); } else - bprintf(bp, " UNKNOWN <-> UNKNOWN\n"); + bprintf(bp, " UNKNOWN <-> UNKNOWN"); + if (d->kidx != 0) + bprintf(bp, " %s", object_search_ctlv(fo->tstate, + d->kidx, IPFW_TLV_STATE_NAME)); } static int @@ -2821,6 +2833,18 @@ ipfw_check_object_name(const char *name) return (0); } +static char *default_state_name = "default"; +static int +state_check_name(const char *name) +{ + + if (ipfw_check_object_name(name) != 0) + return (EINVAL); + if (strcmp(name, "any") == 0) + return (EINVAL); + return (0); +} + static int eaction_check_name(const char *name) { @@ -3682,6 +3706,24 @@ compile_rule(char *av[], uint32_t *rbuf, case TOK_CHECKSTATE: have_state = action; action->opcode = O_CHECK_STATE; + if (*av == NULL) { + action->arg1 = pack_object(tstate, + default_state_name, IPFW_TLV_STATE_NAME); + break; + } + if (strcmp(*av, "any") == 0) + action->arg1 = 0; + else if (match_token(rule_options, *av) != -1) { + action->arg1 = pack_object(tstate, + default_state_name, IPFW_TLV_STATE_NAME); + warn("Ambiguous state name '%s', '%s' used instead.\n", + *av, default_state_name); + } else if (state_check_name(*av) == 0) + action->arg1 = pack_object(tstate, *av, + IPFW_TLV_STATE_NAME); + else + errx(EX_DATAERR, "Invalid state name %s", *av); + av++; break; case TOK_ACCEPT: @@ -4502,16 +4544,35 @@ read_options: av++; break; - case TOK_KEEPSTATE: + case TOK_KEEPSTATE: { + uint16_t uidx; + if (open_par) errx(EX_USAGE, "keep-state cannot be part " "of an or block"); if (have_state) errx(EX_USAGE, "only one of keep-state " "and limit is allowed"); + if (*av == NULL || + match_token(rule_options, *av) != -1) { + if (*av != NULL) + warn("Ambiguous state name '%s'," + " '%s' used instead.\n", *av, + default_state_name); + uidx = pack_object(tstate, default_state_name, + IPFW_TLV_STATE_NAME); + } else { + if (state_check_name(*av) != 0) + errx(EX_DATAERR, + "Invalid state name %s", *av); + uidx = pack_object(tstate, *av, + IPFW_TLV_STATE_NAME); + av++; + } have_state = cmd; - fill_cmd(cmd, O_KEEP_STATE, 0, 0); + fill_cmd(cmd, O_KEEP_STATE, 0, uidx); break; + } case TOK_LIMIT: { ipfw_insn_limit *c = (ipfw_insn_limit *)cmd; @@ -4542,8 +4603,24 @@ read_options: GET_UINT_ARG(c->conn_limit, IPFW_ARG_MIN, IPFW_ARG_MAX, TOK_LIMIT, rule_options); - av++; + + if (*av == NULL || + match_token(rule_options, *av) != -1) { + if (*av != NULL) + warn("Ambiguous state name '%s'," + " '%s' used instead.\n", *av, + default_state_name); + cmd->arg1 = pack_object(tstate, + default_state_name, IPFW_TLV_STATE_NAME); + } else { + if (state_check_name(*av) != 0) + errx(EX_DATAERR, + "Invalid state name %s", *av); + cmd->arg1 = pack_object(tstate, *av, + IPFW_TLV_STATE_NAME); + av++; + } break; } @@ -4749,7 +4826,7 @@ done: * generate O_PROBE_STATE if necessary */ if (have_state && have_state->opcode != O_CHECK_STATE) { - fill_cmd(dst, O_PROBE_STATE, 0, 0); + fill_cmd(dst, O_PROBE_STATE, 0, have_state->arg1); dst = next_cmd(dst, &rblen); } @@ -5134,6 +5211,7 @@ static struct _s_x intcmds[] = { static struct _s_x otypes[] = { { "EACTION", IPFW_TLV_EACTION }, + { "DYNSTATE", IPFW_TLV_STATE_NAME }, { NULL, 0 } }; Modified: head/sys/netinet/ip_fw.h ============================================================================== --- head/sys/netinet/ip_fw.h Tue Jul 19 03:13:51 2016 (r303017) +++ head/sys/netinet/ip_fw.h Tue Jul 19 04:56:59 2016 (r303018) @@ -688,7 +688,8 @@ struct _ipfw_dyn_rule { /* to generate keepalives) */ u_int16_t dyn_type; /* rule type */ u_int16_t count; /* refcount */ -}; + u_int16_t kidx; /* index of named object */ +} __packed __aligned(8); /* * Definitions for IP option names. @@ -790,6 +791,7 @@ typedef struct _ipfw_obj_tlv { #define IPFW_TLV_RANGE 9 #define IPFW_TLV_EACTION 10 #define IPFW_TLV_COUNTERS 11 +#define IPFW_TLV_STATE_NAME 14 #define IPFW_TLV_EACTION_BASE 1000 #define IPFW_TLV_EACTION_NAME(arg) (IPFW_TLV_EACTION_BASE + (arg)) Modified: head/sys/netpfil/ipfw/ip_fw2.c ============================================================================== --- head/sys/netpfil/ipfw/ip_fw2.c Tue Jul 19 03:13:51 2016 (r303017) +++ head/sys/netpfil/ipfw/ip_fw2.c Tue Jul 19 04:56:59 2016 (r303018) @@ -971,6 +971,7 @@ ipfw_chk(struct ip_fw_args *args) * MATCH_FORWARD or MATCH_REVERSE otherwise (q != NULL) */ int dyn_dir = MATCH_UNKNOWN; + uint16_t dyn_name = 0; ipfw_dyn_rule *q = NULL; struct ip_fw_chain *chain = &V_layer3_chain; @@ -2113,17 +2114,35 @@ do { \ /* * dynamic rules are checked at the first * keep-state or check-state occurrence, - * with the result being stored in dyn_dir. + * with the result being stored in dyn_dir + * and dyn_name. * The compiler introduces a PROBE_STATE * instruction for us when we have a * KEEP_STATE (because PROBE_STATE needs * to be run first). + * + * (dyn_dir == MATCH_UNKNOWN) means this is + * first lookup for such f_id. Do lookup. + * + * (dyn_dir != MATCH_UNKNOWN && + * dyn_name != 0 && dyn_name != cmd->arg1) + * means previous lookup didn't find dynamic + * rule for specific state name and current + * lookup will search rule with another state + * name. Redo lookup. + * + * (dyn_dir != MATCH_UNKNOWN && dyn_name == 0) + * means previous lookup was for `any' name + * and it didn't find rule. No need to do + * lookup again. */ - if (dyn_dir == MATCH_UNKNOWN && + if ((dyn_dir == MATCH_UNKNOWN || + (dyn_name != 0 && + dyn_name != cmd->arg1)) && (q = ipfw_lookup_dyn_rule(&args->f_id, &dyn_dir, proto == IPPROTO_TCP ? - TCP(ulp) : NULL)) - != NULL) { + TCP(ulp): NULL, + (dyn_name = cmd->arg1))) != NULL) { /* * Found dynamic entry, update stats * and jump to the 'action' part of Modified: head/sys/netpfil/ipfw/ip_fw_dynamic.c ============================================================================== --- head/sys/netpfil/ipfw/ip_fw_dynamic.c Tue Jul 19 03:13:51 2016 (r303017) +++ head/sys/netpfil/ipfw/ip_fw_dynamic.c Tue Jul 19 04:56:59 2016 (r303018) @@ -282,6 +282,200 @@ hash_packet(struct ipfw_flow_id *id, int return i; } +#if 0 +#define DYN_DEBUG(fmt, ...) do { \ + printf("%s: " fmt "\n", __func__, __VA_ARGS__); \ +} while (0) +#else +#define DYN_DEBUG(fmt, ...) +#endif + +static char *default_state_name = "default"; +struct dyn_state_obj { + struct named_object no; + char name[64]; +}; + +#define DYN_STATE_OBJ(ch, cmd) \ + ((struct dyn_state_obj *)SRV_OBJECT(ch, (cmd)->arg1)) +/* + * Classifier callback. + * Return 0 if opcode contains object that should be referenced + * or rewritten. + */ +static int +dyn_classify(ipfw_insn *cmd, uint16_t *puidx, uint8_t *ptype) +{ + + DYN_DEBUG("opcode %d, arg1 %d", cmd->opcode, cmd->arg1); + /* Don't rewrite "check-state any" */ + if (cmd->arg1 == 0 && + cmd->opcode == O_CHECK_STATE) + return (1); + + *puidx = cmd->arg1; + *ptype = 0; + return (0); +} + +static void +dyn_update(ipfw_insn *cmd, uint16_t idx) +{ + + cmd->arg1 = idx; + DYN_DEBUG("opcode %d, arg1 %d", cmd->opcode, cmd->arg1); +} + +static int +dyn_findbyname(struct ip_fw_chain *ch, struct tid_info *ti, + struct named_object **pno) +{ + ipfw_obj_ntlv *ntlv; + const char *name; + + DYN_DEBUG("uidx %d", ti->uidx); + if (ti->uidx != 0) { + if (ti->tlvs == NULL) + return (EINVAL); + /* Search ntlv in the buffer provided by user */ + ntlv = ipfw_find_name_tlv_type(ti->tlvs, ti->tlen, ti->uidx, + IPFW_TLV_STATE_NAME); + if (ntlv == NULL) + return (EINVAL); + name = ntlv->name; + } else + name = default_state_name; + /* + * Search named object with corresponding name. + * Since states objects are global - ignore the set value + * and use zero instead. + */ + *pno = ipfw_objhash_lookup_name_type(CHAIN_TO_SRV(ch), 0, + IPFW_TLV_STATE_NAME, name); + /* + * We always return success here. + * The caller will check *pno and mark object as unresolved, + * then it will automatically create "default" object. + */ + return (0); +} + +static struct named_object * +dyn_findbykidx(struct ip_fw_chain *ch, uint16_t idx) +{ + + DYN_DEBUG("kidx %d", idx); + return (ipfw_objhash_lookup_kidx(CHAIN_TO_SRV(ch), idx)); +} + +static int +dyn_create(struct ip_fw_chain *ch, struct tid_info *ti, + uint16_t *pkidx) +{ + struct namedobj_instance *ni; + struct dyn_state_obj *obj; + struct named_object *no; + ipfw_obj_ntlv *ntlv; + char *name; + + DYN_DEBUG("uidx %d", ti->uidx); + if (ti->uidx != 0) { + if (ti->tlvs == NULL) + return (EINVAL); + ntlv = ipfw_find_name_tlv_type(ti->tlvs, ti->tlen, ti->uidx, + IPFW_TLV_STATE_NAME); + if (ntlv == NULL) + return (EINVAL); + name = ntlv->name; + } else + name = default_state_name; + + ni = CHAIN_TO_SRV(ch); + obj = malloc(sizeof(*obj), M_IPFW, M_WAITOK | M_ZERO); + obj->no.name = obj->name; + obj->no.etlv = IPFW_TLV_STATE_NAME; + strlcpy(obj->name, name, sizeof(obj->name)); + + IPFW_UH_WLOCK(ch); + no = ipfw_objhash_lookup_name_type(ni, 0, + IPFW_TLV_STATE_NAME, name); + if (no != NULL) { + /* + * Object is already created. + * Just return its kidx and bump refcount. + */ + *pkidx = no->kidx; + no->refcnt++; + IPFW_UH_WUNLOCK(ch); + free(obj, M_IPFW); + DYN_DEBUG("\tfound kidx %d", *pkidx); + return (0); + } + if (ipfw_objhash_alloc_idx(ni, &obj->no.kidx) != 0) { + DYN_DEBUG("\talloc_idx failed for %s", name); + IPFW_UH_WUNLOCK(ch); + free(obj, M_IPFW); + return (ENOSPC); + } + ipfw_objhash_add(ni, &obj->no); + IPFW_WLOCK(ch); + SRV_OBJECT(ch, obj->no.kidx) = obj; + IPFW_WUNLOCK(ch); + obj->no.refcnt++; + *pkidx = obj->no.kidx; + IPFW_UH_WUNLOCK(ch); + DYN_DEBUG("\tcreated kidx %d", *pkidx); + return (0); +} + +static void +dyn_destroy(struct ip_fw_chain *ch, struct named_object *no) +{ + struct dyn_state_obj *obj; + + IPFW_UH_WLOCK_ASSERT(ch); + + KASSERT(no->refcnt == 1, + ("Destroying object '%s' (type %u, idx %u) with refcnt %u", + no->name, no->etlv, no->kidx, no->refcnt)); + + DYN_DEBUG("kidx %d", no->kidx); + IPFW_WLOCK(ch); + obj = SRV_OBJECT(ch, no->kidx); + SRV_OBJECT(ch, no->kidx) = NULL; + IPFW_WUNLOCK(ch); + ipfw_objhash_del(CHAIN_TO_SRV(ch), no); + ipfw_objhash_free_idx(CHAIN_TO_SRV(ch), no->kidx); + + free(obj, M_IPFW); +} + +static struct opcode_obj_rewrite dyn_opcodes[] = { + { + O_KEEP_STATE, IPFW_TLV_STATE_NAME, + dyn_classify, dyn_update, + dyn_findbyname, dyn_findbykidx, + dyn_create, dyn_destroy + }, + { + O_CHECK_STATE, IPFW_TLV_STATE_NAME, + dyn_classify, dyn_update, + dyn_findbyname, dyn_findbykidx, + dyn_create, dyn_destroy + }, + { + O_PROBE_STATE, IPFW_TLV_STATE_NAME, + dyn_classify, dyn_update, + dyn_findbyname, dyn_findbykidx, + dyn_create, dyn_destroy + }, + { + O_LIMIT, IPFW_TLV_STATE_NAME, + dyn_classify, dyn_update, + dyn_findbyname, dyn_findbykidx, + dyn_create, dyn_destroy + }, +}; /** * Print customizable flow id description via log(9) facility. */ @@ -403,7 +597,7 @@ dyn_update_proto_state(ipfw_dyn_rule *q, */ static ipfw_dyn_rule * lookup_dyn_rule_locked(struct ipfw_flow_id *pkt, int i, int *match_direction, - struct tcphdr *tcp) + struct tcphdr *tcp, uint16_t kidx) { /* * Stateful ipfw extensions. @@ -416,10 +610,13 @@ lookup_dyn_rule_locked(struct ipfw_flow_ dir = MATCH_NONE; for (prev = NULL, q = V_ipfw_dyn_v[i].head; q; prev = q, q = q->next) { - if (q->dyn_type == O_LIMIT_PARENT && q->count) + if (q->dyn_type == O_LIMIT_PARENT) + continue; + + if (pkt->proto != q->id.proto) continue; - if (pkt->proto != q->id.proto || q->dyn_type == O_LIMIT_PARENT) + if (kidx != 0 && kidx != q->kidx) continue; if (IS_IP6_FLOW_ID(pkt)) { @@ -473,7 +670,7 @@ done: ipfw_dyn_rule * ipfw_lookup_dyn_rule(struct ipfw_flow_id *pkt, int *match_direction, - struct tcphdr *tcp) + struct tcphdr *tcp, uint16_t kidx) { ipfw_dyn_rule *q; int i; @@ -481,7 +678,7 @@ ipfw_lookup_dyn_rule(struct ipfw_flow_id i = hash_packet(pkt, V_curr_dyn_buckets); IPFW_BUCK_LOCK(i); - q = lookup_dyn_rule_locked(pkt, i, match_direction, tcp); + q = lookup_dyn_rule_locked(pkt, i, match_direction, tcp, kidx); if (q == NULL) IPFW_BUCK_UNLOCK(i); /* NB: return table locked when q is not NULL */ @@ -591,7 +788,8 @@ resize_dynamic_table(struct ip_fw_chain * - "parent" rules for the above (O_LIMIT_PARENT). */ static ipfw_dyn_rule * -add_dyn_rule(struct ipfw_flow_id *id, int i, u_int8_t dyn_type, struct ip_fw *rule) +add_dyn_rule(struct ipfw_flow_id *id, int i, uint8_t dyn_type, + struct ip_fw *rule, uint16_t kidx) { ipfw_dyn_rule *r; @@ -627,7 +825,7 @@ add_dyn_rule(struct ipfw_flow_id *id, in r->dyn_type = dyn_type; IPFW_ZERO_DYN_COUNTER(r); r->count = 0; - + r->kidx = kidx; r->bucket = i; r->next = V_ipfw_dyn_v[i].head; V_ipfw_dyn_v[i].head = r; @@ -640,7 +838,8 @@ add_dyn_rule(struct ipfw_flow_id *id, in * If the lookup fails, then install one. */ static ipfw_dyn_rule * -lookup_dyn_parent(struct ipfw_flow_id *pkt, int *pindex, struct ip_fw *rule) +lookup_dyn_parent(struct ipfw_flow_id *pkt, int *pindex, struct ip_fw *rule, + uint16_t kidx) { ipfw_dyn_rule *q; int i, is_v6; @@ -651,7 +850,8 @@ lookup_dyn_parent(struct ipfw_flow_id *p IPFW_BUCK_LOCK(i); for (q = V_ipfw_dyn_v[i].head ; q != NULL ; q=q->next) if (q->dyn_type == O_LIMIT_PARENT && - rule== q->rule && + kidx == q->kidx && + rule == q->rule && pkt->proto == q->id.proto && pkt->src_port == q->id.src_port && pkt->dst_port == q->id.dst_port && @@ -673,7 +873,7 @@ lookup_dyn_parent(struct ipfw_flow_id *p } /* Add virtual limiting rule */ - return add_dyn_rule(pkt, i, O_LIMIT_PARENT, rule); + return add_dyn_rule(pkt, i, O_LIMIT_PARENT, rule, kidx); } /** @@ -689,13 +889,14 @@ ipfw_install_state(struct ip_fw_chain *c ipfw_dyn_rule *q; int i; - DEB(print_dyn_rule(&args->f_id, cmd->o.opcode, "install_state", "");) - + DEB(print_dyn_rule(&args->f_id, cmd->o.opcode, "install_state", + (cmd->o.arg1 == 0 ? "": DYN_STATE_OBJ(chain, &cmd->o)->name));) + i = hash_packet(&args->f_id, V_curr_dyn_buckets); IPFW_BUCK_LOCK(i); - q = lookup_dyn_rule_locked(&args->f_id, i, NULL, NULL); + q = lookup_dyn_rule_locked(&args->f_id, i, NULL, NULL, cmd->o.arg1); if (q != NULL) { /* should never occur */ DEB( if (last_log != time_uptime) { @@ -716,7 +917,8 @@ ipfw_install_state(struct ip_fw_chain *c switch (cmd->o.opcode) { case O_KEEP_STATE: /* bidir rule */ - q = add_dyn_rule(&args->f_id, i, O_KEEP_STATE, rule); + q = add_dyn_rule(&args->f_id, i, O_KEEP_STATE, rule, + cmd->o.arg1); break; case O_LIMIT: { /* limit number of sessions */ @@ -767,7 +969,8 @@ ipfw_install_state(struct ip_fw_chain *c */ IPFW_BUCK_UNLOCK(i); - if ((parent = lookup_dyn_parent(&id, &pindex, rule)) == NULL) { + parent = lookup_dyn_parent(&id, &pindex, rule, cmd->o.arg1); + if (parent == NULL) { printf("ipfw: %s: add parent failed\n", __func__); IPFW_BUCK_UNLOCK(pindex); return (1); @@ -795,7 +998,7 @@ ipfw_install_state(struct ip_fw_chain *c IPFW_BUCK_LOCK(i); q = add_dyn_rule(&args->f_id, i, O_LIMIT, - (struct ip_fw *)parent); + (struct ip_fw *)parent, cmd->o.arg1); if (q == NULL) { /* Decrement index and notify caller */ IPFW_BUCK_UNLOCK(i); @@ -1412,6 +1615,7 @@ ipfw_dyn_init(struct ip_fw_chain *chain) * being added to chain. */ resize_dynamic_table(chain, V_curr_dyn_buckets); + IPFW_ADD_OBJ_REWRITER(IS_DEFAULT_VNET(curvnet), dyn_opcodes); } void @@ -1423,6 +1627,7 @@ ipfw_dyn_uninit(int pass) callout_drain(&V_ipfw_timeout); return; } + IPFW_DEL_OBJ_REWRITER(IS_DEFAULT_VNET(curvnet), dyn_opcodes); if (V_ipfw_dyn_v != NULL) { /* Modified: head/sys/netpfil/ipfw/ip_fw_private.h ============================================================================== --- head/sys/netpfil/ipfw/ip_fw_private.h Tue Jul 19 03:13:51 2016 (r303017) +++ head/sys/netpfil/ipfw/ip_fw_private.h Tue Jul 19 04:56:59 2016 (r303018) @@ -189,7 +189,7 @@ struct mbuf *ipfw_send_pkt(struct mbuf * int ipfw_install_state(struct ip_fw_chain *chain, struct ip_fw *rule, ipfw_insn_limit *cmd, struct ip_fw_args *args, uint32_t tablearg); ipfw_dyn_rule *ipfw_lookup_dyn_rule(struct ipfw_flow_id *pkt, - int *match_direction, struct tcphdr *tcp); + int *match_direction, struct tcphdr *tcp, uint16_t kidx); void ipfw_remove_dyn_children(struct ip_fw *rule); void ipfw_get_dynamic(struct ip_fw_chain *chain, char **bp, const char *ep); int ipfw_dump_states(struct ip_fw_chain *chain, struct sockopt_data *sd); Modified: head/sys/netpfil/ipfw/ip_fw_sockopt.c ============================================================================== --- head/sys/netpfil/ipfw/ip_fw_sockopt.c Tue Jul 19 03:13:51 2016 (r303017) +++ head/sys/netpfil/ipfw/ip_fw_sockopt.c Tue Jul 19 04:56:59 2016 (r303018) @@ -1679,6 +1679,10 @@ check_ipfw_rule_body(ipfw_insn *cmd, int switch (cmd->opcode) { case O_PROBE_STATE: case O_KEEP_STATE: + if (cmdlen != F_INSN_SIZE(ipfw_insn)) + goto bad_size; + ci->object_opcodes++; + break; case O_PROTO: case O_IP_SRC_ME: case O_IP_DST_ME: @@ -1776,6 +1780,7 @@ check_ipfw_rule_body(ipfw_insn *cmd, int case O_LIMIT: if (cmdlen != F_INSN_SIZE(ipfw_insn_limit)) goto bad_size; + ci->object_opcodes++; break; case O_LOG: @@ -1906,8 +1911,10 @@ check_ipfw_rule_body(ipfw_insn *cmd, int if (cmdlen != F_INSN_SIZE(ipfw_insn_nat)) goto bad_size; goto check_action; - case O_FORWARD_MAC: /* XXX not implemented yet */ case O_CHECK_STATE: + ci->object_opcodes++; + /* FALLTHROUGH */ + case O_FORWARD_MAC: /* XXX not implemented yet */ case O_COUNT: case O_ACCEPT: case O_DENY: From owner-svn-src-all@freebsd.org Tue Jul 19 05:36:22 2016 Return-Path: Delivered-To: svn-src-all@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 93096B9D160; Tue, 19 Jul 2016 05:36:22 +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 4ECAC16D3; Tue, 19 Jul 2016 05:36:22 +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 u6J5aL0O015269; Tue, 19 Jul 2016 05:36:21 GMT (envelope-from ae@FreeBSD.org) Received: (from ae@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6J5aLl7015268; Tue, 19 Jul 2016 05:36:21 GMT (envelope-from ae@FreeBSD.org) Message-Id: <201607190536.u6J5aLl7015268@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org using -f From: "Andrey V. Elsukov" Date: Tue, 19 Jul 2016 05:36:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303019 - head/sys/geom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 05:36:22 -0000 Author: ae Date: Tue Jul 19 05:36:21 2016 New Revision: 303019 URL: https://svnweb.freebsd.org/changeset/base/303019 Log: Use g_resize_provider() to change the size of GEOM_DISK provider, when it is being opened. This should fix the possible loss of a resize event when disk capacity changed. PR: 211028 Reported by: Dexuan Cui MFC after: 3 weeks Modified: head/sys/geom/geom_disk.c Modified: head/sys/geom/geom_disk.c ============================================================================== --- head/sys/geom/geom_disk.c Tue Jul 19 04:56:59 2016 (r303018) +++ head/sys/geom/geom_disk.c Tue Jul 19 05:36:21 2016 (r303019) @@ -126,7 +126,6 @@ g_disk_access(struct g_provider *pp, int if (error != 0) return (error); } - pp->mediasize = dp->d_mediasize; pp->sectorsize = dp->d_sectorsize; if (dp->d_maxsize == 0) { printf("WARNING: Disk drive %s%d has no d_maxsize\n", @@ -143,6 +142,7 @@ g_disk_access(struct g_provider *pp, int pp->stripeoffset = dp->d_stripeoffset; pp->stripesize = dp->d_stripesize; dp->d_flags |= DISKFLAG_OPEN; + g_resize_provider(pp, dp->d_mediasize); } else if ((pp->acr + pp->acw + pp->ace) > 0 && (r + w + e) == 0) { if (dp->d_close != NULL) { error = dp->d_close(dp); From owner-svn-src-all@freebsd.org Tue Jul 19 05:38:46 2016 Return-Path: Delivered-To: svn-src-all@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 13FDBB9D2C9; Tue, 19 Jul 2016 05:38:46 +0000 (UTC) (envelope-from sepherosa@gmail.com) Received: from mail-vk0-x22d.google.com (mail-vk0-x22d.google.com [IPv6:2607:f8b0:400c:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C344919E2; Tue, 19 Jul 2016 05:38:45 +0000 (UTC) (envelope-from sepherosa@gmail.com) Received: by mail-vk0-x22d.google.com with SMTP id j126so10262917vkg.3; Mon, 18 Jul 2016 22:38:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Adw+sHzLZ9Jy0FIGJ4v7dseVNr+M7kmBRauhKVNSdZk=; b=m+FNu+WsjVsucf1j6ELdqE67i5m1NGZhmm6vPQ1VKjKJw4+Gx7bhQ/aT13FapxPbPf EblJdDWZlwgsJa+TPCFXpQutiG037Q63jXJIcVVC6irkDsQDwMmhBdfNB7lX4yDcbmCN stMeiVB+rSQY0QtQhV9bJpp6vJISIQwldhOh+bpiMb3yYiKNaffwWn0sR8p7gErOIcR/ jxqqAdgWeebk/l76fB7Jm+TOm04MOJV1ek/p+M4Xt78d98W/qAzSQAHUxq8WBiR/A4LP /pdCTStusuANzX7poAqZanvEKeL1eYYTkdiZWrnIkp9JreKjRTdtRPGRNBkwtVVTdhik Rkhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Adw+sHzLZ9Jy0FIGJ4v7dseVNr+M7kmBRauhKVNSdZk=; b=foUOouz/iZ5oUbkmHWpBYBOSQb3XXa5s1a5T1W5w+0itOXoDLgGte0VO0VUlC7NHOy NmovW8KhR9b2SA7G5JtfMqNwafDlrZWHkoIahQuRpesq4pGEo61qxO2oP/buC7ZeyD0a qWOKfTCiKrf9vNMOjGDk6Ng8MjaQD1IOEYAY8ZX+AdJvq/9yfVZnzVz7ZRy2LyduHJXc qGLB2dxqBhJ7ucZtIivZsYydEqkrcXqzmzj2vje5euYgwyxEj4Cjp+/qS9Rr8k866J7u 1Jr5c0GhEHPmukRG19tNtnFZGl7ceEfM2yB7Aa5IHK/uRFZrCVHJiPdjA24OFIYD8+Ij u+Zg== X-Gm-Message-State: ALyK8tKbPnm43LweVijTuwE42+zSuJYMgW/uxGgO98D66OxWi2/+xfVpSmyLtPGBL+zKT9awPQQHtVlR7M3Qbg== X-Received: by 10.31.92.78 with SMTP id q75mr14825307vkb.112.1468906724515; Mon, 18 Jul 2016 22:38:44 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.83.101 with HTTP; Mon, 18 Jul 2016 22:38:44 -0700 (PDT) In-Reply-To: <201607190536.u6J5aLl7015268@repo.freebsd.org> References: <201607190536.u6J5aLl7015268@repo.freebsd.org> From: Sepherosa Ziehau Date: Tue, 19 Jul 2016 13:38:44 +0800 Message-ID: Subject: Re: svn commit: r303019 - head/sys/geom To: "Andrey V. Elsukov" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 05:38:46 -0000 Thanks! On Tue, Jul 19, 2016 at 1:36 PM, Andrey V. Elsukov wrote: > Author: ae > Date: Tue Jul 19 05:36:21 2016 > New Revision: 303019 > URL: https://svnweb.freebsd.org/changeset/base/303019 > > Log: > Use g_resize_provider() to change the size of GEOM_DISK provider, > when it is being opened. This should fix the possible loss of a resize > event when disk capacity changed. > > PR: 211028 > Reported by: Dexuan Cui > MFC after: 3 weeks > > Modified: > head/sys/geom/geom_disk.c > > Modified: head/sys/geom/geom_disk.c > ============================================================================== > --- head/sys/geom/geom_disk.c Tue Jul 19 04:56:59 2016 (r303018) > +++ head/sys/geom/geom_disk.c Tue Jul 19 05:36:21 2016 (r303019) > @@ -126,7 +126,6 @@ g_disk_access(struct g_provider *pp, int > if (error != 0) > return (error); > } > - pp->mediasize = dp->d_mediasize; > pp->sectorsize = dp->d_sectorsize; > if (dp->d_maxsize == 0) { > printf("WARNING: Disk drive %s%d has no d_maxsize\n", > @@ -143,6 +142,7 @@ g_disk_access(struct g_provider *pp, int > pp->stripeoffset = dp->d_stripeoffset; > pp->stripesize = dp->d_stripesize; > dp->d_flags |= DISKFLAG_OPEN; > + g_resize_provider(pp, dp->d_mediasize); > } else if ((pp->acr + pp->acw + pp->ace) > 0 && (r + w + e) == 0) { > if (dp->d_close != NULL) { > error = dp->d_close(dp); > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" -- Tomorrow Will Never Die From owner-svn-src-all@freebsd.org Tue Jul 19 05:46:17 2016 Return-Path: Delivered-To: svn-src-all@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 0C2CFB9D771; Tue, 19 Jul 2016 05:46:17 +0000 (UTC) (envelope-from sephe@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 D84B61F34; Tue, 19 Jul 2016 05:46:16 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6J5kGW1019114; Tue, 19 Jul 2016 05:46:16 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6J5kFT7019109; Tue, 19 Jul 2016 05:46:15 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607190546.u6J5kFT7019109@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Tue, 19 Jul 2016 05:46:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303020 - in head/sys/dev/hyperv: include storvsc vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 05:46:17 -0000 Author: sephe Date: Tue Jul 19 05:46:15 2016 New Revision: 303020 URL: https://svnweb.freebsd.org/changeset/base/303020 Log: hyperv/vmbus: Cleanup cpu based channel selection. And create cpu to channel map at device attach time for storvsc(4). MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7229 Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/include/vmbus.h head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c head/sys/dev/hyperv/vmbus/hv_channel.c Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Tue Jul 19 05:36:21 2016 (r303019) +++ head/sys/dev/hyperv/include/hyperv.h Tue Jul 19 05:46:15 2016 (r303020) @@ -281,8 +281,6 @@ int hv_vmbus_channel_open(struct hv_vmb vmbus_chan_callback_t cb, void *cbarg); void hv_vmbus_channel_close(hv_vmbus_channel *channel); -struct hv_vmbus_channel* vmbus_select_outgoing_channel(struct hv_vmbus_channel *promary); - /** * @brief Get physical address from virtual */ Modified: head/sys/dev/hyperv/include/vmbus.h ============================================================================== --- head/sys/dev/hyperv/include/vmbus.h Tue Jul 19 05:36:21 2016 (r303019) +++ head/sys/dev/hyperv/include/vmbus.h Tue Jul 19 05:46:15 2016 (r303020) @@ -96,13 +96,14 @@ int vmbus_chan_gpadl_disconnect(struct h void vmbus_chan_cpu_set(struct hv_vmbus_channel *chan, int cpu); void vmbus_chan_cpu_rr(struct hv_vmbus_channel *chan); +struct hv_vmbus_channel * + vmbus_chan_cpu2chan(struct hv_vmbus_channel *chan, int cpu); struct hv_vmbus_channel ** vmbus_subchan_get(struct hv_vmbus_channel *pri_chan, int subchan_cnt); void vmbus_subchan_rel(struct hv_vmbus_channel **subchan, int subchan_cnt); void vmbus_subchan_drain(struct hv_vmbus_channel *pri_chan); - int vmbus_chan_recv(struct hv_vmbus_channel *chan, void *data, int *dlen, uint64_t *xactid); int vmbus_chan_recv_pkt(struct hv_vmbus_channel *chan, Modified: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Tue Jul 19 05:36:21 2016 (r303019) +++ head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Tue Jul 19 05:46:15 2016 (r303020) @@ -147,6 +147,8 @@ struct storvsc_softc { struct hv_storvsc_request hs_init_req; struct hv_storvsc_request hs_reset_req; device_t hs_dev; + + struct hv_vmbus_channel *hs_cpu2chan[MAXCPU]; }; @@ -664,7 +666,7 @@ hv_storvsc_io_request(struct storvsc_sof vstor_packet->operation = VSTOR_OPERATION_EXECUTESRB; - outgoing_channel = vmbus_select_outgoing_channel(sc->hs_chan); + outgoing_channel = sc->hs_cpu2chan[curcpu]; mtx_unlock(&request->softc->hs_lock); if (request->prp_list.gpa_range.gpa_len) { @@ -870,6 +872,20 @@ storvsc_probe(device_t dev) return (ret); } +static void +storvsc_create_cpu2chan(struct storvsc_softc *sc) +{ + int cpu; + + CPU_FOREACH(cpu) { + sc->hs_cpu2chan[cpu] = vmbus_chan_cpu2chan(sc->hs_chan, cpu); + if (bootverbose) { + device_printf(sc->hs_dev, "cpu%d -> chan%u\n", + cpu, sc->hs_cpu2chan[cpu]->ch_id); + } + } +} + /** * @brief StorVSC attach function * @@ -967,6 +983,9 @@ storvsc_attach(device_t dev) goto cleanup; } + /* Construct cpu to channel mapping */ + storvsc_create_cpu2chan(sc); + /* * Create the device queue. * Hyper-V maps each target to one SCSI HBA Modified: head/sys/dev/hyperv/vmbus/hv_channel.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel.c Tue Jul 19 05:36:21 2016 (r303019) +++ head/sys/dev/hyperv/vmbus/hv_channel.c Tue Jul 19 05:46:15 2016 (r303020) @@ -1250,61 +1250,63 @@ vmbus_chan_destroy_all(struct vmbus_soft mtx_unlock(&sc->vmbus_prichan_lock); } -/** - * @brief Select the best outgoing channel - * +/* * The channel whose vcpu binding is closest to the currect vcpu will * be selected. - * If no multi-channel, always select primary channel - * - * @param primary - primary channel + * If no multi-channel, always select primary channel. */ struct hv_vmbus_channel * -vmbus_select_outgoing_channel(struct hv_vmbus_channel *primary) +vmbus_chan_cpu2chan(struct hv_vmbus_channel *prichan, int cpu) { - hv_vmbus_channel *new_channel = NULL; - hv_vmbus_channel *outgoing_channel = primary; - int old_cpu_distance = 0; - int new_cpu_distance = 0; - int cur_vcpu = 0; - int smp_pro_id = PCPU_GET(cpuid); + struct hv_vmbus_channel *sel, *chan; + uint32_t vcpu, sel_dist; - if (TAILQ_EMPTY(&primary->ch_subchans)) { - return outgoing_channel; - } + KASSERT(cpu >= 0 && cpu < mp_ncpus, ("invalid cpuid %d", cpu)); + if (TAILQ_EMPTY(&prichan->ch_subchans)) + return prichan; - if (smp_pro_id >= MAXCPU) { - return outgoing_channel; - } + vcpu = VMBUS_PCPU_GET(prichan->vmbus_sc, vcpuid, cpu); - cur_vcpu = VMBUS_PCPU_GET(primary->vmbus_sc, vcpuid, smp_pro_id); - - /* XXX need lock */ - TAILQ_FOREACH(new_channel, &primary->ch_subchans, ch_sublink) { - if ((new_channel->ch_stflags & VMBUS_CHAN_ST_OPENED) == 0) { - continue; - } +#define CHAN_VCPU_DIST(ch, vcpu) \ + (((ch)->ch_vcpuid > (vcpu)) ? \ + ((ch)->ch_vcpuid - (vcpu)) : ((vcpu) - (ch)->ch_vcpuid)) - if (new_channel->ch_vcpuid == cur_vcpu){ - return new_channel; - } +#define CHAN_SELECT(ch) \ +do { \ + sel = ch; \ + sel_dist = CHAN_VCPU_DIST(ch, vcpu); \ +} while (0) + + CHAN_SELECT(prichan); - old_cpu_distance = ((outgoing_channel->ch_vcpuid > cur_vcpu) ? - (outgoing_channel->ch_vcpuid - cur_vcpu) : - (cur_vcpu - outgoing_channel->ch_vcpuid)); - - new_cpu_distance = ((new_channel->ch_vcpuid > cur_vcpu) ? - (new_channel->ch_vcpuid - cur_vcpu) : - (cur_vcpu - new_channel->ch_vcpuid)); + mtx_lock(&prichan->ch_subchan_lock); + TAILQ_FOREACH(chan, &prichan->ch_subchans, ch_sublink) { + uint32_t dist; - if (old_cpu_distance < new_cpu_distance) { + KASSERT(chan->ch_stflags & VMBUS_CHAN_ST_OPENED, + ("chan%u is not opened", chan->ch_id)); + + if (chan->ch_vcpuid == vcpu) { + /* Exact match; done */ + CHAN_SELECT(chan); + break; + } + + dist = CHAN_VCPU_DIST(chan, vcpu); + if (sel_dist <= dist) { + /* Far or same distance; skip */ continue; } - outgoing_channel = new_channel; + /* Select the closer channel. */ + CHAN_SELECT(chan); } + mtx_unlock(&prichan->ch_subchan_lock); + +#undef CHAN_SELECT +#undef CHAN_VCPU_DIST - return(outgoing_channel); + return sel; } struct hv_vmbus_channel ** From owner-svn-src-all@freebsd.org Tue Jul 19 05:57:21 2016 Return-Path: Delivered-To: svn-src-all@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 9CD3CB9D966; Tue, 19 Jul 2016 05:57:21 +0000 (UTC) (envelope-from sephe@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 4A3EA153A; Tue, 19 Jul 2016 05:57:21 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6J5vK0I022757; Tue, 19 Jul 2016 05:57:20 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6J5vJJN022750; Tue, 19 Jul 2016 05:57:19 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607190557.u6J5vJJN022750@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Tue, 19 Jul 2016 05:57:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303021 - in head/sys/dev/hyperv: include netvsc storvsc utilities vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 05:57:21 -0000 Author: sephe Date: Tue Jul 19 05:57:19 2016 New Revision: 303021 URL: https://svnweb.freebsd.org/changeset/base/303021 Log: hyperv/vmbus: Function rename MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7230 Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/include/vmbus.h head/sys/dev/hyperv/netvsc/hv_net_vsc.c head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c head/sys/dev/hyperv/utilities/hv_util.c head/sys/dev/hyperv/vmbus/hv_channel.c Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Tue Jul 19 05:46:15 2016 (r303020) +++ head/sys/dev/hyperv/include/hyperv.h Tue Jul 19 05:57:19 2016 (r303021) @@ -267,20 +267,6 @@ typedef struct hv_vmbus_channel { #define VMBUS_CHAN_ST_OPENED_SHIFT 0 #define VMBUS_CHAN_ST_OPENED (1 << VMBUS_CHAN_ST_OPENED_SHIFT) -static inline void -hv_set_channel_read_state(hv_vmbus_channel* channel, boolean_t on) -{ - if (!on) - channel->ch_flags &= ~VMBUS_CHAN_FLAG_BATCHREAD; - else - channel->ch_flags |= VMBUS_CHAN_FLAG_BATCHREAD; -} - -int hv_vmbus_channel_open(struct hv_vmbus_channel *chan, - int txbr_size, int rxbr_size, const void *udata, int udlen, - vmbus_chan_callback_t cb, void *cbarg); -void hv_vmbus_channel_close(hv_vmbus_channel *channel); - /** * @brief Get physical address from virtual */ Modified: head/sys/dev/hyperv/include/vmbus.h ============================================================================== --- head/sys/dev/hyperv/include/vmbus.h Tue Jul 19 05:46:15 2016 (r303020) +++ head/sys/dev/hyperv/include/vmbus.h Tue Jul 19 05:57:19 2016 (r303021) @@ -89,6 +89,11 @@ struct vmbus_chanpkt_rxbuf { struct hv_vmbus_channel; +int vmbus_chan_open(struct hv_vmbus_channel *chan, + int txbr_size, int rxbr_size, const void *udata, int udlen, + vmbus_chan_callback_t cb, void *cbarg); +void vmbus_chan_close(struct hv_vmbus_channel *chan); + int vmbus_chan_gpadl_connect(struct hv_vmbus_channel *chan, bus_addr_t paddr, int size, uint32_t *gpadl); int vmbus_chan_gpadl_disconnect(struct hv_vmbus_channel *chan, @@ -98,6 +103,7 @@ void vmbus_chan_cpu_set(struct hv_vmbus_ void vmbus_chan_cpu_rr(struct hv_vmbus_channel *chan); struct hv_vmbus_channel * vmbus_chan_cpu2chan(struct hv_vmbus_channel *chan, int cpu); +void vmbus_chan_set_readbatch(struct hv_vmbus_channel *chan, bool on); struct hv_vmbus_channel ** vmbus_subchan_get(struct hv_vmbus_channel *pri_chan, int subchan_cnt); Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Tue Jul 19 05:46:15 2016 (r303020) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Tue Jul 19 05:57:19 2016 (r303021) @@ -645,7 +645,7 @@ hv_nv_subchan_attach(struct hv_vmbus_cha { chan->hv_chan_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK); - hv_vmbus_channel_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, + vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0, hv_nv_on_channel_callback, chan); } @@ -675,7 +675,7 @@ hv_nv_on_device_add(struct hn_softc *sc, /* * Open the channel */ - ret = hv_vmbus_channel_open(chan, + ret = vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0, hv_nv_on_channel_callback, chan); if (ret != 0) { @@ -695,7 +695,7 @@ hv_nv_on_device_add(struct hn_softc *sc, close: /* Now, we can close the channel safely */ free(chan->hv_chan_rdbuf, M_NETVSC); - hv_vmbus_channel_close(chan); + vmbus_chan_close(chan); cleanup: /* @@ -726,7 +726,7 @@ hv_nv_on_device_remove(struct hn_softc * /* Now, we can close the channel safely */ free(sc->hn_prichan->hv_chan_rdbuf, M_NETVSC); - hv_vmbus_channel_close(sc->hn_prichan); + vmbus_chan_close(sc->hn_prichan); sema_destroy(&net_dev->channel_init_sema); free(net_dev, M_NETVSC); Modified: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Tue Jul 19 05:46:15 2016 (r303020) +++ head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Tue Jul 19 05:57:19 2016 (r303021) @@ -318,7 +318,7 @@ storvsc_subchan_attach(struct storvsc_so new_channel->hv_chan_priv1 = sc; vmbus_chan_cpu_rr(new_channel); - ret = hv_vmbus_channel_open(new_channel, + ret = vmbus_chan_open(new_channel, sc->hs_drv_props->drv_ringbuffer_size, sc->hs_drv_props->drv_ringbuffer_size, (void *)&props, @@ -577,7 +577,7 @@ hv_storvsc_connect_vsp(struct storvsc_so */ KASSERT(sc->hs_chan->hv_chan_priv1 == sc, ("invalid chan priv1")); vmbus_chan_cpu_rr(sc->hs_chan); - ret = hv_vmbus_channel_open( + ret = vmbus_chan_open( sc->hs_chan, sc->hs_drv_props->drv_ringbuffer_size, sc->hs_drv_props->drv_ringbuffer_size, @@ -1100,7 +1100,7 @@ storvsc_detach(device_t dev) * under the protection of the incoming channel lock. */ - hv_vmbus_channel_close(sc->hs_chan); + vmbus_chan_close(sc->hs_chan); mtx_lock(&sc->hs_lock); while (!LIST_EMPTY(&sc->hs_free_list)) { Modified: head/sys/dev/hyperv/utilities/hv_util.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_util.c Tue Jul 19 05:46:15 2016 (r303020) +++ head/sys/dev/hyperv/utilities/hv_util.c Tue Jul 19 05:57:19 2016 (r303021) @@ -40,6 +40,7 @@ #include #include +#include #include "hv_util.h" void @@ -89,9 +90,9 @@ hv_util_attach(device_t dev) * Turn off batched reading for all util drivers before we open the * channel. */ - hv_set_channel_read_state(softc->channel, FALSE); + vmbus_chan_set_readbatch(softc->channel, false); - ret = hv_vmbus_channel_open(softc->channel, 4 * PAGE_SIZE, + ret = vmbus_chan_open(softc->channel, 4 * PAGE_SIZE, 4 * PAGE_SIZE, NULL, 0, softc->callback, softc); @@ -110,7 +111,7 @@ hv_util_detach(device_t dev) { struct hv_util_sc *sc = device_get_softc(dev); - hv_vmbus_channel_close(sc->channel); + vmbus_chan_close(sc->channel); free(sc->receive_buffer, M_DEVBUF); return (0); Modified: head/sys/dev/hyperv/vmbus/hv_channel.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel.c Tue Jul 19 05:46:15 2016 (r303020) +++ head/sys/dev/hyperv/vmbus/hv_channel.c Tue Jul 19 05:57:19 2016 (r303021) @@ -202,9 +202,8 @@ vmbus_chan_sysctl_create(struct hv_vmbus } int -hv_vmbus_channel_open(struct hv_vmbus_channel *chan, - int txbr_size, int rxbr_size, const void *udata, int udlen, - vmbus_chan_callback_t cb, void *cbarg) +vmbus_chan_open(struct hv_vmbus_channel *chan, int txbr_size, int rxbr_size, + const void *udata, int udlen, vmbus_chan_callback_t cb, void *cbarg) { struct vmbus_softc *sc = chan->vmbus_sc; const struct vmbus_chanmsg_chopen_resp *resp; @@ -579,7 +578,7 @@ vmbus_chan_close_internal(struct hv_vmbu * are not being opened. */ void -hv_vmbus_channel_close(struct hv_vmbus_channel *chan) +vmbus_chan_close(struct hv_vmbus_channel *chan) { int subchan_cnt; @@ -1370,3 +1369,12 @@ vmbus_chan_msgproc(struct vmbus_softc *s if (msg_proc != NULL) msg_proc(sc, msg); } + +void +vmbus_chan_set_readbatch(struct hv_vmbus_channel *chan, bool on) +{ + if (!on) + chan->ch_flags &= ~VMBUS_CHAN_FLAG_BATCHREAD; + else + chan->ch_flags |= VMBUS_CHAN_FLAG_BATCHREAD; +} From owner-svn-src-all@freebsd.org Tue Jul 19 06:04:46 2016 Return-Path: Delivered-To: svn-src-all@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 3B06CB9DAF2; Tue, 19 Jul 2016 06:04:46 +0000 (UTC) (envelope-from sephe@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 039E0198E; Tue, 19 Jul 2016 06:04:45 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6J64jeA026456; Tue, 19 Jul 2016 06:04:45 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6J64jZw026455; Tue, 19 Jul 2016 06:04:45 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607190604.u6J64jZw026455@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Tue, 19 Jul 2016 06:04:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303022 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 06:04:46 -0000 Author: sephe Date: Tue Jul 19 06:04:44 2016 New Revision: 303022 URL: https://svnweb.freebsd.org/changeset/base/303022 Log: hyperv/vmbus: Temp/internal variable/function rename MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7231 Modified: head/sys/dev/hyperv/vmbus/hv_channel.c Modified: head/sys/dev/hyperv/vmbus/hv_channel.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_channel.c Tue Jul 19 05:57:19 2016 (r303021) +++ head/sys/dev/hyperv/vmbus/hv_channel.c Tue Jul 19 06:04:44 2016 (r303022) @@ -51,7 +51,7 @@ __FBSDID("$FreeBSD$"); #include #include -static void vmbus_chan_send_event(hv_vmbus_channel* channel); +static void vmbus_chan_signal_tx(struct hv_vmbus_channel *chan); static void vmbus_chan_update_evtflagcnt(struct vmbus_softc *, const struct hv_vmbus_channel *); @@ -81,20 +81,20 @@ vmbus_chan_msgprocs[VMBUS_CHANMSG_TYPE_M * @brief Trigger an event notification on the specified channel */ static void -vmbus_chan_send_event(hv_vmbus_channel *channel) +vmbus_chan_signal_tx(struct hv_vmbus_channel *chan) { - struct vmbus_softc *sc = channel->vmbus_sc; - uint32_t chanid = channel->ch_id; + struct vmbus_softc *sc = chan->vmbus_sc; + uint32_t chanid = chan->ch_id; atomic_set_long(&sc->vmbus_tx_evtflags[chanid >> VMBUS_EVTFLAG_SHIFT], 1UL << (chanid & VMBUS_EVTFLAG_MASK)); - if (channel->ch_flags & VMBUS_CHAN_FLAG_HASMNF) { + if (chan->ch_flags & VMBUS_CHAN_FLAG_HASMNF) { atomic_set_int( - &sc->vmbus_mnf2->mnf_trigs[channel->ch_montrig_idx].mt_pending, - channel->ch_montrig_mask); + &sc->vmbus_mnf2->mnf_trigs[chan->ch_montrig_idx].mt_pending, + chan->ch_montrig_mask); } else { - hypercall_signal_event(channel->ch_monprm_dma.hv_paddr); + hypercall_signal_event(chan->ch_monprm_dma.hv_paddr); } } @@ -637,7 +637,7 @@ vmbus_chan_send(struct hv_vmbus_channel error = hv_ring_buffer_write(&chan->outbound, iov, 3, &send_evt); if (!error && send_evt) - vmbus_chan_send_event(chan); + vmbus_chan_signal_tx(chan); return error; } @@ -677,7 +677,7 @@ vmbus_chan_send_sglist(struct hv_vmbus_c error = hv_ring_buffer_write(&chan->outbound, iov, 4, &send_evt); if (!error && send_evt) - vmbus_chan_send_event(chan); + vmbus_chan_signal_tx(chan); return error; } @@ -719,7 +719,7 @@ vmbus_chan_send_prplist(struct hv_vmbus_ error = hv_ring_buffer_write(&chan->outbound, iov, 4, &send_evt); if (!error && send_evt) - vmbus_chan_send_event(chan); + vmbus_chan_signal_tx(chan); return error; } @@ -838,20 +838,20 @@ vmbus_event_flags_proc(struct vmbus_soft chid_base = f << VMBUS_EVTFLAG_SHIFT; while ((chid_ofs = ffsl(flags)) != 0) { - struct hv_vmbus_channel *channel; + struct hv_vmbus_channel *chan; --chid_ofs; /* NOTE: ffsl is 1-based */ flags &= ~(1UL << chid_ofs); - channel = sc->vmbus_chmap[chid_base + chid_ofs]; + chan = sc->vmbus_chmap[chid_base + chid_ofs]; /* if channel is closed or closing */ - if (channel == NULL || channel->ch_tq == NULL) + if (chan == NULL || chan->ch_tq == NULL) continue; - if (channel->ch_flags & VMBUS_CHAN_FLAG_BATCHREAD) - hv_ring_buffer_read_begin(&channel->inbound); - taskqueue_enqueue(channel->ch_tq, &channel->ch_task); + if (chan->ch_flags & VMBUS_CHAN_FLAG_BATCHREAD) + hv_ring_buffer_read_begin(&chan->inbound); + taskqueue_enqueue(chan->ch_tq, &chan->ch_task); } } } From owner-svn-src-all@freebsd.org Tue Jul 19 07:51:24 2016 Return-Path: Delivered-To: svn-src-all@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 332D6B9C92C; Tue, 19 Jul 2016 07:51:24 +0000 (UTC) (envelope-from sephe@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 F05511AC8; Tue, 19 Jul 2016 07:51:23 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6J7pNDF063911; Tue, 19 Jul 2016 07:51:23 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6J7pNSv063907; Tue, 19 Jul 2016 07:51:23 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607190751.u6J7pNSv063907@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Tue, 19 Jul 2016 07:51:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303023 - in head/sys: conf dev/hyperv/vmbus modules/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 07:51:24 -0000 Author: sephe Date: Tue Jul 19 07:51:22 2016 New Revision: 303023 URL: https://svnweb.freebsd.org/changeset/base/303023 Log: hyperv/vmbus: Rename laundered vmbus channel code MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7232 Added: head/sys/dev/hyperv/vmbus/vmbus_chan.c - copied unchanged from r303022, head/sys/dev/hyperv/vmbus/hv_channel.c Deleted: head/sys/dev/hyperv/vmbus/hv_channel.c Modified: head/sys/conf/files.amd64 head/sys/conf/files.i386 head/sys/modules/hyperv/vmbus/Makefile Modified: head/sys/conf/files.amd64 ============================================================================== --- head/sys/conf/files.amd64 Tue Jul 19 06:04:44 2016 (r303022) +++ head/sys/conf/files.amd64 Tue Jul 19 07:51:22 2016 (r303023) @@ -270,11 +270,11 @@ dev/hyperv/utilities/hv_kvp.c optiona dev/hyperv/utilities/hv_shutdown.c optional hyperv dev/hyperv/utilities/hv_timesync.c optional hyperv dev/hyperv/utilities/hv_util.c optional hyperv -dev/hyperv/vmbus/hv_channel.c optional hyperv dev/hyperv/vmbus/hv_ring_buffer.c optional hyperv dev/hyperv/vmbus/hyperv.c optional hyperv dev/hyperv/vmbus/hyperv_busdma.c optional hyperv dev/hyperv/vmbus/vmbus.c optional hyperv +dev/hyperv/vmbus/vmbus_chan.c optional hyperv dev/hyperv/vmbus/vmbus_et.c optional hyperv dev/hyperv/vmbus/vmbus_if.m optional hyperv dev/hyperv/vmbus/amd64/hyperv_machdep.c optional hyperv Modified: head/sys/conf/files.i386 ============================================================================== --- head/sys/conf/files.i386 Tue Jul 19 06:04:44 2016 (r303022) +++ head/sys/conf/files.i386 Tue Jul 19 07:51:22 2016 (r303023) @@ -246,11 +246,11 @@ dev/hyperv/utilities/hv_kvp.c optiona dev/hyperv/utilities/hv_shutdown.c optional hyperv dev/hyperv/utilities/hv_timesync.c optional hyperv dev/hyperv/utilities/hv_util.c optional hyperv -dev/hyperv/vmbus/hv_channel.c optional hyperv dev/hyperv/vmbus/hv_ring_buffer.c optional hyperv dev/hyperv/vmbus/hyperv.c optional hyperv dev/hyperv/vmbus/hyperv_busdma.c optional hyperv dev/hyperv/vmbus/vmbus.c optional hyperv +dev/hyperv/vmbus/vmbus_chan.c optional hyperv dev/hyperv/vmbus/vmbus_et.c optional hyperv dev/hyperv/vmbus/vmbus_if.m optional hyperv dev/hyperv/vmbus/i386/hyperv_machdep.c optional hyperv Copied: head/sys/dev/hyperv/vmbus/vmbus_chan.c (from r303022, head/sys/dev/hyperv/vmbus/hv_channel.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/hyperv/vmbus/vmbus_chan.c Tue Jul 19 07:51:22 2016 (r303023, copy of r303022, head/sys/dev/hyperv/vmbus/hv_channel.c) @@ -0,0 +1,1380 @@ +/*- + * Copyright (c) 2009-2012,2016 Microsoft Corp. + * Copyright (c) 2012 NetApp Inc. + * Copyright (c) 2012 Citrix Inc. + * 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 unmodified, 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 ``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 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 +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +static void vmbus_chan_signal_tx(struct hv_vmbus_channel *chan); +static void vmbus_chan_update_evtflagcnt(struct vmbus_softc *, + const struct hv_vmbus_channel *); + +static void vmbus_chan_task(void *, int); +static void vmbus_chan_task_nobatch(void *, int); +static void vmbus_chan_detach_task(void *, int); + +static void vmbus_chan_msgproc_choffer(struct vmbus_softc *, + const struct vmbus_message *); +static void vmbus_chan_msgproc_chrescind(struct vmbus_softc *, + const struct vmbus_message *); + +/* + * Vmbus channel message processing. + */ +static const vmbus_chanmsg_proc_t +vmbus_chan_msgprocs[VMBUS_CHANMSG_TYPE_MAX] = { + VMBUS_CHANMSG_PROC(CHOFFER, vmbus_chan_msgproc_choffer), + VMBUS_CHANMSG_PROC(CHRESCIND, vmbus_chan_msgproc_chrescind), + + VMBUS_CHANMSG_PROC_WAKEUP(CHOPEN_RESP), + VMBUS_CHANMSG_PROC_WAKEUP(GPADL_CONNRESP), + VMBUS_CHANMSG_PROC_WAKEUP(GPADL_DISCONNRESP) +}; + +/** + * @brief Trigger an event notification on the specified channel + */ +static void +vmbus_chan_signal_tx(struct hv_vmbus_channel *chan) +{ + struct vmbus_softc *sc = chan->vmbus_sc; + uint32_t chanid = chan->ch_id; + + atomic_set_long(&sc->vmbus_tx_evtflags[chanid >> VMBUS_EVTFLAG_SHIFT], + 1UL << (chanid & VMBUS_EVTFLAG_MASK)); + + if (chan->ch_flags & VMBUS_CHAN_FLAG_HASMNF) { + atomic_set_int( + &sc->vmbus_mnf2->mnf_trigs[chan->ch_montrig_idx].mt_pending, + chan->ch_montrig_mask); + } else { + hypercall_signal_event(chan->ch_monprm_dma.hv_paddr); + } +} + +static int +vmbus_chan_sysctl_mnf(SYSCTL_HANDLER_ARGS) +{ + struct hv_vmbus_channel *chan = arg1; + int mnf = 0; + + if (chan->ch_flags & VMBUS_CHAN_FLAG_HASMNF) + mnf = 1; + return sysctl_handle_int(oidp, &mnf, 0, req); +} + +static void +vmbus_chan_sysctl_create(struct hv_vmbus_channel *chan) +{ + struct sysctl_oid *ch_tree, *chid_tree, *br_tree; + struct sysctl_ctx_list *ctx; + uint32_t ch_id; + char name[16]; + + /* + * Add sysctl nodes related to this channel to this + * channel's sysctl ctx, so that they can be destroyed + * independently upon close of this channel, which can + * happen even if the device is not detached. + */ + ctx = &chan->ch_sysctl_ctx; + sysctl_ctx_init(ctx); + + /* + * Create dev.NAME.UNIT.channel tree. + */ + ch_tree = SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(device_get_sysctl_tree(chan->ch_dev)), + OID_AUTO, "channel", CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); + if (ch_tree == NULL) + return; + + /* + * Create dev.NAME.UNIT.channel.CHANID tree. + */ + if (VMBUS_CHAN_ISPRIMARY(chan)) + ch_id = chan->ch_id; + else + ch_id = chan->ch_prichan->ch_id; + snprintf(name, sizeof(name), "%d", ch_id); + chid_tree = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(ch_tree), + OID_AUTO, name, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); + if (chid_tree == NULL) + return; + + if (!VMBUS_CHAN_ISPRIMARY(chan)) { + /* + * Create dev.NAME.UNIT.channel.CHANID.sub tree. + */ + ch_tree = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(chid_tree), + OID_AUTO, "sub", CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); + if (ch_tree == NULL) + return; + + /* + * Create dev.NAME.UNIT.channel.CHANID.sub.SUBIDX tree. + * + * NOTE: + * chid_tree is changed to this new sysctl tree. + */ + snprintf(name, sizeof(name), "%d", chan->ch_subidx); + chid_tree = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(ch_tree), + OID_AUTO, name, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); + if (chid_tree == NULL) + return; + + SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(chid_tree), OID_AUTO, + "chanid", CTLFLAG_RD, &chan->ch_id, 0, "channel id"); + } + + SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(chid_tree), OID_AUTO, + "cpu", CTLFLAG_RD, &chan->ch_cpuid, 0, "owner CPU id"); + SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(chid_tree), OID_AUTO, + "mnf", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, + chan, 0, vmbus_chan_sysctl_mnf, "I", + "has monitor notification facilities"); + + /* + * Create sysctl tree for RX bufring. + */ + br_tree = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(chid_tree), OID_AUTO, + "in", CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); + if (br_tree != NULL) { + hv_ring_buffer_stat(ctx, SYSCTL_CHILDREN(br_tree), + &chan->inbound, "inbound ring buffer stats"); + } + + /* + * Create sysctl tree for TX bufring. + */ + br_tree = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(chid_tree), OID_AUTO, + "out", CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); + if (br_tree != NULL) { + hv_ring_buffer_stat(ctx, SYSCTL_CHILDREN(br_tree), + &chan->outbound, "outbound ring buffer stats"); + } +} + +int +vmbus_chan_open(struct hv_vmbus_channel *chan, int txbr_size, int rxbr_size, + const void *udata, int udlen, vmbus_chan_callback_t cb, void *cbarg) +{ + struct vmbus_softc *sc = chan->vmbus_sc; + const struct vmbus_chanmsg_chopen_resp *resp; + const struct vmbus_message *msg; + struct vmbus_chanmsg_chopen *req; + struct vmbus_msghc *mh; + uint32_t status; + int error; + uint8_t *br; + + if (udlen > VMBUS_CHANMSG_CHOPEN_UDATA_SIZE) { + device_printf(sc->vmbus_dev, + "invalid udata len %d for chan%u\n", udlen, chan->ch_id); + return EINVAL; + } + KASSERT((txbr_size & PAGE_MASK) == 0, + ("send bufring size is not multiple page")); + KASSERT((rxbr_size & PAGE_MASK) == 0, + ("recv bufring size is not multiple page")); + + if (atomic_testandset_int(&chan->ch_stflags, + VMBUS_CHAN_ST_OPENED_SHIFT)) + panic("double-open chan%u", chan->ch_id); + + chan->ch_cb = cb; + chan->ch_cbarg = cbarg; + + vmbus_chan_update_evtflagcnt(sc, chan); + + chan->ch_tq = VMBUS_PCPU_GET(chan->vmbus_sc, event_tq, chan->ch_cpuid); + if (chan->ch_flags & VMBUS_CHAN_FLAG_BATCHREAD) + TASK_INIT(&chan->ch_task, 0, vmbus_chan_task, chan); + else + TASK_INIT(&chan->ch_task, 0, vmbus_chan_task_nobatch, chan); + + /* + * Allocate the TX+RX bufrings. + * XXX should use ch_dev dtag + */ + br = hyperv_dmamem_alloc(bus_get_dma_tag(sc->vmbus_dev), + PAGE_SIZE, 0, txbr_size + rxbr_size, &chan->ch_bufring_dma, + BUS_DMA_WAITOK | BUS_DMA_ZERO); + if (br == NULL) { + device_printf(sc->vmbus_dev, "bufring allocation failed\n"); + error = ENOMEM; + goto failed; + } + chan->ch_bufring = br; + + /* TX bufring comes first */ + hv_vmbus_ring_buffer_init(&chan->outbound, br, txbr_size); + /* RX bufring immediately follows TX bufring */ + hv_vmbus_ring_buffer_init(&chan->inbound, br + txbr_size, rxbr_size); + + /* Create sysctl tree for this channel */ + vmbus_chan_sysctl_create(chan); + + /* + * Connect the bufrings, both RX and TX, to this channel. + */ + error = vmbus_chan_gpadl_connect(chan, chan->ch_bufring_dma.hv_paddr, + txbr_size + rxbr_size, &chan->ch_bufring_gpadl); + if (error) { + device_printf(sc->vmbus_dev, + "failed to connect bufring GPADL to chan%u\n", chan->ch_id); + goto failed; + } + + /* + * Open channel w/ the bufring GPADL on the target CPU. + */ + mh = vmbus_msghc_get(sc, sizeof(*req)); + if (mh == NULL) { + device_printf(sc->vmbus_dev, + "can not get msg hypercall for chopen(chan%u)\n", + chan->ch_id); + error = ENXIO; + goto failed; + } + + req = vmbus_msghc_dataptr(mh); + req->chm_hdr.chm_type = VMBUS_CHANMSG_TYPE_CHOPEN; + req->chm_chanid = chan->ch_id; + req->chm_openid = chan->ch_id; + req->chm_gpadl = chan->ch_bufring_gpadl; + req->chm_vcpuid = chan->ch_vcpuid; + req->chm_txbr_pgcnt = txbr_size >> PAGE_SHIFT; + if (udlen > 0) + memcpy(req->chm_udata, udata, udlen); + + error = vmbus_msghc_exec(sc, mh); + if (error) { + device_printf(sc->vmbus_dev, + "chopen(chan%u) msg hypercall exec failed: %d\n", + chan->ch_id, error); + vmbus_msghc_put(sc, mh); + goto failed; + } + + msg = vmbus_msghc_wait_result(sc, mh); + resp = (const struct vmbus_chanmsg_chopen_resp *)msg->msg_data; + status = resp->chm_status; + + vmbus_msghc_put(sc, mh); + + if (status == 0) { + if (bootverbose) { + device_printf(sc->vmbus_dev, "chan%u opened\n", + chan->ch_id); + } + return 0; + } + + device_printf(sc->vmbus_dev, "failed to open chan%u\n", chan->ch_id); + error = ENXIO; + +failed: + if (chan->ch_bufring_gpadl) { + vmbus_chan_gpadl_disconnect(chan, chan->ch_bufring_gpadl); + chan->ch_bufring_gpadl = 0; + } + if (chan->ch_bufring != NULL) { + hyperv_dmamem_free(&chan->ch_bufring_dma, chan->ch_bufring); + chan->ch_bufring = NULL; + } + atomic_clear_int(&chan->ch_stflags, VMBUS_CHAN_ST_OPENED); + return error; +} + +int +vmbus_chan_gpadl_connect(struct hv_vmbus_channel *chan, bus_addr_t paddr, + int size, uint32_t *gpadl0) +{ + struct vmbus_softc *sc = chan->vmbus_sc; + struct vmbus_msghc *mh; + struct vmbus_chanmsg_gpadl_conn *req; + const struct vmbus_message *msg; + size_t reqsz; + uint32_t gpadl, status; + int page_count, range_len, i, cnt, error; + uint64_t page_id; + + /* + * Preliminary checks. + */ + + KASSERT((size & PAGE_MASK) == 0, + ("invalid GPA size %d, not multiple page size", size)); + page_count = size >> PAGE_SHIFT; + + KASSERT((paddr & PAGE_MASK) == 0, + ("GPA is not page aligned %jx", (uintmax_t)paddr)); + page_id = paddr >> PAGE_SHIFT; + + range_len = __offsetof(struct vmbus_gpa_range, gpa_page[page_count]); + /* + * We don't support multiple GPA ranges. + */ + if (range_len > UINT16_MAX) { + device_printf(sc->vmbus_dev, "GPA too large, %d pages\n", + page_count); + return EOPNOTSUPP; + } + + /* + * Allocate GPADL id. + */ + gpadl = vmbus_gpadl_alloc(sc); + *gpadl0 = gpadl; + + /* + * Connect this GPADL to the target channel. + * + * NOTE: + * Since each message can only hold small set of page + * addresses, several messages may be required to + * complete the connection. + */ + if (page_count > VMBUS_CHANMSG_GPADL_CONN_PGMAX) + cnt = VMBUS_CHANMSG_GPADL_CONN_PGMAX; + else + cnt = page_count; + page_count -= cnt; + + reqsz = __offsetof(struct vmbus_chanmsg_gpadl_conn, + chm_range.gpa_page[cnt]); + mh = vmbus_msghc_get(sc, reqsz); + if (mh == NULL) { + device_printf(sc->vmbus_dev, + "can not get msg hypercall for gpadl->chan%u\n", + chan->ch_id); + return EIO; + } + + req = vmbus_msghc_dataptr(mh); + req->chm_hdr.chm_type = VMBUS_CHANMSG_TYPE_GPADL_CONN; + req->chm_chanid = chan->ch_id; + req->chm_gpadl = gpadl; + req->chm_range_len = range_len; + req->chm_range_cnt = 1; + req->chm_range.gpa_len = size; + req->chm_range.gpa_ofs = 0; + for (i = 0; i < cnt; ++i) + req->chm_range.gpa_page[i] = page_id++; + + error = vmbus_msghc_exec(sc, mh); + if (error) { + device_printf(sc->vmbus_dev, + "gpadl->chan%u msg hypercall exec failed: %d\n", + chan->ch_id, error); + vmbus_msghc_put(sc, mh); + return error; + } + + while (page_count > 0) { + struct vmbus_chanmsg_gpadl_subconn *subreq; + + if (page_count > VMBUS_CHANMSG_GPADL_SUBCONN_PGMAX) + cnt = VMBUS_CHANMSG_GPADL_SUBCONN_PGMAX; + else + cnt = page_count; + page_count -= cnt; + + reqsz = __offsetof(struct vmbus_chanmsg_gpadl_subconn, + chm_gpa_page[cnt]); + vmbus_msghc_reset(mh, reqsz); + + subreq = vmbus_msghc_dataptr(mh); + subreq->chm_hdr.chm_type = VMBUS_CHANMSG_TYPE_GPADL_SUBCONN; + subreq->chm_gpadl = gpadl; + for (i = 0; i < cnt; ++i) + subreq->chm_gpa_page[i] = page_id++; + + vmbus_msghc_exec_noresult(mh); + } + KASSERT(page_count == 0, ("invalid page count %d", page_count)); + + msg = vmbus_msghc_wait_result(sc, mh); + status = ((const struct vmbus_chanmsg_gpadl_connresp *) + msg->msg_data)->chm_status; + + vmbus_msghc_put(sc, mh); + + if (status != 0) { + device_printf(sc->vmbus_dev, "gpadl->chan%u failed: " + "status %u\n", chan->ch_id, status); + return EIO; + } else { + if (bootverbose) { + device_printf(sc->vmbus_dev, "gpadl->chan%u " + "succeeded\n", chan->ch_id); + } + } + return 0; +} + +/* + * Disconnect the GPA from the target channel + */ +int +vmbus_chan_gpadl_disconnect(struct hv_vmbus_channel *chan, uint32_t gpadl) +{ + struct vmbus_softc *sc = chan->vmbus_sc; + struct vmbus_msghc *mh; + struct vmbus_chanmsg_gpadl_disconn *req; + int error; + + mh = vmbus_msghc_get(sc, sizeof(*req)); + if (mh == NULL) { + device_printf(sc->vmbus_dev, + "can not get msg hypercall for gpa x->chan%u\n", + chan->ch_id); + return EBUSY; + } + + req = vmbus_msghc_dataptr(mh); + req->chm_hdr.chm_type = VMBUS_CHANMSG_TYPE_GPADL_DISCONN; + req->chm_chanid = chan->ch_id; + req->chm_gpadl = gpadl; + + error = vmbus_msghc_exec(sc, mh); + if (error) { + device_printf(sc->vmbus_dev, + "gpa x->chan%u msg hypercall exec failed: %d\n", + chan->ch_id, error); + vmbus_msghc_put(sc, mh); + return error; + } + + vmbus_msghc_wait_result(sc, mh); + /* Discard result; no useful information */ + vmbus_msghc_put(sc, mh); + + return 0; +} + +static void +vmbus_chan_close_internal(struct hv_vmbus_channel *chan) +{ + struct vmbus_softc *sc = chan->vmbus_sc; + struct vmbus_msghc *mh; + struct vmbus_chanmsg_chclose *req; + struct taskqueue *tq = chan->ch_tq; + int error; + + /* TODO: stringent check */ + atomic_clear_int(&chan->ch_stflags, VMBUS_CHAN_ST_OPENED); + + /* + * Free this channel's sysctl tree attached to its device's + * sysctl tree. + */ + sysctl_ctx_free(&chan->ch_sysctl_ctx); + + /* + * Set ch_tq to NULL to avoid more requests be scheduled. + * XXX pretty broken; need rework. + */ + chan->ch_tq = NULL; + taskqueue_drain(tq, &chan->ch_task); + chan->ch_cb = NULL; + + /* + * Close this channel. + */ + mh = vmbus_msghc_get(sc, sizeof(*req)); + if (mh == NULL) { + device_printf(sc->vmbus_dev, + "can not get msg hypercall for chclose(chan%u)\n", + chan->ch_id); + return; + } + + req = vmbus_msghc_dataptr(mh); + req->chm_hdr.chm_type = VMBUS_CHANMSG_TYPE_CHCLOSE; + req->chm_chanid = chan->ch_id; + + error = vmbus_msghc_exec_noresult(mh); + vmbus_msghc_put(sc, mh); + + if (error) { + device_printf(sc->vmbus_dev, + "chclose(chan%u) msg hypercall exec failed: %d\n", + chan->ch_id, error); + return; + } else if (bootverbose) { + device_printf(sc->vmbus_dev, "close chan%u\n", chan->ch_id); + } + + /* + * Disconnect the TX+RX bufrings from this channel. + */ + if (chan->ch_bufring_gpadl) { + vmbus_chan_gpadl_disconnect(chan, chan->ch_bufring_gpadl); + chan->ch_bufring_gpadl = 0; + } + + /* + * Destroy the TX+RX bufrings. + */ + hv_ring_buffer_cleanup(&chan->outbound); + hv_ring_buffer_cleanup(&chan->inbound); + if (chan->ch_bufring != NULL) { + hyperv_dmamem_free(&chan->ch_bufring_dma, chan->ch_bufring); + chan->ch_bufring = NULL; + } +} + +/* + * Caller should make sure that all sub-channels have + * been added to 'chan' and all to-be-closed channels + * are not being opened. + */ +void +vmbus_chan_close(struct hv_vmbus_channel *chan) +{ + int subchan_cnt; + + if (!VMBUS_CHAN_ISPRIMARY(chan)) { + /* + * Sub-channel is closed when its primary channel + * is closed; done. + */ + return; + } + + /* + * Close all sub-channels, if any. + */ + subchan_cnt = chan->ch_subchan_cnt; + if (subchan_cnt > 0) { + struct hv_vmbus_channel **subchan; + int i; + + subchan = vmbus_subchan_get(chan, subchan_cnt); + for (i = 0; i < subchan_cnt; ++i) + vmbus_chan_close_internal(subchan[i]); + vmbus_subchan_rel(subchan, subchan_cnt); + } + + /* Then close the primary channel. */ + vmbus_chan_close_internal(chan); +} + +int +vmbus_chan_send(struct hv_vmbus_channel *chan, uint16_t type, uint16_t flags, + void *data, int dlen, uint64_t xactid) +{ + struct vmbus_chanpkt pkt; + int pktlen, pad_pktlen, hlen, error; + uint64_t pad = 0; + struct iovec iov[3]; + boolean_t send_evt; + + hlen = sizeof(pkt); + pktlen = hlen + dlen; + pad_pktlen = VMBUS_CHANPKT_TOTLEN(pktlen); + + pkt.cp_hdr.cph_type = type; + pkt.cp_hdr.cph_flags = flags; + VMBUS_CHANPKT_SETLEN(pkt.cp_hdr.cph_hlen, hlen); + VMBUS_CHANPKT_SETLEN(pkt.cp_hdr.cph_tlen, pad_pktlen); + pkt.cp_hdr.cph_xactid = xactid; + + iov[0].iov_base = &pkt; + iov[0].iov_len = hlen; + iov[1].iov_base = data; + iov[1].iov_len = dlen; + iov[2].iov_base = &pad; + iov[2].iov_len = pad_pktlen - pktlen; + + error = hv_ring_buffer_write(&chan->outbound, iov, 3, &send_evt); + if (!error && send_evt) + vmbus_chan_signal_tx(chan); + return error; +} + +int +vmbus_chan_send_sglist(struct hv_vmbus_channel *chan, + struct vmbus_gpa sg[], int sglen, void *data, int dlen, uint64_t xactid) +{ + struct vmbus_chanpkt_sglist pkt; + int pktlen, pad_pktlen, hlen, error; + struct iovec iov[4]; + boolean_t send_evt; + uint64_t pad = 0; + + KASSERT(sglen < VMBUS_CHAN_SGLIST_MAX, + ("invalid sglist len %d", sglen)); + + hlen = __offsetof(struct vmbus_chanpkt_sglist, cp_gpa[sglen]); + pktlen = hlen + dlen; + pad_pktlen = VMBUS_CHANPKT_TOTLEN(pktlen); + + pkt.cp_hdr.cph_type = VMBUS_CHANPKT_TYPE_GPA; + pkt.cp_hdr.cph_flags = VMBUS_CHANPKT_FLAG_RC; + VMBUS_CHANPKT_SETLEN(pkt.cp_hdr.cph_hlen, hlen); + VMBUS_CHANPKT_SETLEN(pkt.cp_hdr.cph_tlen, pad_pktlen); + pkt.cp_hdr.cph_xactid = xactid; + pkt.cp_rsvd = 0; + pkt.cp_gpa_cnt = sglen; + + iov[0].iov_base = &pkt; + iov[0].iov_len = sizeof(pkt); + iov[1].iov_base = sg; + iov[1].iov_len = sizeof(struct vmbus_gpa) * sglen; + iov[2].iov_base = data; + iov[2].iov_len = dlen; + iov[3].iov_base = &pad; + iov[3].iov_len = pad_pktlen - pktlen; + + error = hv_ring_buffer_write(&chan->outbound, iov, 4, &send_evt); + if (!error && send_evt) + vmbus_chan_signal_tx(chan); + return error; +} + +int +vmbus_chan_send_prplist(struct hv_vmbus_channel *chan, + struct vmbus_gpa_range *prp, int prp_cnt, void *data, int dlen, + uint64_t xactid) +{ + struct vmbus_chanpkt_prplist pkt; + int pktlen, pad_pktlen, hlen, error; + struct iovec iov[4]; + boolean_t send_evt; + uint64_t pad = 0; + + KASSERT(prp_cnt < VMBUS_CHAN_PRPLIST_MAX, + ("invalid prplist entry count %d", prp_cnt)); + + hlen = __offsetof(struct vmbus_chanpkt_prplist, + cp_range[0].gpa_page[prp_cnt]); + pktlen = hlen + dlen; + pad_pktlen = VMBUS_CHANPKT_TOTLEN(pktlen); + + pkt.cp_hdr.cph_type = VMBUS_CHANPKT_TYPE_GPA; + pkt.cp_hdr.cph_flags = VMBUS_CHANPKT_FLAG_RC; + VMBUS_CHANPKT_SETLEN(pkt.cp_hdr.cph_hlen, hlen); + VMBUS_CHANPKT_SETLEN(pkt.cp_hdr.cph_tlen, pad_pktlen); + pkt.cp_hdr.cph_xactid = xactid; + pkt.cp_rsvd = 0; + pkt.cp_range_cnt = 1; + + iov[0].iov_base = &pkt; + iov[0].iov_len = sizeof(pkt); + iov[1].iov_base = prp; + iov[1].iov_len = __offsetof(struct vmbus_gpa_range, gpa_page[prp_cnt]); + iov[2].iov_base = data; + iov[2].iov_len = dlen; + iov[3].iov_base = &pad; + iov[3].iov_len = pad_pktlen - pktlen; + + error = hv_ring_buffer_write(&chan->outbound, iov, 4, &send_evt); + if (!error && send_evt) + vmbus_chan_signal_tx(chan); + return error; +} + +int +vmbus_chan_recv(struct hv_vmbus_channel *chan, void *data, int *dlen0, + uint64_t *xactid) +{ + struct vmbus_chanpkt_hdr pkt; + int error, dlen, hlen; + + error = hv_ring_buffer_peek(&chan->inbound, &pkt, sizeof(pkt)); + if (error) + return error; + + hlen = VMBUS_CHANPKT_GETLEN(pkt.cph_hlen); + dlen = VMBUS_CHANPKT_GETLEN(pkt.cph_tlen) - hlen; + + if (*dlen0 < dlen) { + /* Return the size of this packet's data. */ + *dlen0 = dlen; + return ENOBUFS; + } + + *xactid = pkt.cph_xactid; + *dlen0 = dlen; + + /* Skip packet header */ + error = hv_ring_buffer_read(&chan->inbound, data, dlen, hlen); + KASSERT(!error, ("hv_ring_buffer_read failed")); + + return 0; +} + +int +vmbus_chan_recv_pkt(struct hv_vmbus_channel *chan, + struct vmbus_chanpkt_hdr *pkt0, int *pktlen0) +{ + struct vmbus_chanpkt_hdr pkt; + int error, pktlen; + + error = hv_ring_buffer_peek(&chan->inbound, &pkt, sizeof(pkt)); + if (error) + return error; + + pktlen = VMBUS_CHANPKT_GETLEN(pkt.cph_tlen); + if (*pktlen0 < pktlen) { + /* Return the size of this packet. */ + *pktlen0 = pktlen; + return ENOBUFS; + } + *pktlen0 = pktlen; + + /* Include packet header */ + error = hv_ring_buffer_read(&chan->inbound, pkt0, pktlen, 0); + KASSERT(!error, ("hv_ring_buffer_read failed")); + + return 0; +} + +static void +vmbus_chan_task(void *xchan, int pending __unused) +{ + struct hv_vmbus_channel *chan = xchan; + vmbus_chan_callback_t cb = chan->ch_cb; + void *cbarg = chan->ch_cbarg; + + /* + * Optimize host to guest signaling by ensuring: + * 1. While reading the channel, we disable interrupts from + * host. + * 2. Ensure that we process all posted messages from the host + * before returning from this callback. + * 3. Once we return, enable signaling from the host. Once this + * state is set we check to see if additional packets are + * available to read. In this case we repeat the process. + * + * NOTE: Interrupt has been disabled in the ISR. + */ + for (;;) { + uint32_t left; + + cb(cbarg); + + left = hv_ring_buffer_read_end(&chan->inbound); + if (left == 0) { + /* No more data in RX bufring; done */ + break; + } + hv_ring_buffer_read_begin(&chan->inbound); + } +} + +static void +vmbus_chan_task_nobatch(void *xchan, int pending __unused) +{ + struct hv_vmbus_channel *chan = xchan; + + chan->ch_cb(chan->ch_cbarg); +} + +static __inline void +vmbus_event_flags_proc(struct vmbus_softc *sc, volatile u_long *event_flags, + int flag_cnt) +{ + int f; + + for (f = 0; f < flag_cnt; ++f) { + uint32_t chid_base; + u_long flags; + int chid_ofs; + + if (event_flags[f] == 0) + continue; + + flags = atomic_swap_long(&event_flags[f], 0); + chid_base = f << VMBUS_EVTFLAG_SHIFT; + + while ((chid_ofs = ffsl(flags)) != 0) { + struct hv_vmbus_channel *chan; + + --chid_ofs; /* NOTE: ffsl is 1-based */ + flags &= ~(1UL << chid_ofs); + + chan = sc->vmbus_chmap[chid_base + chid_ofs]; + + /* if channel is closed or closing */ + if (chan == NULL || chan->ch_tq == NULL) + continue; + + if (chan->ch_flags & VMBUS_CHAN_FLAG_BATCHREAD) + hv_ring_buffer_read_begin(&chan->inbound); + taskqueue_enqueue(chan->ch_tq, &chan->ch_task); + } + } +} + +void +vmbus_event_proc(struct vmbus_softc *sc, int cpu) +{ + struct vmbus_evtflags *eventf; + + /* + * On Host with Win8 or above, the event page can be checked directly + * to get the id of the channel that has the pending interrupt. + */ + eventf = VMBUS_PCPU_GET(sc, event_flags, cpu) + VMBUS_SINT_MESSAGE; + vmbus_event_flags_proc(sc, eventf->evt_flags, + VMBUS_PCPU_GET(sc, event_flags_cnt, cpu)); +} + +void +vmbus_event_proc_compat(struct vmbus_softc *sc, int cpu) +{ + struct vmbus_evtflags *eventf; + + eventf = VMBUS_PCPU_GET(sc, event_flags, cpu) + VMBUS_SINT_MESSAGE; + if (atomic_testandclear_long(&eventf->evt_flags[0], 0)) { + vmbus_event_flags_proc(sc, sc->vmbus_rx_evtflags, + VMBUS_CHAN_MAX_COMPAT >> VMBUS_EVTFLAG_SHIFT); + } +} + +static void +vmbus_chan_update_evtflagcnt(struct vmbus_softc *sc, + const struct hv_vmbus_channel *chan) +{ + volatile int *flag_cnt_ptr; + int flag_cnt; + + flag_cnt = (chan->ch_id / VMBUS_EVTFLAG_LEN) + 1; + flag_cnt_ptr = VMBUS_PCPU_PTR(sc, event_flags_cnt, chan->ch_cpuid); + + for (;;) { + int old_flag_cnt; + + old_flag_cnt = *flag_cnt_ptr; + if (old_flag_cnt >= flag_cnt) + break; + if (atomic_cmpset_int(flag_cnt_ptr, old_flag_cnt, flag_cnt)) { + if (bootverbose) { + device_printf(sc->vmbus_dev, + "channel%u update cpu%d flag_cnt to %d\n", + chan->ch_id, chan->ch_cpuid, flag_cnt); + } + break; + } + } +} + +static struct hv_vmbus_channel * +vmbus_chan_alloc(struct vmbus_softc *sc) +{ + struct hv_vmbus_channel *chan; + + chan = malloc(sizeof(*chan), M_DEVBUF, M_WAITOK | M_ZERO); + + chan->ch_monprm = hyperv_dmamem_alloc(bus_get_dma_tag(sc->vmbus_dev), + HYPERCALL_PARAM_ALIGN, 0, sizeof(struct hyperv_mon_param), + &chan->ch_monprm_dma, BUS_DMA_WAITOK | BUS_DMA_ZERO); + if (chan->ch_monprm == NULL) { + device_printf(sc->vmbus_dev, "monprm alloc failed\n"); + free(chan, M_DEVBUF); + return NULL; + } + + chan->vmbus_sc = sc; + mtx_init(&chan->ch_subchan_lock, "vmbus subchan", NULL, MTX_DEF); + TAILQ_INIT(&chan->ch_subchans); + TASK_INIT(&chan->ch_detach_task, 0, vmbus_chan_detach_task, chan); + + return chan; +} + +static void +vmbus_chan_free(struct hv_vmbus_channel *chan) +{ + /* TODO: assert sub-channel list is empty */ + /* TODO: asset no longer on the primary channel's sub-channel list */ + /* TODO: asset no longer on the vmbus channel list */ + hyperv_dmamem_free(&chan->ch_monprm_dma, chan->ch_monprm); + mtx_destroy(&chan->ch_subchan_lock); + free(chan, M_DEVBUF); +} + +static int +vmbus_chan_add(struct hv_vmbus_channel *newchan) +{ + struct vmbus_softc *sc = newchan->vmbus_sc; + struct hv_vmbus_channel *prichan; + + if (newchan->ch_id == 0) { + /* + * XXX + * Chan0 will neither be processed nor should be offered; + * skip it. + */ + device_printf(sc->vmbus_dev, "got chan0 offer, discard\n"); + return EINVAL; + } else if (newchan->ch_id >= VMBUS_CHAN_MAX) { + device_printf(sc->vmbus_dev, "invalid chan%u offer\n", + newchan->ch_id); + return EINVAL; + } + sc->vmbus_chmap[newchan->ch_id] = newchan; + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Tue Jul 19 09:48:09 2016 Return-Path: Delivered-To: svn-src-all@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 76921B9E3E0; Tue, 19 Jul 2016 09:48:09 +0000 (UTC) (envelope-from tuexen@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 3D1E9188D; Tue, 19 Jul 2016 09:48:09 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6J9m8JP007558; Tue, 19 Jul 2016 09:48:08 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6J9m8iw007557; Tue, 19 Jul 2016 09:48:08 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201607190948.u6J9m8iw007557@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Tue, 19 Jul 2016 09:48:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303024 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 09:48:09 -0000 Author: tuexen Date: Tue Jul 19 09:48:08 2016 New Revision: 303024 URL: https://svnweb.freebsd.org/changeset/base/303024 Log: netstat and sockstat expect the IPv6 link local addresses to have an embedded scope. So don't recover. MFC after: 3 days Modified: head/sys/netinet/sctp_sysctl.c Modified: head/sys/netinet/sctp_sysctl.c ============================================================================== --- head/sys/netinet/sctp_sysctl.c Tue Jul 19 07:51:22 2016 (r303023) +++ head/sys/netinet/sctp_sysctl.c Tue Jul 19 09:48:08 2016 (r303024) @@ -279,15 +279,6 @@ sctp_sysctl_copy_out_local_addresses(str if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) { if (local_scope == 0) continue; - if (sin6->sin6_scope_id == 0) { - /* - * bad link - * local - * address - */ - if (sa6_recoverscope(sin6) != 0) - continue; - } } if ((site_scope == 0) && (IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr))) continue; From owner-svn-src-all@freebsd.org Tue Jul 19 11:16:45 2016 Return-Path: Delivered-To: svn-src-all@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 C3358B9EA97; Tue, 19 Jul 2016 11:16:45 +0000 (UTC) (envelope-from tuexen@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 93623168F; Tue, 19 Jul 2016 11:16:45 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JBGiSA042426; Tue, 19 Jul 2016 11:16:44 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JBGi1p042425; Tue, 19 Jul 2016 11:16:44 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201607191116.u6JBGi1p042425@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Tue, 19 Jul 2016 11:16:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303025 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 11:16:45 -0000 Author: tuexen Date: Tue Jul 19 11:16:44 2016 New Revision: 303025 URL: https://svnweb.freebsd.org/changeset/base/303025 Log: Use correct order of conditions to avoid NULL deref. MFC after: 3 days X-MFC with: r302935 Modified: head/sys/netinet/sctp_indata.c Modified: head/sys/netinet/sctp_indata.c ============================================================================== --- head/sys/netinet/sctp_indata.c Tue Jul 19 09:48:08 2016 (r303024) +++ head/sys/netinet/sctp_indata.c Tue Jul 19 11:16:44 2016 (r303025) @@ -831,7 +831,7 @@ restart: SCTP_READ_LOCK_NOT_HELD, SCTP_SO_NOT_LOCKED); } sctp_wakeup_the_read_socket(stcb->sctp_ep, stcb, SCTP_SO_NOT_LOCKED); - if (!TAILQ_EMPTY(&nc->reasm) && (nc->first_frag_seen)) { + if ((nc->first_frag_seen) && !TAILQ_EMPTY(&nc->reasm)) { /* * Switch to the new guy and * continue From owner-svn-src-all@freebsd.org Tue Jul 19 11:22:31 2016 Return-Path: Delivered-To: svn-src-all@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 177C6B9EC5B; Tue, 19 Jul 2016 11:22:31 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mail.miracle.cz (mail.miracle.cz [193.84.128.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.miracle.cz", Issuer "Miracle Group Root CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id CAE381AD3; Tue, 19 Jul 2016 11:22:30 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from [193.84.128.50] (meloun.ad.miracle.cz [193.84.128.50]) by mail.miracle.cz (Postfix) with ESMTPSA id 276383ACE3; Tue, 19 Jul 2016 13:13:34 +0200 (CEST) Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Nathan Whitehorn , Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201606051620.u55GKD5S066398@repo.freebsd.org> From: Michal Meloun X-Enigmail-Draft-Status: N1110 Message-ID: <578E0B5D.3070105@FreeBSD.org> Date: Tue, 19 Jul 2016 13:13:33 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.miracle.cz); Tue, 19 Jul 2016 13:13:34 +0200 (CEST) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 11:22:31 -0000 Dne 19.07.2016 v 2:11 Nathan Whitehorn napsal(a): Hi Nathan, I’m afraid that skra is on vacation, for next 2 weeks (at minimum), so please don’t expect quick response. > Could you please describe what this change is in more detail? Short description is appended. > > It breaks a lot of encapsulations we have worked very hard to maintain, > moves ARM code into MI parts of the kernel, and the OFW parts violate > IEEE 1275 (the Open Firmware standard). In particular, there is no > guarantee that the interrupts for a newbus (or OF) device are encoded in > a property called "interrupts" (or, indeed, in any property at all) on > that node and there are many, many device trees where that is not the > case (e.g. ones with interrupt maps, as well as Apple hardware). By > putting that knowledge into the OF root bus device, which we have tried > to keep it out of, this enforces a standard that doesn't actually exist. Imho, this patch doesn’t change anything in this area. Only handling of “interrupts†property is changed, all other cases are unchanged (I hope). Also, INTRNG code is currently shared by ARM, ARM64 and MIPS. > > I'm hesitant to ask for reversion on something that landed 6 weeks ago > without me noticing, but this needs a lot more architectural work before > any parts of the kernel should use it. > -Nathan I think that it’s too late. This patch series consist of r301451 (https://reviews.freebsd.org/D6632), r301453, r301539 and 301543. And new GPIO interrupts are currently used (by in tree drivers or in development trees). The root of problem is that standard way of delivering interrupt resource to consumer driver doesn’t works in OFW world. So we have some fact: - the format of interrupt property is dependent of interrupt controller and only interrupt controller can parse it. - the interrupt property can have more data than just interrupt number. - single interrupt controller must be able to handle multiple format of interrupt description. In pre-patchset era, simplebus enumerates children and attempts to set memory and interrupts to resource list for them. But the interrupt controllers are not yet populated so nobody can parse interrupt property. Moreover, in all cases (parsed or not), we cannot store complete interrupt description into resource list. The patch simply postpones reading of interrupt property to bus_alloc_resource() (called by consumer driver) time. Due to this, we can: - parse interrupt property. The interrupt driver must exist at this time. - bus_alloc_resource() returns resource, so we can attach parsed interrupt data to it. By this, the resource itself can be used for delivering configuration data to subsequent call to bus_setup_intr() (or to all related bus_() calls). The patched code still accepts delivering of interrupts in resource list. Michal From owner-svn-src-all@freebsd.org Tue Jul 19 11:43:23 2016 Return-Path: Delivered-To: svn-src-all@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 05EABB9C31F for ; Tue, 19 Jul 2016 11:43:23 +0000 (UTC) (envelope-from rrs@netflix.com) Received: from mail-pa0-x22c.google.com (mail-pa0-x22c.google.com [IPv6:2607:f8b0:400e:c03::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CAD79197F for ; Tue, 19 Jul 2016 11:43:22 +0000 (UTC) (envelope-from rrs@netflix.com) Received: by mail-pa0-x22c.google.com with SMTP id ks6so6489189pab.0 for ; Tue, 19 Jul 2016 04:43:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=q+ZKOX2GyF3pn16UlA17jz1ZKERyNOGiN1CxLYT/AmI=; b=dvZyE7tlcCBLIlLxR6RzW8FRK+DaomO+lYCF76soAPRQ5L+VBsFKKZYWQ8ZkH50yD4 dIyqZ9PlJUtQlj16FL48UObmqzkqodr8RdbEiUBllD1a0bDA4g98f+k9hLGfXvbHLLIH JXKXKgYW1UyWMbxZuZVINr0jqWxUGcliTEgow= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=q+ZKOX2GyF3pn16UlA17jz1ZKERyNOGiN1CxLYT/AmI=; b=ZoMd1l6hLhul2H7VzE8doRwNtIcGAr1Es/MpvoOc0Tq142YUJrVeanaBWlxz2w4dzg /8sc4Mnu2AHn8oS3HjDfEiudMKkTwUcS+g7ayJHHZ63eMbGd97HsfbBJVQ+gJ2TVHyRV L1Z5ScuJfUm2QcqrjRaPMD2CDxiBBh/rMLszRapcC6D6BcVZVx1CfazKGKt4R2XgarTy qFylMCN8OkGu/YvFIObl8Ev36wmWbhWaVxhoHgxCGYgfh2Rb/ifukVkX5XP9rlEqWbV7 pACWikVrp14b+9hHJ14No8wJ2W6Fg+q8H0+gSSAxsioErvaW/wjItdfV57Ej7y2EcFiP dk3Q== X-Gm-Message-State: ALyK8tJIJeTAB+YYAz6Qsaep1n8GB4gxOJbEm0V38Mm6N+kEaiCYA96tx6SBuWkqlhHRqATQ X-Received: by 10.66.66.13 with SMTP id b13mr65166407pat.45.1468928601967; Tue, 19 Jul 2016 04:43:21 -0700 (PDT) Received: from [100.127.66.198] ([69.53.245.200]) by smtp.gmail.com with ESMTPSA id q14sm2877361pfi.76.2016.07.19.04.43.19 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 19 Jul 2016 04:43:21 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: svn commit: r302998 - head/sys/kern From: Randall Stewart In-Reply-To: <58868615-8255-4D8B-BD9E-8E19A734CB6C@netflix.com> Date: Tue, 19 Jul 2016 13:43:16 +0200 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <5E551FA8-C779-45AE-B038-D8B51B53EEAA@netflix.com> References: <201607180929.u6I9T9Uw063705@repo.freebsd.org> <64C1543A-3EDE-4852-88EA-5B0B78FCF016@netflix.com> <58868615-8255-4D8B-BD9E-8E19A734CB6C@netflix.com> To: Gleb Smirnoff X-Mailer: Apple Mail (2.3124) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 11:43:23 -0000 Gleb Ok I have now updated https://reviews.freebsd.org/D7135 You can take this or not=E2=80=A6 I really don=E2=80=99t care either = way=E2=80=A6 (you are welcome to own the kern_timeout.c code I hate it) :-) Basically when you went off and re-factored kern_timeout.c I had worked = in parallel on fixing the bugs you were seeing.. There were three distinct problems that I = fixed=E2=80=A6 but then you had refactored the stop() routine.. and I thought ok.. thats fine. I = had actually thought about doing something similar to what you did and was too chicken to poke that = much at it.. it has always had a nasty habit of biting back when you make a lot of changes = :-D I know my version has worked for quite some time in my testing so I = brought it back. Complete with its 3 return codes (I only recently switched to your = version and thus started having difficulties with leaks and crashes)=E2=80=A6. You are welcome not to use this.. I know it works (it ran on a number of machines at NF last night.. and we will of course = continue testing it as we finish our dev testing for the upcoming OCA software release).. = For now this is what will be going out into the OCA=E2=80=99s at least :-) R > On Jul 18, 2016, at 6:19 PM, Randall Stewart wrote: >=20 > I have worked out a fix of this in Netflix code base (I have the same = code running there). I > will get that tested tonight I will get the fixes in to restore the = behavior. >=20 > I will setup a phabricator shortly.. most likely I will update the one = I already > have on the one problem your earlier patch did not fix. >=20 > R >> On Jul 18, 2016, at 5:44 PM, Randall Stewart wrote: >>=20 >> Gleb: >>=20 >> This now leaks TCP-PCB=E2=80=99s since you have broken the return = codes with all your >> fixes that used to be in here. >>=20 >> It was >>=20 >> return 1 =E2=80=94 You stopped the callout >> return 0 =E2=80=94 The callout could not be stopped >> return -1 =E2=80=94 The callout was not running. >>=20 >> The LLRef code that was crashing in in.c depended on this to know to = free >> the memory.. i.e. if was > 0 then they needed to free the memory. >>=20 >> TCP depends on a return 0 to indicate the async-drain function will = be called back and >> thus increments a refcnt and waits for the callback. >>=20 >> You now return 0 when no timer was active.. which makes the stack = then wait >> for the not forth coming async-drain call. >>=20 >> R >>> On Jul 18, 2016, at 11:29 AM, Gleb Smirnoff = wrote: >>>=20 >>> Author: glebius >>> Date: Mon Jul 18 09:29:08 2016 >>> New Revision: 302998 >>> URL: https://svnweb.freebsd.org/changeset/base/302998 >>>=20 >>> Log: >>> Revert the last commit. It must get more review and testing first. >>>=20 >>> Modified: >>> head/sys/kern/kern_timeout.c >>>=20 >>> Modified: head/sys/kern/kern_timeout.c >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/kern/kern_timeout.c Mon Jul 18 09:26:06 2016 = (r302997) >>> +++ head/sys/kern/kern_timeout.c Mon Jul 18 09:29:08 2016 = (r302998) >>> @@ -1381,7 +1381,7 @@ again: >>> CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", >>> c, c->c_func, c->c_arg); >>> CC_UNLOCK(cc); >>> - return (-1); >>> + return (0); >>> } >>>=20 >>> c->c_iflags &=3D ~CALLOUT_PENDING; >>>=20 >>=20 >> -------- >> Randall Stewart >> rrs@netflix.com >> 803-317-4952 >>=20 >>=20 >>=20 >>=20 >>=20 >=20 > -------- > Randall Stewart > rrs@netflix.com > 803-317-4952 >=20 >=20 >=20 >=20 >=20 -------- Randall Stewart rrs@netflix.com 803-317-4952 From owner-svn-src-all@freebsd.org Tue Jul 19 12:25:46 2016 Return-Path: Delivered-To: svn-src-all@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 40C9BB9D943; Tue, 19 Jul 2016 12:25:46 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 257E216CB; Tue, 19 Jul 2016 12:25:46 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by freefall.freebsd.org (Postfix) with ESMTP id C06FC180F; Tue, 19 Jul 2016 12:25:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Date: Tue, 19 Jul 2016 12:25:45 +0000 From: Glen Barber To: Randall Stewart Cc: Gleb Smirnoff , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r302998 - head/sys/kern Message-ID: <20160719122545.GC65494@FreeBSD.org> References: <201607180929.u6I9T9Uw063705@repo.freebsd.org> <64C1543A-3EDE-4852-88EA-5B0B78FCF016@netflix.com> <58868615-8255-4D8B-BD9E-8E19A734CB6C@netflix.com> <5E551FA8-C779-45AE-B038-D8B51B53EEAA@netflix.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="4ZLFUWh1odzi/v6L" Content-Disposition: inline In-Reply-To: <5E551FA8-C779-45AE-B038-D8B51B53EEAA@netflix.com> X-Operating-System: FreeBSD 11.0-CURRENT amd64 X-SCUD-Definition: Sudden Completely Unexpected Dataloss X-SULE-Definition: Sudden Unexpected Learning Event X-PEKBAC-Definition: Problem Exists, Keyboard Between Admin/Computer User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 12:25:46 -0000 --4ZLFUWh1odzi/v6L Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 19, 2016 at 01:43:16PM +0200, Randall Stewart wrote: > Gleb >=20 > Ok >=20 > I have now updated >=20 > https://reviews.freebsd.org/D7135 >=20 > You can take this or not=E2=80=A6 I really don=E2=80=99t care either way= =E2=80=A6 (you are welcome to > own the kern_timeout.c code I hate it) :-) >=20 > Basically when you went off and re-factored kern_timeout.c I had worked i= n parallel on fixing > the bugs you were seeing.. There were three distinct problems that I fixe= d=E2=80=A6 but then > you had refactored the stop() routine.. and I thought ok.. thats fine. I = had actually thought about > doing something similar to what you did and was too chicken to poke that = much at it.. it has > always had a nasty habit of biting back when you make a lot of changes :-D >=20 > I know my version has worked for quite some time in my testing so I broug= ht it back. > Complete with its 3 return codes (I only recently switched to your versio= n and thus > started having difficulties with leaks and crashes)=E2=80=A6. >=20 > You are welcome not to use this.. I know it works (it ran > on a number of machines at NF last night.. and we will of course continue= testing > it as we finish our dev testing for the upcoming OCA software release).. = For now > this is what will be going out into the OCA=E2=80=99s at least :-) >=20 I'm honestly done with this topic, and at the point now where I'm considering backing out all changes to callout(9) and related changes to the state they were at in stable/10. This changes the KBI, and if it needs to be done, it needs to happen now. We cannot wait for RC1 phase for this, and the amount of churn to get things into a working state with the current implementation far outweighs the benefit of the dangers. Glen --4ZLFUWh1odzi/v6L Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXjhxEAAoJEAMUWKVHj+KT5xIP/jg4d79vtnMxLGSMprTEJ5ex +zXlcL1hut+Ja8tdBOdR0XxwnMZJKG77a4nRpi1pd3F+tohHxbthUHPzpq4Bs6Os LUftWJL9Zrkc/oGP3AziPPYtQmutNgmeKKBM6O88UEqp/cb8jtm6nmF56E0HxyMI uXQ6cjm9x6eRcRt1J8ta9QkmReUWWtoDc34br7pphEB/6O2174uvYWqtTof/SCKL KT2V6R9fX98ThhL3OgqO6a9pF51uLMN3UpDqrluOOQxk4NuJTMfEC51WQtY+HGAL ZRDmUj+/fWgNVgk6sbdBgJPgH+W+EJtCgg15ietOofur+7kJBbT9NxvaIfHJhN3N TCADGLSZfCryX7/bUET8xkqXUOHRxxF3Ukp5oby6NRUwzE6H3hqk0/MJgLWHsVyI 1E46Ay2DN9+gLuhkIhx6rNF7a3xvA6ZmMIk6uPZoi1V7BAou9XS6cTZiR8xAqy9T 5O0fU8dBQ4oeWJuZp2i1Yjq/9KmQ+GavO4LCdzLKThzTmJAuCm2I1L7HpnNfaQIR 6J0nIuoGczy7vFXZ7ZfMKi34p1g8WqVETwbr9lOPc/GLOhY/px13G1UdOKFU5+bs mgpkcNy1A625hrBRkjDhueHgXIOWB2zc+Iq3KGzeMqO1uuUoH9I3BFtFJhjSUROZ ZvFeKzepJ0aTtJzS+jXR =gsnG -----END PGP SIGNATURE----- --4ZLFUWh1odzi/v6L-- From owner-svn-src-all@freebsd.org Tue Jul 19 13:46:58 2016 Return-Path: Delivered-To: svn-src-all@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 668B3B9E53B for ; Tue, 19 Jul 2016 13:46:58 +0000 (UTC) (envelope-from rrs@netflix.com) Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com [IPv6:2a00:1450:400c:c09::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EEC6D1E55 for ; Tue, 19 Jul 2016 13:46:57 +0000 (UTC) (envelope-from rrs@netflix.com) Received: by mail-wm0-x236.google.com with SMTP id o80so27177874wme.1 for ; Tue, 19 Jul 2016 06:46:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=cbkwfU1SQm13mj4CPVN3YAH8Sg6ACWOtoDazr/y2M8I=; b=kPCDZ+KnV/+7VAgj2iN8TULuB9Z31/ChTKbqGDRWjor+cPY/T7vrOpJ1Y4SsbJIlT5 Flw12v6TD9De4odUa2zD7Mdgqu2M/MHdGY7hF3M8Y/HM9c6xIitEh98pcR5EPt70Y7Nf I5rm3koaJTFnmqJHBDk7MaxPtAVZ2BJa30JFo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=cbkwfU1SQm13mj4CPVN3YAH8Sg6ACWOtoDazr/y2M8I=; b=cGZSedxzbXK89eOLb4vbuai8UjSZ1eH4PhEJ5BibEBtVeIwpPLLxYY+uCkwXhrasse a3DoNovIlvz+Th2quHpCZz/xq6yjPfzIR1FddhxbgJkTDYWUiIju6XCfZfRxWGebJ5fW QnETuD+dKEKYePPUffl/EWi3eT/CM21vcJkMToKH3uq2+BYC/E8JoEl2PW3N07ea6AVt FnGTEzLp7MBnQ10OKCLmWWo+9e/ziItzDjWZQXeSNYJ06ek6ZyW2sBXRUsI0OycXUdXB 9u5G8/BASEfXH2to3tcQtKESbzrUDxmLWZwMgBt1fIAeWIXDb/8xmZ/40T1E6fBr4lw0 wqwA== X-Gm-Message-State: ALyK8tKWvBwD+fs2RzQPFiUGdvF4azZM9VduFgn+ZEjq7RcMaOpcdpmA35tA7/QXObB3wUYB X-Received: by 10.28.94.18 with SMTP id s18mr4336513wmb.44.1468936015920; Tue, 19 Jul 2016 06:46:55 -0700 (PDT) Received: from surfer-172-29-73-217-hotspot.internet-for-guests.com ([62.214.2.210]) by smtp.gmail.com with ESMTPSA id m201sm23061649wma.11.2016.07.19.06.46.54 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 19 Jul 2016 06:46:55 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: svn commit: r302998 - head/sys/kern From: Randall Stewart In-Reply-To: <20160719122545.GC65494@FreeBSD.org> Date: Tue, 19 Jul 2016 15:46:54 +0200 Cc: Gleb Smirnoff , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <03E667D5-A4C9-47B9-A8DD-49ECD0E2B7EB@netflix.com> References: <201607180929.u6I9T9Uw063705@repo.freebsd.org> <64C1543A-3EDE-4852-88EA-5B0B78FCF016@netflix.com> <58868615-8255-4D8B-BD9E-8E19A734CB6C@netflix.com> <5E551FA8-C779-45AE-B038-D8B51B53EEAA@netflix.com> <20160719122545.GC65494@FreeBSD.org> To: Glen Barber X-Mailer: Apple Mail (2.3124) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 13:46:58 -0000 Glen: My changes work.. I have them running in NF in at least 1/2 dozen = machines. I am more than willing to commit them.. they actually are not much = different than whats in stable 10.. though I don=E2=80=99t know if the async-drain was = MFC=E2=80=99d there.. it needs to be in for TCP.. or else you will have yet another mess in that respect (TCP depends on ASYNC-drain). I can commit what I have.. if you like.. or not.. I really don=E2=80=99t = care (I hate kern_timeout.c :-o) R > On Jul 19, 2016, at 2:25 PM, Glen Barber wrote: >=20 > On Tue, Jul 19, 2016 at 01:43:16PM +0200, Randall Stewart wrote: >> Gleb >>=20 >> Ok >>=20 >> I have now updated >>=20 >> https://reviews.freebsd.org/D7135 >>=20 >> You can take this or not=E2=80=A6 I really don=E2=80=99t care either = way=E2=80=A6 (you are welcome to >> own the kern_timeout.c code I hate it) :-) >>=20 >> Basically when you went off and re-factored kern_timeout.c I had = worked in parallel on fixing >> the bugs you were seeing.. There were three distinct problems that I = fixed=E2=80=A6 but then >> you had refactored the stop() routine.. and I thought ok.. thats = fine. I had actually thought about >> doing something similar to what you did and was too chicken to poke = that much at it.. it has >> always had a nasty habit of biting back when you make a lot of = changes :-D >>=20 >> I know my version has worked for quite some time in my testing so I = brought it back. >> Complete with its 3 return codes (I only recently switched to your = version and thus >> started having difficulties with leaks and crashes)=E2=80=A6. >>=20 >> You are welcome not to use this.. I know it works (it ran >> on a number of machines at NF last night.. and we will of course = continue testing >> it as we finish our dev testing for the upcoming OCA software = release).. For now >> this is what will be going out into the OCA=E2=80=99s at least :-) >>=20 >=20 > I'm honestly done with this topic, and at the point now where I'm > considering backing out all changes to callout(9) and related changes = to > the state they were at in stable/10. >=20 > This changes the KBI, and if it needs to be done, it needs to happen > now. We cannot wait for RC1 phase for this, and the amount of churn = to > get things into a working state with the current implementation far > outweighs the benefit of the dangers. >=20 > Glen >=20 -------- Randall Stewart rrs@netflix.com 803-317-4952 From owner-svn-src-all@freebsd.org Tue Jul 19 13:56:16 2016 Return-Path: Delivered-To: svn-src-all@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 551A7B9E806; Tue, 19 Jul 2016 13:56:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 220111648; Tue, 19 Jul 2016 13:56:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by freefall.freebsd.org (Postfix) with ESMTP id B77E61613; Tue, 19 Jul 2016 13:56:15 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Date: Tue, 19 Jul 2016 13:56:14 +0000 From: Glen Barber To: Randall Stewart Cc: Gleb Smirnoff , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r302998 - head/sys/kern Message-ID: <20160719135614.GE65494@FreeBSD.org> References: <201607180929.u6I9T9Uw063705@repo.freebsd.org> <64C1543A-3EDE-4852-88EA-5B0B78FCF016@netflix.com> <58868615-8255-4D8B-BD9E-8E19A734CB6C@netflix.com> <5E551FA8-C779-45AE-B038-D8B51B53EEAA@netflix.com> <20160719122545.GC65494@FreeBSD.org> <03E667D5-A4C9-47B9-A8DD-49ECD0E2B7EB@netflix.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="HnQK338I3UIa/qiP" Content-Disposition: inline In-Reply-To: <03E667D5-A4C9-47B9-A8DD-49ECD0E2B7EB@netflix.com> X-Operating-System: FreeBSD 11.0-CURRENT amd64 X-SCUD-Definition: Sudden Completely Unexpected Dataloss X-SULE-Definition: Sudden Unexpected Learning Event X-PEKBAC-Definition: Problem Exists, Keyboard Between Admin/Computer User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 13:56:16 -0000 --HnQK338I3UIa/qiP Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 19, 2016 at 03:46:54PM +0200, Randall Stewart wrote: > Glen: >=20 > My changes work.. I have them running in NF in at least 1/2 dozen machin= es. >=20 For how long? What are the uptimes on these machines? This is the blocker for 11.0-BETA2, and I don't want to see more regressions being introduced at this point of the cycle. Glen > I am more than willing to commit them.. they actually are not much differ= ent than > whats in stable 10.. though I don=E2=80=99t know if the async-drain was M= FC=E2=80=99d there.. it > needs to be in for TCP.. or else you will have yet another mess in that > respect (TCP depends on ASYNC-drain). >=20 > I can commit what I have.. if you like.. or not.. I really don=E2=80=99t = care (I hate kern_timeout.c :-o) >=20 > R > > On Jul 19, 2016, at 2:25 PM, Glen Barber wrote: > >=20 > > On Tue, Jul 19, 2016 at 01:43:16PM +0200, Randall Stewart wrote: > >> Gleb > >>=20 > >> Ok > >>=20 > >> I have now updated > >>=20 > >> https://reviews.freebsd.org/D7135 > >>=20 > >> You can take this or not=E2=80=A6 I really don=E2=80=99t care either w= ay=E2=80=A6 (you are welcome to > >> own the kern_timeout.c code I hate it) :-) > >>=20 > >> Basically when you went off and re-factored kern_timeout.c I had worke= d in parallel on fixing > >> the bugs you were seeing.. There were three distinct problems that I f= ixed=E2=80=A6 but then > >> you had refactored the stop() routine.. and I thought ok.. thats fine.= I had actually thought about > >> doing something similar to what you did and was too chicken to poke th= at much at it.. it has > >> always had a nasty habit of biting back when you make a lot of changes= :-D > >>=20 > >> I know my version has worked for quite some time in my testing so I br= ought it back. > >> Complete with its 3 return codes (I only recently switched to your ver= sion and thus > >> started having difficulties with leaks and crashes)=E2=80=A6. > >>=20 > >> You are welcome not to use this.. I know it works (it ran > >> on a number of machines at NF last night.. and we will of course conti= nue testing > >> it as we finish our dev testing for the upcoming OCA software release)= =2E. For now > >> this is what will be going out into the OCA=E2=80=99s at least :-) > >>=20 > >=20 > > I'm honestly done with this topic, and at the point now where I'm > > considering backing out all changes to callout(9) and related changes to > > the state they were at in stable/10. > >=20 > > This changes the KBI, and if it needs to be done, it needs to happen > > now. We cannot wait for RC1 phase for this, and the amount of churn to > > get things into a working state with the current implementation far > > outweighs the benefit of the dangers. > >=20 > > Glen > >=20 >=20 > -------- > Randall Stewart > rrs@netflix.com > 803-317-4952 >=20 >=20 >=20 >=20 >=20 --HnQK338I3UIa/qiP Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXjjF+AAoJEAMUWKVHj+KTz4IP/RS7eMubuJFzIGlvByqZ0FFl UUEQrjRVG0VB9UTMOEW27zo8Xt1jj9iv1TyZJqgdadIZlBGaQiw5A5rotDAUTFTD RR+6QxRv32bxlwJlSb10fZaAbbUjG197OnwmzgBUTke5cqTm+5GZt9x6rUhaSjes H/sMP2lOtg2fUEKu7k7oONTqhwZFvusanoi4dbvYOLWQcah782bSycZugbMltfZB lQksNCDnJNXzW3L3aLqI0dGHHfxyBHpLgIaYBLJbocacu5gLJ4l2srFe3ab9QwGT fSG8Od3CDHNWRgxw4I2qfb20pShKNLrq9Tzwm+g7eAr1Vk5ssvz+viMlvhyJx5q2 U8NgZcZsvbaUMgLMXfJGG7nOLZN+G3U0QUzvt3/AO30ARP4iVdZUKhE9jffYvlPe 7BlyxQBFft0HoWpayI/4nYDQzknzDo7phfdqW2IpakcMu+tIu0ocnb8Zs1bz5kyh BX8r6MFZIMQmHG1pZh53XU+rONke1PVsq7zDOZLjR2MMKrsCEU9nW2O8ZQxO7Lsb uUyhfOlxn/n65LiL7NZrVExs6CzKDaMn5tAoJxhVMGoImvOCz97iWmTtTnXIJ9vE cq6oiPPGd72Rt4pogMiQ2lFFPOd4rwkW0GgX3p+n4hmM5tLaUt8daDJPh82AfhqF GUqCKdveifpNCXFrqL6T =yXdD -----END PGP SIGNATURE----- --HnQK338I3UIa/qiP-- From owner-svn-src-all@freebsd.org Tue Jul 19 14:58:02 2016 Return-Path: Delivered-To: svn-src-all@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 A8DCBB9E892 for ; Tue, 19 Jul 2016 14:58:02 +0000 (UTC) (envelope-from rrs@netflix.com) Received: from mail-wm0-x22c.google.com (mail-wm0-x22c.google.com [IPv6:2a00:1450:400c:c09::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3BCC912AC for ; Tue, 19 Jul 2016 14:58:02 +0000 (UTC) (envelope-from rrs@netflix.com) Received: by mail-wm0-x22c.google.com with SMTP id i5so29851211wmg.0 for ; Tue, 19 Jul 2016 07:58:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=YkpmP7BmMjMhcJJZEE1H3ptxZaKu8lgb2+3bEwWgHeo=; b=Gade/jcB5glELTlPTVyIZQs05HwtJ+An09sruvLqCwng2iPAfNvemZo2AYlGv7BsOv I7s9iG+UHCTHtUIf1lUxq+ARxxl/ebJzWAJKh8FnO9umdTyeDENybbs9s6jQPlxDpn2z 4xTkP9adaf79FedtGD2In4evk0buYQhNjlvNc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=YkpmP7BmMjMhcJJZEE1H3ptxZaKu8lgb2+3bEwWgHeo=; b=HprU2ZaGxpx2Sw6FI0QDPvLh6Ym5upP0XLFE78mbKldaXVTUDo7NBOAh5A46VAGZnu UgHg70agPxnLjt1BW7qVaLQTaEUF1LBJ9wRd5Syf3hf0OM99bdVCTHaPcVRx9sJC6B4R s4IH8OLHbYkKhtAMhmrgSyF32hVf6vyt9De81KRo1J5F38wLjO0wMakT5lxljbryeuWj iu3lh4zFA/u/qoxZuUa0riXFn8g4aXcI0snO3vYqvhADCWfl/gP4X6A0cZHwe+SZqZ7P ta8dc0D3Qq/z/Sak91ZEtakybXoTy/4ZWiKvNdbnb0r31CHivcf5Ug51ACN2n/hFGPXP hAtg== X-Gm-Message-State: ALyK8tL5RhCwkKBRxJGaYqzsN2UR5r7sLH7JJ8KLSkpTEiRuRrglHTiHaWkWu1uY4pySmSH4 X-Received: by 10.28.47.7 with SMTP id v7mr4823067wmv.38.1468940279691; Tue, 19 Jul 2016 07:57:59 -0700 (PDT) Received: from dhcp-a2de.meeting.ietf.org (dhcp-a2de.meeting.ietf.org. [31.133.162.222]) by smtp.gmail.com with ESMTPSA id a21sm6405214wma.10.2016.07.19.07.57.58 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 19 Jul 2016 07:57:58 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: svn commit: r302998 - head/sys/kern From: Randall Stewart In-Reply-To: <20160719135614.GE65494@FreeBSD.org> Date: Tue, 19 Jul 2016 16:57:57 +0200 Cc: Gleb Smirnoff , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201607180929.u6I9T9Uw063705@repo.freebsd.org> <64C1543A-3EDE-4852-88EA-5B0B78FCF016@netflix.com> <58868615-8255-4D8B-BD9E-8E19A734CB6C@netflix.com> <5E551FA8-C779-45AE-B038-D8B51B53EEAA@netflix.com> <20160719122545.GC65494@FreeBSD.org> <03E667D5-A4C9-47B9-A8DD-49ECD0E2B7EB@netflix.com> <20160719135614.GE65494@FreeBSD.org> To: Glen Barber X-Mailer: Apple Mail (2.3124) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 14:58:02 -0000 Well=20 The code itself I had up on machines for probably about 2 months. But = then I switched over to Gleb=E2=80=99s changes here just recently .. which = caused me all kinds of fun :) I had to go back into Mercurial to pull back my changes.. I have had the resurrected changes running on my netflix machines for about 20 or so hours generating about anywhere from 14Gbps to 32Gbps depending on the = machine type. I plan on waiting until tomorrow to sync it down into the NF code base.=20= Note that if you do decide instead to roll back to the 10.x = kern_timeout.c you will need to roll back a bunch of tcp changes as well that use the new async_drain() interface. I am game either way for you to proceed.. I will commit this current = code to head as long as I hear no objections (from Gleb or others)=E2=80=A6. R > On Jul 19, 2016, at 3:56 PM, Glen Barber wrote: >=20 > On Tue, Jul 19, 2016 at 03:46:54PM +0200, Randall Stewart wrote: >> Glen: >>=20 >> My changes work.. I have them running in NF in at least 1/2 dozen = machines. >>=20 >=20 > For how long? What are the uptimes on these machines? >=20 > This is the blocker for 11.0-BETA2, and I don't want to see more > regressions being introduced at this point of the cycle. >=20 > Glen >=20 >> I am more than willing to commit them.. they actually are not much = different than >> whats in stable 10.. though I don=E2=80=99t know if the async-drain = was MFC=E2=80=99d there.. it >> needs to be in for TCP.. or else you will have yet another mess in = that >> respect (TCP depends on ASYNC-drain). >>=20 >> I can commit what I have.. if you like.. or not.. I really don=E2=80=99= t care (I hate kern_timeout.c :-o) >>=20 >> R >>> On Jul 19, 2016, at 2:25 PM, Glen Barber wrote: >>>=20 >>> On Tue, Jul 19, 2016 at 01:43:16PM +0200, Randall Stewart wrote: >>>> Gleb >>>>=20 >>>> Ok >>>>=20 >>>> I have now updated >>>>=20 >>>> https://reviews.freebsd.org/D7135 >>>>=20 >>>> You can take this or not=E2=80=A6 I really don=E2=80=99t care = either way=E2=80=A6 (you are welcome to >>>> own the kern_timeout.c code I hate it) :-) >>>>=20 >>>> Basically when you went off and re-factored kern_timeout.c I had = worked in parallel on fixing >>>> the bugs you were seeing.. There were three distinct problems that = I fixed=E2=80=A6 but then >>>> you had refactored the stop() routine.. and I thought ok.. thats = fine. I had actually thought about >>>> doing something similar to what you did and was too chicken to poke = that much at it.. it has >>>> always had a nasty habit of biting back when you make a lot of = changes :-D >>>>=20 >>>> I know my version has worked for quite some time in my testing so I = brought it back. >>>> Complete with its 3 return codes (I only recently switched to your = version and thus >>>> started having difficulties with leaks and crashes)=E2=80=A6. >>>>=20 >>>> You are welcome not to use this.. I know it works (it ran >>>> on a number of machines at NF last night.. and we will of course = continue testing >>>> it as we finish our dev testing for the upcoming OCA software = release).. For now >>>> this is what will be going out into the OCA=E2=80=99s at least :-) >>>>=20 >>>=20 >>> I'm honestly done with this topic, and at the point now where I'm >>> considering backing out all changes to callout(9) and related = changes to >>> the state they were at in stable/10. >>>=20 >>> This changes the KBI, and if it needs to be done, it needs to happen >>> now. We cannot wait for RC1 phase for this, and the amount of churn = to >>> get things into a working state with the current implementation far >>> outweighs the benefit of the dangers. >>>=20 >>> Glen >>>=20 >>=20 >> -------- >> Randall Stewart >> rrs@netflix.com >> 803-317-4952 >>=20 >>=20 >>=20 >>=20 >>=20 -------- Randall Stewart rrs@netflix.com 803-317-4952 From owner-svn-src-all@freebsd.org Tue Jul 19 15:06:49 2016 Return-Path: Delivered-To: svn-src-all@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 1DEE7B9ECF4; Tue, 19 Jul 2016 15:06:49 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from d.mail.sonic.net (d.mail.sonic.net [64.142.111.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0A24E18FC; Tue, 19 Jul 2016 15:06:48 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from zeppelin.tachypleus.net (75-101-50-44.static.sonic.net [75.101.50.44]) (authenticated bits=0) by d.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6JF6jYQ025935 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 19 Jul 2016 08:06:46 -0700 Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Michal Meloun , Svatopluk Kraus , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578E0B5D.3070105@FreeBSD.org> From: Nathan Whitehorn Message-ID: Date: Tue, 19 Jul 2016 08:06:45 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <578E0B5D.3070105@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Sonic-CAuth: UmFuZG9tSVbZZBE9GBHIe/W2fotA8uS1IEchVKR9c5oc+LEi6bRY0o12vNuZD71Sy7U9IUL/rGY73VnqeGpxdGTQVyicpdFKfdHEFrvRj9g= X-Sonic-ID: C;bpiiaMJN5hGKN5NwxPCmMQ== M;VhnkaMJN5hGKN5NwxPCmMQ== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 15:06:49 -0000 On 07/19/16 04:13, Michal Meloun wrote: > Dne 19.07.2016 v 2:11 Nathan Whitehorn napsal(a): > Hi Nathan, > I’m afraid that skra is on vacation, for next 2 weeks (at minimum), so > please don’t expect quick response. > >> Could you please describe what this change is in more detail? > Short description is appended. > >> It breaks a lot of encapsulations we have worked very hard to maintain, >> moves ARM code into MI parts of the kernel, and the OFW parts violate >> IEEE 1275 (the Open Firmware standard). In particular, there is no >> guarantee that the interrupts for a newbus (or OF) device are encoded in >> a property called "interrupts" (or, indeed, in any property at all) on >> that node and there are many, many device trees where that is not the >> case (e.g. ones with interrupt maps, as well as Apple hardware). By >> putting that knowledge into the OF root bus device, which we have tried >> to keep it out of, this enforces a standard that doesn't actually exist. > Imho, this patch doesn’t change anything in this area. Only handling of > “interrupts†property is changed, all other cases are unchanged (I > hope). Also, INTRNG code is currently shared by ARM, ARM64 and MIPS. But "interrupts" isn't a generic part of OF. This makes it one, incorrectly. > >> I'm hesitant to ask for reversion on something that landed 6 weeks ago >> without me noticing, but this needs a lot more architectural work before >> any parts of the kernel should use it. >> -Nathan > I think that it’s too late. This patch series consist of r301451 > (https://reviews.freebsd.org/D6632), > r301453, r301539 and 301543. And new GPIO interrupts are currently used > (by in tree drivers or in development trees). Well, then we need in-place rearchitecture. > > > The root of problem is that standard way of delivering interrupt > resource to consumer driver doesn’t works in OFW world. > > So we have some fact: > - the format of interrupt property is dependent of interrupt > controller and only interrupt controller can parse it. > - the interrupt property can have more data than just interrupt > number. > - single interrupt controller must be able to handle multiple > format of interrupt description. > > In pre-patchset era, simplebus enumerates children and attempts to set > memory and interrupts to resource list for them. But the interrupt > controllers are not yet populated so nobody can parse interrupt > property. Moreover, in all cases (parsed or not), we cannot store > complete interrupt description into resource list. We have done this for many years on PowerPC and sparc64 with delayed configuration of interrupts and a look-up table. This handles complicated bus configurations better than this code and requires no changes outside of a few MD files. That is why the (now partially duplicated) OFW_BUS_MAP_INTR() function exists. That one also has the benefit of still working when used in conjunction with, e.g., devices with an interrupt-map-mask property. > > The patch simply postpones reading of interrupt property to > bus_alloc_resource() (called by consumer driver) time. > > Due to this, we can: > - parse interrupt property. The interrupt driver must exist > at this time. This only works with some types of interrupt properties, not all, and breaks if the interrupt driver hasn't attached yet (which it can't be guaranteed to -- some PPC systems have interrupt drivers that live on the PCI bus, for example). > - bus_alloc_resource() returns resource, so we can attach parsed > interrupt data to it. By this, the resource itself can be used > for delivering configuration data to subsequent call to > bus_setup_intr() (or to all related bus_() calls). > > > The patched code still accepts delivering of interrupts in resource list. > > Michal > Given that other code depends on this, fixing it will likely require some complex work. I wish I had known about it when it went in. There are three main problems: 1. It doesn't work for interrupts defined by other mechanisms (e.g. interrupt-map properties) 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), but is both problematically more general and less flexible (it has requirements on timing of PIC attachment vs. driver resource allocation) 3. It is not fully transparent to end code. Since it happens at bus_alloc_resource() time, it is complicated to get the appropriate values for IRQs constructed by composite techniques (interrupt-map vs. interrupts vs. hand allocation vs. PCI routing, for example). It is much easier to do this correctly at bus attach time when the resource lists are made (how PPC does it). (1) is easy to fix without API changes, but (2) and (3) are fundamental architectural problems that will bite us immediately down the road and cause a permanent schism between OF support on different platforms. Let me describe how this is handled on PowerPC (Linux on PPC solves the problem the same way). When constructing a resource list, bus drivers that construct them from OF properties call ofw_bus_map_intr() with the interrupt parent phandle and the array of cells corresponding to the interrupt. This thunks immediately to nexus, which connects to code in intr_machdep.c. Code there assigns a unique made-up virtual IRQ and returns it, caching the interrupt parent ID and opaque interrupt data (if the same string of data reappears later, you get back the same virtual IRQ of course). When PIC drivers attach and register themselves with the interrupt handling layer, all the interrupts for that PIC are passed to it along with the virtual IRQ. The PIC driver is supposed to know what its interrupt data mean, which can be safely guaranteed, and it presents the assigned virtual IRQ number to the kernel when dispatching interrupts. (IRQs configured after PIC attachment are passed through immediately). This accomplishes the following things: 1. Parsing interrupt data is moved to the PIC driver, which is the only place it can be done safely. 2. There is no ordering requirement on PIC attachment vs. the attachment of anything else. 3. Changes are extremely minimal relative to the "standard" interrupt flow: you only have to patch code that is already directly dealing with OF interrupts. 4. It happens at bus enumeration time, when results can be guaranteed self-consistent. 5. It combines naturally with ofw_bus_lookup_imap() and friends in the interrupt-map case (e.g. for PCI). I'm not sure what the right path forward is, but this code needs to be fixed. The PowerPC code is fully MI, and was the template for the original INTRNG, so it shouldn't be too bad to replace. -Nathan From owner-svn-src-all@freebsd.org Tue Jul 19 15:26:39 2016 Return-Path: Delivered-To: svn-src-all@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 65DC3B9D26B; Tue, 19 Jul 2016 15:26:39 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from c.mail.sonic.net (c.mail.sonic.net [64.142.111.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 450191509; Tue, 19 Jul 2016 15:26:38 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from zeppelin.tachypleus.net (75-101-50-44.static.sonic.net [75.101.50.44]) (authenticated bits=0) by c.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6JFQYDv012568 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 19 Jul 2016 08:26:35 -0700 Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Michal Meloun , Svatopluk Kraus , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578E0B5D.3070105@FreeBSD.org> From: Nathan Whitehorn Message-ID: <7a60092c-392c-abbe-c794-3c4c71e372f0@freebsd.org> Date: Tue, 19 Jul 2016 08:26:34 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <578E0B5D.3070105@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Sonic-CAuth: UmFuZG9tSVbe8T1JFYBikiFadjv2TeGa2CpyTv0mcA9kaHHU2g6r/Bqo94awLuv3tgHAoiGJTPUcqzCMpUMLqB1tbbE7MP+zi1UOaZKeT9Y= X-Sonic-ID: C;PrNtLcVN5hG2aptMTlz00w== M;Bu/DLcVN5hG2aptMTlz00w== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 15:26:39 -0000 On 07/19/16 04:13, Michal Meloun wrote: > Dne 19.07.2016 v 2:11 Nathan Whitehorn napsal(a): > Hi Nathan, > I’m afraid that skra is on vacation, for next 2 weeks (at minimum), so > please don’t expect quick response. > >> Could you please describe what this change is in more detail? > Short description is appended. > >> It breaks a lot of encapsulations we have worked very hard to maintain, >> moves ARM code into MI parts of the kernel, and the OFW parts violate >> IEEE 1275 (the Open Firmware standard). In particular, there is no >> guarantee that the interrupts for a newbus (or OF) device are encoded in >> a property called "interrupts" (or, indeed, in any property at all) on >> that node and there are many, many device trees where that is not the >> case (e.g. ones with interrupt maps, as well as Apple hardware). By >> putting that knowledge into the OF root bus device, which we have tried >> to keep it out of, this enforces a standard that doesn't actually exist. > Imho, this patch doesn’t change anything in this area. Only handling of > “interrupts†property is changed, all other cases are unchanged (I > hope). Also, INTRNG code is currently shared by ARM, ARM64 and MIPS. > >> I'm hesitant to ask for reversion on something that landed 6 weeks ago >> without me noticing, but this needs a lot more architectural work before >> any parts of the kernel should use it. >> -Nathan > I think that it’s too late. This patch series consist of r301451 > (https://reviews.freebsd.org/D6632), > r301453, r301539 and 301543. And new GPIO interrupts are currently used > (by in tree drivers or in development trees). > > [See other email for information for detail on why I am concerned about this code] Looking through those commits and the current state of HEAD, it turns out bus_map_intr() is not yet used anywhere in the tree; there is just a stub implementation in dev/ofw/ofwbus.c and a prototype that is never called in sys/bus.h. As such, I would in fact like to ask for the reversion of both r301451 and r301453 at this point, especially from the stable/11 branch. Adding a new API is something we can do to stable/11 at any point; removing one, or changing one, is something we cannot do. After that, I am more than happy to help move ARM code to use the existing dev/ofw scheme for handling interrupt metadata. -Nathan From owner-svn-src-all@freebsd.org Tue Jul 19 16:02:09 2016 Return-Path: Delivered-To: svn-src-all@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 31BB5B9DBB4; Tue, 19 Jul 2016 16:02:09 +0000 (UTC) (envelope-from andrew@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 018FE1D4B; Tue, 19 Jul 2016 16:02:08 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JG28W3054189; Tue, 19 Jul 2016 16:02:08 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JG28c3054188; Tue, 19 Jul 2016 16:02:08 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201607191602.u6JG28c3054188@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Tue, 19 Jul 2016 16:02:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303026 - head/usr.sbin/acpi/acpidump X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 16:02:09 -0000 Author: andrew Date: Tue Jul 19 16:02:07 2016 New Revision: 303026 URL: https://svnweb.freebsd.org/changeset/base/303026 Log: Add missing flags from acpidump. These are defined in the header, but not printed. The HW_REDUCED flag is useful as it should be set on arm64 to comply with the ARM Server Base Boot Requirements. Obtained from: ABT Systems Ltd MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/usr.sbin/acpi/acpidump/acpi.c Modified: head/usr.sbin/acpi/acpidump/acpi.c ============================================================================== --- head/usr.sbin/acpi/acpidump/acpi.c Tue Jul 19 11:16:44 2016 (r303025) +++ head/usr.sbin/acpi/acpidump/acpi.c Tue Jul 19 16:02:07 2016 (r303026) @@ -1177,6 +1177,7 @@ acpi_print_fadt(ACPI_TABLE_HEADER *sdp) PRINTFLAG(fadt->BootFlags, NO_VGA); PRINTFLAG(fadt->BootFlags, NO_MSI); PRINTFLAG(fadt->BootFlags, NO_ASPM); + PRINTFLAG(fadt->BootFlags, NO_CMOS_RTC); PRINTFLAG_END(); printf("\tFlags="); @@ -1200,6 +1201,8 @@ acpi_print_fadt(ACPI_TABLE_HEADER *sdp) PRINTFLAG(fadt->Flags, REMOTE_POWER_ON); PRINTFLAG(fadt->Flags, APIC_CLUSTER); PRINTFLAG(fadt->Flags, APIC_PHYSICAL); + PRINTFLAG(fadt->Flags, HW_REDUCED); + PRINTFLAG(fadt->Flags, LOW_POWER_S0); PRINTFLAG_END(); #undef PRINTFLAG From owner-svn-src-all@freebsd.org Tue Jul 19 16:22:51 2016 Return-Path: Delivered-To: svn-src-all@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 D4C5EB9E369; Tue, 19 Jul 2016 16:22:51 +0000 (UTC) (envelope-from gjb@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 84DF119C3; Tue, 19 Jul 2016 16:22:51 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JGMoPX062296; Tue, 19 Jul 2016 16:22:50 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JGMoAZ062294; Tue, 19 Jul 2016 16:22:50 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201607191622.u6JGMoAZ062294@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 19 Jul 2016 16:22:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303027 - in stable/11/release: . scripts X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 16:22:51 -0000 Author: gjb Date: Tue Jul 19 16:22:50 2016 New Revision: 303027 URL: https://svnweb.freebsd.org/changeset/base/303027 Log: Reduce the disc1.iso size from 850+M to just over 650M. As a result of this change, the 'kernel-dbg.txz' distribution is no longer provided on disc1.iso, and deselected by default in bsdinstall(8). When 'kernel-dbg.txz' is selected, network configuration happens before the installer proceeds, to fetch the distribution from the mirrors. This is a direct commit to stable/11, as there is intention to solve this differently for 12.0-RELEASE. Reviewed by: nwhitehorn (glanced at) Approved by: re (hrs) Sponsored by: The FreeBSD Foundation Modified: stable/11/release/Makefile stable/11/release/scripts/make-manifest.sh Modified: stable/11/release/Makefile ============================================================================== --- stable/11/release/Makefile Tue Jul 19 16:02:07 2016 (r303026) +++ stable/11/release/Makefile Tue Jul 19 16:22:50 2016 (r303027) @@ -172,11 +172,12 @@ disc1: packagesystem mkdir -p ${.TARGET} cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \ DESTDIR=${.OBJDIR}/${.TARGET} MK_RESCUE=no MK_KERNEL_SYMBOLS=no \ - MK_PROFILE=no MK_SENDMAIL=no MK_TESTS=no MK_LIB32=no \ - MK_DEBUG_FILES=no + MK_PROFILE=no MK_MAIL=no MK_TESTS=no MK_LIB32=no \ + MK_DEBUG_FILES=no MK_LLDB=no \ + MK_TOOLCHAIN=no # Copy distfiles mkdir -p ${.TARGET}/usr/freebsd-dist - for dist in MANIFEST $$(ls *.txz | grep -vE -- '(base|lib32)-dbg'); \ + for dist in MANIFEST $$(ls *.txz | grep -vE -- '(base|lib32|kernel)-dbg'); \ do cp $${dist} ${.TARGET}/usr/freebsd-dist; \ done # Copy documentation, if generated Modified: stable/11/release/scripts/make-manifest.sh ============================================================================== --- stable/11/release/scripts/make-manifest.sh Tue Jul 19 16:02:07 2016 (r303026) +++ stable/11/release/scripts/make-manifest.sh Tue Jul 19 16:22:50 2016 (r303027) @@ -36,7 +36,7 @@ default_tests=off default_base_dbg=off default_lib32_dbg=off default_kernel_alt=off -default_kernel_dbg=on +default_kernel_dbg=off default_kernel_alt_dbg=off for i in ${*}; do From owner-svn-src-all@freebsd.org Tue Jul 19 16:34:51 2016 Return-Path: Delivered-To: svn-src-all@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 269BFB9E64B; Tue, 19 Jul 2016 16:34:51 +0000 (UTC) (envelope-from gjb@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 D75BD1F53; Tue, 19 Jul 2016 16:34:50 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JGYonu066020; Tue, 19 Jul 2016 16:34:50 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JGYnwN066019; Tue, 19 Jul 2016 16:34:49 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201607191634.u6JGYnwN066019@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 19 Jul 2016 16:34:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303028 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 16:34:51 -0000 Author: gjb Date: Tue Jul 19 16:34:49 2016 New Revision: 303028 URL: https://svnweb.freebsd.org/changeset/base/303028 Log: Belatedly add FreeBSD 11.0 and 12.0 to the family tree file. Submitted by: des (a while back) Sponsored by: The FreeBSD Foundation Modified: head/share/misc/bsd-family-tree Modified: head/share/misc/bsd-family-tree ============================================================================== --- head/share/misc/bsd-family-tree Tue Jul 19 16:22:50 2016 (r303027) +++ head/share/misc/bsd-family-tree Tue Jul 19 16:34:49 2016 (r303028) @@ -339,7 +339,11 @@ FreeBSD 5.2 | | | FreeBSD | | OpenBSD 5.9 | | 10.3 | | | | | | | | | -FreeBSD 11 -current | NetBSD -current OpenBSD -current DragonFly -current + *--FreeBSD | | | | + | 11.0 | | | | + | | | | | + | | | | | +FreeBSD 12 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | v v v v v @@ -687,6 +691,8 @@ OpenBSD 5.8 2015-10-18 [OBD] DragonFly 4.4.1 2015-12-07 [DFB] OpenBSD 5.9 2016-03-29 [OBD] FreeBSD 10.3 2016-04-04 [FBD] +FreeBSD 11.0 2016-06-08 [FBD] +FreeBSD 12.0 2016-06-09 [FBD] Bibliography ------------------------ From owner-svn-src-all@freebsd.org Tue Jul 19 16:42:07 2016 Return-Path: Delivered-To: svn-src-all@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 2708EB9E860; Tue, 19 Jul 2016 16:42:07 +0000 (UTC) (envelope-from maxim.konovalov@gmail.com) Received: from mp2.macomnet.net (mp2.macomnet.net [195.128.64.6]) (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 7BBD715E5; Tue, 19 Jul 2016 16:42:05 +0000 (UTC) (envelope-from maxim.konovalov@gmail.com) Received: from localhost (localhost [127.0.0.1]) by mp2.macomnet.net (8.15.2/8.15.2) with ESMTP id u6JGg3Jq097093; Tue, 19 Jul 2016 19:42:03 +0300 (MSK) (envelope-from maxim.konovalov@gmail.com) Date: Tue, 19 Jul 2016 19:42:03 +0300 (MSK) From: Maxim Konovalov To: Glen Barber cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303028 - head/share/misc In-Reply-To: <201607191634.u6JGYnwN066019@repo.freebsd.org> Message-ID: References: <201607191634.u6JGYnwN066019@repo.freebsd.org> User-Agent: Alpine 2.20 (BSF 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 16:42:07 -0000 On Tue, 19 Jul 2016, 16:34-0000, Glen Barber wrote: > Author: gjb > Date: Tue Jul 19 16:34:49 2016 > New Revision: 303028 > URL: https://svnweb.freebsd.org/changeset/base/303028 > > Log: > Belatedly add FreeBSD 11.0 and 12.0 to the family tree file. > > Submitted by: des (a while back) > Sponsored by: The FreeBSD Foundation > The file lists releases not branches. I don't think we have 11.0 or 12.0 released. -- Maxim Konovalov From owner-svn-src-all@freebsd.org Tue Jul 19 16:46:22 2016 Return-Path: Delivered-To: svn-src-all@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 69A3FB9E905; Tue, 19 Jul 2016 16:46:22 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 59E761830; Tue, 19 Jul 2016 16:46:22 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by freefall.freebsd.org (Postfix) with ESMTP id 096961B0E; Tue, 19 Jul 2016 16:46:22 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Date: Tue, 19 Jul 2016 16:46:21 +0000 From: Glen Barber To: Maxim Konovalov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303028 - head/share/misc Message-ID: <20160719164621.GK65494@FreeBSD.org> References: <201607191634.u6JGYnwN066019@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="NPWyolIJAVLYbHY6" Content-Disposition: inline In-Reply-To: X-Operating-System: FreeBSD 11.0-CURRENT amd64 X-SCUD-Definition: Sudden Completely Unexpected Dataloss X-SULE-Definition: Sudden Unexpected Learning Event X-PEKBAC-Definition: Problem Exists, Keyboard Between Admin/Computer User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 16:46:22 -0000 --NPWyolIJAVLYbHY6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 19, 2016 at 07:42:03PM +0300, Maxim Konovalov wrote: > On Tue, 19 Jul 2016, 16:34-0000, Glen Barber wrote: >=20 > > Author: gjb > > Date: Tue Jul 19 16:34:49 2016 > > New Revision: 303028 > > URL: https://svnweb.freebsd.org/changeset/base/303028 > > > > Log: > > Belatedly add FreeBSD 11.0 and 12.0 to the family tree file. > > > > Submitted by: des (a while back) > > Sponsored by: The FreeBSD Foundation > > > The file lists releases not branches. I don't think we have 11.0 or > 12.0 released. >=20 Honestly, I am not sure about anything in this file. :) There was an entry for 11-current though. Is the dated-part of the commit the problem, or is the entire change wrong? If the latter, I'll look at it again (or even revert it, and let someone who knows how this file is supposed to be updated handle it). Glen --NPWyolIJAVLYbHY6 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXjlldAAoJEAMUWKVHj+KTgKwP/0G+3iopl1+WGN6iF39q+Yja Vplb0faB29y/WO9INxEQglznpaGzOfhv0t778tuPSeqHM8VcQXmEWCDhen6+cnnp QEDb1XhdcWoOyNHbmsvmsjmmmPKwqt3IAqj++YWAhh3+yV5kBND5rkR/RYQV8C0k YI9utqrK+4etQ/d2BSY0vrBJbBomAmq6PI/6YrK7TqEpKfhQnkOjOSUqJW6fAokI Tda/q/+OHEJh6BwGl5laHv36Wg/qHfZSFvroiRHk1YC8rDtieSWGAZT6fiZXpafX ieEizbLadAU0vkoL6DUfqC9QlUHxFg+OXkzBH90tHAFXH95fVpXlWEr5jgRH1pLv ABvYah9K/pKMGWluzRIOCMDf0Tx/gsfb0z0Z5zy5lAHcDjFF2SiZ07nLfF6YkFy4 G37JozK3e1HdzwN48ngM+uNsXrgt/SPniukll3crIBsa4Mw2tugRQQH2C/RCy1T4 gzvczxnPZ6VSKMtSeqmWQGC96UBg7CP4K25JfmHtaZlMpVs2fJf/PMQ+kQNgg1l2 rMLghoMoeDtqOFDZMymZCAgZ+eRLSgmXygLg7yMaKYJ2QpEJfHC0fys9ms2c/3Mo QwL1DvnnwFJIkskSJ+QZoxltu7NHMuMJiN6yStweLmZwDr701460cp4Wb6elF5o/ UGKVIkqvh/LtkPUsxmFW =+wbe -----END PGP SIGNATURE----- --NPWyolIJAVLYbHY6-- From owner-svn-src-all@freebsd.org Tue Jul 19 16:46:30 2016 Return-Path: Delivered-To: svn-src-all@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 51214B9E935; Tue, 19 Jul 2016 16:46:30 +0000 (UTC) (envelope-from slm@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 F0AF01955; Tue, 19 Jul 2016 16:46:29 +0000 (UTC) (envelope-from slm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JGkSsX070054; Tue, 19 Jul 2016 16:46:28 GMT (envelope-from slm@FreeBSD.org) Received: (from slm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JGkRx5070046; Tue, 19 Jul 2016 16:46:27 GMT (envelope-from slm@FreeBSD.org) Message-Id: <201607191646.u6JGkRx5070046@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: slm set sender to slm@FreeBSD.org using -f From: Stephen McConnell Date: Tue, 19 Jul 2016 16:46:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303029 - in stable/11: share/man/man4 sys/dev/mpr sys/dev/mps X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 16:46:30 -0000 Author: slm Date: Tue Jul 19 16:46:27 2016 New Revision: 303029 URL: https://svnweb.freebsd.org/changeset/base/303029 Log: MFC r302673 Use real values to calculate Max I/O size instead of guessing. Reviewed by: ken, scottl Approved by: re(gjb), ken, scottl, ambrisko (mentors) Differential Revision: https://reviews.freebsd.org/D7043 Modified: stable/11/share/man/man4/mpr.4 stable/11/share/man/man4/mps.4 stable/11/sys/dev/mpr/mpr.c stable/11/sys/dev/mpr/mpr_sas.c stable/11/sys/dev/mpr/mprvar.h stable/11/sys/dev/mps/mps.c stable/11/sys/dev/mps/mps_sas.c stable/11/sys/dev/mps/mpsvar.h Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man4/mpr.4 ============================================================================== --- stable/11/share/man/man4/mpr.4 Tue Jul 19 16:34:49 2016 (r303028) +++ stable/11/share/man/man4/mpr.4 Tue Jul 19 16:46:27 2016 (r303029) @@ -38,7 +38,7 @@ .\" $Id$ .\" $FreeBSD$ .\" -.Dd April 29, 2016 +.Dd July 6, 2016 .Dt MPR 4 .Os .Sh NAME @@ -156,6 +156,29 @@ The current number of active I/O command dev.mpr.X.io_cmds_active .Xr sysctl 8 variable. +.Ed +.Pp +To set the maximum number of pages that will be used per I/O for all adapters, +set this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +hw.mpr.max_io_pages=NNNN +.Ed +.Pp +To set the maximum number of pages that will be used per I/O for a specific +adapter, set this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +dev.mpr.X.max_io_pages=NNNN +.Ed +.Pp +The default max_io_pages value is -1, meaning that the maximum I/O size that +will be used per I/O will be calculated using the IOCFacts values stored in +the controller. +The lowest value that the driver will use for max_io_pages is 1, otherwise +IOCFacts will be used to calculate the maximum I/O size. +The smaller I/O size calculated from either max_io_pages or IOCFacts will be the +maximum I/O size used by the driver. .Pp The highest number of active I/O commands seen since boot is stored in the dev.mpr.X.io_cmds_highwater @@ -220,7 +243,7 @@ SATA disks that take several seconds to command might not be discovered by the driver. This problem can sometimes be overcome by increasing the value of the spinup wait time in -.Xr loader.conf 5 : +.Xr loader.conf 5 with the .Bd -literal -offset indent hw.mpr.spinup_wait_time=NNNN Modified: stable/11/share/man/man4/mps.4 ============================================================================== --- stable/11/share/man/man4/mps.4 Tue Jul 19 16:34:49 2016 (r303028) +++ stable/11/share/man/man4/mps.4 Tue Jul 19 16:46:27 2016 (r303029) @@ -1,5 +1,8 @@ .\" .\" Copyright (c) 2010 Spectra Logic Corporation +.\" Copyright (c) 2014 LSI Corp +.\" Copyright (c) 2016 Avago Technologies +.\" Copyright (c) 2016 Broadcom Ltd. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -30,25 +33,27 @@ .\" mps driver man page. .\" .\" Author: Ken Merry +.\" Author: Stephen McConnell .\" .\" $Id: //depot/SpectraBSD/head/share/man/man4/mps.4#6 $ .\" $FreeBSD$ .\" -.Dd December 9, 2015 +.Dd July 5, 2016 .Dt MPS 4 .Os .Sh NAME .Nm mps -.Nd LSI Fusion-MPT 2 Serial Attached SCSI driver +.Nd "LSI Fusion-MPT 2 IT/IR 6Gb/s Serial Attached SCSI/SATA driver" .Sh SYNOPSIS -To compile this driver into your kernel, -place the following lines in your kernel configuration file: +To compile this driver into the kernel, place these lines in the kernel +configuration file: .Bd -ragged -offset indent +.Cd "device pci" .Cd "device scbus" .Cd "device mps" .Ed .Pp -Or, to load the driver as a module at boot, place the following line in +The driver can be loaded as a module at boot time by placing this line in .Xr loader.conf 5 : .Bd -literal -offset indent mps_load="YES" @@ -56,35 +61,30 @@ mps_load="YES" .Sh DESCRIPTION The .Nm -driver provides support for LSI Logic Fusion-MPT 2 +driver provides support for Broadcom Ltd./Avago Tech (LSI) +Fusion-MPT 2 IT/IR .Tn SAS controllers and WarpDrive solid state storage cards. .Sh HARDWARE -The +These controllers are supported by the .Nm -driver supports the following hardware: +driver: .Pp .Bl -bullet -compact .It -LSI Logic SAS2004 (4 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2004 (4 Port SAS) .It -LSI Logic SAS2008 (8 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2008 (8 Port SAS) .It -LSI Logic SAS2108 (8 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2108 (8 Port SAS) .It -LSI Logic SAS2116 (16 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2116 (16 Port SAS) .It -LSI Logic SAS2208 (8 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2208 (8 Port SAS) .It -LSI Logic SAS2308 (8 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2308 (8 Port SAS) .It -LSI Logic SSS6200 Solid State Storage +Broadcom Ltd./Avago Tech (LSI) SSS6200 Solid State Storage .It Intel Integrated RAID Module RMS25JB040 .It @@ -95,9 +95,12 @@ Intel Integrated RAID Module RMS25KB040 Intel Integrated RAID Module RMS25KB080 .El .Sh CONFIGURATION +.Pp +In all tunable descriptions below, X represents the adapter number. +.Pp To disable MSI interrupts for all .Nm -driver instances, set the following tunable value in +driver instances, set this tunable value in .Xr loader.conf 5 : .Bd -literal -offset indent hw.mps.disable_msi=1 @@ -105,17 +108,15 @@ hw.mps.disable_msi=1 .Pp To disable MSI interrupts for a specific .Nm -driver instance, set the following tunable value in +driver instance, set this tunable value in .Xr loader.conf 5 : .Bd -literal -offset indent dev.mps.X.disable_msi=1 .Ed .Pp -where X is the adapter number. -.Pp To disable MSI-X interrupts for all .Nm -driver instances, set the following tunable value in +driver instances, set this tunable value in .Xr loader.conf 5 : .Bd -literal -offset indent hw.mps.disable_msix=1 @@ -123,84 +124,157 @@ hw.mps.disable_msix=1 .Pp To disable MSI-X interrupts for a specific .Nm -driver instance, set the following tunable value in +driver instance, set this tunable value in .Xr loader.conf 5 : .Bd -literal -offset indent dev.mps.X.disable_msix=1 .Ed .Pp -where X is the adapter number. -.Pp -To set the maximum number of DMA chains allocated for all adapters, -set the following variable in +To set the maximum number of DMA chains allocated for all adapters, set this +tunable in .Xr loader.conf 5 : .Bd -literal -offset indent hw.mps.max_chains=NNNN .Ed .Pp To set the maximum number of DMA chains allocated for a specific adapter, -set the following variable in +set this tunable in .Xr loader.conf 5 : .Bd -literal -offset indent dev.mps.X.max_chains=NNNN .Ed .Pp -This variable may also be viewed via -.Xr sysctl 8 -to see the maximum set for a given adapter. +The default max_chains value is 2048. .Pp -The current number of free chain frames may be seen via the +The current number of free chain frames is stored in the dev.mps.X.chain_free .Xr sysctl 8 variable. .Pp -The lowest number of free chain frames may be seen via the +The lowest number of free chain frames seen since boot is stored in the dev.mps.X.chain_free_lowwater .Xr sysctl 8 variable. .Pp +The number of times that chain frame allocations have failed since boot is +stored in the +dev.mps.X.chain_alloc_fail +.Xr sysctl 8 +variable. +This can be used to determine whether the max_chains tunable should be +increased to help performance. +.Pp The current number of active I/O commands is shown in the dev.mps.X.io_cmds_active .Xr sysctl 8 variable. +.Ed +.Pp +To set the maximum number of pages that will be used per I/O for all adapters, +set this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +hw.mps.max_io_pages=NNNN +.Ed .Pp -The maximum number of active I/O command seen since boot is shown in the +To set the maximum number of pages that will be used per I/O for a specific +adapter, set this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +dev.mps.X.max_io_pages=NNNN +.Ed +.Pp +The default max_io_pages value is -1, meaning that the maximum I/O size that +will be used per I/O will be calculated using the IOCFacts values stored in +the controller. +The lowest value that the driver will use for max_io_pages is 1, otherwise +IOCFacts will be used to calculate the maximum I/O size. +The smaller I/O size calculated from either max_io_pages or IOCFacts will be the +maximum I/O size used by the driver. +.Pp +The highest number of active I/O commands seen since boot is stored in the dev.mps.X.io_cmds_highwater .Xr sysctl 8 variable. .Pp +Devices can be excluded from +.Nm +control for all adapters by setting this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +hw.mps.exclude_ids=Y +.Ed +.Pp +Y represents the target ID of the device. +If more than one device is to be excluded, target IDs are separated by commas. +.Pp +Devices can be excluded from +.Nm +control for a specific adapter by setting this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +dev.mps.X.exclude_ids=Y +.Ed +.Pp +Y represents the target ID of the device. +If more than one device is to be excluded, target IDs are separated by commas. +.Pp The adapter can issue the .Sy StartStopUnit -SCSI command to SATA direct-access devices during shutdown, to allow the -device to quiesce before being powered down. +SCSI command to SATA direct-access devices during shutdown. +This allows the device to quiesce powering down. To control this feature for all adapters, set the .Bd -literal -offset indent hw.mps.enable_ssu .Ed .Pp -tunable value in +tunable in .Xr loader.conf 5 -to one of the following values: +to one of these values: .Bl -tag -width 6n -offset indent .It 0 Do not send SSU to either HDDs or SSDs. .It 1 -Send SSU to SSDs, but not to HDDs; this is the default value. +Send SSU to SSDs, but not to HDDs. +This is the default value. .It 2 Send SSU to HDDs, but not to SSDs. .It 3 Send SSU to both HDDs and SSDs. .El .Pp -To control the feature for a specific adapter, set the following tunable -value in +To control the feature for a specific adapter, set this tunable value in .Xr loader.conf 5 : .Bd -literal -offset indent dev.mps.X.enable_ssu .Ed .Pp -where X is the adapter number. -The same set of values are valid as for all adapters. +The same set of values are valid when setting this tunable for all adapters. +.Pp +SATA disks that take several seconds to spin up and fail the SATA Identify +command might not be discovered by the driver. +This problem can sometimes be overcome by increasing the value of the spinup +wait time in +.Xr loader.conf 5 +with the +.Bd -literal -offset indent +hw.mps.spinup_wait_time=NNNN +.Ed +.Pp +tunable. +NNNN represents the number of seconds to wait for SATA devices to spin up when +the device fails the initial SATA Identify command. +.Pp +Spinup wait times can be set for specific adapters in +.Xr loader.conf 5 : +with the +.Bd -literal -offset indent +dev.mps.X.spinup_wait_time=NNNN +.Ed +.Pp +tunable. +NNNN is the number of seconds to wait for SATA devices to spin up when they fail +the initial SATA Identify command. .Sh DEBUGGING To enable debugging prints from the .Nm @@ -209,25 +283,30 @@ driver, set the hw.mps.X.debug_level .Ed .Pp -variable, where X is the adapter number, either in +tunable, either in .Xr loader.conf 5 -or via +or by using .Xr sysctl 8 . -The following bits have the described effects: -.Bl -tag -width 6n -offset indent -.It 0x01 -Enable informational prints. -.It 0x02 -Enable tracing prints. -.It 0x04 -Enable prints for driver faults. -.It 0x08 -Enable prints for controller events. -.El +These bits have the described effects: +.Bd -literal -offset indent +0x0001 Enable informational prints (set by default). +0x0002 Enable prints for driver faults (set by default). +0x0004 Enable prints for controller events. +0x0008 Enable prints for controller logging. +0x0010 Enable prints for tracing recovery operations. +0x0020 Enable prints for parameter errors and programming bugs. +0x0040 Enable prints for system initialization operations. +0x0080 Enable prints for more detailed information. +0x0100 Enable prints for user-generated commands (IOCTL). +0x0200 Enable prints for device mapping. +0x0400 Enable prints for tracing through driver functions. +.Ed .Sh SEE ALSO +.Xr cam 4 , .Xr cd 4 , .Xr ch 4 , .Xr da 4 , +.Xr mpr 4 , .Xr mpt 4 , .Xr pci 4 , .Xr sa 4 , @@ -238,24 +317,17 @@ Enable prints for controller events. .Sh HISTORY The .Nm -driver first appeared in -.Fx 9.0 . +driver first appeared in FreeBSD 9.3. .Sh AUTHORS -.An -nosplit The .Nm driver was originally written by +.An -nosplit .An Scott Long Aq Mt scottl@FreeBSD.org . -It has been improved and tested by LSI Logic Corporation. +It has been improved and tested by LSI Corporation, +Avago Technologies (formally LSI), and Broadcom Ltd. (formally Avago). +.Pp This man page was written by -.An Ken Merry Aq Mt ken@FreeBSD.org . -.Sh BUGS -This driver has a couple of known shortcomings: -.Bl -bullet -compact -.It -No userland utility available (e.g., -.Xr mptutil 8 ) . -.It -The driver probes devices sequentially. -If your system has a large number of devices, the probe will take a while. -.El +.An Ken Merry Aq Mt ken@FreeBSD.org +with additional input from +.An Stephen McConnell Aq Mt slm@FreeBSD.org . Modified: stable/11/sys/dev/mpr/mpr.c ============================================================================== --- stable/11/sys/dev/mpr/mpr.c Tue Jul 19 16:34:49 2016 (r303028) +++ stable/11/sys/dev/mpr/mpr.c Tue Jul 19 16:46:27 2016 (r303029) @@ -1373,6 +1373,7 @@ mpr_get_tunables(struct mpr_softc *sc) sc->disable_msix = 0; sc->disable_msi = 0; sc->max_chains = MPR_CHAIN_FRAMES; + sc->max_io_pages = MPR_MAXIO_PAGES; sc->enable_ssu = MPR_SSU_ENABLE_SSD_DISABLE_HDD; sc->spinup_wait_time = DEFAULT_SPINUP_WAIT; @@ -1383,6 +1384,7 @@ mpr_get_tunables(struct mpr_softc *sc) TUNABLE_INT_FETCH("hw.mpr.disable_msix", &sc->disable_msix); TUNABLE_INT_FETCH("hw.mpr.disable_msi", &sc->disable_msi); TUNABLE_INT_FETCH("hw.mpr.max_chains", &sc->max_chains); + TUNABLE_INT_FETCH("hw.mpr.max_io_pages", &sc->max_io_pages); TUNABLE_INT_FETCH("hw.mpr.enable_ssu", &sc->enable_ssu); TUNABLE_INT_FETCH("hw.mpr.spinup_wait_time", &sc->spinup_wait_time); @@ -1403,6 +1405,10 @@ mpr_get_tunables(struct mpr_softc *sc) device_get_unit(sc->mpr_dev)); TUNABLE_INT_FETCH(tmpstr, &sc->max_chains); + snprintf(tmpstr, sizeof(tmpstr), "dev.mpr.%d.max_io_pages", + device_get_unit(sc->mpr_dev)); + TUNABLE_INT_FETCH(tmpstr, &sc->max_io_pages); + bzero(sc->exclude_ids, sizeof(sc->exclude_ids)); snprintf(tmpstr, sizeof(tmpstr), "dev.mpr.%d.exclude_ids", device_get_unit(sc->mpr_dev)); @@ -1488,6 +1494,11 @@ mpr_setup_sysctl(struct mpr_softc *sc) &sc->max_chains, 0,"maximum chain frames that will be allocated"); SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), + OID_AUTO, "max_io_pages", CTLFLAG_RD, + &sc->max_io_pages, 0,"maximum pages to allow per I/O (if <1 use " + "IOCFacts)"); + + SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, "enable_ssu", CTLFLAG_RW, &sc->enable_ssu, 0, "enable SSU to SATA SSD/HDD at shutdown"); Modified: stable/11/sys/dev/mpr/mpr_sas.c ============================================================================== --- stable/11/sys/dev/mpr/mpr_sas.c Tue Jul 19 16:34:49 2016 (r303028) +++ stable/11/sys/dev/mpr/mpr_sas.c Tue Jul 19 16:46:27 2016 (r303029) @@ -971,6 +971,8 @@ mprsas_action(struct cam_sim *sim, union case XPT_PATH_INQ: { struct ccb_pathinq *cpi = &ccb->cpi; + struct mpr_softc *sc = sassc->sc; + uint8_t sges_per_frame; cpi->version_num = 1; cpi->hba_inquiry = PI_SDTR_ABLE|PI_TAG_ABLE|PI_WIDE_16; @@ -999,13 +1001,23 @@ mprsas_action(struct cam_sim *sim, union cpi->transport_version = 0; cpi->protocol = PROTO_SCSI; cpi->protocol_version = SCSI_REV_SPC; -#if __FreeBSD_version >= 800001 + /* - * XXXSLM-probably need to base this number on max SGL's and - * page size. - */ - cpi->maxio = 256 * 1024; -#endif + * Max IO Size is Page Size * the following: + * ((SGEs per frame - 1 for chain element) * + * Max Chain Depth) + 1 for no chain needed in last frame + * + * If user suggests a Max IO size to use, use the smaller of the + * user's value and the calculated value as long as the user's + * value is larger than 0. The user's value is in pages. + */ + sges_per_frame = (sc->chain_frame_size / + sizeof(MPI2_IEEE_SGE_SIMPLE64)) - 1; + cpi->maxio = (sges_per_frame * sc->facts->MaxChainDepth) + 1; + cpi->maxio *= PAGE_SIZE; + if ((sc->max_io_pages > 0) && (sc->max_io_pages * PAGE_SIZE < + cpi->maxio)) + cpi->maxio = sc->max_io_pages * PAGE_SIZE; mprsas_set_ccbstatus(ccb, CAM_REQ_CMP); break; } Modified: stable/11/sys/dev/mpr/mprvar.h ============================================================================== --- stable/11/sys/dev/mpr/mprvar.h Tue Jul 19 16:34:49 2016 (r303028) +++ stable/11/sys/dev/mpr/mprvar.h Tue Jul 19 16:46:27 2016 (r303029) @@ -33,7 +33,7 @@ #ifndef _MPRVAR_H #define _MPRVAR_H -#define MPR_DRIVER_VERSION "13.00.00.00-fbsd" +#define MPR_DRIVER_VERSION "13.01.00.00-fbsd" #define MPR_DB_MAX_WAIT 2500 @@ -41,6 +41,7 @@ #define MPR_EVT_REPLY_FRAMES 32 #define MPR_REPLY_FRAMES MPR_REQ_FRAMES #define MPR_CHAIN_FRAMES 2048 +#define MPR_MAXIO_PAGES (-1) #define MPR_SENSE_LEN SSD_FULL_SIZE #define MPR_MSI_COUNT 1 #define MPR_SGE64_SIZE 12 @@ -264,6 +265,7 @@ struct mpr_softc { int io_cmds_highwater; int chain_free; int max_chains; + int max_io_pages; int chain_free_lowwater; uint32_t chain_frame_size; uint16_t chain_seg_size; Modified: stable/11/sys/dev/mps/mps.c ============================================================================== --- stable/11/sys/dev/mps/mps.c Tue Jul 19 16:34:49 2016 (r303028) +++ stable/11/sys/dev/mps/mps.c Tue Jul 19 16:46:27 2016 (r303029) @@ -1350,6 +1350,7 @@ mps_get_tunables(struct mps_softc *sc) sc->disable_msix = 0; sc->disable_msi = 0; sc->max_chains = MPS_CHAIN_FRAMES; + sc->max_io_pages = MPS_MAXIO_PAGES; sc->enable_ssu = MPS_SSU_ENABLE_SSD_DISABLE_HDD; sc->spinup_wait_time = DEFAULT_SPINUP_WAIT; @@ -1360,6 +1361,7 @@ mps_get_tunables(struct mps_softc *sc) TUNABLE_INT_FETCH("hw.mps.disable_msix", &sc->disable_msix); TUNABLE_INT_FETCH("hw.mps.disable_msi", &sc->disable_msi); TUNABLE_INT_FETCH("hw.mps.max_chains", &sc->max_chains); + TUNABLE_INT_FETCH("hw.mps.max_io_pages", &sc->max_io_pages); TUNABLE_INT_FETCH("hw.mps.enable_ssu", &sc->enable_ssu); TUNABLE_INT_FETCH("hw.mps.spinup_wait_time", &sc->spinup_wait_time); @@ -1380,6 +1382,10 @@ mps_get_tunables(struct mps_softc *sc) device_get_unit(sc->mps_dev)); TUNABLE_INT_FETCH(tmpstr, &sc->max_chains); + snprintf(tmpstr, sizeof(tmpstr), "dev.mps.%d.max_io_pages", + device_get_unit(sc->mps_dev)); + TUNABLE_INT_FETCH(tmpstr, &sc->max_io_pages); + bzero(sc->exclude_ids, sizeof(sc->exclude_ids)); snprintf(tmpstr, sizeof(tmpstr), "dev.mps.%d.exclude_ids", device_get_unit(sc->mps_dev)); @@ -1465,6 +1471,11 @@ mps_setup_sysctl(struct mps_softc *sc) &sc->max_chains, 0,"maximum chain frames that will be allocated"); SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), + OID_AUTO, "max_io_pages", CTLFLAG_RD, + &sc->max_io_pages, 0,"maximum pages to allow per I/O (if <1 use " + "IOCFacts)"); + + SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, "enable_ssu", CTLFLAG_RW, &sc->enable_ssu, 0, "enable SSU to SATA SSD/HDD at shutdown"); Modified: stable/11/sys/dev/mps/mps_sas.c ============================================================================== --- stable/11/sys/dev/mps/mps_sas.c Tue Jul 19 16:34:49 2016 (r303028) +++ stable/11/sys/dev/mps/mps_sas.c Tue Jul 19 16:46:27 2016 (r303029) @@ -928,6 +928,8 @@ mpssas_action(struct cam_sim *sim, union case XPT_PATH_INQ: { struct ccb_pathinq *cpi = &ccb->cpi; + struct mps_softc *sc = sassc->sc; + uint8_t sges_per_frame; cpi->version_num = 1; cpi->hba_inquiry = PI_SDTR_ABLE|PI_TAG_ABLE|PI_WIDE_16; @@ -951,12 +953,23 @@ mpssas_action(struct cam_sim *sim, union cpi->transport_version = 0; cpi->protocol = PROTO_SCSI; cpi->protocol_version = SCSI_REV_SPC; -#if __FreeBSD_version >= 800001 + /* - * XXX KDM where does this number come from? - */ - cpi->maxio = 256 * 1024; -#endif + * Max IO Size is Page Size * the following: + * ((SGEs per frame - 1 for chain element) * + * Max Chain Depth) + 1 for no chain needed in last frame + * + * If user suggests a Max IO size to use, use the smaller of the + * user's value and the calculated value as long as the user's + * value is larger than 0. The user's value is in pages. + */ + sges_per_frame = ((sc->facts->IOCRequestFrameSize * 4) / + sizeof(MPI2_SGE_SIMPLE64)) - 1; + cpi->maxio = (sges_per_frame * sc->facts->MaxChainDepth) + 1; + cpi->maxio *= PAGE_SIZE; + if ((sc->max_io_pages > 0) && (sc->max_io_pages * PAGE_SIZE < + cpi->maxio)) + cpi->maxio = sc->max_io_pages * PAGE_SIZE; mpssas_set_ccbstatus(ccb, CAM_REQ_CMP); break; } Modified: stable/11/sys/dev/mps/mpsvar.h ============================================================================== --- stable/11/sys/dev/mps/mpsvar.h Tue Jul 19 16:34:49 2016 (r303028) +++ stable/11/sys/dev/mps/mpsvar.h Tue Jul 19 16:46:27 2016 (r303029) @@ -33,7 +33,7 @@ #ifndef _MPSVAR_H #define _MPSVAR_H -#define MPS_DRIVER_VERSION "21.00.00.00-fbsd" +#define MPS_DRIVER_VERSION "21.01.00.00-fbsd" #define MPS_DB_MAX_WAIT 2500 @@ -41,6 +41,7 @@ #define MPS_EVT_REPLY_FRAMES 32 #define MPS_REPLY_FRAMES MPS_REQ_FRAMES #define MPS_CHAIN_FRAMES 2048 +#define MPS_MAXIO_PAGES (-1) #define MPS_SENSE_LEN SSD_FULL_SIZE #define MPS_MSI_COUNT 1 #define MPS_SGE64_SIZE 12 @@ -280,6 +281,7 @@ struct mps_softc { int io_cmds_highwater; int chain_free; int max_chains; + int max_io_pages; int chain_free_lowwater; u_int enable_ssu; int spinup_wait_time; From owner-svn-src-all@freebsd.org Tue Jul 19 16:51:37 2016 Return-Path: Delivered-To: svn-src-all@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 7026CB9EABE; Tue, 19 Jul 2016 16:51:37 +0000 (UTC) (envelope-from maxim.konovalov@gmail.com) Received: from mp2.macomnet.net (mp2.macomnet.net [195.128.64.6]) (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 EFC141D03; Tue, 19 Jul 2016 16:51:36 +0000 (UTC) (envelope-from maxim.konovalov@gmail.com) Received: from localhost (localhost [127.0.0.1]) by mp2.macomnet.net (8.15.2/8.15.2) with ESMTP id u6JGpY6X097196; Tue, 19 Jul 2016 19:51:34 +0300 (MSK) (envelope-from maxim.konovalov@gmail.com) Date: Tue, 19 Jul 2016 19:51:34 +0300 (MSK) From: Maxim Konovalov To: Glen Barber cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303028 - head/share/misc In-Reply-To: <20160719164621.GK65494@FreeBSD.org> Message-ID: References: <201607191634.u6JGYnwN066019@repo.freebsd.org> <20160719164621.GK65494@FreeBSD.org> User-Agent: Alpine 2.20 (BSF 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 16:51:37 -0000 On Tue, 19 Jul 2016, 16:46-0000, Glen Barber wrote: > On Tue, Jul 19, 2016 at 07:42:03PM +0300, Maxim Konovalov wrote: > > On Tue, 19 Jul 2016, 16:34-0000, Glen Barber wrote: > > > > > Author: gjb > > > Date: Tue Jul 19 16:34:49 2016 > > > New Revision: 303028 > > > URL: https://svnweb.freebsd.org/changeset/base/303028 > > > > > > Log: > > > Belatedly add FreeBSD 11.0 and 12.0 to the family tree file. > > > > > > Submitted by: des (a while back) > > > Sponsored by: The FreeBSD Foundation > > > > > The file lists releases not branches. I don't think we have 11.0 or > > 12.0 released. > > > > Honestly, I am not sure about anything in this file. :) > > There was an entry for 11-current though. Is the dated-part of the > commit the problem, or is the entire change wrong? If the latter, I'll > look at it again (or even revert it, and let someone who knows how this > file is supposed to be updated handle it). > Just dates are incorrect. -- Maxim Konovalov From owner-svn-src-all@freebsd.org Tue Jul 19 16:54:07 2016 Return-Path: Delivered-To: svn-src-all@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 888B8B9EBD5; Tue, 19 Jul 2016 16:54:07 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 75E071F5B; Tue, 19 Jul 2016 16:54:07 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by freefall.freebsd.org (Postfix) with ESMTP id 241571F5D; Tue, 19 Jul 2016 16:54:07 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Date: Tue, 19 Jul 2016 16:54:06 +0000 From: Glen Barber To: Maxim Konovalov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303028 - head/share/misc Message-ID: <20160719165406.GL65494@FreeBSD.org> References: <201607191634.u6JGYnwN066019@repo.freebsd.org> <20160719164621.GK65494@FreeBSD.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="c8UbHMnQwI7BF+TB" Content-Disposition: inline In-Reply-To: X-Operating-System: FreeBSD 11.0-CURRENT amd64 X-SCUD-Definition: Sudden Completely Unexpected Dataloss X-SULE-Definition: Sudden Unexpected Learning Event X-PEKBAC-Definition: Problem Exists, Keyboard Between Admin/Computer User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 16:54:07 -0000 --c8UbHMnQwI7BF+TB Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 19, 2016 at 07:51:34PM +0300, Maxim Konovalov wrote: > On Tue, 19 Jul 2016, 16:46-0000, Glen Barber wrote: >=20 > > On Tue, Jul 19, 2016 at 07:42:03PM +0300, Maxim Konovalov wrote: > > > On Tue, 19 Jul 2016, 16:34-0000, Glen Barber wrote: > > > > > > > Author: gjb > > > > Date: Tue Jul 19 16:34:49 2016 > > > > New Revision: 303028 > > > > URL: https://svnweb.freebsd.org/changeset/base/303028 > > > > > > > > Log: > > > > Belatedly add FreeBSD 11.0 and 12.0 to the family tree file. > > > > > > > > Submitted by: des (a while back) > > > > Sponsored by: The FreeBSD Foundation > > > > > > > The file lists releases not branches. I don't think we have 11.0 or > > > 12.0 released. > > > > > > > Honestly, I am not sure about anything in this file. :) > > > > There was an entry for 11-current though. Is the dated-part of the > > commit the problem, or is the entire change wrong? If the latter, I'll > > look at it again (or even revert it, and let someone who knows how this > > file is supposed to be updated handle it). > > > Just dates are incorrect. >=20 Ok, I'll remove them now. Thank you for reporting this. Glen --c8UbHMnQwI7BF+TB Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXjlsuAAoJEAMUWKVHj+KTfhQP/2FBdfbPfelJ7kOnTTnikBi3 /MuCe02ZyiqKs3QXZra5VZByCkrMXt9zbI5GbU/gcOoIHhjyLP39xUHApwwdx7Yw Zs8Gl3ltOFK3zQl5NWAykx0a2H6wSPS+3zZvPoAJx5UQ/iYvc5vQvoOkUBRwnqdc tg3g3Kf70j0htexxTq34eR6rEqbULnYzOXeIVvympEliEov4i2fPGwOeqdkuF68H WGcJGhLN+cLVj07Q6vueOIGjLyDCboVjrYfhKLiY5kuJDQK9bFcobEhzmWPmE4+F eiCNzLFS/T72Pt8UuKzapBzNCHcciNoTFgqc/SDwjyE2Fq4Z8LxVPH9VdNL58qpA OBJkpHBdDrrv/4Pado5IBtBZNqL8pIE+QGnXpuUTO+7q75cvtrr6tC5bOa6Akn0v NSTZlEOFk9XFGBYHc+me/rrtUvhHpAumoFztJjvpX+bO1hSmJyHziN1+XsAi4ocz ALXjUOC6BXL43JCP5IRtC0cwiI6de+eV7uVVtPwJ9ycAwdmXVENMdXUDvVpO/ZDX JEV/HtEEerYY+6K5zcp7ZapZGiFRNWoQ+MA95n/X9/Pr9z/UrzYMI0XlPTg4bk1L Q6RicLPJmy793sWXWhrKa+bf6gryu9kz92xcuw7gw41QyYPpeUHJCnrNDDMFW7Ox pVF2qAvBwr8z3R7Y6+mq =xkTH -----END PGP SIGNATURE----- --c8UbHMnQwI7BF+TB-- From owner-svn-src-all@freebsd.org Tue Jul 19 16:55:17 2016 Return-Path: Delivered-To: svn-src-all@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 F0C63B9EC39; Tue, 19 Jul 2016 16:55:17 +0000 (UTC) (envelope-from gjb@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 BEA861246; Tue, 19 Jul 2016 16:55:17 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JGtGe6073751; Tue, 19 Jul 2016 16:55:16 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JGtGaO073750; Tue, 19 Jul 2016 16:55:16 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201607191655.u6JGtGaO073750@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 19 Jul 2016 16:55:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303030 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 16:55:18 -0000 Author: gjb Date: Tue Jul 19 16:55:16 2016 New Revision: 303030 URL: https://svnweb.freebsd.org/changeset/base/303030 Log: Fix the previous commit to the family tree file. It is too early to list 11.0, and we do not list -CURRENT here. Submitted by: maxim Sponsored by: The FreeBSD Foundation Modified: head/share/misc/bsd-family-tree Modified: head/share/misc/bsd-family-tree ============================================================================== --- head/share/misc/bsd-family-tree Tue Jul 19 16:46:27 2016 (r303029) +++ head/share/misc/bsd-family-tree Tue Jul 19 16:55:16 2016 (r303030) @@ -691,8 +691,6 @@ OpenBSD 5.8 2015-10-18 [OBD] DragonFly 4.4.1 2015-12-07 [DFB] OpenBSD 5.9 2016-03-29 [OBD] FreeBSD 10.3 2016-04-04 [FBD] -FreeBSD 11.0 2016-06-08 [FBD] -FreeBSD 12.0 2016-06-09 [FBD] Bibliography ------------------------ From owner-svn-src-all@freebsd.org Tue Jul 19 17:15:09 2016 Return-Path: Delivered-To: svn-src-all@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 59F7EB9E371; Tue, 19 Jul 2016 17:15:09 +0000 (UTC) (envelope-from emaste@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 236CF1168; Tue, 19 Jul 2016 17:15:09 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JHF8sP080998; Tue, 19 Jul 2016 17:15:08 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JHF8jw080997; Tue, 19 Jul 2016 17:15:08 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607191715.u6JHF8jw080997@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 19 Jul 2016 17:15:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303031 - head/contrib/llvm/tools/clang/lib/Driver X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 17:15:09 -0000 Author: emaste Date: Tue Jul 19 17:15:07 2016 New Revision: 303031 URL: https://svnweb.freebsd.org/changeset/base/303031 Log: clang++: Always use --eh-frame-hdr on FreeBSD, even for -static FreeBSD uses LLVM's libunwind on FreeBSD/arm64 today (and we expect to use it more widely in the future) and it requires the EH frame segment in static binaries. Reviewed by: dim Obtained from: Clang commit r266123 MFC after: 3 days Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D7250 Modified: head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Modified: head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp ============================================================================== --- head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Tue Jul 19 16:55:16 2016 (r303030) +++ head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Tue Jul 19 17:15:07 2016 (r303031) @@ -7922,12 +7922,12 @@ void freebsd::Linker::ConstructJob(Compi if (IsPIE) CmdArgs.push_back("-pie"); + CmdArgs.push_back("--eh-frame-hdr"); if (Args.hasArg(options::OPT_static)) { CmdArgs.push_back("-Bstatic"); } else { if (Args.hasArg(options::OPT_rdynamic)) CmdArgs.push_back("-export-dynamic"); - CmdArgs.push_back("--eh-frame-hdr"); if (Args.hasArg(options::OPT_shared)) { CmdArgs.push_back("-Bshareable"); } else { From owner-svn-src-all@freebsd.org Tue Jul 19 17:31:49 2016 Return-Path: Delivered-To: svn-src-all@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 669EDB9E9A8; Tue, 19 Jul 2016 17:31:49 +0000 (UTC) (envelope-from sbruno@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 3290D1A99; Tue, 19 Jul 2016 17:31:49 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JHVmLZ085825; Tue, 19 Jul 2016 17:31:48 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JHVmew085824; Tue, 19 Jul 2016 17:31:48 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607191731.u6JHVmew085824@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Tue, 19 Jul 2016 17:31:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303032 - head/sys/dev/ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 17:31:49 -0000 Author: sbruno Date: Tue Jul 19 17:31:48 2016 New Revision: 303032 URL: https://svnweb.freebsd.org/changeset/base/303032 Log: Fixup DA cable detection routines to not set the cable type to unknown if they do not match one of two cable types. PR: 150249 Submitted by: borjam@sarenet.es Reviewed by: erj MFC after: 3 days Modified: head/sys/dev/ixgbe/ixgbe_phy.c Modified: head/sys/dev/ixgbe/ixgbe_phy.c ============================================================================== --- head/sys/dev/ixgbe/ixgbe_phy.c Tue Jul 19 17:15:07 2016 (r303031) +++ head/sys/dev/ixgbe/ixgbe_phy.c Tue Jul 19 17:31:48 2016 (r303032) @@ -1534,21 +1534,18 @@ s32 ixgbe_identify_sfp_module_generic(st hw->phy.type = ixgbe_phy_sfp_intel; break; default: - if (cable_tech & IXGBE_SFF_DA_PASSIVE_CABLE) - hw->phy.type = - ixgbe_phy_sfp_passive_unknown; - else if (cable_tech & IXGBE_SFF_DA_ACTIVE_CABLE) - hw->phy.type = - ixgbe_phy_sfp_active_unknown; - else - hw->phy.type = ixgbe_phy_sfp_unknown; + hw->phy.type = ixgbe_phy_sfp_unknown; break; } } /* Allow any DA cable vendor */ if (cable_tech & (IXGBE_SFF_DA_PASSIVE_CABLE | - IXGBE_SFF_DA_ACTIVE_CABLE)) { + IXGBE_SFF_DA_ACTIVE_CABLE)) { + if (cable_tech & IXGBE_SFF_DA_PASSIVE_CABLE) + hw->phy.type = ixgbe_phy_sfp_passive_unknown; + else if (cable_tech & IXGBE_SFF_DA_ACTIVE_CABLE) + hw->phy.type = ixgbe_phy_sfp_active_unknown; status = IXGBE_SUCCESS; goto out; } From owner-svn-src-all@freebsd.org Tue Jul 19 17:46:11 2016 Return-Path: Delivered-To: svn-src-all@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 433E3B9EC05; Tue, 19 Jul 2016 17:46:11 +0000 (UTC) (envelope-from emaste@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 F00321313; Tue, 19 Jul 2016 17:46:10 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JHkASY092272; Tue, 19 Jul 2016 17:46:10 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JHk9ov092270; Tue, 19 Jul 2016 17:46:09 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607191746.u6JHk9ov092270@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 19 Jul 2016 17:46:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303033 - head/share/man/man7 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 17:46:11 -0000 Author: emaste Date: Tue Jul 19 17:46:09 2016 New Revision: 303033 URL: https://svnweb.freebsd.org/changeset/base/303033 Log: add an arch.7 man page with architecture-specific details Based on details collected on the wiki, at https://wiki.freebsd.org/EdMaste/ArchitectureSpecifics Further details to be added over time. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D7096 Added: head/share/man/man7/arch.7 (contents, props changed) Modified: head/share/man/man7/Makefile Modified: head/share/man/man7/Makefile ============================================================================== --- head/share/man/man7/Makefile Tue Jul 19 17:31:48 2016 (r303032) +++ head/share/man/man7/Makefile Tue Jul 19 17:46:09 2016 (r303033) @@ -7,6 +7,7 @@ PACKAGE=runtime-manuals #MISSING: eqnchar.7 ms.7 term.7 MAN= adding_user.7 \ + arch.7 \ ascii.7 \ bsd.snmpmod.mk.7 \ build.7 \ Added: head/share/man/man7/arch.7 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man7/arch.7 Tue Jul 19 17:46:09 2016 (r303033) @@ -0,0 +1,171 @@ +.\" Copyright (c) 2016 The FreeBSD Foundation. All rights reserved. +.\" +.\" This documentation was created by Ed Maste under sponsorship of +.\" 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 COPYRIGHT HOLDERS ``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 COPYRIGHT HOLDERS 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. +.\" +.\" $FreeBSD$ +.\" +.Dd July 19, 2016 +.Dt ARCH 7 +.Os +.Sh NAME +.Nm arch +.Nd Architecture-specific details +.Sh DESCRIPTION +Differences between CPU architectures and platforms supported by +.Fx . +.Pp +.Ss Type sizes +On all supported architectures, +.Bl -column -offset -indent "long long" "Size" +.It Sy Type Ta Sy Size +.It short Ta 2 +.It int Ta 4 +.It long Ta sizeof(void*) +.It long long Ta 8 +.It float Ta 4 +.It double Ta 8 +.El +.Bl -column -offset indent ".Sy Architecture" ".Sy sizeof(void *)" ".Sy "sizeof(long double)" +.It Sy Architecture Ta Sy sizeof(void *) Ta Sy sizeof(long double) +.It amd64 Ta 8 Ta 16 +.It arm Ta 4 Ta 8 +.It armeb Ta 4 Ta 8 +.It armv6 Ta 4 Ta 8 +.It arm64 Ta 8 Ta 16 +.It i386 Ta 4 Ta 12 +.It mips Ta 4 Ta 8 +.It mipsel Ta 4 Ta 8 +.It mipsn32 Ta 4 Ta 8 +.It mips64 Ta 8 Ta 8 +.It mips64el Ta 8 Ta 8 +.It powerpc Ta 4 Ta 8 +.It powerpc64 Ta 8 Ta 8 +.It riscv Ta 8 Ta +.It sparc64 Ta 8 Ta 16 +.El +.Ss Endianness and Char Signedness +.Bl -column -offset indent ".Sy Architecture" ".Sy Endianness" ".Sy "char Signedness" +.It Sy Architecture Ta Sy Endianness Ta Sy char Signedness +.It amd64 Ta little Ta signed +.It arm Ta little Ta unsigned +.It armeb Ta big Ta unsigned +.It armv6 Ta little Ta unsigned +.It arm64 Ta little Ta unsigned +.It i386 Ta little Ta signed +.It mips Ta little Ta signed +.It mipsel Ta big Ta signed +.It mipsn32 Ta little Ta signed +.It mips64 Ta little Ta signed +.It mips64el Ta little Ta signed +.It powerpc Ta big Ta unsigned +.It powerpc64 Ta big Ta unsigned +.It riscv Ta little Ta signed +.It sparc64 Ta big Ta signed +.El +.Ss Page Size +.Bl -column -offset indent ".Sy Architecture" ".Sy Page Sizes" +.It Sy Architecture Ta Sy Page Sizes +.It amd64 Ta 4K, 2M, 1G +.It arm Ta 4K +.It armeb Ta 4K +.It armv6 Ta 4K +.It arm64 Ta 4K, 2M, 1G +.It i386 Ta 4K, 2M (PAE), 4M +.It mips Ta 4K +.It mipsel Ta 4K +.It mipsn32 Ta 4K +.It mips64 Ta 4K +.It mips64el Ta 4K +.It powerpc Ta 4K +.It powerpc64 Ta 4K +.It riscv Ta 4K +.It sparc64 Ta 8K +.El +.Ss Floating Point +.Bl -column -offset indent ".Sy Architecture" ".Sy float, double" ".Sy long double" +.It Sy Architecture Ta Sy float, double Ta Sy long double +.It amd64 Ta hard Ta hard, 80 bit +.It arm Ta soft Ta soft, double precision +.It armeb Ta soft Ta soft, double precision +.It armv6 Ta hard Ta hard, double precision +.It arm64 Ta hard Ta soft, quad precision +.It i386 Ta hard Ta hard, 80 bit +.It mips Ta soft Ta identical to double +.It mipsel Ta soft Ta identical to double +.It mipsn32 Ta soft Ta identical to double +.It mips64 Ta soft Ta identical to double +.It mips64el Ta soft Ta identical to double +.It powerpc Ta hard Ta hard, double precision +.It powerpc64 Ta hard Ta hard, double precision +.It riscv Ta +.It sparc64 Ta hard Ta hard, quad precision +.El +.Ss Predefined Macros +The compiler provides a number of predefined macros. +Some of these provide architecture-specific details and are explained below. +Other macros, including those required by the language standard, are not +included here. +.Pp +The full set of predefined macros can be obtained with this command: +.Bd -literal -offset indent +cc -x c -Dm -E /dev/null +.Ed +.Pp +Common type size and endianness macros: +.Bl -column -offset indent "BYTE_ORDER" ".Sy Meaning" +.It Sy Macro Ta Sy Meaning +.It Dv __LP64__ Ta 64-bit (8-byte) long and pointer, 32-bit (4-byte) int +.It Dv __ILP32__ Ta 32-bit (4-byte) int, long and pointer +.It Dv BYTE_ORDER Ta Either Dv BIG_ENDIAN or Dv LITTLE_ENDIAN . +.Dv PDP11_ENDIAN is not used on FreeBSD. +.El +.Pp +Architecture-specific macros: +.Bl -column -offset indent ".Sy Architecture" ".Sy Predefined macros" +.It Sy Architecture Ta Sy Predefined macros +.It amd64 Ta Dv __amd64__, Dv __x86_64__ +.It arm Ta Dv __arm__ +.It armeb Ta Dv __arm__ +.It armv6 Ta Dv __arm__, Dv __ARM_ARCH >= 6 +.It arm64 Ta Dv __aarch64__ +.It i386 Ta Dv __i386__ +.It mips Ta Dv __mips__, Dv __MIPSEB__, Dv __mips_o32 +.It mipsel Ta Dv __mips__, Dv __mips_o32 +.It mipsn32 Ta Dv __mips__, Dv __MIPSEB__, Dv __mips_n32 +.It mips64 Ta Dv __mips__, Dv __MIPSEB__, Dv __mips_n64 +.It mips64el Ta Dv __mips__, Dv __mips_n64 +.It powerpc Ta Dv __powerpc__ +.It powerpc64 Ta Dv __powerpc__, Dv __powerpc64__ +.It riscv Ta Dv __riscv__, Dv __riscv64 +.It sparc64 Ta Dv __sparc64__ +.El +.Sh SEE ALSO +.Xr src.conf 5 , +.Xr build 7 +.Sh HISTORY +An +.Nm +manual page appeared in +.Fx 12 . From owner-svn-src-all@freebsd.org Tue Jul 19 18:05:27 2016 Return-Path: Delivered-To: svn-src-all@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 3381EB9EF17; Tue, 19 Jul 2016 18:05:27 +0000 (UTC) (envelope-from emaste@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 F3CDC1C86; Tue, 19 Jul 2016 18:05:26 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JI5QQO099588; Tue, 19 Jul 2016 18:05:26 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JI5Q0V099587; Tue, 19 Jul 2016 18:05:26 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607191805.u6JI5Q0V099587@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 19 Jul 2016 18:05:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303034 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 18:05:27 -0000 Author: emaste Date: Tue Jul 19 18:05:25 2016 New Revision: 303034 URL: https://svnweb.freebsd.org/changeset/base/303034 Log: Include makewhatis in ITOOLS when MK_MAN_UTILS is true Previously it was conditional on MK_MAN. It's possible to build FreeBSD with man pages but without man page tools. MK_MAN_UTILS is the conditional used in share/man/Makefile for determining whether makewhatis is executed at install time, so it is the proper one for ITOOLS as well. PR: 210142 MFC after: 1 week Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Tue Jul 19 17:46:09 2016 (r303033) +++ head/Makefile.inc1 Tue Jul 19 18:05:25 2016 (r303034) @@ -884,7 +884,7 @@ ITOOLS= [ awk cap_mkdb cat chflags chmod ${LOCAL_ITOOLS} # Needed for share/man -.if ${MK_MAN} != "no" +.if ${MK_MAN_UTILS} != "no" ITOOLS+=makewhatis .endif From owner-svn-src-all@freebsd.org Tue Jul 19 18:07:48 2016 Return-Path: Delivered-To: svn-src-all@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 C1B76B9EFFB; Tue, 19 Jul 2016 18:07:48 +0000 (UTC) (envelope-from markm@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 7ECE41E3B; Tue, 19 Jul 2016 18:07:48 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JI7lsV099758; Tue, 19 Jul 2016 18:07:47 GMT (envelope-from markm@FreeBSD.org) Received: (from markm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JI7lAq099753; Tue, 19 Jul 2016 18:07:47 GMT (envelope-from markm@FreeBSD.org) Message-Id: <201607191807.u6JI7lAq099753@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markm set sender to markm@FreeBSD.org using -f From: Mark Murray Date: Tue, 19 Jul 2016 18:07:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303035 - in head/sys: arm/broadcom/bcm2835 boot/fdt/dts/arm sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 18:07:48 -0000 Author: markm Date: Tue Jul 19 18:07:47 2016 New Revision: 303035 URL: https://svnweb.freebsd.org/changeset/base/303035 Log: Random bit generator (RBG) driver for RPi and RPi2. Summary: This driver supports the following methods to trigger gathering random bits from the hardware: 1. interrupt when the FIFO is full (default) fed into the harvest queue 2. callout (when BCM2835_RNG_USE_CALLOUT is defined) every second if hz is less than 100, otherwise hz / 100, feeding the random bits into the harvest queue If the kernel is booted with verbose enabled, the contents of the registers will be dumped after the RBG is started during the attach routine. Author: hackagadget_gmail.com (Stephen J. Kiernan) Test Plan: Built RPI2 kernel and booted on board. Tested the different methods to feed the harvest queue (callout, interrupt) and the interrupt driven approach seems best. However, keeping the other method for people to be able to experiment with. Reviewed By: adrian, delphij, markm Differential Revision: https://reviews.freebsd.org/D6888 Added: head/sys/arm/broadcom/bcm2835/bcm2835_rng.c (contents, props changed) Modified: head/sys/arm/broadcom/bcm2835/files.bcm283x head/sys/boot/fdt/dts/arm/bcm2835.dtsi head/sys/boot/fdt/dts/arm/bcm2836.dtsi head/sys/sys/random.h Added: head/sys/arm/broadcom/bcm2835/bcm2835_rng.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/broadcom/bcm2835/bcm2835_rng.c Tue Jul 19 18:07:47 2016 (r303035) @@ -0,0 +1,534 @@ +/* + * Copyright (c) 2015, 2016, Stephen J. Kiernan + * 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 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +#include +#include + +#if !defined(BCM2835_RNG_USE_CALLOUT) +#define BCM2835_RNG_USE_INTERRUPT +#endif + +static device_attach_t bcm2835_rng_attach; +static device_detach_t bcm2835_rng_detach; +static device_probe_t bcm2835_rng_probe; + +#define RNG_CTRL 0x00 /* RNG Control Register */ +#define RNG_COMBLK1_OSC 0x003f0000 /* Combiner Blk 1 Oscillator */ +#define RNG_COMBLK1_OSC_SHIFT 16 +#define RNG_COMBLK2_OSC 0x0fc00000 /* Combiner Blk 2 Oscillator */ +#define RNG_COMBLK2_OSC_SHIFT 22 +#define RNG_JCLK_BYP_DIV_CNT 0x0000ff00 /* Jitter clk bypass divider + count */ +#define RNG_JCLK_BYP_DIV_CNT_SHIFT 8 +#define RNG_JCLK_BYP_SRC 0x00000020 /* Jitter clk bypass source */ +#define RNG_JCLK_BYP_SEL 0x00000010 /* Jitter clk bypass select */ +#define RNG_RBG2X 0x00000002 /* RBG 2X SPEED */ +#define RNG_RBGEN_BIT 0x00000001 /* Enable RNG bit */ + +#define RNG_STATUS 0x04 /* RNG status register */ +#define RND_VAL_SHIFT 24 /* Shift for valid words */ +#define RND_VAL_MASK 0x000000ff /* Number valid words mask */ +#define RND_VAL_WARM_CNT 0x40000 /* RNG Warm Up count */ +#define RND_WARM_CNT 0xfffff /* RNG Warm Up Count mask */ + +#define RNG_DATA 0x08 /* RNG Data Register */ +#define RNG_FF_THRES 0x0c +#define RNG_FF_THRES_MASK 0x0000001f + +#define RNG_INT_MASK 0x10 +#define RNG_INT_OFF_BIT 0x00000001 + +#define RNG_FF_DEFAULT 0x10 /* FIFO threshold default */ + +#define RNG_FIFO_WORDS (RNG_FF_DEFAULT / sizeof(uint32_t)) + +#define RNG_NUM_OSCILLATORS 6 +#define RNG_STALL_COUNT_DEFAULT 10 + +struct bcm2835_rng_softc { + device_t sc_dev; + struct resource * sc_mem_res; + struct resource * sc_irq_res; + void * sc_intr_hdl; +#if defined(BCM2835_RNG_USE_CALLOUT) || defined(BCM2835_RNG_USE_INTERRUPT) + uint32_t sc_buf[RNG_FIFO_WORDS]; +#endif +#if defined(BCM2835_RNG_USE_CALLOUT) + struct callout sc_rngto; + int sc_rnghz; +#endif + int sc_stall_count; + int sc_rbg2x; + long sc_underrun; +}; + +static __inline void +bcm2835_rng_stat_inc_underrun(struct bcm2835_rng_softc *sc) +{ + + atomic_add_long(&sc->sc_underrun, 1); +} + +static __inline uint32_t +bcm2835_rng_read4(struct bcm2835_rng_softc *sc, bus_size_t off) +{ + + return bus_read_4(sc->sc_mem_res, off); +} + +static __inline void +bcm2835_rng_read_multi4(struct bcm2835_rng_softc *sc, bus_size_t off, + uint32_t *datap, bus_size_t count) +{ + + bus_read_multi_4(sc->sc_mem_res, off, datap, count); +} + +static __inline void +bcm2835_rng_write4(struct bcm2835_rng_softc *sc, bus_size_t off, uint32_t val) +{ + + bus_write_4(sc->sc_mem_res, off, val); +} + +static void +bcm2835_rng_dump_registers(struct bcm2835_rng_softc *sc, struct sbuf *sbp) +{ + uint32_t comblk2_osc, comblk1_osc, jclk_byp_div, val; + int i; + + /* Display RNG control register contents */ + val = bcm2835_rng_read4(sc, RNG_CTRL); + sbuf_printf(sbp, "RNG_CTRL (%08x)\n", val); + + comblk2_osc = (val & RNG_COMBLK2_OSC) >> RNG_COMBLK2_OSC_SHIFT; + sbuf_printf(sbp, " RNG_COMBLK2_OSC (%02x)\n", comblk2_osc); + for (i = 0; i < RNG_NUM_OSCILLATORS; i++) + if ((comblk2_osc & (1 << i)) == 0) + sbuf_printf(sbp, " Oscillator %d enabled\n", i + 1); + + comblk1_osc = (val & RNG_COMBLK1_OSC) >> RNG_COMBLK1_OSC_SHIFT; + sbuf_printf(sbp, " RNG_COMBLK1_OSC (%02x)\n", comblk1_osc); + for (i = 0; i < RNG_NUM_OSCILLATORS; i++) + if ((comblk1_osc & (1 << i)) == 0) + sbuf_printf(sbp, " Oscillator %d enabled\n", i + 1); + + jclk_byp_div = (val & RNG_JCLK_BYP_DIV_CNT) >> + RNG_JCLK_BYP_DIV_CNT_SHIFT; + sbuf_printf(sbp, + " RNG_JCLK_BYP_DIV_CNT (%02x)\n APB clock frequency / %d\n", + jclk_byp_div, 2 * (jclk_byp_div + 1)); + + sbuf_printf(sbp, " RNG_JCLK_BYP_SRC:\n %s\n", + (val & RNG_JCLK_BYP_SRC) ? "Use divided down APB clock" : + "Use RNG clock (APB clock)"); + + sbuf_printf(sbp, " RNG_JCLK_BYP_SEL:\n %s\n", + (val & RNG_JCLK_BYP_SEL) ? "Bypass internal jitter clock" : + "Use internal jitter clock"); + + if ((val & RNG_RBG2X) != 0) + sbuf_cat(sbp, " RNG_RBG2X: RNG 2X SPEED enabled\n"); + + if ((val & RNG_RBGEN_BIT) != 0) + sbuf_cat(sbp, " RNG_RBGEN_BIT: RBG enabled\n"); + + /* Display RNG status register contents */ + val = bcm2835_rng_read4(sc, RNG_STATUS); + sbuf_printf(sbp, "RNG_CTRL (%08x)\n", val); + sbuf_printf(sbp, " RND_VAL: %02x\n", + (val >> RND_VAL_SHIFT) & RND_VAL_MASK); + sbuf_printf(sbp, " RND_WARM_CNT: %05x\n", val & RND_WARM_CNT); + + /* Display FIFO threshold register contents */ + val = bcm2835_rng_read4(sc, RNG_FF_THRES); + sbuf_printf(sbp, "RNG_FF_THRES: %05x\n", val & RNG_FF_THRES_MASK); + + /* Display interrupt mask register contents */ + val = bcm2835_rng_read4(sc, RNG_INT_MASK); + sbuf_printf(sbp, "RNG_INT_MASK: interrupt %s\n", + ((val & RNG_INT_OFF_BIT) != 0) ? "disabled" : "enabled"); +} + +static void +bcm2835_rng_disable_intr(struct bcm2835_rng_softc *sc) +{ + uint32_t mask; + + /* Set the interrupt off bit in the interrupt mask register */ + mask = bcm2835_rng_read4(sc, RNG_INT_MASK); + mask |= RNG_INT_OFF_BIT; + bcm2835_rng_write4(sc, RNG_INT_MASK, mask); +} + +#if defined(BCM2835_RNG_USE_INTERRUPT) +static void +bcm2835_rng_enable_intr(struct bcm2835_rng_softc *sc) +{ + uint32_t mask; + + /* Clear the interrupt off bit in the interrupt mask register */ + mask = bcm2835_rng_read4(sc, RNG_INT_MASK); + mask &= ~RNG_INT_OFF_BIT; + bcm2835_rng_write4(sc, RNG_INT_MASK, mask); +} +#endif + +static void +bcm2835_rng_start(struct bcm2835_rng_softc *sc) +{ + uint32_t ctrl; + + /* Disable the interrupt */ + bcm2835_rng_disable_intr(sc); + + /* Set the warmup count */ + bcm2835_rng_write4(sc, RNG_STATUS, RND_VAL_WARM_CNT); + + /* Enable the RNG */ + ctrl = bcm2835_rng_read4(sc, RNG_CTRL); + ctrl |= RNG_RBGEN_BIT; + if (sc->sc_rbg2x) + ctrl |= RNG_RBG2X; + bcm2835_rng_write4(sc, RNG_CTRL, ctrl); + +#if defined(BCM2835_RNG_USE_INTERRUPT) + /* Enable the interrupt */ + bcm2835_rng_enable_intr(sc); +#endif +} + +static void +bcm2835_rng_stop(struct bcm2835_rng_softc *sc) +{ + uint32_t ctrl; + + /* Disable the RNG */ + ctrl = bcm2835_rng_read4(sc, RNG_CTRL); + ctrl &= ~RNG_RBGEN_BIT; + bcm2835_rng_write4(sc, RNG_CTRL, ctrl); +} + +static void +bcm2835_rng_harvest(struct bcm2835_rng_softc *sc) +{ + uint32_t *dest; + uint32_t status; + u_int cnt, nread, num_avail, num_words; + int seen_underrun, num_stalls; + + dest = sc->sc_buf; + nread = num_words = 0; + seen_underrun = num_stalls = 0; + for (cnt = sizeof(sc->sc_buf) / sizeof(uint32_t); cnt > 0; + cnt -= num_words) { + /* Read status register to find out how many words available */ + status = bcm2835_rng_read4(sc, RNG_STATUS); + num_avail = (status >> RND_VAL_SHIFT) & RND_VAL_MASK; + + /* If we have none... */ + if (num_avail == 0) { + bcm2835_rng_stat_inc_underrun(sc); + if (++seen_underrun >= sc->sc_stall_count) { + if (num_stalls++ > 0) { + device_printf(sc->sc_dev, + "RNG stalled, disabling device\n"); + bcm2835_rng_stop(sc); + break; + } else { + device_printf(sc->sc_dev, + "Too many underruns, resetting\n"); + bcm2835_rng_stop(sc); + bcm2835_rng_start(sc); + seen_underrun = 0; + } + } + /* Try again */ + continue; + } + + CTR2(KTR_DEV, "%s: %d words available in RNG FIFO", + device_get_nameunit(sc->sc_dev), num_avail); + + /* Pull MIN(num_avail, cnt) words from the FIFO */ + num_words = (num_avail > cnt) ? cnt : num_avail; + bcm2835_rng_read_multi4(sc, RNG_DATA, dest, + num_words); + dest += num_words; + nread += num_words; + } + + cnt = nread * sizeof(uint32_t); + if (cnt > 0) + random_harvest_queue(sc->sc_buf, cnt, cnt * NBBY / 2, + RANDOM_PURE_BROADCOM); + +#if defined(BCM2835_RNG_USE_CALLOUT) + callout_reset(&sc->sc_rngto, sc->sc_rnghz, bcm2835_rng_harvest, sc); +#endif +} + +static int +sysctl_bcm2835_rng_2xspeed(SYSCTL_HANDLER_ARGS) +{ + struct bcm2835_rng_softc *sc = arg1; + int error, rbg2x; + + rbg2x = sc->sc_rbg2x; + error = sysctl_handle_int(oidp, &rbg2x, 0, req); + if (error) + return (error); + if (req->newptr == NULL) + return (error); + if (rbg2x == sc->sc_rbg2x) + return (0); + + /* Reset the RNG */ + bcm2835_rng_stop(sc); + sc->sc_rbg2x = rbg2x; + bcm2835_rng_start(sc); + + return (0); +} + +#ifdef BCM2835_RNG_DEBUG_REGISTERS +static int +sysctl_bcm2835_rng_dump(SYSCTL_HANDLER_ARGS) +{ + struct sbuf sb; + struct bcm2835_rng_softc *sc = arg1; + int error; + + error = sysctl_wire_old_buffer(req, 0); + if (error != 0) + return (error); + sbuf_new_for_sysctl(&sb, NULL, 128, req); + bcm2835_rng_dump_registers(sc, &sb); + error = sbuf_finish(&sb); + sbuf_delete(&sb); + return (error); +} +#endif + +static int +bcm2835_rng_probe(device_t dev) +{ + + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (!ofw_bus_is_compatible(dev, "broadcom,bcm2835-rng")) + return (ENXIO); + + device_set_desc(dev, "Broadcom BCM2835 RNG"); + + return (BUS_PROBE_DEFAULT); +} + +static int +bcm2835_rng_attach(device_t dev) +{ + struct bcm2835_rng_softc *sc; + struct sysctl_ctx_list *sysctl_ctx; + struct sysctl_oid *sysctl_tree; + int error, rid; + + error = 0; + sc = device_get_softc(dev); + sc->sc_dev = dev; + sc->sc_stall_count = RNG_STALL_COUNT_DEFAULT; +#ifdef BCM2835_RNG_USE_CALLOUT + /* Initialize callout */ + callout_init(&sc->sc_rngto, CALLOUT_MPSAFE); +#endif + TUNABLE_INT_FETCH("bcmrng.2xspeed", &sc->sc_rbg2x); + TUNABLE_INT_FETCH("bcmrng.stall_count", &sc->sc_stall_count); + + /* Allocate memory resources */ + rid = 0; + sc->sc_mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, + RF_ACTIVE); + if (sc->sc_mem_res == NULL) { + bcm2835_rng_detach(dev); + return (ENXIO); + } + +#if defined(BCM2835_RNG_USE_INTERRUPT) + /* Allocate interrupt resource */ + rid = 0; + sc->sc_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, + RF_SHAREABLE | RF_ACTIVE); + if (sc->sc_irq_res == NULL) { + bcm2835_rng_detach(dev); + return (ENXIO); + } + + /* Set up the interrupt handler */ + error = bus_setup_intr(dev, sc->sc_irq_res, INTR_TYPE_BIO | INTR_MPSAFE, + NULL, (driver_intr_t *)bcm2835_rng_harvest, sc, &sc->sc_intr_hdl); + if (error) { + device_printf(dev, "Failed to set up IRQ\n"); + sc->sc_intr_hdl = NULL; + bcm2835_rng_detach(dev); + return (error); + } +#endif + + /* Start the RNG */ + bcm2835_rng_start(sc); + + /* Dump the registers if booting verbose */ + if (bootverbose) { + struct sbuf sb; + + (void) sbuf_new(&sb, NULL, 256, + SBUF_AUTOEXTEND | SBUF_INCLUDENUL); + bcm2835_rng_dump_registers(sc, &sb); + sbuf_trim(&sb); + error = sbuf_finish(&sb); + if (error == 0) + device_printf(dev, "%s", sbuf_data(&sb)); + sbuf_delete(&sb); + } + + sysctl_ctx = device_get_sysctl_ctx(dev); + sysctl_tree = device_get_sysctl_tree(dev); + SYSCTL_ADD_LONG(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, + "underrun", CTLFLAG_RD, &sc->sc_underrun, + "Number of FIFO underruns"); + SYSCTL_ADD_PROC(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, + "2xspeed", CTLTYPE_INT | CTLFLAG_RW, sc, 0, + sysctl_bcm2835_rng_2xspeed, "I", "Enable RBG 2X SPEED"); + SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, + "stall_count", CTLFLAG_RW, &sc->sc_stall_count, + RNG_STALL_COUNT_DEFAULT, "Number of underruns to assume RNG stall"); +#ifdef BCM2835_RNG_DEBUG_REGISTERS + SYSCTL_ADD_PROC(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, + "dumpregs", CTLTYPE_STRING | CTLFLAG_RD, sc, 0, + sysctl_bcm2835_rng_dump, "S", "Dump RNG registers"); +#endif + +#if defined(BCM2835_RNG_USE_CALLOUT) + /* Reset callout */ + if (hz >= 100) + sc->sc_rnghz = hz / 100; + else + sc->sc_rnghz = 1; + callout_reset(&sc->sc_rngto, sc->sc_rnghz, bcm2835_rng_harvest, sc); +#endif + + return (0); +} + +static int +bcm2835_rng_detach(device_t dev) +{ + struct bcm2835_rng_softc *sc; +#if defined(BCM2835_RNG_USE_INTERRUPT) + int error; +#endif + + sc = device_get_softc(dev); + + /* Stop the RNG */ + bcm2835_rng_stop(sc); + + /* Drain the callout it */ +#if defined(BCM2835_RNG_USE_CALLOUT) + callout_drain(&sc->sc_rngto); +#endif + +#if defined(BCM2835_RNG_USE_INTERRUPT) + /* Tear down the interrupt */ + if (sc->sc_irq_res && sc->sc_intr_hdl) { + error = bus_teardown_intr(dev, sc->sc_irq_res, sc->sc_intr_hdl); + if (error != 0) { + device_printf(dev, "could not tear down IRQ\n"); + return (error); + } + sc->sc_intr_hdl = NULL; + } + + /* Release interrupt resource */ + if (sc->sc_irq_res) { + bus_release_resource(dev, SYS_RES_IRQ, 0, sc->sc_irq_res); + sc->sc_irq_res = NULL; + } +#endif + + /* Release memory resource */ + if (sc->sc_mem_res != NULL) + bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->sc_mem_res); + + return (0); +} + +static device_method_t bcm2835_rng_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, bcm2835_rng_probe), + DEVMETHOD(device_attach, bcm2835_rng_attach), + DEVMETHOD(device_detach, bcm2835_rng_detach), + + DEVMETHOD_END +}; + +static driver_t bcm2835_rng_driver = { + "bcmrng", + bcm2835_rng_methods, + sizeof(struct bcm2835_rng_softc) +}; +static devclass_t bcm2835_rng_devclass; + +DRIVER_MODULE(bcm2835_rng, simplebus, bcm2835_rng_driver, + bcm2835_rng_devclass, 0, 0); +DRIVER_MODULE(bcm2835_rng, ofwbus, bcm2835_rng_driver, bcm2835_rng_devclass, 0, + 0); +MODULE_VERSION(bcm2835_rng, 1); +MODULE_DEPEND(bcm2835_rng, randomdev, 1, 1, 1); Modified: head/sys/arm/broadcom/bcm2835/files.bcm283x ============================================================================== --- head/sys/arm/broadcom/bcm2835/files.bcm283x Tue Jul 19 18:05:25 2016 (r303034) +++ head/sys/arm/broadcom/bcm2835/files.bcm283x Tue Jul 19 18:07:47 2016 (r303035) @@ -10,6 +10,7 @@ arm/broadcom/bcm2835/bcm2835_gpio.c opt arm/broadcom/bcm2835/bcm2835_intr.c standard arm/broadcom/bcm2835/bcm2835_machdep.c standard arm/broadcom/bcm2835/bcm2835_mbox.c standard +arm/broadcom/bcm2835/bcm2835_rng.c optional random arm/broadcom/bcm2835/bcm2835_sdhci.c optional sdhci arm/broadcom/bcm2835/bcm2835_spi.c optional bcm2835_spi arm/broadcom/bcm2835/bcm2835_vcio.c standard Modified: head/sys/boot/fdt/dts/arm/bcm2835.dtsi ============================================================================== --- head/sys/boot/fdt/dts/arm/bcm2835.dtsi Tue Jul 19 18:05:25 2016 (r303034) +++ head/sys/boot/fdt/dts/arm/bcm2835.dtsi Tue Jul 19 18:07:47 2016 (r303035) @@ -396,6 +396,14 @@ }; }; + rng { + compatible = "broadcom,bcm2835-rng", + "broadcom,bcm2708-rng"; + reg = <0x104000 0x20>; + interrupts = <69>; + interrupt-parent = <&intc>; + }; + bsc0 { #address-cells = <1>; #size-cells = <0>; Modified: head/sys/boot/fdt/dts/arm/bcm2836.dtsi ============================================================================== --- head/sys/boot/fdt/dts/arm/bcm2836.dtsi Tue Jul 19 18:05:25 2016 (r303034) +++ head/sys/boot/fdt/dts/arm/bcm2836.dtsi Tue Jul 19 18:07:47 2016 (r303035) @@ -389,6 +389,14 @@ }; }; + rng { + compatible = "broadcom,bcm2835-rng", + "broadcom,bcm2708-rng"; + reg = <0x104000 0x20>; + interrupts = <69>; + interrupt-parent = <&intc>; + }; + bsc0 { #address-cells = <1>; #size-cells = <0>; Modified: head/sys/sys/random.h ============================================================================== --- head/sys/sys/random.h Tue Jul 19 18:05:25 2016 (r303034) +++ head/sys/sys/random.h Tue Jul 19 18:07:47 2016 (r303035) @@ -90,6 +90,7 @@ enum random_entropy_source { RANDOM_PURE_NEHEMIAH, RANDOM_PURE_RNDTEST, RANDOM_PURE_VIRTIO, + RANDOM_PURE_BROADCOM, ENTROPYSOURCE }; From owner-svn-src-all@freebsd.org Tue Jul 19 18:10:02 2016 Return-Path: Delivered-To: svn-src-all@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 83B00B9D0C6; Tue, 19 Jul 2016 18:10:02 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (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 3931D119F; Tue, 19 Jul 2016 18:10:02 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:ECDHE-RSA-AES256-SHA:256) (Exim 4.87 (FreeBSD)) (envelope-from ) id 1bPZSv-000Bt2-TX; Tue, 19 Jul 2016 19:09:59 +0100 Subject: Re: svn commit: r303035 - in head/sys: arm/broadcom/bcm2835 boot/fdt/dts/arm sys Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Content-Type: multipart/signed; boundary="Apple-Mail=_B71B2847-D9CF-4269-8A6B-B7E495B14AC2"; protocol="application/pgp-signature"; micalg=pgp-sha1 X-Pgp-Agent: GPGMail 2.6.1 From: Mark R V Murray In-Reply-To: <201607191807.u6JI7lAq099753@repo.freebsd.org> Date: Tue, 19 Jul 2016 19:09:51 +0100 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-Id: References: <201607191807.u6JI7lAq099753@repo.freebsd.org> To: Mark Robert Vaughan Murray X-Mailer: Apple Mail (2.3124) X-SA-Score: -1.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 18:10:02 -0000 --Apple-Mail=_B71B2847-D9CF-4269-8A6B-B7E495B14AC2 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Hi * I'm going to get a bollicking for the formatting in this. Apologies in = advance! M > On 19 Jul 2016, at 19:07, Mark Murray wrote: >=20 > Author: markm > Date: Tue Jul 19 18:07:47 2016 > New Revision: 303035 > URL: https://svnweb.freebsd.org/changeset/base/303035 >=20 > Log: > Random bit generator (RBG) driver for RPi and RPi2. >=20 > Summary: > This driver supports the following methods to trigger gathering = random bits from the hardware: > 1. interrupt when the FIFO is full (default) fed into the harvest = queue > 2. callout (when BCM2835_RNG_USE_CALLOUT is defined) every second if = hz is less than 100, otherwise hz / 100, feeding the random bits into = the harvest queue >=20 > If the kernel is booted with verbose enabled, the contents of the = registers will be dumped after the RBG is started during the attach = routine. >=20 > Author: hackagadget_gmail.com (Stephen J. Kiernan) >=20 > Test Plan: Built RPI2 kernel and booted on board. Tested the = different methods to feed the harvest queue (callout, interrupt) and the = interrupt driven approach seems best. However, keeping the other method = for people to be able to experiment with. >=20 > Reviewed By: adrian, delphij, markm >=20 > Differential Revision: https://reviews.freebsd.org/D6888 >=20 > Added: > head/sys/arm/broadcom/bcm2835/bcm2835_rng.c (contents, props = changed) > Modified: > head/sys/arm/broadcom/bcm2835/files.bcm283x > head/sys/boot/fdt/dts/arm/bcm2835.dtsi > head/sys/boot/fdt/dts/arm/bcm2836.dtsi > head/sys/sys/random.h >=20 > Added: head/sys/arm/broadcom/bcm2835/bcm2835_rng.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/sys/arm/broadcom/bcm2835/bcm2835_rng.c Tue Jul 19 = 18:07:47 2016 (r303035) > @@ -0,0 +1,534 @@ > +/* > + * Copyright (c) 2015, 2016, Stephen J. Kiernan > + * 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 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 > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include > +#include > + > +#include > +#include > +#include > + > +#include > +#include > + > +#if !defined(BCM2835_RNG_USE_CALLOUT) > +#define BCM2835_RNG_USE_INTERRUPT > +#endif > + > +static device_attach_t bcm2835_rng_attach; > +static device_detach_t bcm2835_rng_detach; > +static device_probe_t bcm2835_rng_probe; > + > +#define RNG_CTRL 0x00 /* RNG Control = Register */ > +#define RNG_COMBLK1_OSC 0x003f0000 /* Combiner Blk = 1 Oscillator */ > +#define RNG_COMBLK1_OSC_SHIFT 16 > +#define RNG_COMBLK2_OSC 0x0fc00000 /* Combiner Blk = 2 Oscillator */ > +#define RNG_COMBLK2_OSC_SHIFT 22 > +#define RNG_JCLK_BYP_DIV_CNT 0x0000ff00 /* Jitter clk = bypass divider > + count */ > +#define RNG_JCLK_BYP_DIV_CNT_SHIFT 8 > +#define RNG_JCLK_BYP_SRC 0x00000020 /* Jitter clk = bypass source */ > +#define RNG_JCLK_BYP_SEL 0x00000010 /* Jitter clk = bypass select */ > +#define RNG_RBG2X 0x00000002 /* RBG 2X SPEED = */ > +#define RNG_RBGEN_BIT 0x00000001 /* Enable RNG = bit */ > + > +#define RNG_STATUS 0x04 /* RNG status = register */ > +#define RND_VAL_SHIFT 24 /* Shift for = valid words */ > +#define RND_VAL_MASK 0x000000ff /* Number valid = words mask */ > +#define RND_VAL_WARM_CNT 0x40000 /* RNG Warm Up = count */ > +#define RND_WARM_CNT 0xfffff /* RNG Warm Up = Count mask */ > + > +#define RNG_DATA 0x08 /* RNG Data = Register */ > +#define RNG_FF_THRES 0x0c > +#define RNG_FF_THRES_MASK 0x0000001f > + > +#define RNG_INT_MASK 0x10 > +#define RNG_INT_OFF_BIT 0x00000001 > + > +#define RNG_FF_DEFAULT 0x10 /* FIFO = threshold default */ > + > +#define RNG_FIFO_WORDS (RNG_FF_DEFAULT / = sizeof(uint32_t)) > + > +#define RNG_NUM_OSCILLATORS 6 > +#define RNG_STALL_COUNT_DEFAULT 10 > + > +struct bcm2835_rng_softc { > + device_t sc_dev; > + struct resource * sc_mem_res; > + struct resource * sc_irq_res; > + void * sc_intr_hdl; > +#if defined(BCM2835_RNG_USE_CALLOUT) || = defined(BCM2835_RNG_USE_INTERRUPT) > + uint32_t sc_buf[RNG_FIFO_WORDS]; > +#endif > +#if defined(BCM2835_RNG_USE_CALLOUT) > + struct callout sc_rngto; > + int sc_rnghz; > +#endif > + int sc_stall_count; > + int sc_rbg2x; > + long sc_underrun; > +}; > + > +static __inline void > +bcm2835_rng_stat_inc_underrun(struct bcm2835_rng_softc *sc) > +{ > + > + atomic_add_long(&sc->sc_underrun, 1); > +} > + > +static __inline uint32_t > +bcm2835_rng_read4(struct bcm2835_rng_softc *sc, bus_size_t off) > +{ > + > + return bus_read_4(sc->sc_mem_res, off); > +} > + > +static __inline void > +bcm2835_rng_read_multi4(struct bcm2835_rng_softc *sc, bus_size_t off, > + uint32_t *datap, bus_size_t count) > +{ > + > + bus_read_multi_4(sc->sc_mem_res, off, datap, count); > +} > + > +static __inline void > +bcm2835_rng_write4(struct bcm2835_rng_softc *sc, bus_size_t off, = uint32_t val) > +{ > + > + bus_write_4(sc->sc_mem_res, off, val); > +} > + > +static void > +bcm2835_rng_dump_registers(struct bcm2835_rng_softc *sc, struct sbuf = *sbp) > +{ > + uint32_t comblk2_osc, comblk1_osc, jclk_byp_div, val; > + int i; > + > + /* Display RNG control register contents */ > + val =3D bcm2835_rng_read4(sc, RNG_CTRL); > + sbuf_printf(sbp, "RNG_CTRL (%08x)\n", val); > + > + comblk2_osc =3D (val & RNG_COMBLK2_OSC) >> = RNG_COMBLK2_OSC_SHIFT; > + sbuf_printf(sbp, " RNG_COMBLK2_OSC (%02x)\n", comblk2_osc); > + for (i =3D 0; i < RNG_NUM_OSCILLATORS; i++) > + if ((comblk2_osc & (1 << i)) =3D=3D 0) > + sbuf_printf(sbp, " Oscillator %d enabled\n", = i + 1); > + > + comblk1_osc =3D (val & RNG_COMBLK1_OSC) >> = RNG_COMBLK1_OSC_SHIFT; > + sbuf_printf(sbp, " RNG_COMBLK1_OSC (%02x)\n", comblk1_osc); > + for (i =3D 0; i < RNG_NUM_OSCILLATORS; i++) > + if ((comblk1_osc & (1 << i)) =3D=3D 0) > + sbuf_printf(sbp, " Oscillator %d enabled\n", = i + 1); > + > + jclk_byp_div =3D (val & RNG_JCLK_BYP_DIV_CNT) >> > + RNG_JCLK_BYP_DIV_CNT_SHIFT; > + sbuf_printf(sbp, > + " RNG_JCLK_BYP_DIV_CNT (%02x)\n APB clock frequency / = %d\n", > + jclk_byp_div, 2 * (jclk_byp_div + 1)); > + > + sbuf_printf(sbp, " RNG_JCLK_BYP_SRC:\n %s\n", > + (val & RNG_JCLK_BYP_SRC) ? "Use divided down APB clock" : > + "Use RNG clock (APB clock)"); > + > + sbuf_printf(sbp, " RNG_JCLK_BYP_SEL:\n %s\n", > + (val & RNG_JCLK_BYP_SEL) ? "Bypass internal jitter clock" : > + "Use internal jitter clock"); > + > + if ((val & RNG_RBG2X) !=3D 0) > + sbuf_cat(sbp, " RNG_RBG2X: RNG 2X SPEED enabled\n"); > + > + if ((val & RNG_RBGEN_BIT) !=3D 0) > + sbuf_cat(sbp, " RNG_RBGEN_BIT: RBG enabled\n"); > + > + /* Display RNG status register contents */ > + val =3D bcm2835_rng_read4(sc, RNG_STATUS); > + sbuf_printf(sbp, "RNG_CTRL (%08x)\n", val); > + sbuf_printf(sbp, " RND_VAL: %02x\n", > + (val >> RND_VAL_SHIFT) & RND_VAL_MASK); > + sbuf_printf(sbp, " RND_WARM_CNT: %05x\n", val & RND_WARM_CNT); > + > + /* Display FIFO threshold register contents */ > + val =3D bcm2835_rng_read4(sc, RNG_FF_THRES); > + sbuf_printf(sbp, "RNG_FF_THRES: %05x\n", val & = RNG_FF_THRES_MASK); > + > + /* Display interrupt mask register contents */ > + val =3D bcm2835_rng_read4(sc, RNG_INT_MASK); > + sbuf_printf(sbp, "RNG_INT_MASK: interrupt %s\n", > + ((val & RNG_INT_OFF_BIT) !=3D 0) ? "disabled" : "enabled"); > +} > + > +static void > +bcm2835_rng_disable_intr(struct bcm2835_rng_softc *sc) > +{ > + uint32_t mask; > + > + /* Set the interrupt off bit in the interrupt mask register */ > + mask =3D bcm2835_rng_read4(sc, RNG_INT_MASK); > + mask |=3D RNG_INT_OFF_BIT; > + bcm2835_rng_write4(sc, RNG_INT_MASK, mask); > +} > + > +#if defined(BCM2835_RNG_USE_INTERRUPT) > +static void > +bcm2835_rng_enable_intr(struct bcm2835_rng_softc *sc) > +{ > + uint32_t mask; > + > + /* Clear the interrupt off bit in the interrupt mask register */ > + mask =3D bcm2835_rng_read4(sc, RNG_INT_MASK); > + mask &=3D ~RNG_INT_OFF_BIT; > + bcm2835_rng_write4(sc, RNG_INT_MASK, mask); > +} > +#endif > + > +static void > +bcm2835_rng_start(struct bcm2835_rng_softc *sc) > +{ > + uint32_t ctrl; > + > + /* Disable the interrupt */ > + bcm2835_rng_disable_intr(sc); > + > + /* Set the warmup count */ > + bcm2835_rng_write4(sc, RNG_STATUS, RND_VAL_WARM_CNT); > + > + /* Enable the RNG */ > + ctrl =3D bcm2835_rng_read4(sc, RNG_CTRL); > + ctrl |=3D RNG_RBGEN_BIT; > + if (sc->sc_rbg2x) > + ctrl |=3D RNG_RBG2X; > + bcm2835_rng_write4(sc, RNG_CTRL, ctrl); > + > +#if defined(BCM2835_RNG_USE_INTERRUPT) > + /* Enable the interrupt */ > + bcm2835_rng_enable_intr(sc); > +#endif > +} > + > +static void > +bcm2835_rng_stop(struct bcm2835_rng_softc *sc) > +{ > + uint32_t ctrl; > + > + /* Disable the RNG */ > + ctrl =3D bcm2835_rng_read4(sc, RNG_CTRL); > + ctrl &=3D ~RNG_RBGEN_BIT; > + bcm2835_rng_write4(sc, RNG_CTRL, ctrl); > +} > + > +static void > +bcm2835_rng_harvest(struct bcm2835_rng_softc *sc) > +{ > + uint32_t *dest; > + uint32_t status; > + u_int cnt, nread, num_avail, num_words; > + int seen_underrun, num_stalls; > + > + dest =3D sc->sc_buf; > + nread =3D num_words =3D 0; > + seen_underrun =3D num_stalls =3D 0; > + for (cnt =3D sizeof(sc->sc_buf) / sizeof(uint32_t); cnt > 0; > + cnt -=3D num_words) { > + /* Read status register to find out how many words = available */ > + status =3D bcm2835_rng_read4(sc, RNG_STATUS); > + num_avail =3D (status >> RND_VAL_SHIFT) & RND_VAL_MASK; > + > + /* If we have none... */ > + if (num_avail =3D=3D 0) { > + bcm2835_rng_stat_inc_underrun(sc); > + if (++seen_underrun >=3D sc->sc_stall_count) { > + if (num_stalls++ > 0) { > + device_printf(sc->sc_dev, > + "RNG stalled, disabling = device\n"); > + bcm2835_rng_stop(sc); > + break; > + } else { > + device_printf(sc->sc_dev, > + "Too many underruns, = resetting\n"); > + bcm2835_rng_stop(sc); > + bcm2835_rng_start(sc); > + seen_underrun =3D 0; > + } > + } > + /* Try again */ > + continue; > + } > + > + CTR2(KTR_DEV, "%s: %d words available in RNG FIFO", > + device_get_nameunit(sc->sc_dev), num_avail); > + > + /* Pull MIN(num_avail, cnt) words from the FIFO */ > + num_words =3D (num_avail > cnt) ? cnt : num_avail; > + bcm2835_rng_read_multi4(sc, RNG_DATA, dest, > + num_words); > + dest +=3D num_words; > + nread +=3D num_words; > + } > + > + cnt =3D nread * sizeof(uint32_t); > + if (cnt > 0) > + random_harvest_queue(sc->sc_buf, cnt, cnt * NBBY / 2, > + RANDOM_PURE_BROADCOM); > + > +#if defined(BCM2835_RNG_USE_CALLOUT) > + callout_reset(&sc->sc_rngto, sc->sc_rnghz, bcm2835_rng_harvest, = sc); > +#endif > +} > + > +static int > +sysctl_bcm2835_rng_2xspeed(SYSCTL_HANDLER_ARGS) > +{ > + struct bcm2835_rng_softc *sc =3D arg1; > + int error, rbg2x; > + > + rbg2x =3D sc->sc_rbg2x; > + error =3D sysctl_handle_int(oidp, &rbg2x, 0, req); > + if (error) > + return (error); > + if (req->newptr =3D=3D NULL) > + return (error); > + if (rbg2x =3D=3D sc->sc_rbg2x) > + return (0); > + > + /* Reset the RNG */ > + bcm2835_rng_stop(sc); > + sc->sc_rbg2x =3D rbg2x; > + bcm2835_rng_start(sc); > + > + return (0); > +} > + > +#ifdef BCM2835_RNG_DEBUG_REGISTERS > +static int > +sysctl_bcm2835_rng_dump(SYSCTL_HANDLER_ARGS) > +{ > + struct sbuf sb; > + struct bcm2835_rng_softc *sc =3D arg1; > + int error; > + > + error =3D sysctl_wire_old_buffer(req, 0); > + if (error !=3D 0) > + return (error); > + sbuf_new_for_sysctl(&sb, NULL, 128, req); > + bcm2835_rng_dump_registers(sc, &sb); > + error =3D sbuf_finish(&sb); > + sbuf_delete(&sb); > + return (error); > +} > +#endif > + > +static int > +bcm2835_rng_probe(device_t dev) > +{ > + > + if (!ofw_bus_status_okay(dev)) > + return (ENXIO); > + > + if (!ofw_bus_is_compatible(dev, "broadcom,bcm2835-rng")) > + return (ENXIO); > + > + device_set_desc(dev, "Broadcom BCM2835 RNG"); > + > + return (BUS_PROBE_DEFAULT); > +} > + > +static int > +bcm2835_rng_attach(device_t dev) > +{ > + struct bcm2835_rng_softc *sc; > + struct sysctl_ctx_list *sysctl_ctx; > + struct sysctl_oid *sysctl_tree; > + int error, rid; > + > + error =3D 0; > + sc =3D device_get_softc(dev); > + sc->sc_dev =3D dev; > + sc->sc_stall_count =3D RNG_STALL_COUNT_DEFAULT; > +#ifdef BCM2835_RNG_USE_CALLOUT > + /* Initialize callout */ > + callout_init(&sc->sc_rngto, CALLOUT_MPSAFE); > +#endif > + TUNABLE_INT_FETCH("bcmrng.2xspeed", &sc->sc_rbg2x); > + TUNABLE_INT_FETCH("bcmrng.stall_count", &sc->sc_stall_count); > + > + /* Allocate memory resources */ > + rid =3D 0; > + sc->sc_mem_res =3D bus_alloc_resource_any(dev, SYS_RES_MEMORY, = &rid, > + RF_ACTIVE); > + if (sc->sc_mem_res =3D=3D NULL) { > + bcm2835_rng_detach(dev); > + return (ENXIO); > + } > + > +#if defined(BCM2835_RNG_USE_INTERRUPT) > + /* Allocate interrupt resource */ > + rid =3D 0; > + sc->sc_irq_res =3D bus_alloc_resource_any(dev, SYS_RES_IRQ, = &rid, > + RF_SHAREABLE | RF_ACTIVE); > + if (sc->sc_irq_res =3D=3D NULL) { > + bcm2835_rng_detach(dev); > + return (ENXIO); > + } > + > + /* Set up the interrupt handler */ > + error =3D bus_setup_intr(dev, sc->sc_irq_res, INTR_TYPE_BIO | = INTR_MPSAFE, > + NULL, (driver_intr_t *)bcm2835_rng_harvest, sc, = &sc->sc_intr_hdl); > + if (error) { > + device_printf(dev, "Failed to set up IRQ\n"); > + sc->sc_intr_hdl =3D NULL; > + bcm2835_rng_detach(dev); > + return (error); > + } > +#endif > + > + /* Start the RNG */ > + bcm2835_rng_start(sc); > + > + /* Dump the registers if booting verbose */ > + if (bootverbose) { > + struct sbuf sb; > + > + (void) sbuf_new(&sb, NULL, 256, > + SBUF_AUTOEXTEND | SBUF_INCLUDENUL); > + bcm2835_rng_dump_registers(sc, &sb); > + sbuf_trim(&sb); > + error =3D sbuf_finish(&sb); > + if (error =3D=3D 0) > + device_printf(dev, "%s", sbuf_data(&sb)); > + sbuf_delete(&sb); > + } > + > + sysctl_ctx =3D device_get_sysctl_ctx(dev); > + sysctl_tree =3D device_get_sysctl_tree(dev); > + SYSCTL_ADD_LONG(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), = OID_AUTO, > + "underrun", CTLFLAG_RD, &sc->sc_underrun, > + "Number of FIFO underruns"); > + SYSCTL_ADD_PROC(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), = OID_AUTO, > + "2xspeed", CTLTYPE_INT | CTLFLAG_RW, sc, 0, > + sysctl_bcm2835_rng_2xspeed, "I", "Enable RBG 2X SPEED"); > + SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), = OID_AUTO, > + "stall_count", CTLFLAG_RW, &sc->sc_stall_count, > + RNG_STALL_COUNT_DEFAULT, "Number of underruns to assume RNG = stall"); > +#ifdef BCM2835_RNG_DEBUG_REGISTERS > + SYSCTL_ADD_PROC(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), = OID_AUTO, > + "dumpregs", CTLTYPE_STRING | CTLFLAG_RD, sc, 0, > + sysctl_bcm2835_rng_dump, "S", "Dump RNG registers"); > +#endif > + > +#if defined(BCM2835_RNG_USE_CALLOUT) > + /* Reset callout */ > + if (hz >=3D 100) > + sc->sc_rnghz =3D hz / 100; > + else > + sc->sc_rnghz =3D 1; > + callout_reset(&sc->sc_rngto, sc->sc_rnghz, bcm2835_rng_harvest, = sc); > +#endif > + > + return (0); > +} > + > +static int > +bcm2835_rng_detach(device_t dev) > +{ > + struct bcm2835_rng_softc *sc; > +#if defined(BCM2835_RNG_USE_INTERRUPT) > + int error; > +#endif > + > + sc =3D device_get_softc(dev); > + > + /* Stop the RNG */ > + bcm2835_rng_stop(sc); > + > + /* Drain the callout it */ > +#if defined(BCM2835_RNG_USE_CALLOUT) > + callout_drain(&sc->sc_rngto); > +#endif > + > +#if defined(BCM2835_RNG_USE_INTERRUPT) > + /* Tear down the interrupt */ > + if (sc->sc_irq_res && sc->sc_intr_hdl) { > + error =3D bus_teardown_intr(dev, sc->sc_irq_res, = sc->sc_intr_hdl); > + if (error !=3D 0) { > + device_printf(dev, "could not tear down IRQ\n"); > + return (error); > + } > + sc->sc_intr_hdl =3D NULL; > + } > + > + /* Release interrupt resource */ > + if (sc->sc_irq_res) { > + bus_release_resource(dev, SYS_RES_IRQ, 0, = sc->sc_irq_res); > + sc->sc_irq_res =3D NULL; > + } > +#endif > + > + /* Release memory resource */ > + if (sc->sc_mem_res !=3D NULL) > + bus_release_resource(dev, SYS_RES_MEMORY, 0, = sc->sc_mem_res); > + > + return (0); > +} > + > +static device_method_t bcm2835_rng_methods[] =3D { > + /* Device interface */ > + DEVMETHOD(device_probe, bcm2835_rng_probe), > + DEVMETHOD(device_attach, bcm2835_rng_attach), > + DEVMETHOD(device_detach, bcm2835_rng_detach), > + > + DEVMETHOD_END > +}; > + > +static driver_t bcm2835_rng_driver =3D { > + "bcmrng", > + bcm2835_rng_methods, > + sizeof(struct bcm2835_rng_softc) > +}; > +static devclass_t bcm2835_rng_devclass; > + > +DRIVER_MODULE(bcm2835_rng, simplebus, bcm2835_rng_driver, > + bcm2835_rng_devclass, 0, 0); > +DRIVER_MODULE(bcm2835_rng, ofwbus, bcm2835_rng_driver, = bcm2835_rng_devclass, 0, > + 0); > +MODULE_VERSION(bcm2835_rng, 1); > +MODULE_DEPEND(bcm2835_rng, randomdev, 1, 1, 1); >=20 > Modified: head/sys/arm/broadcom/bcm2835/files.bcm283x > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/arm/broadcom/bcm2835/files.bcm283x Tue Jul 19 = 18:05:25 2016 (r303034) > +++ head/sys/arm/broadcom/bcm2835/files.bcm283x Tue Jul 19 = 18:07:47 2016 (r303035) > @@ -10,6 +10,7 @@ arm/broadcom/bcm2835/bcm2835_gpio.c opt > arm/broadcom/bcm2835/bcm2835_intr.c standard > arm/broadcom/bcm2835/bcm2835_machdep.c standard > arm/broadcom/bcm2835/bcm2835_mbox.c standard > +arm/broadcom/bcm2835/bcm2835_rng.c optional random > arm/broadcom/bcm2835/bcm2835_sdhci.c optional sdhci > arm/broadcom/bcm2835/bcm2835_spi.c optional bcm2835_spi > arm/broadcom/bcm2835/bcm2835_vcio.c standard >=20 > Modified: head/sys/boot/fdt/dts/arm/bcm2835.dtsi > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/boot/fdt/dts/arm/bcm2835.dtsi Tue Jul 19 18:05:25 2016 = (r303034) > +++ head/sys/boot/fdt/dts/arm/bcm2835.dtsi Tue Jul 19 18:07:47 2016 = (r303035) > @@ -396,6 +396,14 @@ > }; > }; >=20 > + rng { > + compatible =3D "broadcom,bcm2835-rng", > + "broadcom,bcm2708-rng"; > + reg =3D <0x104000 0x20>; > + interrupts =3D <69>; > + interrupt-parent =3D <&intc>; > + }; > + > bsc0 { > #address-cells =3D <1>; > #size-cells =3D <0>; >=20 > Modified: head/sys/boot/fdt/dts/arm/bcm2836.dtsi > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/boot/fdt/dts/arm/bcm2836.dtsi Tue Jul 19 18:05:25 2016 = (r303034) > +++ head/sys/boot/fdt/dts/arm/bcm2836.dtsi Tue Jul 19 18:07:47 2016 = (r303035) > @@ -389,6 +389,14 @@ > }; > }; >=20 > + rng { > + compatible =3D "broadcom,bcm2835-rng", > + "broadcom,bcm2708-rng"; > + reg =3D <0x104000 0x20>; > + interrupts =3D <69>; > + interrupt-parent =3D <&intc>; > + }; > + > bsc0 { > #address-cells =3D <1>; > #size-cells =3D <0>; >=20 > Modified: head/sys/sys/random.h > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/sys/random.h Tue Jul 19 18:05:25 2016 = (r303034) > +++ head/sys/sys/random.h Tue Jul 19 18:07:47 2016 = (r303035) > @@ -90,6 +90,7 @@ enum random_entropy_source { > RANDOM_PURE_NEHEMIAH, > RANDOM_PURE_RNDTEST, > RANDOM_PURE_VIRTIO, > + RANDOM_PURE_BROADCOM, > ENTROPYSOURCE > }; >=20 >=20 -- Mark R V Murray --Apple-Mail=_B71B2847-D9CF-4269-8A6B-B7E495B14AC2 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.30 Comment: GPGTools - http://gpgtools.org iEYEARECAAYFAleObPUACgkQzQuKNftX15Ow7gCgpqW4NCMmkhQci4TOSrj/mFzK dmIAnjNBi+ycgdd/b8kJNbh3oMnj6NX6 =X9dj -----END PGP SIGNATURE----- --Apple-Mail=_B71B2847-D9CF-4269-8A6B-B7E495B14AC2-- From owner-svn-src-all@freebsd.org Tue Jul 19 18:15:24 2016 Return-Path: Delivered-To: svn-src-all@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 1A29DB9D351; Tue, 19 Jul 2016 18:15:24 +0000 (UTC) (envelope-from emaste@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 C58941709; Tue, 19 Jul 2016 18:15:23 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JIFMCR003687; Tue, 19 Jul 2016 18:15:22 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JIFM2W003685; Tue, 19 Jul 2016 18:15:22 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607191815.u6JIFM2W003685@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 19 Jul 2016 18:15:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303036 - head/usr.sbin/makefs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 18:15:24 -0000 Author: emaste Date: Tue Jul 19 18:15:22 2016 New Revision: 303036 URL: https://svnweb.freebsd.org/changeset/base/303036 Log: makefs: reorder 'usage' alphabetically From NetBSD, Mon Aug 15 14:45:01 2011 +0000 (wiz) Re-order `usage' alphabetically; rename option arguments in the manpage's `SYNOPSIS' section to match those from `usage' (not the other way around; the `usage'-line (and other parts of makefs.c) contain the correct names); minor punctuation improvements. From Snader_LB. makefs.8 1.36 makefs.c 1.30 Obtained from: NetBSD Modified: head/usr.sbin/makefs/makefs.8 head/usr.sbin/makefs/makefs.c Modified: head/usr.sbin/makefs/makefs.8 ============================================================================== --- head/usr.sbin/makefs/makefs.8 Tue Jul 19 18:07:47 2016 (r303035) +++ head/usr.sbin/makefs/makefs.8 Tue Jul 19 18:15:22 2016 (r303036) @@ -401,7 +401,8 @@ The utility appeared in .Nx 1.6 . .Sh AUTHORS -.An Luke Mewburn Aq Mt lukem@NetBSD.org +.An Luke Mewburn +.Aq Mt lukem@NetBSD.org (original program), .An Daniel Watt , .An Walter Deignan , Modified: head/usr.sbin/makefs/makefs.c ============================================================================== --- head/usr.sbin/makefs/makefs.c Tue Jul 19 18:07:47 2016 (r303035) +++ head/usr.sbin/makefs/makefs.c Tue Jul 19 18:15:22 2016 (r303036) @@ -403,10 +403,10 @@ usage(void) prog = getprogname(); fprintf(stderr, -"usage: %s [-t fs-type] [-o fs-options] [-d debug-mask] [-B endian]\n" -"\t[-S sector-size] [-M minimum-size] [-m maximum-size] [-R roundup-size]\n" -"\t[-s image-size] [-b free-blocks] [-f free-files] [-F mtree-specfile]\n" -"\t[-xZ] [-N userdb-dir] [-T ]\n" +"usage: %s [-xZ] [-B endian] [-b free-blocks] [-d debug-mask]\n" +"\t[-F mtree-specfile] [-f free-files] [-M minimum-size] [-m maximum-size]\n" +"\t[-N userdb-dir] [-o fs-options] [-R roundup-size] [-S sector-size]\n" +"\t[-s image-size] [-T ] [-t fs-type]\n" "\timage-file directory | manifest [extra-directory ...]\n", prog); exit(1); From owner-svn-src-all@freebsd.org Tue Jul 19 18:21:19 2016 Return-Path: Delivered-To: svn-src-all@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 3BA91B9D580; Tue, 19 Jul 2016 18:21:19 +0000 (UTC) (envelope-from ken@freebsd.org) Received: from mithlond.kdm.org (mithlond.kdm.org [96.89.93.250]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "A1-33714", Issuer "A1-33714" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 15EC61BBF; Tue, 19 Jul 2016 18:21:18 +0000 (UTC) (envelope-from ken@freebsd.org) Received: from [10.0.0.27] (mbp2013-wired.int.kdm.org [10.0.0.27]) (authenticated bits=0) by mithlond.kdm.org (8.15.2/8.14.9) with ESMTPSA id u6JI0BvL093581 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 19 Jul 2016 14:00:12 -0400 (EDT) (envelope-from ken@freebsd.org) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: svn commit: r297023 - head/sbin/kldstat From: Ken Merry In-Reply-To: <201603181449.u2IEnCeN071630@repo.freebsd.org> Date: Tue, 19 Jul 2016 14:00:11 -0400 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201603181449.u2IEnCeN071630@repo.freebsd.org> To: Julian Elischer X-Mailer: Apple Mail (2.3124) X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mithlond.kdm.org [96.89.93.250]); Tue, 19 Jul 2016 14:00:12 -0400 (EDT) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 18:21:19 -0000 > On Mar 18, 2016, at 10:49 AM, Julian Elischer = wrote: >=20 > Author: julian > Date: Fri Mar 18 14:49:11 2016 > New Revision: 297023 > URL: https://svnweb.freebsd.org/changeset/base/297023 >=20 > Log: > Add the ability to print out ht emodule specific information in = likely formats. > Among other things this gives us the ability to find outthe syscall = number of a dynamically loaded syscall that has a dynamicly allocated = vector number. >=20 > MFC after: 1 week > Sponsored by: Panzura inc. >=20 > Modified: > head/sbin/kldstat/kldstat.8 > head/sbin/kldstat/kldstat.c >=20 > Modified: head/sbin/kldstat/kldstat.8 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sbin/kldstat/kldstat.8 Fri Mar 18 13:32:37 2016 = (r297022) > +++ head/sbin/kldstat/kldstat.8 Fri Mar 18 14:49:11 2016 = (r297023) > @@ -36,10 +36,12 @@ > .Op Fl h > .Op Fl q > .Op Fl v > +.Op Fl d > .Op Fl i Ar id > .Op Fl n Ar filename > .Nm > .Op Fl q > +.Op Fl d > .Op Fl m Ar modname > .Sh DESCRIPTION > The > @@ -54,6 +56,8 @@ Display the size field in a human-readab > instead of hex values. > .It Fl v > Be more verbose. > +.It Fl d > +Show the module specific data (as int, unsigned int and unsigned = long) > .It Fl i Ar id > Display the status of only the file with this ID. > .It Fl n Ar filename >=20 > Modified: head/sbin/kldstat/kldstat.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sbin/kldstat/kldstat.c Fri Mar 18 13:32:37 2016 = (r297022) > +++ head/sbin/kldstat/kldstat.c Fri Mar 18 14:49:11 2016 = (r297023) > @@ -36,19 +36,28 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > +#include >=20 > #define POINTER_WIDTH ((int)(sizeof(void *) * 2 + 2)) >=20 > +static int showdata =3D 0; > + > static void > printmod(int modid) > { > struct module_stat stat; >=20 > + bzero(&stat, sizeof(stat)); > stat.version =3D sizeof(struct module_stat); > if (modstat(modid, &stat) < 0) > warn("can't stat module id %d", modid); > else > - printf("\t\t%2d %s\n", stat.id, stat.name); > + if (showdata) { > + printf("\t\t%2d %s (%d, %u, 0x%lx)\n", stat.id, stat.name,=20= > + stat.data.intval, stat.data.uintval, = stat.data.ulongval); > + } else { > + printf("\t\t%2d %s\n", stat.id, stat.name); > + } > } >=20 > static void > @@ -88,8 +97,8 @@ printfile(int fileid, int verbose, int h > static void > usage(void) > { > - fprintf(stderr, "usage: kldstat [-h] [-q] [-v] [-i id] [-n = filename]\n"); > - fprintf(stderr, " kldstat [-q] [-m modname]\n"); > + fprintf(stderr, "usage: kldstata[-d] [-h] [-q] [-v] [-i id] [-n = filename]\n"); > + fprintf(stderr, " kldstat [-d] [-q] [-m modname]\n=E2=80=9D);= Looks like there is a typo in the usage. Ken= From owner-svn-src-all@freebsd.org Tue Jul 19 18:31:20 2016 Return-Path: Delivered-To: svn-src-all@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 B16BAB9DCF2; Tue, 19 Jul 2016 18:31:20 +0000 (UTC) (envelope-from rrs@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 8A3E915DD; Tue, 19 Jul 2016 18:31:20 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JIVJc0007543; Tue, 19 Jul 2016 18:31:19 GMT (envelope-from rrs@FreeBSD.org) Received: (from rrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JIVJWq007542; Tue, 19 Jul 2016 18:31:19 GMT (envelope-from rrs@FreeBSD.org) Message-Id: <201607191831.u6JIVJWq007542@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rrs set sender to rrs@FreeBSD.org using -f From: Randall Stewart Date: Tue, 19 Jul 2016 18:31:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303037 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 18:31:20 -0000 Author: rrs Date: Tue Jul 19 18:31:19 2016 New Revision: 303037 URL: https://svnweb.freebsd.org/changeset/base/303037 Log: This reverts out Gleb's changes and adds three small fixes that I think closes up the races Gleb was looking for. This is running quite nicely in Netflix and now no longer causes TCP-tcb leaks. Differential Revision: 7135 Modified: head/sys/kern/kern_timeout.c Modified: head/sys/kern/kern_timeout.c ============================================================================== --- head/sys/kern/kern_timeout.c Tue Jul 19 18:15:22 2016 (r303036) +++ head/sys/kern/kern_timeout.c Tue Jul 19 18:31:19 2016 (r303037) @@ -1050,7 +1050,7 @@ callout_reset_sbt_on(struct callout *c, */ if (c->c_lock != NULL && !cc_exec_cancel(cc, direct)) cancelled = cc_exec_cancel(cc, direct) = true; - if (cc_exec_waiting(cc, direct)) { + if (cc_exec_waiting(cc, direct) || cc_exec_drain(cc, direct)) { /* * Someone has called callout_drain to kill this * callout. Don't reschedule. @@ -1166,7 +1166,7 @@ _callout_stop_safe(struct callout *c, in struct callout_cpu *cc, *old_cc; struct lock_class *class; int direct, sq_locked, use_lock; - int cancelled, not_on_a_list; + int not_on_a_list; if ((flags & CS_DRAIN) != 0) WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, c->c_lock, @@ -1234,17 +1234,47 @@ again: panic("migration should not happen"); #endif } - + if ((drain != NULL) && (c->c_iflags & CALLOUT_PENDING) && + (cc_exec_curr(cc, direct) != c)) { + /* + * This callout is executing and we are draining. + * The only way this can happen is if its also + * been rescheduled to run on one thread *and* asked to drain + * on this thread (at the same time it is waiting to execute). + */ + if ((c->c_iflags & CALLOUT_PROCESSED) == 0) { + if (cc_exec_next(cc) == c) + cc_exec_next(cc) = LIST_NEXT(c, c_links.le); + LIST_REMOVE(c, c_links.le); + } else { + TAILQ_REMOVE(&cc->cc_expireq, c, c_links.tqe); + } + c->c_iflags &= ~CALLOUT_PENDING; + c->c_flags &= ~CALLOUT_ACTIVE; + } /* - * If the callout is running, try to stop it or drain it. + * If the callout isn't pending, it's not on the queue, so + * don't attempt to remove it from the queue. We can try to + * stop it by other means however. */ - if (cc_exec_curr(cc, direct) == c) { + if (!(c->c_iflags & CALLOUT_PENDING)) { /* - * Succeed we to stop it or not, we must clear the - * active flag - this is what API users expect. + * If it wasn't on the queue and it isn't the current + * callout, then we can't stop it, so just bail. + * It probably has already been run (if locking + * is properly done). You could get here if the caller + * calls stop twice in a row for example. The second + * call would fall here without CALLOUT_ACTIVE set. */ c->c_flags &= ~CALLOUT_ACTIVE; - + if (cc_exec_curr(cc, direct) != c) { + CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", + c, c->c_func, c->c_arg); + CC_UNLOCK(cc); + if (sq_locked) + sleepq_release(&cc_exec_waiting(cc, direct)); + return (-1); + } if ((flags & CS_DRAIN) != 0) { /* * The current callout is running (or just @@ -1278,7 +1308,6 @@ again: old_cc = cc; goto again; } - /* * Migration could be cancelled here, but * as long as it is still not sure when it @@ -1362,6 +1391,8 @@ again: cc_exec_drain(cc, direct) = drain; } CC_UNLOCK(cc); + if (drain) + return(0); return ((flags & CS_EXECUTING) != 0); } CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", @@ -1369,20 +1400,12 @@ again: if (drain) { cc_exec_drain(cc, direct) = drain; } - KASSERT(!sq_locked, ("sleepqueue chain still locked")); - cancelled = ((flags & CS_EXECUTING) != 0); - } else - cancelled = 1; - - if (sq_locked) - sleepq_release(&cc_exec_waiting(cc, direct)); - - if ((c->c_iflags & CALLOUT_PENDING) == 0) { - CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", - c, c->c_func, c->c_arg); CC_UNLOCK(cc); + KASSERT(!sq_locked, ("sleepqueue chain still locked")); return (0); } + if (sq_locked) + sleepq_release(&cc_exec_waiting(cc, direct)); c->c_iflags &= ~CALLOUT_PENDING; c->c_flags &= ~CALLOUT_ACTIVE; @@ -1400,7 +1423,7 @@ again: } callout_cc_del(c, cc); CC_UNLOCK(cc); - return (cancelled); + return (1); } void @@ -1615,7 +1638,6 @@ SYSCTL_PROC(_kern, OID_AUTO, callout_sta CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, 0, 0, sysctl_kern_callout_stat, "I", "Dump immediate statistic snapshot of the scheduled callouts"); - #ifdef DDB static void _show_callout(struct callout *c) From owner-svn-src-all@freebsd.org Tue Jul 19 18:32:12 2016 Return-Path: Delivered-To: svn-src-all@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 2F5B2B9DDB2; Tue, 19 Jul 2016 18:32:12 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pa0-x242.google.com (mail-pa0-x242.google.com [IPv6:2607:f8b0:400e:c03::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EF9BE181D; Tue, 19 Jul 2016 18:32:11 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-pa0-x242.google.com with SMTP id ez1so1749468pab.3; Tue, 19 Jul 2016 11:32:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:from:in-reply-to:date:cc:message-id:references :to; bh=QOhVX4UJ4BG2GYEOsLhJ0BC50P07oYONooz3afTmjhk=; b=yW9I3Px59Aqic2P0qJm3HLQ3pXiDkWSXC6Z10WpUo5gIZoh5D8Gck/yPNhaHY11gHe cWFaP+cXH0H9qjUsK7nVBVydfya60RaTlASqSjao0QIgR0nyfo52IR3AIFyiH1Rc2x+b gejpjuyFR5f16fuf/u4EiHlPRgPkWBYUaxzORnoXj6QdUxF8NVfz715XcR1hQl3t5vKj 9RMZv5pPzp588qfWdMnVUinOBDfpe2/qVNS3SBhke+uTOFK3bynELob/nG1k2rNXe/k8 y140ufGw/nre2Hy/LBOFYeXMTGsEezOmQ81FtfhcMdTGuewizezDSaYzOwoiNflAHiHH i6uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:mime-version:from:in-reply-to:date:cc :message-id:references:to; bh=QOhVX4UJ4BG2GYEOsLhJ0BC50P07oYONooz3afTmjhk=; b=TN6tWRXM9+8C3BWk/rrV4Ko7fQtIq5NMgar0/yFdbSWKhFEtlqVmJEnVpTQSXNg4ki ck2E7XA6oZhEtbHZu7C5/B1pli7+0xyxHuIa39a7xa6ZX51go4Uvj71iVQzxMRzHTdJP YodHeS97QK4jCqs5z/IwNfLiDFzfACeoQEj6zGjAljAkNw56YlDSSP8Keuu5SD7XnxHE Yj7YxYPHVY1mieRY4aaRqgkAt4APxh9Bb8sXwjQ9hUj2poNAClI4/cHTUDxvtoiQLwUN 9G42l7/vymQXmfjr6D4wVzLP1Qd8Zi5qKb4Rwto+gwNBA/ABzdpaiOV8iKN7lWpLiQ0G NFJA== X-Gm-Message-State: ALyK8tLP5JoIHnnJe5SYvNY7oeDo+adDcoF6RxkKoCGzY5wWFR9DAP6JjGziYLUxJJw0UQ== X-Received: by 10.66.156.226 with SMTP id wh2mr65999477pab.116.1468953129909; Tue, 19 Jul 2016 11:32:09 -0700 (PDT) Received: from [192.168.20.9] (c-73-19-52-228.hsd1.wa.comcast.net. [73.19.52.228]) by smtp.gmail.com with ESMTPSA id ee3sm6010931pac.25.2016.07.19.11.32.08 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 19 Jul 2016 11:32:09 -0700 (PDT) Subject: Re: svn commit: r303037 - head/sys/kern Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Content-Type: multipart/signed; boundary="Apple-Mail=_3264ADD5-A28D-4042-8154-D27295A7FEE3"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Pgp-Agent: GPGMail From: "Ngie Cooper (yaneurabeya)" In-Reply-To: <201607191831.u6JIVJWq007542@repo.freebsd.org> Date: Tue, 19 Jul 2016 11:32:07 -0700 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-Id: References: <201607191831.u6JIVJWq007542@repo.freebsd.org> To: Randall Stewart X-Mailer: Apple Mail (2.3124) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 18:32:12 -0000 --Apple-Mail=_3264ADD5-A28D-4042-8154-D27295A7FEE3 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii > On Jul 19, 2016, at 11:31, Randall Stewart wrote: > > Author: rrs > Date: Tue Jul 19 18:31:19 2016 > New Revision: 303037 > URL: https://svnweb.freebsd.org/changeset/base/303037 > > Log: > This reverts out Gleb's changes and adds three small > fixes that I think closes up the races Gleb was > looking for. This is running quite nicely in Netflix and > now no longer causes TCP-tcb leaks. > > Differential Revision: 7135 This needs to be MFCed to ^/stable/11. Thanks, -Ngie --Apple-Mail=_3264ADD5-A28D-4042-8154-D27295A7FEE3 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJXjnInAAoJEPWDqSZpMIYVi5EP/R4PXkQOIVZdHNztm+ukBMRs CDZ8c9ZXFl3I3TUaNfKJcXjCCgcN1Do/q4baks1lzyLxGeoVAqjlb/3bAdXOm4su ydg+QjgM52rOzDqq37MXV7OehiMGFM9dHWyuVBb3p62JVeEgH9biNYFL6z93K7sf PoOQOLVHI5usfh5gWbwYI8ueo7ekOQIu8CeCAvDMI0KhuN3G9VpLxLVDe0WyWMYg 5grL9KMnHFldQPaLCepz7EnNTjq/U/hFVV6vJF+3VVGp4jhiGzj3IKHUxuo9W2ZD g3/68GedVGWXziqJw3rwlzwQM3xJfd43QxYpdU8Q+pPDYDg0rmbjoXOhbxDj8a2H yye/WysnlQoabTChfW7Be5P/28EWz8kbsVcGgnHNOWEtj/bqAJGj5XKDtYLDh80m wa5YtbXzMipNflGozjg8XQGkpfRE102dcZXSl9tCwGi+Z6NIbQvQRdS0OlkIXWly vHAbK/1PF7CpvcV6Zs4psiJekfaTtbbResxSJ0fVsGw6JsyDZpOX2rQ25WidWeao B7xCrVSd8zD7V1MCKHssSqo6+A6I9oyGgT4WHRfB4a685Yayg66/sYfnZ8l0GNib MzxQ0dyzw7YT61AwArEAa+d+g6Asnn1GbeRXTUYJ+bZ0agknQTroKc8ZOJ78MdXK DfbqwcEpUVTf8MNV+QCz =zUGr -----END PGP SIGNATURE----- --Apple-Mail=_3264ADD5-A28D-4042-8154-D27295A7FEE3-- From owner-svn-src-all@freebsd.org Tue Jul 19 18:39:22 2016 Return-Path: Delivered-To: svn-src-all@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 C61AAB9DEC1; Tue, 19 Jul 2016 18:39:22 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from d.mail.sonic.net (d.mail.sonic.net [64.142.111.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AEE031AEC; Tue, 19 Jul 2016 18:39:22 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from zeppelin.tachypleus.net (75-101-50-44.static.sonic.net [75.101.50.44]) (authenticated bits=0) by d.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6JIdJoM010595 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 19 Jul 2016 11:39:19 -0700 Subject: Re: svn commit: r303033 - head/share/man/man7 To: Ed Maste , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201607191746.u6JHk9ov092270@repo.freebsd.org> From: Nathan Whitehorn Message-ID: <263c0490-691a-b551-f5e7-fc5bb6b05ba7@freebsd.org> Date: Tue, 19 Jul 2016 11:39:19 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <201607191746.u6JHk9ov092270@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Sonic-CAuth: UmFuZG9tSVaAEJA+3wjzPUKJdIVk0KbStjYnlgoL+/SNhU4W7ZopaK+BGBcPZdALpmN85z8wfD8+3USG6uatlBHRjSf9mPWT24nKj41UaTs= X-Sonic-ID: C;7PKaGuBN5hGexpNwxPCmMQ== M;6JfWGuBN5hGexpNwxPCmMQ== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 18:39:22 -0000 Thank you! This is super useful. -Nathan On 07/19/16 10:46, Ed Maste wrote: > Author: emaste > Date: Tue Jul 19 17:46:09 2016 > New Revision: 303033 > URL: https://svnweb.freebsd.org/changeset/base/303033 > > Log: > add an arch.7 man page with architecture-specific details > > Based on details collected on the wiki, at > https://wiki.freebsd.org/EdMaste/ArchitectureSpecifics > Further details to be added over time. > > Sponsored by: The FreeBSD Foundation > Differential Revision: https://reviews.freebsd.org/D7096 > > Added: > head/share/man/man7/arch.7 (contents, props changed) > Modified: > head/share/man/man7/Makefile > > Modified: head/share/man/man7/Makefile > ============================================================================== > --- head/share/man/man7/Makefile Tue Jul 19 17:31:48 2016 (r303032) > +++ head/share/man/man7/Makefile Tue Jul 19 17:46:09 2016 (r303033) > @@ -7,6 +7,7 @@ PACKAGE=runtime-manuals > > #MISSING: eqnchar.7 ms.7 term.7 > MAN= adding_user.7 \ > + arch.7 \ > ascii.7 \ > bsd.snmpmod.mk.7 \ > build.7 \ > > Added: head/share/man/man7/arch.7 > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/share/man/man7/arch.7 Tue Jul 19 17:46:09 2016 (r303033) > @@ -0,0 +1,171 @@ > +.\" Copyright (c) 2016 The FreeBSD Foundation. All rights reserved. > +.\" > +.\" This documentation was created by Ed Maste under sponsorship of > +.\" 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 COPYRIGHT HOLDERS ``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 COPYRIGHT HOLDERS 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. > +.\" > +.\" $FreeBSD$ > +.\" > +.Dd July 19, 2016 > +.Dt ARCH 7 > +.Os > +.Sh NAME > +.Nm arch > +.Nd Architecture-specific details > +.Sh DESCRIPTION > +Differences between CPU architectures and platforms supported by > +.Fx . > +.Pp > +.Ss Type sizes > +On all supported architectures, > +.Bl -column -offset -indent "long long" "Size" > +.It Sy Type Ta Sy Size > +.It short Ta 2 > +.It int Ta 4 > +.It long Ta sizeof(void*) > +.It long long Ta 8 > +.It float Ta 4 > +.It double Ta 8 > +.El > +.Bl -column -offset indent ".Sy Architecture" ".Sy sizeof(void *)" ".Sy "sizeof(long double)" > +.It Sy Architecture Ta Sy sizeof(void *) Ta Sy sizeof(long double) > +.It amd64 Ta 8 Ta 16 > +.It arm Ta 4 Ta 8 > +.It armeb Ta 4 Ta 8 > +.It armv6 Ta 4 Ta 8 > +.It arm64 Ta 8 Ta 16 > +.It i386 Ta 4 Ta 12 > +.It mips Ta 4 Ta 8 > +.It mipsel Ta 4 Ta 8 > +.It mipsn32 Ta 4 Ta 8 > +.It mips64 Ta 8 Ta 8 > +.It mips64el Ta 8 Ta 8 > +.It powerpc Ta 4 Ta 8 > +.It powerpc64 Ta 8 Ta 8 > +.It riscv Ta 8 Ta > +.It sparc64 Ta 8 Ta 16 > +.El > +.Ss Endianness and Char Signedness > +.Bl -column -offset indent ".Sy Architecture" ".Sy Endianness" ".Sy "char Signedness" > +.It Sy Architecture Ta Sy Endianness Ta Sy char Signedness > +.It amd64 Ta little Ta signed > +.It arm Ta little Ta unsigned > +.It armeb Ta big Ta unsigned > +.It armv6 Ta little Ta unsigned > +.It arm64 Ta little Ta unsigned > +.It i386 Ta little Ta signed > +.It mips Ta little Ta signed > +.It mipsel Ta big Ta signed > +.It mipsn32 Ta little Ta signed > +.It mips64 Ta little Ta signed > +.It mips64el Ta little Ta signed > +.It powerpc Ta big Ta unsigned > +.It powerpc64 Ta big Ta unsigned > +.It riscv Ta little Ta signed > +.It sparc64 Ta big Ta signed > +.El > +.Ss Page Size > +.Bl -column -offset indent ".Sy Architecture" ".Sy Page Sizes" > +.It Sy Architecture Ta Sy Page Sizes > +.It amd64 Ta 4K, 2M, 1G > +.It arm Ta 4K > +.It armeb Ta 4K > +.It armv6 Ta 4K > +.It arm64 Ta 4K, 2M, 1G > +.It i386 Ta 4K, 2M (PAE), 4M > +.It mips Ta 4K > +.It mipsel Ta 4K > +.It mipsn32 Ta 4K > +.It mips64 Ta 4K > +.It mips64el Ta 4K > +.It powerpc Ta 4K > +.It powerpc64 Ta 4K > +.It riscv Ta 4K > +.It sparc64 Ta 8K > +.El > +.Ss Floating Point > +.Bl -column -offset indent ".Sy Architecture" ".Sy float, double" ".Sy long double" > +.It Sy Architecture Ta Sy float, double Ta Sy long double > +.It amd64 Ta hard Ta hard, 80 bit > +.It arm Ta soft Ta soft, double precision > +.It armeb Ta soft Ta soft, double precision > +.It armv6 Ta hard Ta hard, double precision > +.It arm64 Ta hard Ta soft, quad precision > +.It i386 Ta hard Ta hard, 80 bit > +.It mips Ta soft Ta identical to double > +.It mipsel Ta soft Ta identical to double > +.It mipsn32 Ta soft Ta identical to double > +.It mips64 Ta soft Ta identical to double > +.It mips64el Ta soft Ta identical to double > +.It powerpc Ta hard Ta hard, double precision > +.It powerpc64 Ta hard Ta hard, double precision > +.It riscv Ta > +.It sparc64 Ta hard Ta hard, quad precision > +.El > +.Ss Predefined Macros > +The compiler provides a number of predefined macros. > +Some of these provide architecture-specific details and are explained below. > +Other macros, including those required by the language standard, are not > +included here. > +.Pp > +The full set of predefined macros can be obtained with this command: > +.Bd -literal -offset indent > +cc -x c -Dm -E /dev/null > +.Ed > +.Pp > +Common type size and endianness macros: > +.Bl -column -offset indent "BYTE_ORDER" ".Sy Meaning" > +.It Sy Macro Ta Sy Meaning > +.It Dv __LP64__ Ta 64-bit (8-byte) long and pointer, 32-bit (4-byte) int > +.It Dv __ILP32__ Ta 32-bit (4-byte) int, long and pointer > +.It Dv BYTE_ORDER Ta Either Dv BIG_ENDIAN or Dv LITTLE_ENDIAN . > +.Dv PDP11_ENDIAN is not used on FreeBSD. > +.El > +.Pp > +Architecture-specific macros: > +.Bl -column -offset indent ".Sy Architecture" ".Sy Predefined macros" > +.It Sy Architecture Ta Sy Predefined macros > +.It amd64 Ta Dv __amd64__, Dv __x86_64__ > +.It arm Ta Dv __arm__ > +.It armeb Ta Dv __arm__ > +.It armv6 Ta Dv __arm__, Dv __ARM_ARCH >= 6 > +.It arm64 Ta Dv __aarch64__ > +.It i386 Ta Dv __i386__ > +.It mips Ta Dv __mips__, Dv __MIPSEB__, Dv __mips_o32 > +.It mipsel Ta Dv __mips__, Dv __mips_o32 > +.It mipsn32 Ta Dv __mips__, Dv __MIPSEB__, Dv __mips_n32 > +.It mips64 Ta Dv __mips__, Dv __MIPSEB__, Dv __mips_n64 > +.It mips64el Ta Dv __mips__, Dv __mips_n64 > +.It powerpc Ta Dv __powerpc__ > +.It powerpc64 Ta Dv __powerpc__, Dv __powerpc64__ > +.It riscv Ta Dv __riscv__, Dv __riscv64 > +.It sparc64 Ta Dv __sparc64__ > +.El > +.Sh SEE ALSO > +.Xr src.conf 5 , > +.Xr build 7 > +.Sh HISTORY > +An > +.Nm > +manual page appeared in > +.Fx 12 . > From owner-svn-src-all@freebsd.org Tue Jul 19 18:40:56 2016 Return-Path: Delivered-To: svn-src-all@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 B1DB6B9E03C; Tue, 19 Jul 2016 18:40:56 +0000 (UTC) (envelope-from emaste@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 841CF1CE4; Tue, 19 Jul 2016 18:40:56 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JIetZG012558; Tue, 19 Jul 2016 18:40:55 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JIet9V012553; Tue, 19 Jul 2016 18:40:55 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607191840.u6JIet9V012553@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 19 Jul 2016 18:40:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303038 - in head/usr.sbin/makefs: . ffs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 18:40:56 -0000 Author: emaste Date: Tue Jul 19 18:40:54 2016 New Revision: 303038 URL: https://svnweb.freebsd.org/changeset/base/303038 Log: makefs: sync NetBSD IDs with upstream for changes that we already have May 22 21:51:39 2011 +0000 (christos): From Nathan Whitehorn (nwhitehorn at freebsd dot org): Add code to generate bootable ISOs on Powermac and CHRP systems. Synthesize some partition maps (APM and MBR, respectively) pointing to (a) the whole disk, and (b) relevant El Torito boot images that have been added by other code. These partition maps are a little bit funny looking, but they seem to work. FreeBSD has been using this successfully in their release generation on powerpc, as well as generating all non-SPARC install media. SPARC support could probably be added as an extension of this patch. makefs.8 1.33 Tue Aug 23 17:09:11 2011 +0000 (christos): PR/45285: Martin Matuska: makefs does not properly convert ISO level 1 and 2 filenames (buffer overflow) makefs does not properly verify the maximum filename length in the special "." case for both ISO level 1 and ISO level 2 filename conversion. This creates broken images or causes a buffer overflow (ISO level 2). ISO level 1: If a filename contains only dots or up to 8 characters followed by dots the 8+3 limit check doesn't work. ISO level 2: If a filename contains a dot in the first 30 characters and a dot on the 30th character, the length limit check doesn't work and the buffer is overflowed. $ mkdir level1 $ touch level1/12345............ $ makefs -t cd9660 -o isolevel=1 test.iso level1 $ mkdir level2 $ touch level2/1234567890.2345678901234567.....34567890123456789012345 $ makefs -t cd9660 -o isolevel=2 test.iso level2 cd9660.c 1.32 Sun Oct 9 21:33:43 2011 +0000 (christos): add support for setting the ufs label. (Nathan Whitehorn) ffs.c 1.45 ffs.h 1.2 mkfs.c 1.22 makefs.8 1.37 Obtained from: NetBSD Modified: head/usr.sbin/makefs/cd9660.c head/usr.sbin/makefs/ffs.c head/usr.sbin/makefs/ffs.h head/usr.sbin/makefs/ffs/mkfs.c head/usr.sbin/makefs/makefs.8 Modified: head/usr.sbin/makefs/cd9660.c ============================================================================== --- head/usr.sbin/makefs/cd9660.c Tue Jul 19 18:31:19 2016 (r303037) +++ head/usr.sbin/makefs/cd9660.c Tue Jul 19 18:40:54 2016 (r303038) @@ -1,4 +1,4 @@ -/* $NetBSD: cd9660.c,v 1.31 2011/08/06 23:25:19 christos Exp $ */ +/* $NetBSD: cd9660.c,v 1.32 2011/08/23 17:09:11 christos Exp $ */ /* * Copyright (c) 2005 Daniel Watt, Walter Deignan, Ryan Gabrys, Alan Modified: head/usr.sbin/makefs/ffs.c ============================================================================== --- head/usr.sbin/makefs/ffs.c Tue Jul 19 18:31:19 2016 (r303037) +++ head/usr.sbin/makefs/ffs.c Tue Jul 19 18:40:54 2016 (r303038) @@ -1,4 +1,4 @@ -/* $NetBSD: ffs.c,v 1.44 2009/04/28 22:49:26 joerg Exp $ */ +/* $NetBSD: ffs.c,v 1.45 2011/10/09 22:49:26 christos Exp $ */ /* * Copyright (c) 2001 Wasabi Systems, Inc. Modified: head/usr.sbin/makefs/ffs.h ============================================================================== --- head/usr.sbin/makefs/ffs.h Tue Jul 19 18:31:19 2016 (r303037) +++ head/usr.sbin/makefs/ffs.h Tue Jul 19 18:40:54 2016 (r303038) @@ -1,4 +1,4 @@ -/* $NetBSD: ffs.h,v 1.1 2004/12/20 20:51:42 jmc Exp $ */ +/* $NetBSD: ffs.h,v 1.2 2004/12/20 20:51:42 jmc Exp $ */ /* * Copyright (c) 2001-2003 Wasabi Systems, Inc. Modified: head/usr.sbin/makefs/ffs/mkfs.c ============================================================================== --- head/usr.sbin/makefs/ffs/mkfs.c Tue Jul 19 18:31:19 2016 (r303037) +++ head/usr.sbin/makefs/ffs/mkfs.c Tue Jul 19 18:40:54 2016 (r303038) @@ -1,4 +1,4 @@ -/* $NetBSD: mkfs.c,v 1.20 2004/06/24 22:30:13 lukem Exp $ */ +/* $NetBSD: mkfs.c,v 1.22 2011/10/09 22:30:13 christos Exp $ */ /* * Copyright (c) 2002 Networks Associates Technology, Inc. Modified: head/usr.sbin/makefs/makefs.8 ============================================================================== --- head/usr.sbin/makefs/makefs.8 Tue Jul 19 18:31:19 2016 (r303037) +++ head/usr.sbin/makefs/makefs.8 Tue Jul 19 18:40:54 2016 (r303038) @@ -1,4 +1,4 @@ -.\" $NetBSD: makefs.8,v 1.32 2009/01/20 20:47:25 bjh21 Exp $ +.\" $NetBSD: makefs.8,v 1.33 2011/05/22 21:51:39 christos Exp $ .\" .\" Copyright (c) 2001-2003 Wasabi Systems, Inc. .\" All rights reserved. From owner-svn-src-all@freebsd.org Tue Jul 19 19:00:23 2016 Return-Path: Delivered-To: svn-src-all@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 A2A62B9E40B; Tue, 19 Jul 2016 19:00:23 +0000 (UTC) (envelope-from manu@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 7540B1898; Tue, 19 Jul 2016 19:00:23 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JJ0MTZ018734; Tue, 19 Jul 2016 19:00:22 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JJ0MuB018733; Tue, 19 Jul 2016 19:00:22 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201607191900.u6JJ0MuB018733@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Tue, 19 Jul 2016 19:00:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303039 - head/sys/boot/efi/libefi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 19:00:23 -0000 Author: manu Date: Tue Jul 19 19:00:22 2016 New Revision: 303039 URL: https://svnweb.freebsd.org/changeset/base/303039 Log: Do not use TERM_EMU on arm and arm64 as it doesn't behave well with serial console. Reviewed by: andrew, emaste MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D6783 Modified: head/sys/boot/efi/libefi/Makefile Modified: head/sys/boot/efi/libefi/Makefile ============================================================================== --- head/sys/boot/efi/libefi/Makefile Tue Jul 19 18:40:54 2016 (r303038) +++ head/sys/boot/efi/libefi/Makefile Tue Jul 19 19:00:22 2016 (r303039) @@ -35,6 +35,10 @@ CFLAGS+= -I${.CURDIR}/../../common # Handle FreeBSD specific %b and %D printf format specifiers CFLAGS+= ${FORMAT_EXTENSIONS} + +# Do not use TERM_EMU on arm and arm64 as it doesn't behave well with serial console +.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "aarch64" CFLAGS+= -DTERM_EMU +.endif .include From owner-svn-src-all@freebsd.org Tue Jul 19 19:09:25 2016 Return-Path: Delivered-To: svn-src-all@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 5DDF6B9E774; Tue, 19 Jul 2016 19:09:25 +0000 (UTC) (envelope-from scottl@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 0EE3F1F78; Tue, 19 Jul 2016 19:09:24 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JJ9OgU022488; Tue, 19 Jul 2016 19:09:24 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JJ9OGt022486; Tue, 19 Jul 2016 19:09:24 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201607191909.u6JJ9OGt022486@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Tue, 19 Jul 2016 19:09:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303040 - in head/sys/dev: nvd nvme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 19:09:25 -0000 Author: scottl Date: Tue Jul 19 19:09:23 2016 New Revision: 303040 URL: https://svnweb.freebsd.org/changeset/base/303040 Log: Supporting flushing the dump before returning, and simplify/combine the logic. Switch to a 5us delay since most NVME devices can easily do 200,000 iops. Submitted by: imp MFC after: 3 days Sponsored by: Netflix, Inc. Modified: head/sys/dev/nvd/nvd.c head/sys/dev/nvme/nvme_ns_cmd.c Modified: head/sys/dev/nvd/nvd.c ============================================================================== --- head/sys/dev/nvd/nvd.c Tue Jul 19 19:00:22 2016 (r303039) +++ head/sys/dev/nvd/nvd.c Tue Jul 19 19:09:23 2016 (r303040) @@ -237,14 +237,7 @@ nvd_dump(void *arg, void *virt, vm_offse dp = arg; ndisk = dp->d_drv1; - if (len > 0) { - if ((error = nvme_ns_dump(ndisk->ns, virt, offset, len)) != 0) - return (error); - } else { - /* XXX sync to stable storage */ - } - - return (0); + return (nvme_ns_dump(ndisk->ns, virt, offset, len)); } static void Modified: head/sys/dev/nvme/nvme_ns_cmd.c ============================================================================== --- head/sys/dev/nvme/nvme_ns_cmd.c Tue Jul 19 19:00:22 2016 (r303039) +++ head/sys/dev/nvme/nvme_ns_cmd.c Tue Jul 19 19:09:23 2016 (r303040) @@ -153,7 +153,7 @@ nvme_ns_cmd_flush(struct nvme_namespace } /* Timeout = 1 sec */ -#define NVD_DUMP_TIMEOUT 100000 +#define NVD_DUMP_TIMEOUT 200000 int nvme_ns_dump(struct nvme_namespace *ns, void *virt, off_t offset, size_t len) @@ -171,14 +171,13 @@ nvme_ns_dump(struct nvme_namespace *ns, return (ENOMEM); cmd = &req->cmd; - cmd->opc = NVME_OPC_WRITE; - cmd->nsid = ns->id; - lba = offset / nvme_ns_get_sector_size(ns); - lba_count = len / nvme_ns_get_sector_size(ns); - - *(uint64_t *)&cmd->cdw10 = lba; - cmd->cdw12 = lba_count - 1; + if (len > 0) { + lba = offset / nvme_ns_get_sector_size(ns); + lba_count = len / nvme_ns_get_sector_size(ns); + nvme_ns_write_cmd(cmd, ns->id, lba, lba_count); + } else + nvme_ns_flush_cmd(cmd, ns->id); nvme_ctrlr_submit_io_request(ns->ctrlr, req); if (req->qpair == NULL) @@ -186,7 +185,7 @@ nvme_ns_dump(struct nvme_namespace *ns, i = 0; while ((i++ < NVD_DUMP_TIMEOUT) && (status.done == FALSE)) { - DELAY(10); + DELAY(5); nvme_qpair_process_completions(req->qpair); } From owner-svn-src-all@freebsd.org Tue Jul 19 19:13:02 2016 Return-Path: Delivered-To: svn-src-all@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 2FEADB9EA09; Tue, 19 Jul 2016 19:13:02 +0000 (UTC) (envelope-from rene@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 F1E74173A; Tue, 19 Jul 2016 19:13:01 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JJD1fD026063; Tue, 19 Jul 2016 19:13:01 GMT (envelope-from rene@FreeBSD.org) Received: (from rene@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JJD16E026062; Tue, 19 Jul 2016 19:13:01 GMT (envelope-from rene@FreeBSD.org) Message-Id: <201607191913.u6JJD16E026062@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rene set sender to rene@FreeBSD.org using -f From: Rene Ladan Date: Tue, 19 Jul 2016 19:13:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303041 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 19:13:02 -0000 Author: rene (doc,ports committer) Date: Tue Jul 19 19:13:01 2016 New Revision: 303041 URL: https://svnweb.freebsd.org/changeset/base/303041 Log: erwin stepped down from portmgr, update the graph. Modified: head/share/misc/organization.dot Modified: head/share/misc/organization.dot ============================================================================== --- head/share/misc/organization.dot Tue Jul 19 19:09:23 2016 (r303040) +++ head/share/misc/organization.dot Tue Jul 19 19:13:01 2016 (r303041) @@ -30,7 +30,7 @@ coresecretary [label="Core Team Secretar doccommitters [label="Doc/www Committers\ndoc-committers@FreeBSD.org"] doceng [label="Documentation Engineering Team\ndoceng@FreeBSD.org\ngjb, blackend,\ngabor, hrs"] portscommitters [label="Ports Committers\nports-committers@FreeBSD.org"] -portmgr [label="Port Management Team\nportmgr@FreeBSD.org\nantoine, bapt, bdrewery,\nerwin, mat, swills,\nmiwi"] +portmgr [label="Port Management Team\nportmgr@FreeBSD.org\nantoine, bapt, bdrewery,\nmat, swills, miwi"] portmgrsecretary [label="Port Management Team Secretary\nportmgr-secretary@FreeBSD.org\nrene"] re [label="Primary Release Engineering Team\nre@FreeBSD.org\nkib, blackend, jpaetzel, hrs, kensmith"] secteam [label="Security Team\nsecteam@FreeBSD.org\ndelphij,\ndes, gavin, gjb,\nglebius, remko"] From owner-svn-src-all@freebsd.org Tue Jul 19 19:19:04 2016 Return-Path: Delivered-To: svn-src-all@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 563A5B9EB4E; Tue, 19 Jul 2016 19:19:04 +0000 (UTC) (envelope-from scottl@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 288F81A24; Tue, 19 Jul 2016 19:19:04 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JJJ3RG026300; Tue, 19 Jul 2016 19:19:03 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JJJ3Xj026299; Tue, 19 Jul 2016 19:19:03 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <201607191919.u6JJJ3Xj026299@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Tue, 19 Jul 2016 19:19:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303042 - head/sys/dev/nvd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 19:19:04 -0000 Author: scottl Date: Tue Jul 19 19:19:03 2016 New Revision: 303042 URL: https://svnweb.freebsd.org/changeset/base/303042 Log: Remove unused variable from last commit. Modified: head/sys/dev/nvd/nvd.c Modified: head/sys/dev/nvd/nvd.c ============================================================================== --- head/sys/dev/nvd/nvd.c Tue Jul 19 19:13:01 2016 (r303041) +++ head/sys/dev/nvd/nvd.c Tue Jul 19 19:19:03 2016 (r303042) @@ -232,7 +232,6 @@ nvd_dump(void *arg, void *virt, vm_offse { struct nvd_disk *ndisk; struct disk *dp; - int error; dp = arg; ndisk = dp->d_drv1; From owner-svn-src-all@freebsd.org Tue Jul 19 19:20:49 2016 Return-Path: Delivered-To: svn-src-all@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 89C88B9ED3D; Tue, 19 Jul 2016 19:20:49 +0000 (UTC) (envelope-from cem@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 60E811DB2; Tue, 19 Jul 2016 19:20:49 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JJKm5J026426; Tue, 19 Jul 2016 19:20:48 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JJKm7R026421; Tue, 19 Jul 2016 19:20:48 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201607191920.u6JJKm7R026421@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: "Conrad E. Meyer" Date: Tue, 19 Jul 2016 19:20:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303043 - in head: share/man/man4 sys/dev/vt sys/dev/vt/hw/fb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 19:20:49 -0000 Author: cem Date: Tue Jul 19 19:20:47 2016 New Revision: 303043 URL: https://svnweb.freebsd.org/changeset/base/303043 Log: Increase vt(4) framebuffer maximum size And rename "DEFAULT" constants to the more accurate "MAX." PR: 210382 Submitted by: Felix Reviewed by: wblock, cem Tested by: Dave Cottlehuber Modified: head/share/man/man4/vt.4 head/sys/dev/vt/hw/fb/vt_fb.c head/sys/dev/vt/vt.h head/sys/dev/vt/vt_core.c Modified: head/share/man/man4/vt.4 ============================================================================== --- head/share/man/man4/vt.4 Tue Jul 19 19:19:03 2016 (r303042) +++ head/share/man/man4/vt.4 Tue Jul 19 19:20:47 2016 (r303043) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 21, 2016 +.Dd July 19, 2016 .Dt "VIRTUAL TERMINALS" 4 .Os .Sh NAME @@ -36,8 +36,8 @@ .Cd "options VT_MAXWINDOWS=N" .Cd "options VT_ALT_TO_ESC_HACK=1" .Cd "options VT_TWOBUTTON_MOUSE" -.Cd "options VT_FB_DEFAULT_WIDTH=X" -.Cd "options VT_FB_DEFAULT_HEIGHT=Y" +.Cd "options VT_FB_MAX_WIDTH=X" +.Cd "options VT_FB_MAX_HEIGHT=Y" .Cd "options SC_NO_CUTPASTE" .Cd "device vt" .Pp Modified: head/sys/dev/vt/hw/fb/vt_fb.c ============================================================================== --- head/sys/dev/vt/hw/fb/vt_fb.c Tue Jul 19 19:19:03 2016 (r303042) +++ head/sys/dev/vt/hw/fb/vt_fb.c Tue Jul 19 19:20:47 2016 (r303043) @@ -416,10 +416,10 @@ vt_fb_init(struct vt_device *vd) int err; info = vd->vd_softc; - vd->vd_height = MIN(VT_FB_DEFAULT_HEIGHT, info->fb_height); + vd->vd_height = MIN(VT_FB_MAX_HEIGHT, info->fb_height); margin = (info->fb_height - vd->vd_height) >> 1; vd->vd_transpose = margin * info->fb_stride; - vd->vd_width = MIN(VT_FB_DEFAULT_WIDTH, info->fb_width); + vd->vd_width = MIN(VT_FB_MAX_WIDTH, info->fb_width); margin = (info->fb_width - vd->vd_width) >> 1; vd->vd_transpose += margin * (info->fb_bpp / NBBY); vd->vd_video_dev = info->fb_video_dev; Modified: head/sys/dev/vt/vt.h ============================================================================== --- head/sys/dev/vt/vt.h Tue Jul 19 19:19:03 2016 (r303042) +++ head/sys/dev/vt/vt.h Tue Jul 19 19:20:47 2016 (r303043) @@ -377,11 +377,11 @@ void vt_upgrade(struct vt_device *vd); #define PIXEL_WIDTH(w) ((w) / 8) #define PIXEL_HEIGHT(h) ((h) / 16) -#ifndef VT_FB_DEFAULT_WIDTH -#define VT_FB_DEFAULT_WIDTH 2048 +#ifndef VT_FB_MAX_WIDTH +#define VT_FB_MAX_WIDTH 4096 #endif -#ifndef VT_FB_DEFAULT_HEIGHT -#define VT_FB_DEFAULT_HEIGHT 1200 +#ifndef VT_FB_MAX_HEIGHT +#define VT_FB_MAX_HEIGHT 2400 #endif /* name argument is not used yet. */ Modified: head/sys/dev/vt/vt_core.c ============================================================================== --- head/sys/dev/vt/vt_core.c Tue Jul 19 19:19:03 2016 (r303042) +++ head/sys/dev/vt/vt_core.c Tue Jul 19 19:20:47 2016 (r303043) @@ -181,8 +181,8 @@ static void vt_resume_handler(void *priv SET_DECLARE(vt_drv_set, struct vt_driver); -#define _VTDEFH MAX(100, PIXEL_HEIGHT(VT_FB_DEFAULT_HEIGHT)) -#define _VTDEFW MAX(200, PIXEL_WIDTH(VT_FB_DEFAULT_WIDTH)) +#define _VTDEFH MAX(100, PIXEL_HEIGHT(VT_FB_MAX_HEIGHT)) +#define _VTDEFW MAX(200, PIXEL_WIDTH(VT_FB_MAX_WIDTH)) struct terminal vt_consterm; static struct vt_window vt_conswindow; From owner-svn-src-all@freebsd.org Tue Jul 19 19:44:45 2016 Return-Path: Delivered-To: svn-src-all@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 68C45B9E447; Tue, 19 Jul 2016 19:44:45 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io0-f178.google.com (mail-io0-f178.google.com [209.85.223.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3B7B21C67; Tue, 19 Jul 2016 19:44:45 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io0-f178.google.com with SMTP id m101so28562545ioi.2; Tue, 19 Jul 2016 12:44:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=RidhlpfJz9m6tNmvxgYWPq7vVqOK36+GZZeLdleewWY=; b=jRSwH0O8JApveckj3KCFaVOJ+qxd0fW49OzEUkd8MixB+u6YCxcB7GWpZCc0yihby7 vb8l06hn/naqvQT6QcRTiJ8THPh638w7emJA2ek+6ugTx8ZKt1uySN8q78ZFO3w9c0gR oB74NPxc/6EKNZhdEnOdhh0AinVLSCVt9Wu/QnT8ooqV1BVJVRZ6E4//stuToSgfQjKJ Ec6bSb8cOAFE8XZP0Iv3IeSbMHayWsRiljI5wp9G5KXRlKzrCqqCPgOEh6zoC6KjSnmV lCB92und8D2eeggPwG/B8U5nu8BBgt3F04BBS5I+WMoHoxaiWK0Jx9t38LhclwECU08Y YdIQ== X-Gm-Message-State: ALyK8tJl+d+yRjBa8H+KYvkN7a6zTFq3F58xbGyRUvMX26I/qeyTYCxysoKjzfV1ec+6eQ== X-Received: by 10.107.157.194 with SMTP id g185mr5518954ioe.82.1468957030276; Tue, 19 Jul 2016 12:37:10 -0700 (PDT) Received: from mail-it0-f44.google.com (mail-it0-f44.google.com. [209.85.214.44]) by smtp.gmail.com with ESMTPSA id w12sm10157653iow.29.2016.07.19.12.37.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Jul 2016 12:37:10 -0700 (PDT) Received: by mail-it0-f44.google.com with SMTP id f6so29635096ith.0; Tue, 19 Jul 2016 12:37:09 -0700 (PDT) X-Received: by 10.36.76.16 with SMTP id a16mr47567215itb.86.1468957029787; Tue, 19 Jul 2016 12:37:09 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.36.233.67 with HTTP; Tue, 19 Jul 2016 12:37:09 -0700 (PDT) In-Reply-To: <201607191746.u6JHk9ov092270@repo.freebsd.org> References: <201607191746.u6JHk9ov092270@repo.freebsd.org> From: Conrad Meyer Date: Tue, 19 Jul 2016 12:37:09 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r303033 - head/share/man/man7 To: Ed Maste Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 19:44:45 -0000 On Tue, Jul 19, 2016 at 10:46 AM, Ed Maste wrote: > Author: emaste > Date: Tue Jul 19 17:46:09 2016 > New Revision: 303033 > URL: https://svnweb.freebsd.org/changeset/base/303033 > > Log: > add an arch.7 man page with architecture-specific details > > Based on details collected on the wiki, at > https://wiki.freebsd.org/EdMaste/ArchitectureSpecifics > Further details to be added over time. > > Sponsored by: The FreeBSD Foundation > Differential Revision: https://reviews.freebsd.org/D7096 > > Added: > head/share/man/man7/arch.7 (contents, props changed) > Modified: > head/share/man/man7/Makefile > > ... > Added: head/share/man/man7/arch.7 > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/share/man/man7/arch.7 Tue Jul 19 17:46:09 2016 (r303033) > @@ -0,0 +1,171 @@ > ... > +.Ss Predefined Macros > +The compiler provides a number of predefined macros. > +Some of these provide architecture-specific details and are explained below. > +Other macros, including those required by the language standard, are not > +included here. > +.Pp > +The full set of predefined macros can be obtained with this command: > +.Bd -literal -offset indent > +cc -x c -Dm -E /dev/null > +.Ed > +.Pp > +Common type size and endianness macros: > +.Bl -column -offset indent "BYTE_ORDER" ".Sy Meaning" > +.It Sy Macro Ta Sy Meaning > +.It Dv __LP64__ Ta 64-bit (8-byte) long and pointer, 32-bit (4-byte) int > +.It Dv __ILP32__ Ta 32-bit (4-byte) int, long and pointer ILP32 was only added on CURRENT during the 11 timeframe (the r276479 3.5.0 import), and can't be relied upon for stable/10 or 9, FWIW. (Not useful for ports, for example.) Sure, it's probably okay that this manual page only describes the release it is present in. Best, Conrad From owner-svn-src-all@freebsd.org Tue Jul 19 19:50:31 2016 Return-Path: Delivered-To: svn-src-all@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 547D5B9E4EE; Tue, 19 Jul 2016 19:50:31 +0000 (UTC) (envelope-from emaste@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 235AD1E79; Tue, 19 Jul 2016 19:50:31 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JJoUE4037629; Tue, 19 Jul 2016 19:50:30 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JJoUAt037628; Tue, 19 Jul 2016 19:50:30 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607191950.u6JJoUAt037628@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 19 Jul 2016 19:50:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303044 - head/share/man/man7 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 19:50:31 -0000 Author: emaste Date: Tue Jul 19 19:50:30 2016 New Revision: 303044 URL: https://svnweb.freebsd.org/changeset/base/303044 Log: arch.7: we also use 1M page mappings on armv6 Submitted by: alc Modified: head/share/man/man7/arch.7 Modified: head/share/man/man7/arch.7 ============================================================================== --- head/share/man/man7/arch.7 Tue Jul 19 19:20:47 2016 (r303043) +++ head/share/man/man7/arch.7 Tue Jul 19 19:50:30 2016 (r303044) @@ -90,7 +90,7 @@ On all supported architectures, .It amd64 Ta 4K, 2M, 1G .It arm Ta 4K .It armeb Ta 4K -.It armv6 Ta 4K +.It armv6 Ta 4K, 1M .It arm64 Ta 4K, 2M, 1G .It i386 Ta 4K, 2M (PAE), 4M .It mips Ta 4K From owner-svn-src-all@freebsd.org Tue Jul 19 19:52:11 2016 Return-Path: Delivered-To: svn-src-all@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 3F29DB9E6EA; Tue, 19 Jul 2016 19:52:11 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-it0-x22c.google.com (mail-it0-x22c.google.com [IPv6:2607:f8b0:4001:c0b::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 096EB13A7; Tue, 19 Jul 2016 19:52:11 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-it0-x22c.google.com with SMTP id j124so30403460ith.1; Tue, 19 Jul 2016 12:52:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=5jz+dgICMsQWiZaNr4ykXe9EX5Y9Mwmj57ly07UofQE=; b=YMml81czA8S4kycfj/UJc/UfMw0CAk+klJPGInnqWA9e6PeMBokmAzqWBAjZjK8KLg HNo3hxw9Y2ndA7OZiLjqvY6kMWZtesUMJjf3Adhw5Aon76zJiJ3HnSe8hbAVPgVn3IJe 4VnwveVXDzMl8e69pSb6PdXvSNHiYX6qh7ED0y8PPgEUTZyroyNwVJFJRgF143NMkMJF J2tFdnHsXRF2op2jTq8l74Ab7AVFeRqWtmhYTlzyGr1eibz62d0V+Xkq/zpCAiiDul++ 5wErepDoO3xIKBArwtBq6Ni8sPQJNJS57U2c+imootiUOnKYNHeIlMd/R+ZDEEY+4fMb f/BQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=5jz+dgICMsQWiZaNr4ykXe9EX5Y9Mwmj57ly07UofQE=; b=JrGCyPckj6JBvQuH6npjQFeI6VPiaxUJpg0aQtnTZNQF8fi8fJjYB6XjBqEvExTD1Z YX1axcR7lzSjLd7IwwYzPUwlsuPoG/rSIPnG2Wiac/ZAVq5WV7PNP8QOyMkIDGI+RDf+ 0YviTAO9bl9KHk0DveyrLt3yyZHWPkcWdVSsksq8zQrHf71QD/EnToaGPAKzHgXEFEIk xtxjbDQDReyfhjVdqxxT7N9u+6Mw1jk431ePEDmCUK55EVKV+65VocwNbiooYtn4WIIU VUpOecv0L/4qFn6zbeZlBvhWNWf7bbVtKc/a4Xf5TiFEYRhtME9CXSbRCdVxey8H6Vcv XRlQ== X-Gm-Message-State: ALyK8tJfw/vObdSr+eX0COUm8e1o32JDeHZfCNALWQFwgPCIoHdj6kRws9KhZp5QlIPJ2PxN3oQxtt+kqt+X0Q== X-Received: by 10.36.111.209 with SMTP id x200mr13614254itb.59.1468957930391; Tue, 19 Jul 2016 12:52:10 -0700 (PDT) MIME-Version: 1.0 Sender: carpeddiem@gmail.com Received: by 10.107.138.28 with HTTP; Tue, 19 Jul 2016 12:51:51 -0700 (PDT) In-Reply-To: References: <201607191746.u6JHk9ov092270@repo.freebsd.org> From: Ed Maste Date: Tue, 19 Jul 2016 15:51:51 -0400 X-Google-Sender-Auth: 0dIMWFjyZYNAZ_IAEQDK8KqvGEM Message-ID: Subject: Re: svn commit: r303033 - head/share/man/man7 To: Conrad Meyer Cc: src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 19:52:11 -0000 On 19 July 2016 at 15:37, Conrad Meyer wrote: > > ILP32 was only added on CURRENT during the 11 timeframe (the r276479 > 3.5.0 import), and can't be relied upon for stable/10 or 9, FWIW. > (Not useful for ports, for example.) > > Sure, it's probably okay that this manual page only describes the > release it is present in. Good point; I should add a note to clarify this in the page itself. From owner-svn-src-all@freebsd.org Tue Jul 19 20:11:51 2016 Return-Path: Delivered-To: svn-src-all@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 BCE5AB9ED88; Tue, 19 Jul 2016 20:11:51 +0000 (UTC) (envelope-from emaste@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 8D1691ECC; Tue, 19 Jul 2016 20:11:51 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JKBo8a046380; Tue, 19 Jul 2016 20:11:50 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JKBopW046379; Tue, 19 Jul 2016 20:11:50 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607192011.u6JKBopW046379@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 19 Jul 2016 20:11:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303045 - head/share/man/man7 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 20:11:51 -0000 Author: emaste Date: Tue Jul 19 20:11:50 2016 New Revision: 303045 URL: https://svnweb.freebsd.org/changeset/base/303045 Log: arch.7: correct MIPS endianness transcription error Submitted by: Nikolai Lifanov Modified: head/share/man/man7/arch.7 Modified: head/share/man/man7/arch.7 ============================================================================== --- head/share/man/man7/arch.7 Tue Jul 19 19:50:30 2016 (r303044) +++ head/share/man/man7/arch.7 Tue Jul 19 20:11:50 2016 (r303045) @@ -74,10 +74,10 @@ On all supported architectures, .It armv6 Ta little Ta unsigned .It arm64 Ta little Ta unsigned .It i386 Ta little Ta signed -.It mips Ta little Ta signed -.It mipsel Ta big Ta signed -.It mipsn32 Ta little Ta signed -.It mips64 Ta little Ta signed +.It mips Ta big Ta signed +.It mipsel Ta little Ta signed +.It mipsn32 Ta big Ta signed +.It mips64 Ta big Ta signed .It mips64el Ta little Ta signed .It powerpc Ta big Ta unsigned .It powerpc64 Ta big Ta unsigned From owner-svn-src-all@freebsd.org Tue Jul 19 20:15:10 2016 Return-Path: Delivered-To: svn-src-all@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 CFBC1B9EE31; Tue, 19 Jul 2016 20:15:10 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io0-f178.google.com (mail-io0-f178.google.com [209.85.223.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8ABEB1343; Tue, 19 Jul 2016 20:15:10 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io0-f178.google.com with SMTP id m101so29282564ioi.2; Tue, 19 Jul 2016 13:15:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=1ihLwqFX5XNSv3NKtG+W+XEh3Uu+Xn7+UvT2EjNkSDY=; b=FF4VlzyRtAnkuT8d77fdEp+inXM60ozBvau+jtKZygtH3FhIv8/RDTUuP3KUBfrXcB x1qgSwSRWV+adIZyPnvO6jYiT6gbYk8k/hc0empMMwjvnr9PzEVLco55u3cGnMYiVHrU zE0Y654YiSHVddDBv31nJxh0b0jGwt7H3mcz/6EPwwQ+0aOfE335egkyI4aDL/SVZf4W IS5CjdZUxZAEvDRE/V3bZNZ8uKcTUvAQswOfoWmuVIfS3q+LYRM2KVo7ULKNdlmS65uD Qay7ZMT4PNMCdIgF4CeD6AOlUR22NTqMju9DfqYGV1UQClmSp6Ibx7e5oqROn3e1aDOC dRCw== X-Gm-Message-State: ALyK8tJMZ8YpMHTRkfO/nuE7S+yX5QhmLm5dNFhVJhxk7yCpe0BU3RTmK2UJqVDxWgUtlg== X-Received: by 10.107.131.38 with SMTP id f38mr43009029iod.173.1468959309662; Tue, 19 Jul 2016 13:15:09 -0700 (PDT) Received: from mail-io0-f182.google.com (mail-io0-f182.google.com. [209.85.223.182]) by smtp.gmail.com with ESMTPSA id o74sm11466393ioe.37.2016.07.19.13.15.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Jul 2016 13:15:09 -0700 (PDT) Received: by mail-io0-f182.google.com with SMTP id b62so29225549iod.3; Tue, 19 Jul 2016 13:15:09 -0700 (PDT) X-Received: by 10.107.56.70 with SMTP id f67mr10761276ioa.162.1468959309034; Tue, 19 Jul 2016 13:15:09 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.36.233.67 with HTTP; Tue, 19 Jul 2016 13:15:08 -0700 (PDT) In-Reply-To: References: <201607191746.u6JHk9ov092270@repo.freebsd.org> From: Conrad Meyer Date: Tue, 19 Jul 2016 13:15:08 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r303033 - head/share/man/man7 To: Ed Maste Cc: src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 20:15:10 -0000 On Tue, Jul 19, 2016 at 12:51 PM, Ed Maste wrote: > On 19 July 2016 at 15:37, Conrad Meyer wrote: >> >> ILP32 was only added on CURRENT during the 11 timeframe (the r276479 >> 3.5.0 import), and can't be relied upon for stable/10 or 9, FWIW. >> (Not useful for ports, for example.) >> >> Sure, it's probably okay that this manual page only describes the >> release it is present in. > > Good point; I should add a note to clarify this in the page itself. Alternatively, it looks like a pretty trivial backport. But I'm not volunteering :-). Best, Conrad From owner-svn-src-all@freebsd.org Tue Jul 19 20:22:14 2016 Return-Path: Delivered-To: svn-src-all@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 839C0B9E036; Tue, 19 Jul 2016 20:22:14 +0000 (UTC) (envelope-from pfg@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 3A3501807; Tue, 19 Jul 2016 20:22:14 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JKMD6t051362; Tue, 19 Jul 2016 20:22:13 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JKMDJD051361; Tue, 19 Jul 2016 20:22:13 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607192022.u6JKMDJD051361@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Tue, 19 Jul 2016 20:22:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303046 - head/lib/libc/locale X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 20:22:14 -0000 Author: pfg Date: Tue Jul 19 20:22:13 2016 New Revision: 303046 URL: https://svnweb.freebsd.org/changeset/base/303046 Log: libc: tag the Rune initialization function prototypes visibility as hidden. It is good practice to export as few symbols as possible from your shared libraries, so use the GCC visibility attribute in this case, matching what Apple's libc does. Reference: https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html Hinted by: Apple's libc 1082.20.4 MFC after: 1 week Modified: head/lib/libc/locale/mblocal.h Modified: head/lib/libc/locale/mblocal.h ============================================================================== --- head/lib/libc/locale/mblocal.h Tue Jul 19 20:11:50 2016 (r303045) +++ head/lib/libc/locale/mblocal.h Tue Jul 19 20:22:13 2016 (r303046) @@ -65,18 +65,18 @@ extern struct xlocale_ctype __xlocale_gl /* * Rune initialization function prototypes. */ -int _none_init(struct xlocale_ctype *, _RuneLocale *); -int _UTF8_init(struct xlocale_ctype *, _RuneLocale *); -int _EUC_CN_init(struct xlocale_ctype *, _RuneLocale *); -int _EUC_JP_init(struct xlocale_ctype *, _RuneLocale *); -int _EUC_KR_init(struct xlocale_ctype *, _RuneLocale *); -int _EUC_TW_init(struct xlocale_ctype *, _RuneLocale *); -int _GB18030_init(struct xlocale_ctype *, _RuneLocale *); -int _GB2312_init(struct xlocale_ctype *, _RuneLocale *); -int _GBK_init(struct xlocale_ctype *, _RuneLocale *); -int _BIG5_init(struct xlocale_ctype *, _RuneLocale *); -int _MSKanji_init(struct xlocale_ctype *, _RuneLocale *); -int _ascii_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _none_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _ascii_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _UTF8_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _EUC_CN_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _EUC_JP_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _EUC_KR_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _EUC_TW_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _GB18030_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _GB2312_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _GBK_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _BIG5_init(struct xlocale_ctype *, _RuneLocale *); +__hidden int _MSKanji_init(struct xlocale_ctype *, _RuneLocale *); typedef size_t (*mbrtowc_pfn_t)(wchar_t * __restrict, const char * __restrict, size_t, mbstate_t * __restrict); From owner-svn-src-all@freebsd.org Tue Jul 19 20:46:37 2016 Return-Path: Delivered-To: svn-src-all@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 DE6C9B9E47E for ; Tue, 19 Jul 2016 20:46:37 +0000 (UTC) (envelope-from ed@nuxi.nl) Received: from mail-yw0-x234.google.com (mail-yw0-x234.google.com [IPv6:2607:f8b0:4002:c05::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A161114F0 for ; Tue, 19 Jul 2016 20:46:37 +0000 (UTC) (envelope-from ed@nuxi.nl) Received: by mail-yw0-x234.google.com with SMTP id z8so5564885ywa.1 for ; Tue, 19 Jul 2016 13:46:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nuxi-nl.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=32Nh8wp85blDdmxcfnJJ/NxrblebtXF8R41u9mnqToc=; b=D2pmgsQAxtcZVKPMt7rS4L1Qw8pUzkdOseVplfC+FJpNHhRfX7sMd21yKbEzwS5yJ2 70+PK9/UjjguGP260ofNUmOfF2SJpeeI86DugkHozomk4qLg+uBlCLsQmgvw8YBVoy8z pt4EIvHzIX8Gafx4hv9hORoLwrfnagl/t0RLIC3lZZFHgE1AkxfEB65tttGkGJ3N5G4y TW4TzycOkiHaKtOUlUHS5km2UgEYmsdLRP+0hEYHJLgCkvJc2ATkmfI2JPE/3nKGNVo8 qsLrZ0gm2b7CXUrsekqGeOxcBMDExDQUnCjOAUaw0I+WfyYK6tvyjiEeOSLN3ToVMmNo ushg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=32Nh8wp85blDdmxcfnJJ/NxrblebtXF8R41u9mnqToc=; b=G1j4p+rFdL0t6LlL4ooK96vJhDG2OU8bjEHgA5DRVnErFZzranvlshsprL8AQJrWIr sWKfwUkghcy883KipmWSHRfyl8LBBRWc93HC8IHgx6TilA9QVGYHkfJX/lY4seOev8Fm H/mxQNOh2k0WhZI71d1MIkhjQVWvBNAwoUH/NyUmmwrIYRtD/CsCgyR6/zdm/UAmEXPV RQepdjRHRcw+tff09PL6g8f8yk961Pmm5q/5rHpE9tbCb7zKgO76ClYJjw5TfuW+E+YY 8I57uVi1LYJf9WDIDoQzKqw9Xl/h3VOhGjaCy6msh6GhcXo2HilMoOjxMng8uZb6obd3 wKpA== X-Gm-Message-State: ALyK8tJGKbdZhICA145VEaYAWK+xqumGk8tfdo+6mP8xF/0j49ulOy1CaOhMy4zsstD3ci2uWd2OKX3eFfHnig== X-Received: by 10.37.114.2 with SMTP id n2mr26299951ybc.54.1468961196641; Tue, 19 Jul 2016 13:46:36 -0700 (PDT) MIME-Version: 1.0 Received: by 10.13.201.71 with HTTP; Tue, 19 Jul 2016 13:46:36 -0700 (PDT) In-Reply-To: <201607192022.u6JKMDJD051361@repo.freebsd.org> References: <201607192022.u6JKMDJD051361@repo.freebsd.org> From: Ed Schouten Date: Tue, 19 Jul 2016 22:46:36 +0200 Message-ID: Subject: Re: svn commit: r303046 - head/lib/libc/locale To: "Pedro F. Giffuni" Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 20:46:38 -0000 Hi Pedro, 2016-07-19 22:22 GMT+02:00 Pedro F. Giffuni : > Author: pfg > Date: Tue Jul 19 20:22:13 2016 > New Revision: 303046 > URL: https://svnweb.freebsd.org/changeset/base/303046 > > Log: > libc: tag the Rune initialization function prototypes visibility as hidden. How does this interact with symbol versioning/mapping? Wouldn't our C library's symbol map already make these symbols hidden without any explicit annotation? -- Ed Schouten Nuxi, 's-Hertogenbosch, the Netherlands KvK-nr.: 62051717 From owner-svn-src-all@freebsd.org Tue Jul 19 21:22:38 2016 Return-Path: Delivered-To: svn-src-all@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 E7EEEB9EE40 for ; Tue, 19 Jul 2016 21:22:38 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm18-vm0.bullet.mail.bf1.yahoo.com (nm18-vm0.bullet.mail.bf1.yahoo.com [98.139.213.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9C24116D8 for ; Tue, 19 Jul 2016 21:22:38 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1468963350; bh=LbMhfiZVPIPTqKi5gWy6Tm6HEmPKqxE5aidTGIQUNSc=; h=Subject:To:References:Cc:From:Date:In-Reply-To:From:Subject; b=SuhjVNInYNml1vQVPWhsSMxd3lvpc1dUeSMCEO70HmkReGqk8qds1NZIL1o4YhiCDJtDuK77kLnh/oUe7QuRbprIBENjRPlhvnyItcXms9xY0H+psMq9lg6xD6AiILHqvjclp07xhNquuSgXGYsBPVsSNdX307E7nRSYlSLruy/Nu2YTzJmpCrGEYJH0y4IbXxPFuh1hgdV7ZE/tP6qfzFC4N//w5NSIQtOI2szh9F0WXOHljol6N33l07hXDeRqjmyH46CKEbu0x3BWUBiC/xAOuqdUXWjEQIJmTOJQR76gra5oZX6DassuzDeMjGwnShEZ3ROunR5qvXrhWV8K6A== Received: from [98.139.170.181] by nm18.bullet.mail.bf1.yahoo.com with NNFMP; 19 Jul 2016 21:22:30 -0000 Received: from [98.139.211.194] by tm24.bullet.mail.bf1.yahoo.com with NNFMP; 19 Jul 2016 21:22:30 -0000 Received: from [127.0.0.1] by smtp203.mail.bf1.yahoo.com with NNFMP; 19 Jul 2016 21:22:30 -0000 X-Yahoo-Newman-Id: 870474.29954.bm@smtp203.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: Ff.odvsVM1l6UaWimbtRRuTdayr.Xpa6SxGgpUf9nJJIFH_ p7M53a1dwP3h8qNojmYWy1uzNoCKdsYLMUKrEolib3G4.JIqvMlhZKdftqD2 mqOjZJH98fXMCZlfFl_J.MDH6AEIVS0DT_yzz_00E3q2HjR6QIRrwyFbsfEG Xm8C7X7XP44L1qESrCTePZUOXmQKuVtpqF0XsZ1Byh.0QxGyx1YFlclc3hcf 3_34SehGLvA4wLVQch.hj5uWSYnP17ZlzyLUejkSShiyuW.kGQrW9ySJUbUz lF1HXaK0FjNwUKUvndTlLeRykK4w.Fa3OixLL3PhD4McyDE6ZE0WDclEhA4W 4Tpy4gekaRI4hrRC7JoKRS5u8uoDzF8obt7KG9JPkY6ZxMRpxvysg_vJLtaM 1gNGz5VfWGgAPqIsXfVNDkg4SOe04ExwUdRRF8zbROd2fgw7351eyhhzp29F uxBnDCt2VpHh0Ni._KkLcM9GnQ0fMaLxiql.07ZK5zYySX6qMtdG4mtoUB.R 8ZJpjt9ztB5qBaAQlFg7ahnro0wwwAc2gkoMApoNjAV3TfA-- X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Subject: Re: svn commit: r303046 - head/lib/libc/locale To: Ed Schouten References: <201607192022.u6JKMDJD051361@repo.freebsd.org> Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Pedro Giffuni Message-ID: <0273c74d-fc3b-8bf9-9c79-8bc8101943dc@FreeBSD.org> Date: Tue, 19 Jul 2016 16:22:33 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 21:22:39 -0000 Hi; On 07/19/16 15:46, Ed Schouten wrote: > Hi Pedro, > > 2016-07-19 22:22 GMT+02:00 Pedro F. Giffuni : >> Author: pfg >> Date: Tue Jul 19 20:22:13 2016 >> New Revision: 303046 >> URL: https://svnweb.freebsd.org/changeset/base/303046 >> >> Log: >> libc: tag the Rune initialization function prototypes visibility as hidden. > > How does this interact with symbol versioning/mapping? Wouldn't our C > library's symbol map already make these symbols hidden without any > explicit annotation? > It shouldn't hurt at all, this is not the first use that we make of the visibility attributes in libc. I do notice we tend to put them at the end of the prototype, while I followed the Apple notation of setting them in front. No idea if that is worthwhile to change. It is true that these symbols should already be hidden but in the case some port is using -fvisibility= compiler flag this will prevent the symbols from getting exported by accident. Pedro. From owner-svn-src-all@freebsd.org Tue Jul 19 21:57:32 2016 Return-Path: Delivered-To: svn-src-all@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 2BBC6B9E431; Tue, 19 Jul 2016 21:57:32 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mx1.stack.nl (relay02.stack.nl [IPv6:2001:610:1108:5010::104]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailhost.stack.nl", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id E220C15BA; Tue, 19 Jul 2016 21:57:31 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from snail.stack.nl (snail.stack.nl [IPv6:2001:610:1108:5010::131]) by mx1.stack.nl (Postfix) with ESMTP id 448E6358C62; Tue, 19 Jul 2016 23:57:28 +0200 (CEST) Received: by snail.stack.nl (Postfix, from userid 1677) id 2906828494; Tue, 19 Jul 2016 23:57:28 +0200 (CEST) Date: Tue, 19 Jul 2016 23:57:28 +0200 From: Jilles Tjoelker To: Ed Schouten Cc: "Pedro F. Giffuni" , src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303046 - head/lib/libc/locale Message-ID: <20160719215727.GA45133@stack.nl> References: <201607192022.u6JKMDJD051361@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 21:57:32 -0000 On Tue, Jul 19, 2016 at 10:46:36PM +0200, Ed Schouten wrote: > 2016-07-19 22:22 GMT+02:00 Pedro F. Giffuni : > > Author: pfg > > Date: Tue Jul 19 20:22:13 2016 > > New Revision: 303046 > > URL: https://svnweb.freebsd.org/changeset/base/303046 > > Log: > > libc: tag the Rune initialization function prototypes visibility > > as hidden. > How does this interact with symbol versioning/mapping? Wouldn't our C > library's symbol map already make these symbols hidden without any > explicit annotation? Trying to export (using a version script) a symbol with hidden visibility attribute is an error, but GNU ld might accept it and fix it up using text relocations or by not exporting the symbol. Although both version scripts and visibility attributes can be used to prevent exporting symbols, the goals are different. The goal of version scripts is to enforce that no symbol is exported that is not in the version script. The goal of visibility attributes is to optimize performance and code size. For example, on i386, a function without visibility attributes that is not exported is called directly but still has %ebx set up for the PLT entry. This not only adds extra instructions and stack usage but also prevents tail calls (clang called the GOT entry indirectly for a while to allow tail calls but this was removed because some code depended on lazy resolution which requires PLT entries). -- Jilles Tjoelker From owner-svn-src-all@freebsd.org Tue Jul 19 22:13:55 2016 Return-Path: Delivered-To: svn-src-all@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 E6F45B9E9F4 for ; Tue, 19 Jul 2016 22:13:55 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm21.bullet.mail.bf1.yahoo.com (nm21.bullet.mail.bf1.yahoo.com [98.139.212.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9E5861EB0 for ; Tue, 19 Jul 2016 22:13:55 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1468965602; bh=HOw0gpEXTSRcF4V++5k8G8Pb0aMbQyyjJUTKc91txdk=; h=Subject:To:References:Cc:From:Date:In-Reply-To:From:Subject; b=DFV7DXkuREnccsQ8VEEYGLm2Q4aIK6Je5+YX+5LM/1FbLlNhLn+KUl8UFhchEUaiXXXEHUdDy1jclBtafBH0EblztIb2xnJpVLr4UyMwjZCJ8nNXOmX9TW6TA6j7crUmmesyW7jstTIPYNVEW0b95t6t8RoJrIlqoM78+VEmCOLyCOPGFnriUXQ1rTjMRsFNy1+y8iEpfqRZ+qgciCTgaSZgK3ECDIf0vkpgr4QuKz451MNGz64C2TxMjcHl9GbNu/K5P9J2CCuUrkTtzJbDQdYVivmsZl4TUt/qtaRs8yu3n5dJOlP39K3TdE20+asSFwX2gXZZT/XHVFgh3MYPCw== Received: from [66.196.81.174] by nm21.bullet.mail.bf1.yahoo.com with NNFMP; 19 Jul 2016 22:00:02 -0000 Received: from [68.142.230.64] by tm20.bullet.mail.bf1.yahoo.com with NNFMP; 19 Jul 2016 22:00:02 -0000 Received: from [127.0.0.1] by smtp221.mail.bf1.yahoo.com with NNFMP; 19 Jul 2016 22:00:02 -0000 X-Yahoo-Newman-Id: 845823.50913.bm@smtp221.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: NmP7zdIVM1lBVleoPpm22kzUqU6rjwSYQFbdphhp95Gy9iV XcY0U4Wk_ufgZSjhFpAPQEn_v9buopmTuEg2bMfdCNRZqYUTcP51MuWtITTq oy_M15fNWlU8QNQp1UmMZZwrh3CB3U5qiYqM12C2elxbuINZ6Dmk9fO4FTkw wZn2S0Mx6G2sukYjn4K1a3fFCdQvS7BBwYNRlNtpTj.9e2DHtLEv8W.2x0QP fftssXbC_1VIkWjG__.M82wcEG_EiMQlscLlBRCLjGc9RGgqHEZvwLJmeo7b QStO1bEuc9uW8UIgPDIHexJdDJPlAkwHREjobFfFmjPdn2piksOM3.IWPUyM 3x286eO2WB0SH9v8xRSi2F07LEUDaMxWna3WhwL7JD1aI7l8hRqhwssAUpk_ xIB7s_d1h1I9GKgYxSjr5b8yJzevVLn6ONmdIkJvHRIqW0wbEjVZOfsRzrZB 4nquQ34tizFKmm1Hcm8cd6fMocLUXoKeXTSLcYltxyvslJSEDqnxO_Oqm3h0 wVJhwsC6GfjQJ1bPYp2JnMO9H60E3TJIi8TEJ8t6rKlaagw-- X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Subject: Re: svn commit: r303046 - head/lib/libc/locale To: Ed Schouten References: <201607192022.u6JKMDJD051361@repo.freebsd.org> <0273c74d-fc3b-8bf9-9c79-8bc8101943dc@FreeBSD.org> Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Pedro Giffuni Message-ID: Date: Tue, 19 Jul 2016 17:00:05 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <0273c74d-fc3b-8bf9-9c79-8bc8101943dc@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 22:13:56 -0000 On 07/19/16 16:22, Pedro Giffuni wrote: > Hi; > > On 07/19/16 15:46, Ed Schouten wrote: >> Hi Pedro, >> >> 2016-07-19 22:22 GMT+02:00 Pedro F. Giffuni : >>> Author: pfg >>> Date: Tue Jul 19 20:22:13 2016 >>> New Revision: 303046 >>> URL: https://svnweb.freebsd.org/changeset/base/303046 >>> >>> Log: >>> libc: tag the Rune initialization function prototypes visibility as >>> hidden. >> >> How does this interact with symbol versioning/mapping? Wouldn't our C >> library's symbol map already make these symbols hidden without any >> explicit annotation? >> > > It shouldn't hurt at all, this is not the first use that we make of the > visibility attributes in libc. I do notice we tend to put them at the > end of the prototype, while I followed the Apple notation of setting > them in front. No idea if that is worthwhile to change. > > It is true that these symbols should already be hidden but in the case > some port is using -fvisibility= compiler flag this will prevent the > symbols from getting exported by accident. > Hmm... actually, you probably can't unhide the regular functions with -fvisibility. It just doesn't hurt to have the extra insurance, plus it's generally not wrong to be compatible with Apple ;). Pedro. From owner-svn-src-all@freebsd.org Tue Jul 19 22:56:42 2016 Return-Path: Delivered-To: svn-src-all@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 6C9F0B9E267; Tue, 19 Jul 2016 22:56:42 +0000 (UTC) (envelope-from pfg@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 3E6D512C1; Tue, 19 Jul 2016 22:56:42 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JMufRb007511; Tue, 19 Jul 2016 22:56:41 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JMuewv007503; Tue, 19 Jul 2016 22:56:40 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607192256.u6JMuewv007503@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Tue, 19 Jul 2016 22:56:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303047 - head/usr.bin/sed X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 22:56:42 -0000 Author: pfg Date: Tue Jul 19 22:56:40 2016 New Revision: 303047 URL: https://svnweb.freebsd.org/changeset/base/303047 Log: sed(1): Assorted cleanups and simplifications. Const-ify several variables, make it build cleanly with WARNS level 5. Submitted by: mi PR: 195929 MFC after: 1 month Modified: head/usr.bin/sed/Makefile head/usr.bin/sed/compile.c head/usr.bin/sed/defs.h head/usr.bin/sed/extern.h head/usr.bin/sed/main.c head/usr.bin/sed/misc.c head/usr.bin/sed/process.c Modified: head/usr.bin/sed/Makefile ============================================================================== --- head/usr.bin/sed/Makefile Tue Jul 19 20:22:13 2016 (r303046) +++ head/usr.bin/sed/Makefile Tue Jul 19 22:56:40 2016 (r303047) @@ -6,7 +6,7 @@ PROG= sed SRCS= compile.c main.c misc.c process.c -WARNS?= 2 +WARNS?= 5 .if ${MK_TESTS} != "no" SUBDIR+= tests Modified: head/usr.bin/sed/compile.c ============================================================================== --- head/usr.bin/sed/compile.c Tue Jul 19 20:22:13 2016 (r303046) +++ head/usr.bin/sed/compile.c Tue Jul 19 22:56:40 2016 (r303047) @@ -64,21 +64,21 @@ static struct labhash { int lh_ref; } *labels[LHSZ]; -static char *compile_addr(char *, struct s_addr *); -static char *compile_ccl(char **, char *); -static char *compile_delimited(char *, char *, int); -static char *compile_flags(char *, struct s_subst *); -static regex_t *compile_re(char *, int); -static char *compile_subst(char *, struct s_subst *); -static char *compile_text(void); -static char *compile_tr(char *, struct s_tr **); +static const char *compile_addr(const char *, struct s_addr *); +static char *compile_ccl(const char **, char *); +static const char *compile_delimited(const char *, char *, int); +static const char *compile_flags(const char *, struct s_subst *); +static const regex_t *compile_re(const char *, int); +static const char *compile_subst(const char *, struct s_subst *); +static char *compile_text(size_t *); +static const char *compile_tr(const char *, struct s_tr **); static struct s_command **compile_stream(struct s_command **); -static char *duptoeol(char *, const char *); +static char *duptoeol(const char *, const char *, size_t *); static void enterlabel(struct s_command *); static struct s_command - *findlabel(char *); -static void fixuplabel(struct s_command *, struct s_command *); + *findlabel(const char *); +static void fixuplabel(struct s_command *, const struct s_command *); static void uselabel(void); /* @@ -144,17 +144,20 @@ compile(void) err(1, "malloc"); } -#define EATSPACE() do { \ - if (p) \ - while (*p && isspace((unsigned char)*p)) \ - p++; \ +#define EATSPACE() do { \ + while (*p && isspace((unsigned char)*p)) \ + p++; \ + } while (0) + +#define EATSPACEN() do { \ + while (*p && *p != '\n' && isspace((unsigned char)*p)) \ + p++; \ } while (0) static struct s_command ** compile_stream(struct s_command **link) { - char *p; - static char lbuf[_POSIX2_LINE_MAX + 1]; /* To save stack */ + const char *p; struct s_command *cmd, *cmd2, *stack; struct s_format *fp; char re[_POSIX2_LINE_MAX + 1]; @@ -162,22 +165,22 @@ compile_stream(struct s_command **link) stack = NULL; for (;;) { - if ((p = cu_fgets(lbuf, sizeof(lbuf), NULL)) == NULL) { + if ((p = cu_fgets(NULL)) == NULL) { if (stack != NULL) errx(1, "%lu: %s: unexpected EOF (pending }'s)", linenum, fname); return (link); } -semicolon: EATSPACE(); - if (p) { - if (*p == '#' || *p == '\0') - continue; - else if (*p == ';') { - p++; - goto semicolon; - } +semicolon: EATSPACEN(); + switch (*p) { + case '#': case '\0': case '\n': + continue; /* to next command-unit */ + case ';': + p++; + goto semicolon; } + if ((*link = cmd = malloc(sizeof(struct s_command))) == NULL) err(1, "malloc"); link = &cmd->next; @@ -208,14 +211,14 @@ semicolon: EATSPACE(); cmd->a1 = cmd->a2 = NULL; nonsel: /* Now parse the command */ - if (!*p) + if (*p == '\0' || *p == '\n') errx(1, "%lu: %s: command expected", linenum, fname); cmd->code = *p; for (fp = cmd_fmts; fp->code; fp++) if (fp->code == *p) break; if (!fp->code) - errx(1, "%lu: %s: invalid command code %c", linenum, fname, *p); + errx(1, "%lu: %s: invalid command code %c (%s)", linenum, fname, *p, p); if (naddr > fp->naddr) errx(1, "%lu: %s: command %c expects up to %d address(es), found %d", @@ -228,11 +231,11 @@ nonsel: /* Now parse the command */ goto nonsel; case GROUP: /* { */ p++; - EATSPACE(); + EATSPACEN(); cmd->next = stack; stack = cmd; link = &cmd->u.c; - if (*p) + if (*p != '\0' && *p != '\n') goto semicolon; break; case ENDGROUP: @@ -249,13 +252,13 @@ nonsel: /* Now parse the command */ /*FALLTHROUGH*/ case EMPTY: /* d D g G h H l n N p P q x = \0 */ p++; - EATSPACE(); + EATSPACEN(); if (*p == ';') { p++; link = &cmd->next; goto semicolon; } - if (*p) + if (*p != '\0' && *p != '\n') errx(1, "%lu: %s: extra characters at the end of %c command", linenum, fname, cmd->code); break; @@ -266,12 +269,12 @@ nonsel: /* Now parse the command */ errx(1, "%lu: %s: command %c expects \\ followed by text", linenum, fname, cmd->code); p++; - EATSPACE(); - if (*p) + EATSPACEN(); + if (*p != '\n') errx(1, - "%lu: %s: extra characters after \\ at the end of %c command", - linenum, fname, cmd->code); - cmd->t = compile_text(); + "%lu: %s: extra characters (%c) after \\ at the end of %c command", + linenum, fname, *p, cmd->code); + cmd->t = compile_text(&cmd->tlen); break; case COMMENT: /* \0 # */ break; @@ -280,10 +283,10 @@ nonsel: /* Now parse the command */ EATSPACE(); if (*p == '\0') errx(1, "%lu: %s: filename expected", linenum, fname); - cmd->t = duptoeol(p, "w command"); + cmd->t = duptoeol(p, "w command", &cmd->tlen); if (aflag) cmd->u.fd = -1; - else if ((cmd->u.fd = open(p, + else if ((cmd->u.fd = open(cmd->t, O_WRONLY|O_APPEND|O_CREAT|O_TRUNC, DEFFILEMODE)) == -1) err(1, "%s", p); @@ -294,27 +297,27 @@ nonsel: /* Now parse the command */ if (*p == '\0') errx(1, "%lu: %s: filename expected", linenum, fname); else - cmd->t = duptoeol(p, "read command"); + cmd->t = duptoeol(p, "read command", &cmd->tlen); break; case BRANCH: /* b t */ p++; - EATSPACE(); - if (*p == '\0') + EATSPACEN(); + if (*p == '\0' || *p == '\n') cmd->t = NULL; else - cmd->t = duptoeol(p, "branch"); + cmd->t = duptoeol(p, "branch", &cmd->tlen); break; case LABEL: /* : */ p++; EATSPACE(); - cmd->t = duptoeol(p, "label"); - if (strlen(p) == 0) + cmd->t = duptoeol(p, "label", &cmd->tlen); + if (cmd->t[0] == '\0') errx(1, "%lu: %s: empty label", linenum, fname); enterlabel(cmd); break; case SUBST: /* s */ p++; - if (*p == '\0' || *p == '\\') + if (*p == '\0' || *p == '\\' || *p == '\n') errx(1, "%lu: %s: substitute pattern can not be delimited by newline or backslash", linenum, fname); @@ -325,21 +328,15 @@ nonsel: /* Now parse the command */ errx(1, "%lu: %s: unterminated substitute pattern", linenum, fname); - /* Compile RE with no case sensitivity temporarily */ - if (*re == '\0') - cmd->u.s->re = NULL; - else - cmd->u.s->re = compile_re(re, 0); --p; p = compile_subst(p, cmd->u.s); p = compile_flags(p, cmd->u.s); - /* Recompile RE with case sensitivity from "I" flag if any */ - if (*re == '\0') - cmd->u.s->re = NULL; - else + if (*re != '\0') cmd->u.s->re = compile_re(re, cmd->u.s->icase); + EATSPACE(); + if (*p == ';') { p++; link = &cmd->next; @@ -372,8 +369,8 @@ nonsel: /* Now parse the command */ * in the case of a non-terminated string. The character array d is filled * with the processed string. */ -static char * -compile_delimited(char *p, char *d, int is_tr) +static const char * +compile_delimited(const char *p, char *d, int is_tr) { char c; @@ -416,10 +413,10 @@ compile_delimited(char *p, char *d, int /* compile_ccl: expand a POSIX character class */ static char * -compile_ccl(char **sp, char *t) +compile_ccl(const char **sp, char *t) { int c, d; - char *s = *sp; + const char *s = *sp; *t++ = *s++; if (*s == '^') @@ -441,8 +438,8 @@ compile_ccl(char **sp, char *t) * regular expression. * Cflags are passed to regcomp. */ -static regex_t * -compile_re(char *re, int case_insensitive) +static const regex_t * +compile_re(const char *re, int case_insensitive) { regex_t *rep; int eval, flags; @@ -466,14 +463,13 @@ compile_re(char *re, int case_insensitiv * point to a saved copy of it. Nsub is the number of parenthesized regular * expressions. */ -static char * -compile_subst(char *p, struct s_subst *s) +static const char * +compile_subst(const char *p, struct s_subst *s) { - static char lbuf[_POSIX2_LINE_MAX + 1]; int asize, size; u_char ref; char c, *text, *op, *sp; - int more = 1, sawesc = 0; + int more = 0, sawesc = 0; c = *p++; /* Terminator character */ if (c == '\0') @@ -487,7 +483,7 @@ compile_subst(char *p, struct s_subst *s size = 0; do { op = sp = text + size; - for (; *p; p++) { + for (; *p != '\0' && *p != '\n'; p++) { if (*p == '\\' || sawesc) { /* * If this is a continuation from the last @@ -509,7 +505,10 @@ compile_subst(char *p, struct s_subst *s */ sawesc = 1; p--; - continue; + break; + } else if (*p == '\n') { + *sp++ = '\n'; + break; } else if (strchr("123456789", *p) != NULL) { *sp++ = '\\'; ref = *p - '0'; @@ -523,8 +522,11 @@ compile_subst(char *p, struct s_subst *s *sp++ = '\\'; } else if (*p == c) { if (*++p == '\0' && more) { - if (cu_fgets(lbuf, sizeof(lbuf), &more)) - p = lbuf; + const char *nextp; + + nextp = cu_fgets(&more); + if (nextp != NULL) + p = nextp; } *sp++ = '\0'; size += sp - op; @@ -544,7 +546,7 @@ compile_subst(char *p, struct s_subst *s if ((text = realloc(text, asize)) == NULL) err(1, "realloc"); } - } while (cu_fgets(p = lbuf, sizeof(lbuf), &more)); + } while ((p = cu_fgets(&more))); errx(1, "%lu: %s: unterminated substitute in regular expression", linenum, fname); /* NOTREACHED */ @@ -553,12 +555,12 @@ compile_subst(char *p, struct s_subst *s /* * Compile the flags of the s command */ -static char * -compile_flags(char *p, struct s_subst *s) +static const char * +compile_flags(const char *p, struct s_subst *s) { int gn; /* True if we have seen g or n */ unsigned long nval; - char wfile[_POSIX2_LINE_MAX + 1], *q, *eq; + char *q; s->n = 1; /* Default */ s->p = 0; @@ -566,7 +568,7 @@ compile_flags(char *p, struct s_subst *s s->wfd = -1; s->icase = 0; for (gn = 0;;) { - EATSPACE(); /* EXTENSION */ + EATSPACEN(); /* EXTENSION */ switch (*p) { case 'g': if (gn) @@ -594,13 +596,13 @@ compile_flags(char *p, struct s_subst *s "%lu: %s: more than one number or 'g' in substitute flags", linenum, fname); gn = 1; errno = 0; - nval = strtol(p, &p, 10); + nval = strtol(p, &q, 10); if (errno == ERANGE || nval > INT_MAX) errx(1, "%lu: %s: overflow in the 'N' substitute flag", linenum, fname); s->n = nval; - p--; - break; + p = q; + continue; case 'w': p++; #ifdef HISTORIC_PRACTICE @@ -610,27 +612,15 @@ compile_flags(char *p, struct s_subst *s } #endif EATSPACE(); - q = wfile; - eq = wfile + sizeof(wfile) - 1; - while (*p) { - if (*p == '\n') - break; - if (q >= eq) - err(1, "wfile too long"); - *q++ = *p++; - } - *q = '\0'; - if (q == wfile) - errx(1, "%lu: %s: no wfile specified", linenum, fname); - s->wfile = strdup(wfile); - if (!aflag && (s->wfd = open(wfile, + s->wfile = duptoeol(p, "w flag", NULL); + if (!aflag && (s->wfd = open(s->wfile, O_WRONLY|O_APPEND|O_CREAT|O_TRUNC, DEFFILEMODE)) == -1) - err(1, "%s", wfile); + err(1, "%s", s->wfile); return (p); default: - errx(1, "%lu: %s: bad flag in substitute command: '%c'", - linenum, fname, *p); + errx(1, "%lu: %s: bad flag in substitute command: '%c' (%.10s)", + linenum, fname, *p, p); break; } p++; @@ -640,8 +630,8 @@ compile_flags(char *p, struct s_subst *s /* * Compile a translation set of strings into a lookup table. */ -static char * -compile_tr(char *p, struct s_tr **py) +static const char * +compile_tr(const char *p, struct s_tr **py) { struct s_tr *y; int i; @@ -652,7 +642,7 @@ compile_tr(char *p, struct s_tr **py) mbstate_t mbs1, mbs2; if ((*py = y = malloc(sizeof(*y))) == NULL) - err(1, NULL); + err(1, "malloc"); y->multis = NULL; y->nmultis = 0; @@ -672,11 +662,11 @@ compile_tr(char *p, struct s_tr **py) op = old; oldlen = mbsrtowcs(NULL, &op, 0, NULL); if (oldlen == (size_t)-1) - err(1, NULL); + err(1, "mbsrtowcs"); np = new; newlen = mbsrtowcs(NULL, &np, 0, NULL); if (newlen == (size_t)-1) - err(1, NULL); + err(1, "mbsrtowcs"); if (newlen != oldlen) errx(1, "%lu: %s: transform strings are not the same length", linenum, fname); @@ -715,7 +705,7 @@ compile_tr(char *p, struct s_tr **py) y->multis = realloc(y->multis, (y->nmultis + 1) * sizeof(*y->multis)); if (y->multis == NULL) - err(1, NULL); + err(1, "realloc"); i = y->nmultis++; y->multis[i].fromlen = oclen; memcpy(y->multis[i].from, op, oclen); @@ -733,23 +723,24 @@ compile_tr(char *p, struct s_tr **py) * Compile the text following an a, c, or i command. */ static char * -compile_text(void) +compile_text(size_t *ptlen) { int asize, esc_nl, size; - char *text, *p, *op, *s; - char lbuf[_POSIX2_LINE_MAX + 1]; + char *text, *s; + const char *p, *op; asize = 2 * _POSIX2_LINE_MAX + 1; if ((text = malloc(asize)) == NULL) err(1, "malloc"); size = 0; - while (cu_fgets(lbuf, sizeof(lbuf), NULL)) { + while ((p = cu_fgets(NULL))) { op = s = text + size; - p = lbuf; for (esc_nl = 0; *p != '\0'; p++) { if (*p == '\\' && p[1] != '\0' && *++p == '\n') esc_nl = 1; *s++ = *p; + if (*p == '\n') + break; } size += s - op; if (!esc_nl) { @@ -763,17 +754,18 @@ compile_text(void) } } text[size] = '\0'; - if ((p = realloc(text, size + 1)) == NULL) + if ((text = realloc(text, size + 1)) == NULL) err(1, "realloc"); - return (p); + *ptlen = size; + return (text); } /* * Get an address and return a pointer to the first character after * it. Fill the structure pointed to according to the address. */ -static char * -compile_addr(char *p, struct s_addr *a) +static const char * +compile_addr(const char *p, struct s_addr *a) { char *end, re[_POSIX2_LINE_MAX + 1]; int icase; @@ -827,22 +819,26 @@ compile_addr(char *p, struct s_addr *a) * Return a copy of all the characters up to \n or \0. */ static char * -duptoeol(char *s, const char *ctype) +duptoeol(const char *s, const char *ctype, size_t *ptlen) { size_t len; int ws; - char *p, *start; + char *p; + const char *start; ws = 0; for (start = s; *s != '\0' && *s != '\n'; ++s) ws = isspace((unsigned char)*s); - *s = '\0'; if (ws) warnx("%lu: %s: whitespace after %s", linenum, fname, ctype); - len = s - start + 1; - if ((p = malloc(len)) == NULL) + len = s - start; + if ((p = malloc(len + 1)) == NULL) err(1, "malloc"); - return (memmove(p, start, len)); + memmove(p, start, len); + p[len] = '\0'; + if (ptlen != NULL) + *ptlen = len; + return p; } /* @@ -853,7 +849,7 @@ duptoeol(char *s, const char *ctype) * TODO: Remove } nodes */ static void -fixuplabel(struct s_command *cp, struct s_command *end) +fixuplabel(struct s_command *cp, const struct s_command *end) { for (; cp != end; cp = cp->next) @@ -870,7 +866,7 @@ fixuplabel(struct s_command *cp, struct break; } if ((cp->u.c = findlabel(cp->t)) == NULL) - errx(1, "%lu: %s: undefined label '%s'", linenum, fname, cp->t); + errx(1, "%lu: %s: %c: undefined label '%s'", linenum, fname, cp->code, cp->t); free(cp->t); break; case '{': @@ -910,13 +906,13 @@ enterlabel(struct s_command *cp) * list cp. L is excluded from the search. Return NULL if not found. */ static struct s_command * -findlabel(char *name) +findlabel(const char *name) { struct labhash *lh; - u_char *p; + const u_char *p; u_int h, c; - for (h = 0, p = (u_char *)name; (c = *p) != 0; p++) + for (h = 0, p = (const u_char *)name; (c = *p) != 0; p++) h = (h << 5) + h + c; for (lh = labels[h & LHMASK]; lh != NULL; lh = lh->lh_next) { if (lh->lh_hash == h && strcmp(name, lh->lh_cmd->t) == 0) { Modified: head/usr.bin/sed/defs.h ============================================================================== --- head/usr.bin/sed/defs.h Tue Jul 19 20:22:13 2016 (r303046) +++ head/usr.bin/sed/defs.h Tue Jul 19 22:56:40 2016 (r303047) @@ -51,7 +51,7 @@ struct s_addr { enum e_atype type; /* Address type */ union { u_long l; /* Line number */ - regex_t *r; /* Regular expression */ + const regex_t *r; /* Regular expression */ } u; }; @@ -64,7 +64,7 @@ struct s_subst { int icase; /* True if I flag */ char *wfile; /* NULL if no wfile */ int wfd; /* Cached file descriptor */ - regex_t *re; /* Regular expression */ + const regex_t *re; /* Regular expression */ unsigned int maxbref; /* Largest backreference. */ u_long linenum; /* Line number. */ char *new; /* Replacement text */ @@ -94,6 +94,7 @@ struct s_command { struct s_addr *a1, *a2; /* Start and end address */ u_long startline; /* Start line number or zero */ char *t; /* Text for : a c i r w */ + size_t tlen; union { struct s_command *c; /* Command(s) for b t { */ struct s_subst *s; /* Substitute command */ Modified: head/usr.bin/sed/extern.h ============================================================================== --- head/usr.bin/sed/extern.h Tue Jul 19 20:22:13 2016 (r303046) +++ head/usr.bin/sed/extern.h Tue Jul 19 22:56:40 2016 (r303047) @@ -45,12 +45,12 @@ extern const char *fname, *outfname; extern FILE *infile, *outfile; extern int rflags; /* regex flags to use */ -void cfclose(struct s_command *, struct s_command *); +void cfclose(struct s_command *, const struct s_command *); void compile(void); void cspace(SPACE *, const char *, size_t, enum e_spflag); -char *cu_fgets(char *, int, int *); +const char *cu_fgets(int *); int mf_fgets(SPACE *, enum e_spflag); int lastline(void); void process(void); void resetstate(void); -char *strregerror(int, regex_t *); +char *strregerror(int, const regex_t *); Modified: head/usr.bin/sed/main.c ============================================================================== --- head/usr.bin/sed/main.c Tue Jul 19 20:22:13 2016 (r303046) +++ head/usr.bin/sed/main.c Tue Jul 19 22:56:40 2016 (r303047) @@ -73,7 +73,7 @@ static const char sccsid[] = "@(#)main.c struct s_compunit { struct s_compunit *next; enum e_cut {CU_FILE, CU_STRING} type; - char *s; /* Pointer to string or fname */ + const char *s; /* Pointer to string or fname */ }; /* @@ -86,7 +86,7 @@ static struct s_compunit *script, **cu_n * Linked list of files to be processed */ struct s_flist { - char *fname; + const char *fname; struct s_flist *next; }; @@ -117,15 +117,14 @@ static char tmpfname[PATH_MAX]; /* Tempo static const char *inplace; /* Inplace edit file extension. */ u_long linenum; -static void add_compunit(enum e_cut, char *); -static void add_file(char *); +static void add_compunit(enum e_cut, const char *); +static void add_file(const char *); static void usage(void); int main(int argc, char *argv[]) { int c, fflag; - char *temp_arg; (void) setlocale(LC_ALL, ""); @@ -147,11 +146,7 @@ main(int argc, char *argv[]) break; case 'e': eflag = 1; - if ((temp_arg = malloc(strlen(optarg) + 2)) == NULL) - err(1, "malloc"); - strcpy(temp_arg, optarg); - strcat(temp_arg, "\n"); - add_compunit(CU_STRING, temp_arg); + add_compunit(CU_STRING, optarg); break; case 'f': fflag = 1; @@ -214,14 +209,16 @@ usage(void) * Like fgets, but go through the chain of compilation units chaining them * together. Empty strings and files are ignored. */ -char * -cu_fgets(char *buf, int n, int *more) +const char * +cu_fgets(int *more) { static enum {ST_EOF, ST_FILE, ST_STRING} state = ST_EOF; static FILE *f; /* Current open file */ - static char *s; /* Current pointer inside string */ - static char string_ident[30]; + static const char *s; /* Current pointer inside string */ + static char string_ident[30], *lastresult; + static size_t lastsize; char *p; + const char *start; again: switch (state) { @@ -251,14 +248,16 @@ again: goto again; } case ST_FILE: - if ((p = fgets(buf, n, f)) != NULL) { + p = lastresult; + if (getline(&p, &lastsize, f) != -1) { linenum++; - if (linenum == 1 && buf[0] == '#' && buf[1] == 'n') + if (linenum == 1 && p[0] == '#' && p[1] == 'n') nflag = 1; if (more != NULL) *more = !feof(f); - return (p); - } + return (lastresult = p); + } else if (ferror(f)) + err(1, "%s", script->s); script = script->next; (void)fclose(f); state = ST_EOF; @@ -266,39 +265,26 @@ again: case ST_STRING: if (linenum == 0 && s[0] == '#' && s[1] == 'n') nflag = 1; - p = buf; + else if (s[0] == '\0') { + state = ST_EOF; + script = script->next; + goto again; + } + start = s; for (;;) { - if (n-- <= 1) { - *p = '\0'; - linenum++; - if (more != NULL) - *more = 1; - return (buf); - } switch (*s) { case '\0': state = ST_EOF; - if (s == script->s) { - script = script->next; - goto again; - } else { - script = script->next; - *p = '\0'; - linenum++; - if (more != NULL) - *more = 0; - return (buf); - } + script = script->next; + /* FALLTHROUGH */ case '\n': - *p++ = '\n'; - *p = '\0'; s++; linenum++; if (more != NULL) *more = 0; - return (buf); + return (start); default: - *p++ = *s++; + s++; } } } @@ -400,13 +386,13 @@ mf_fgets(SPACE *sp, enum e_spflag spflag sizeof(oldfname)); len = strlcat(oldfname, inplace, sizeof(oldfname)); - if (len > (ssize_t)sizeof(oldfname)) + if ((size_t)len > sizeof(oldfname)) errx(1, "%s: name too long", fname); } len = snprintf(tmpfname, sizeof(tmpfname), "%s/.!%ld!%s", dirname(fname), (long)getpid(), basename(fname)); - if (len >= (ssize_t)sizeof(tmpfname)) + if ((size_t)len >= sizeof(tmpfname)) errx(1, "%s: name too long", fname); unlink(tmpfname); if (outfile != NULL && outfile != stdout) @@ -460,7 +446,7 @@ mf_fgets(SPACE *sp, enum e_spflag spflag * Add a compilation unit to the linked list */ static void -add_compunit(enum e_cut type, char *s) +add_compunit(enum e_cut type, const char *s) { struct s_compunit *cu; @@ -477,7 +463,7 @@ add_compunit(enum e_cut type, char *s) * Add a file to the linked list */ static void -add_file(char *s) +add_file(const char *s) { struct s_flist *fp; Modified: head/usr.bin/sed/misc.c ============================================================================== --- head/usr.bin/sed/misc.c Tue Jul 19 20:22:13 2016 (r303046) +++ head/usr.bin/sed/misc.c Tue Jul 19 22:56:40 2016 (r303047) @@ -56,16 +56,14 @@ static const char sccsid[] = "@(#)misc.c * the buffer). */ char * -strregerror(int errcode, regex_t *preg) +strregerror(int errcode, const regex_t *preg) { static char *oe; size_t s; - if (oe != NULL) - free(oe); s = regerror(errcode, preg, NULL, 0); - if ((oe = malloc(s)) == NULL) - err(1, "malloc"); + if ((oe = realloc(oe, s)) == NULL) + err(1, "realloc"); (void)regerror(errcode, preg, oe, s); return (oe); } Modified: head/usr.bin/sed/process.c ============================================================================== --- head/usr.bin/sed/process.c Tue Jul 19 20:22:13 2016 (r303046) +++ head/usr.bin/sed/process.c Tue Jul 19 22:56:40 2016 (r303047) @@ -67,14 +67,14 @@ static SPACE HS, PS, SS, YS; #define hs HS.space #define hsl HS.len -static inline int applies(struct s_command *); -static void do_tr(struct s_tr *); -static void flush_appends(void); -static void lputs(char *, size_t); -static int regexec_e(regex_t *, const char *, int, int, size_t, - size_t); -static void regsub(SPACE *, char *, char *); -static int substitute(struct s_command *); +static inline int applies(struct s_command *); +static void do_tr(const struct s_tr *); +static void flush_appends(void); +static void lputs(const char *, size_t); +static int regexec_e(const regex_t *, const char *, int, int, + size_t, size_t); +static void regsub(SPACE *, const char *, const char *); +static int substitute(const struct s_command *); struct s_appends *appends; /* Array of pointers to strings to append. */ static int appendx; /* Index into appends array. */ @@ -83,7 +83,7 @@ int appendnum; /* Size of appends arra static int lastaddr; /* Set by applies if last address of a range. */ static int sdone; /* If any substitutes since last line input. */ /* Iov structure for 'w' commands. */ -static regex_t *defpreg; +static const regex_t *defpreg; size_t maxnsub; regmatch_t *match; @@ -376,13 +376,13 @@ resetstate(void) * and then swap them. */ static int -substitute(struct s_command *cp) +substitute(const struct s_command *cp) { SPACE tspace; - regex_t *re; + const regex_t *re; regoff_t slen; int lastempty, n; - size_t le = 0; + regoff_t le = 0; char *s; s = ps; @@ -488,7 +488,7 @@ substitute(struct s_command *cp) * Perform translation ('y' command) in the pattern space. */ static void -do_tr(struct s_tr *y) +do_tr(const struct s_tr *y) { SPACE tmp; char c, *p; @@ -578,7 +578,7 @@ flush_appends(void) } static void -lputs(char *s, size_t len) +lputs(const char *s, size_t len) { static const char escapes[] = "\\\a\b\f\r\t\v"; int c, col, width; @@ -658,7 +658,7 @@ lputs(char *s, size_t len) } static int -regexec_e(regex_t *preg, const char *string, int eflags, int nomatch, +regexec_e(const regex_t *preg, const char *string, int eflags, int nomatch, size_t start, size_t stop) { int eval; @@ -690,7 +690,7 @@ regexec_e(regex_t *preg, const char *str * Based on a routine by Henry Spencer */ static void -regsub(SPACE *sp, char *string, char *src) +regsub(SPACE *sp, const char *string, const char *src) { int len, no; char c, *dst; @@ -762,7 +762,7 @@ cspace(SPACE *sp, const char *p, size_t * Close all cached opened files and report any errors */ void -cfclose(struct s_command *cp, struct s_command *end) +cfclose(struct s_command *cp, const struct s_command *end) { for (; cp != end; cp = cp->next) From owner-svn-src-all@freebsd.org Tue Jul 19 23:22:07 2016 Return-Path: Delivered-To: svn-src-all@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 C9EBEB9E7D8; Tue, 19 Jul 2016 23:22:07 +0000 (UTC) (envelope-from pfg@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 9F1F81E02; Tue, 19 Jul 2016 23:22:07 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JNM6qp018143; Tue, 19 Jul 2016 23:22:06 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JNM6jd018140; Tue, 19 Jul 2016 23:22:06 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607192322.u6JNM6jd018140@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Tue, 19 Jul 2016 23:22:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303048 - vendor/openresolv/dist X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 23:22:07 -0000 Author: pfg Date: Tue Jul 19 23:22:06 2016 New Revision: 303048 URL: https://svnweb.freebsd.org/changeset/base/303048 Log: Import openresolv 3.8.1 Obtained from: http://roy.marples.name/projects/openresolv Modified: vendor/openresolv/dist/resolvconf.8.in vendor/openresolv/dist/resolvconf.conf.5.in vendor/openresolv/dist/resolvconf.in Modified: vendor/openresolv/dist/resolvconf.8.in ============================================================================== --- vendor/openresolv/dist/resolvconf.8.in Tue Jul 19 22:56:40 2016 (r303047) +++ vendor/openresolv/dist/resolvconf.8.in Tue Jul 19 23:22:06 2016 (r303048) @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd February 23, 2016 +.Dd May 7, 2016 .Dt RESOLVCONF 8 .Os .Sh NAME @@ -64,7 +64,7 @@ solves this by letting the daemon send t file to .Nm via -.Xr stdin 3 +.Xr stdin 4 with the argument .Fl a Ar interface Ns Op Ar .protocol instead of the filesystem. @@ -101,7 +101,7 @@ as private. This means that the name servers listed in that .Pa resolv.conf are only used for queries against the domain/search listed in the same file. -This only works when a local resolver other than libc is installed. +This only works when a local resolver other than libc is installed. See .Xr resolvconf.conf 5 for how to configure @@ -290,16 +290,16 @@ Directory of subscribers which are run a State directory for .Nm . .El +.Sh SEE ALSO +.Xr resolver 3 , +.Xr stdin 4 , +.Xr resolv.conf 5 , +.Xr resolvconf.conf 5 .Sh HISTORY This implementation of .Nm is called openresolv and is fully command line compatible with Debian's resolvconf, as written by Thomas Hood. -.Sh SEE ALSO -.Xr resolv.conf 5 , -.Xr resolvconf.conf 5 , -.Xr resolver 3 , -.Xr stdin 3 .Sh AUTHORS .An Roy Marples Aq Mt roy@marples.name .Sh BUGS Modified: vendor/openresolv/dist/resolvconf.conf.5.in ============================================================================== --- vendor/openresolv/dist/resolvconf.conf.5.in Tue Jul 19 22:56:40 2016 (r303047) +++ vendor/openresolv/dist/resolvconf.conf.5.in Tue Jul 19 23:22:06 2016 (r303048) @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd February 23, 2016 +.Dd April 28, 2016 .Dt RESOLVCONF.CONF 5 .Os .Sh NAME @@ -103,7 +103,8 @@ This is equivalent to the .Nm resolvconf -p option. .It Sy replace -Is a space separated list of replacement keywords. The syntax is this: +Is a space separated list of replacement keywords. +The syntax is this: .Va $keyword Ns / Ns Va $match Ns / Ns Va $replacement .Pp Example, given this resolv.conf: @@ -307,10 +308,9 @@ Command to restart the unbound service. Location of the unbound pidfile. .El .Sh SEE ALSO +.Xr sh 1 , .Xr resolv.conf 5 , .Xr resolvconf 8 -and -.Xr sh 1 . .Sh AUTHORS .An Roy Marples Aq Mt roy@marples.name .Sh BUGS Modified: vendor/openresolv/dist/resolvconf.in ============================================================================== --- vendor/openresolv/dist/resolvconf.in Tue Jul 19 22:56:40 2016 (r303047) +++ vendor/openresolv/dist/resolvconf.in Tue Jul 19 23:22:06 2016 (r303048) @@ -25,7 +25,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. RESOLVCONF="$0" -OPENRESOLV_VERSION="3.8.0" +OPENRESOLV_VERSION="3.8.1" SYSCONFDIR=@SYSCONFDIR@ LIBEXECDIR=@LIBEXECDIR@ VARDIR=@VARDIR@ @@ -152,7 +152,10 @@ parse_resolv() private=false for p in $private_interfaces; do case "$iface" in - "$p"|"$p":*) private=true; break;; + "$p"|"$p":*) + private=true + break + ;; esac done fi @@ -270,11 +273,11 @@ detect_init() local status="@STATUSARG@" : ${status:=status} if [ -x /bin/systemctl -a -S /run/systemd/private ]; then - RESTARTCMD="if /bin/systemctl --quiet is-active; then + RESTARTCMD="if /bin/systemctl --quiet is-active \$1.service; then /bin/systemctl restart \$1.service; fi" elif [ -x /usr/bin/systemctl -a -S /run/systemd/private ]; then - RESTARTCMD="if /usr/bin/systemctl --quiet is-active; then + RESTARTCMD="if /usr/bin/systemctl --quiet is-active \$1.service; then /usr/bin/systemctl restart \$1.service; fi" elif [ -x /sbin/rc-service -a \ From owner-svn-src-all@freebsd.org Tue Jul 19 23:25:47 2016 Return-Path: Delivered-To: svn-src-all@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 F16A1B9E99A; Tue, 19 Jul 2016 23:25:46 +0000 (UTC) (envelope-from pfg@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 8BA8D113D; Tue, 19 Jul 2016 23:25:46 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6JNPjgr018319; Tue, 19 Jul 2016 23:25:45 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6JNPjNx018315; Tue, 19 Jul 2016 23:25:45 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607192325.u6JNPjNx018315@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Tue, 19 Jul 2016 23:25:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303049 - vendor/openresolv/3.8.1 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jul 2016 23:25:47 -0000 Author: pfg Date: Tue Jul 19 23:25:45 2016 New Revision: 303049 URL: https://svnweb.freebsd.org/changeset/base/303049 Log: Tag openresolv 3.8.1 Obtained from: http://roy.marples.name/projects/openresolv Added: vendor/openresolv/3.8.1/ - copied from r303047, vendor/openresolv/dist/ Replaced: vendor/openresolv/3.8.1/resolvconf.8.in - copied unchanged from r303048, vendor/openresolv/dist/resolvconf.8.in vendor/openresolv/3.8.1/resolvconf.conf.5.in - copied unchanged from r303048, vendor/openresolv/dist/resolvconf.conf.5.in vendor/openresolv/3.8.1/resolvconf.in - copied unchanged from r303048, vendor/openresolv/dist/resolvconf.in Copied: vendor/openresolv/3.8.1/resolvconf.8.in (from r303048, vendor/openresolv/dist/resolvconf.8.in) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/openresolv/3.8.1/resolvconf.8.in Tue Jul 19 23:25:45 2016 (r303049, copy of r303048, vendor/openresolv/dist/resolvconf.8.in) @@ -0,0 +1,318 @@ +.\" Copyright (c) 2007-2016 Roy Marples +.\" 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 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. +.\" +.Dd May 7, 2016 +.Dt RESOLVCONF 8 +.Os +.Sh NAME +.Nm resolvconf +.Nd a framework for managing multiple DNS configurations +.Sh SYNOPSIS +.Nm +.Fl I +.Nm +.Op Fl m Ar metric +.Op Fl p +.Op Fl x +.Fl a Ar interface Ns Op Ar .protocol +.No < Ns Pa file +.Nm +.Op Fl f +.Fl d Ar interface Ns Op Ar .protocol +.Nm +.Op Fl x +.Fl il Ar pattern +.Nm +.Fl u +.Sh DESCRIPTION +.Nm +manages +.Xr resolv.conf 5 +files from multiple sources, such as DHCP and VPN clients. +Traditionally, the host runs just one client and that updates +.Pa /etc/resolv.conf . +More modern systems frequently have wired and wireless interfaces and there is +no guarantee both are on the same network. +With the advent of VPN and other +types of networking daemons, many things now contend for the contents of +.Pa /etc/resolv.conf . +.Pp +.Nm +solves this by letting the daemon send their +.Xr resolv.conf 5 +file to +.Nm +via +.Xr stdin 4 +with the argument +.Fl a Ar interface Ns Op Ar .protocol +instead of the filesystem. +.Nm +then updates +.Pa /etc/resolv.conf +as it thinks best. +When a local resolver other than libc is installed, such as +.Xr dnsmasq 8 +or +.Xr named 8 , +then +.Nm +will supply files that the resolver should be configured to include. +.Pp +.Nm +assumes it has a job to do. +In some situations +.Nm +needs to act as a deterrent to writing to +.Pa /etc/resolv.conf . +Where this file cannot be made immutable or you just need to toggle this +behaviour, +.Nm +can be disabled by adding +.Sy resolvconf Ns = Ns NO +to +.Xr resolvconf.conf 5 . +.Pp +.Nm +can mark an interfaces +.Pa resolv.conf +as private. +This means that the name servers listed in that +.Pa resolv.conf +are only used for queries against the domain/search listed in the same file. +This only works when a local resolver other than libc is installed. +See +.Xr resolvconf.conf 5 +for how to configure +.Nm +to use a local name server. +.Pp +.Nm +can mark an interfaces +.Pa resolv.conf +as exclusive. +Only the latest exclusive interface is used for processing, otherwise all are. +.Pp +When an interface goes down, it should then call +.Nm +with +.Fl d Ar interface.* +arguments to delete the +.Pa resolv.conf +file(s) for all the +.Ar protocols +on the +.Ar interface . +.Pp +Here are some options for the above commands:- +.Bl -tag -width indent +.It Fl f +Ignore non existent interfaces. +Only really useful for deleting interfaces. +.It Fl m Ar metric +Set the metric of the interface when adding it, default of 0. +Lower metrics take precedence. +This affects the default order of interfaces when listed. +.It Fl p +Marks the interface +.Pa resolv.conf +as private. +.It Fl x +Mark the interface +.Pa resolv.conf +as exclusive when adding, otherwise only use the latest exclusive interface. +.El +.Pp +.Nm +has some more commands for general usage:- +.Bl -tag -width indent +.It Fl i Ar pattern +List the interfaces and protocols, optionally matching +.Ar pattern , +we have +.Pa resolv.conf +files for. +.It Fl l Ar pattern +List the +.Pa resolv.conf +files we have. +If +.Ar pattern +is specified then we list the files for the interfaces and protocols +that match it. +.It Fl u +Force +.Nm +to update all its subscribers. +.Nm +does not update the subscribers when adding a resolv.conf that matches +what it already has for that interface. +.El +.Pp +.Nm +also has some commands designed to be used by it's subscribers and +system startup:- +.Bl -tag -width indent +.It Fl I +Initialise the state directory +.Pa @VARDIR@ . +This only needs to be called if the initial system boot sequence does not +automatically clean it out; for example the state directory is moved +somewhere other than +.Pa /var/run . +If used, it should only be called once as early in the system boot sequence +as possible and before +.Nm +is used to add interfaces. +.It Fl R +Echo the command used to restart a service. +.It Fl r Ar service +If the +.Ar service +is running then restart it. +If the service does not exist or is not running then zero is returned, +otherwise the result of restarting the service. +.It Fl v +Echo variables DOMAINS, SEARCH and NAMESERVERS so that the subscriber can +configure the resolver easily. +.It Fl V +Same as +.Fl v +except that only the information configured in +.Xr resolvconf.conf 5 +is set. +.El +.Sh INTERFACE ORDERING +For +.Nm +to work effectively, it has to process the resolv.confs for the interfaces +in the correct order. +.Nm +first processes interfaces from the +.Sy interface_order +list, then interfaces without a metic and that match the +.Sy dynamic_order +list, then interfaces with a metric in order and finally the rest in +the operating systems lexical order. +See +.Xr resolvconf.conf 5 +for details on these lists. +.Sh PROTOCOLS +Here are some suggested protocol tags to use for each +.Pa resolv.conf +file registered on an +.Ar interface Ns No :- +.Bl -tag -width indent +.It dhcp +Dynamic Host Configuration Protocol. +Initial versions of +.Nm +did not recommend a +.Ar protocol +tag be appended to the +.Ar interface +name. +When the protocol is absent, it is assumed to be the DHCP protocol. +.It ppp +Point-to-Point Protocol. +.It ra +IPv6 Router Advertisement. +.It dhcp6 +Dynamic Host Configuration Protocol, version 6. +.El +.Sh IMPLEMENTATION NOTES +If a subscriber has the executable bit then it is executed otherwise it is +assumed to be a shell script and sourced into the current environment in a +subshell. +This is done so that subscribers can remain fast, but are also not limited +to the shell language. +.Pp +Portable subscribers should not use anything outside of +.Pa /bin +and +.Pa /sbin +because +.Pa /usr +and others may not be available when booting. +Also, it would be unwise to assume any shell specific features. +.Sh ENVIRONMENT +.Bl -ohang +.It Va IF_METRIC +If the +.Fl m +option is not present then we use +.Va IF_METRIC +for the metric. +.It Va IF_PRIVATE +Marks the interface +.Pa resolv.conf +as private. +.It Va IF_EXCLUSIVE +Marks the interface +.Pa resolv.conf +as exclusive. +.El +.Sh FILES +.Bl -ohang +.It Pa /etc/resolv.conf.bak +Backup file of the original resolv.conf. +.It Pa @SYSCONFDIR@/resolvconf.conf +Configuration file for +.Nm . +.It Pa @LIBEXECDIR@ +Directory of subscribers which are run every time +.Nm +adds, deletes or updates. +.It Pa @LIBEXECDIR@/libc.d +Directory of subscribers which are run after the libc subscriber is run. +.It Pa @VARDIR@ +State directory for +.Nm . +.El +.Sh SEE ALSO +.Xr resolver 3 , +.Xr stdin 4 , +.Xr resolv.conf 5 , +.Xr resolvconf.conf 5 +.Sh HISTORY +This implementation of +.Nm +is called openresolv and is fully command line compatible with Debian's +resolvconf, as written by Thomas Hood. +.Sh AUTHORS +.An Roy Marples Aq Mt roy@marples.name +.Sh BUGS +Please report them to +.Lk http://roy.marples.name/projects/openresolv +.Pp +.Nm +does not validate any of the files given to it. +.Pp +When running a local resolver other than libc, you will need to configure it +to include files that +.Nm +will generate. +You should consult +.Xr resolvconf.conf 5 +for instructions on how to configure your resolver. Copied: vendor/openresolv/3.8.1/resolvconf.conf.5.in (from r303048, vendor/openresolv/dist/resolvconf.conf.5.in) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/openresolv/3.8.1/resolvconf.conf.5.in Tue Jul 19 23:25:45 2016 (r303049, copy of r303048, vendor/openresolv/dist/resolvconf.conf.5.in) @@ -0,0 +1,321 @@ +.\" Copyright (c) 2009-2016 Roy Marples +.\" 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 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. +.\" +.Dd April 28, 2016 +.Dt RESOLVCONF.CONF 5 +.Os +.Sh NAME +.Nm resolvconf.conf +.Nd resolvconf configuration file +.Sh DESCRIPTION +.Nm +is the configuration file for +.Xr resolvconf 8 . +The +.Nm +file is a shell script that is sourced by +.Xr resolvconf 8 , +meaning that +.Nm +must contain valid shell commands. +Listed below are the standard +.Nm +variables that may be set. +If the values contain whitespace, wildcards or other special shell characters, +ensure they are quoted and escaped correctly. +See the +.Sy replace +variable for an example on quoting. +.Pp +After updating this file, you may wish to run +.Nm resolvconf -u +to apply the new configuration. +.Pp +When a dynamically generated list is appended or prepended to, the whole +is made unique where left-most wins. +.Sh RESOLVCONF OPTIONS +.Bl -tag -width indent +.It Sy resolvconf +Set to NO to disable +.Nm resolvconf +from running any subscribers. +Defaults to YES. +.It Sy interface_order +These interfaces will always be processed first. +If unset, defaults to the following:- +.D1 lo lo[0-9]* +.It Sy dynamic_order +These interfaces will be processed next, unless they have a metric. +If unset, defaults to the following:- +.D1 tap[0-9]* tun[0-9]* vpn vpn[0-9]* ppp[0-9]* ippp[0-9]* +.It Sy local_nameservers +If unset, defaults to the following:- +.D1 127.* 0.0.0.0 255.255.255.255 ::1 +.It Sy search_domains +Prepend search domains to the dynamically generated list. +.It Sy search_domains_append +Append search domains to the dynamically generated list. +.It Sy domain_blacklist +A list of domains to be removed from consideration. +To remove a domain, you can use foo.* +To remove a sub domain, you can use *.bar +.It Sy name_servers +Prepend name servers to the dynamically generated list. +You should set this to 127.0.0.1 if you use a local name server other than +libc. +.It Sy name_servers_append +Append name servers to the dynamically generated list. +.It Sy name_server_blacklist +A list of name servers to be removed from consideration. +The default is 0.0.0.0 as some faulty routers send it via DHCP. +To remove a block, you can use 192.168.* +.It Sy private_interfaces +These interfaces name servers will only be queried for the domains listed +in their resolv.conf. +Useful for VPN domains. +Setting +.Sy private_interfaces Ns ="*" +will stop the forwarding of the root zone and allows the local resolver to +recursively query the root servers directly. +Requires a local nameserver other than libc. +This is equivalent to the +.Nm resolvconf -p +option. +.It Sy replace +Is a space separated list of replacement keywords. +The syntax is this: +.Va $keyword Ns / Ns Va $match Ns / Ns Va $replacement +.Pp +Example, given this resolv.conf: +.D1 domain foo.org +.D1 search foo.org dead.beef +.D1 nameserver 1.2.3.4 +.D1 nameserver 2.3.4.5 +and this configuaration: +.D1 replace="search/foo*/bar.com nameserver/1.2.3.4/5.6.7.8 nameserver/2.3.4.5/" +you would get this resolv.conf instead: +.D1 domain foo.org +.D1 search bar.com +.D1 nameserver 5.6.7.8 +.It Sy replace_sub +Works the same way as +.Sy replace +except it works on each space separated value rather than the whole line, +so it's useful for the replacing a single domain within the search directive. +Using the same example resolv.conf and changing +.Sy replace +to +.Sy replace_sub , +you would get this resolv.conf instead: +.D1 domain foo.org +.D1 search bar.com dead.beef +.D1 nameserver 5.6.7.8 +.It Sy state_dir +Override the default state directory of +.Pa @VARDIR@ . +This should not be changed once +.Nm resolvconf +is in use unless the old directory is copied to the new one. +.El +.Sh LIBC OPTIONS +The following variables affect +.Xr resolv.conf 5 +directly:- +.Bl -tag -width indent +.It Sy resolv_conf +Defaults to +.Pa /etc/resolv.conf +if not set. +.It Sy resolv_conf_options +A list of libc resolver options, as specified in +.Xr resolv.conf 5 . +.It Sy resolv_conf_passthrough +When set to YES the latest resolv.conf is written to +.Sy resolv_conf +without any alteration. +When set to /dev/null or NULL, +.Sy resolv_conf_local_only +is defaulted to NO, +.Sy local_nameservers +is unset unless overridden and only the information set in +.Nm +is written to +.Sy resolv_conf . +.It Sy resolv_conf_sortlist +A libc resolver sortlist, as specified in +.Xr resolv.conf 5 . +.It Sy resolv_conf_local_only +If a local name server is configured then the default is just to specify that +and ignore all other entries as they will be configured for the local +name server. +Set this to NO to also list non-local nameservers. +This will give you working DNS even if the local nameserver stops functioning +at the expense of duplicated server queries. +.It Sy append_nameservers +Append name servers to the dynamically generated list. +.It Sy prepend_nameservers +Prepend name servers to the dynamically generated list. +.It Sy append_search +Append search domains to the dynamically generated list. +.It Sy prepend_search +Prepend search domains to the dynamically generated list. +.El +.Sh SUBSCRIBER OPTIONS +openresolv ships with subscribers for the name servers +.Xr dnsmasq 8 , +.Xr named 8 , +.Xr pdnsd 8 +and +.Xr unbound 8 . +Each subscriber can create configuration files which should be included in +in the subscribers main configuration file. +.Pp +To disable a subscriber, simply set it's name to NO. +For example, to disable the libc subscriber you would set: +.D1 libc=NO +.Bl -tag -width indent +.It Sy dnsmasq_conf +This file tells dnsmasq which name servers to use for specific domains. +.It Sy dnsmasq_resolv +This file tells dnsmasq which name servers to use for global lookups. +.Pp +Example resolvconf.conf for dnsmasq: +.D1 name_servers=127.0.0.1 +.D1 dnsmasq_conf=/etc/dnsmasq-conf.conf +.D1 dnsmasq_resolv=/etc/dnsmasq-resolv.conf +.Pp +Example dnsmasq.conf: +.D1 listen-address=127.0.0.1 +.D1 # If dnsmasq is compiled for DBus then we can take +.D1 # advantage of not having to restart dnsmasq. +.D1 enable-dbus +.D1 conf-file=/etc/dnsmasq-conf.conf +.D1 resolv-file=/etc/dnsmasq-resolv.conf +.It Sy named_options +Include this file in the named options block. +This file tells named which name servers to use for global lookups. +.It Sy named_zones +Include this file in the named global scope, after the options block. +This file tells named which name servers to use for specific domains. +.Pp +Example resolvconf.conf for named: +.D1 name_servers=127.0.0.1 +.D1 named_options=/etc/named-options.conf +.D1 named_zones=/etc/named-zones.conf +.Pp +Example named.conf: +.D1 options { +.D1 listen-on { 127.0.0.1; }; +.D1 include "/etc/named-options.conf"; +.D1 }; +.D1 include "/etc/named-zones.conf"; +.It Sy pdnsd_conf +This is the main pdnsd configuration file which we modify to add our +forward domains to. +If this variable is not set then we rely on the pdnsd configuration file +setup to read +.Pa pdnsd_resolv +as documented below. +.It Sy pdnsd_resolv +This file tells pdnsd about global name servers. +If this variable is not set then it's written to +.Pa pdnsd_conf . +.Pp +Example resolvconf.conf for pdnsd: +.D1 name_servers=127.0.0.1 +.D1 pdnsd_conf=/etc/pdnsd.conf +.D1 # pdnsd_resolv=/etc/pdnsd-resolv.conf +.Pp +Example pdnsd.conf: +.D1 global { +.D1 server_ip = 127.0.0.1; +.D1 status_ctl = on; +.D1 } +.D1 server { +.D1 # A server definition is required, even if emtpy. +.D1 label="empty"; +.D1 proxy_only=on; +.D1 # file="/etc/pdnsd-resolv.conf"; +.D1 } +.It Sy unbound_conf +This file tells unbound about specific and global name servers. +.It Sy unbound_insecure +When set to YES, unbound marks the domains as insecure, thus ignoring DNSSEC. +.Pp +Example resolvconf.conf for unbound: +.D1 name_servers=127.0.0.1 +.D1 unbound_conf=/etc/unbound-resolvconf.conf +.Pp +Example unbound.conf: +.D1 include: /etc/unbound-resolvconf.conf +.El +.Sh SUBSCRIBER INTEGRATION +Not all distributions store the files the subscribers need in the same +locations. +For example, named service scripts have been called named, bind and rc.bind +and they could be located in a directory called /etc/rc.d, /etc/init.d or +similar. +Each subscriber attempts to automatically configure itself, but not every +distribution has been catered for. +Also, users could equally want to use a different version from the one +installed by default, such as bind8 and bind9. +To accommodate this, the subscribers have these files in configurable +variables, documented below. +.Pp +.Bl -tag -width indent +.It Sy dnsmasq_service +Name of the dnsmasq service. +.It Sy dnsmasq_restart +Command to restart the dnsmasq service. +.It Sy dnsmasq_pid +Location of the dnsmasq pidfile. +.It Sy libc_service +Name of the libc service. +.It Sy libc_restart +Command to restart the libc service. +.It Sy named_service +Name of the named service. +.It Sy named_restart +Command to restart the named service. +.It Sy pdnsd_restart +Command to restart the pdnsd service. +.It Sy unbound_service +Name of the unbound service. +.It Sy unbound_restart +Command to restart the unbound service. +.It Sy unbound_pid +Location of the unbound pidfile. +.El +.Sh SEE ALSO +.Xr sh 1 , +.Xr resolv.conf 5 , +.Xr resolvconf 8 +.Sh AUTHORS +.An Roy Marples Aq Mt roy@marples.name +.Sh BUGS +Each distribution is a special snowflake and likes to name the same thing +differently, namely the named service script. +.Pp +Please report them to +.Lk http://roy.marples.name/projects/openresolv Copied: vendor/openresolv/3.8.1/resolvconf.in (from r303048, vendor/openresolv/dist/resolvconf.in) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/openresolv/3.8.1/resolvconf.in Tue Jul 19 23:25:45 2016 (r303049, copy of r303048, vendor/openresolv/dist/resolvconf.in) @@ -0,0 +1,907 @@ +#!/bin/sh +# Copyright (c) 2007-2016 Roy Marples +# All rights reserved + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * 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 COPYRIGHT HOLDERS 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 COPYRIGHT +# OWNER 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. + +RESOLVCONF="$0" +OPENRESOLV_VERSION="3.8.1" +SYSCONFDIR=@SYSCONFDIR@ +LIBEXECDIR=@LIBEXECDIR@ +VARDIR=@VARDIR@ +RCDIR=@RCDIR@ +RESTARTCMD=@RESTARTCMD@ + +# Disregard dhcpcd setting +unset interface_order state_dir + +# If you change this, change the test in VFLAG and libc.in as well +local_nameservers="127.* 0.0.0.0 255.255.255.255 ::1" + +dynamic_order="tap[0-9]* tun[0-9]* vpn vpn[0-9]* ppp[0-9]* ippp[0-9]*" +interface_order="lo lo[0-9]*" +name_server_blacklist="0.0.0.0" + +# Support original resolvconf configuration layout +# as well as the openresolv config file +if [ -f "$SYSCONFDIR"/resolvconf.conf ]; then + . "$SYSCONFDIR"/resolvconf.conf + [ -n "$state_dir" ] && VARDIR="$state_dir" +elif [ -d "$SYSCONFDIR/resolvconf" ]; then + SYSCONFDIR="$SYSCONFDIR/resolvconf" + if [ -f "$SYSCONFDIR"/interface-order ]; then + interface_order="$(cat "$SYSCONFDIR"/interface-order)" + fi +fi +IFACEDIR="$VARDIR/interfaces" +METRICDIR="$VARDIR/metrics" +PRIVATEDIR="$VARDIR/private" +EXCLUSIVEDIR="$VARDIR/exclusive" +LOCKDIR="$VARDIR/lock" +_PWD="$PWD" + +warn() +{ + echo "$*" >&2 +} + +error_exit() +{ + echo "$*" >&2 + exit 1 +} + +usage() +{ + cat <<-EOF + Usage: ${RESOLVCONF##*/} [options] command [argument] + + Inform the system about any DNS updates. + + Commands: + -a \$INTERFACE Add DNS information to the specified interface + (DNS supplied via stdin in resolv.conf format) + -d \$INTERFACE Delete DNS information from the specified interface + -h Show this help cruft + -i [\$PATTERN] Show interfaces that have supplied DNS information + optionally from interfaces that match the specified + pattern + -l [\$PATTERN] Show DNS information, optionally from interfaces + that match the specified pattern + + -u Run updates from our current DNS information + + Options: + -f Ignore non existent interfaces + -m metric Give the added DNS information a metric + -p Mark the interface as private + -x Mark the interface as exclusive + + Subscriber and System Init Commands: + -I Init the state dir + -r \$SERVICE Restart the system service + (restarting a non-existent or non-running service + should have no output and return 0) + -R Show the system service restart command + -v [\$PATTERN] echo NEWDOMAIN, NEWSEARCH and NEWNS variables to + the console + -V [\$PATTERN] Same as -v, but only uses configuration in + $SYSCONFDIR/resolvconf.conf + EOF + [ -z "$1" ] && exit 0 + echo + error_exit "$*" +} + +# Strip any trailing dot from each name as a FQDN does not belong +# in resolv.conf(5) +# If you think otherwise, capture a DNS trace and you'll see libc +# will strip it regardless. +# This also solves setting up duplicate zones in our subscribers. +strip_trailing_dots() +{ + local n= d= + + for n; do + printf "$d%s" "${n%.}" + d=" " + done + printf "\n" +} + +# Parse resolv.conf's and make variables +# for domain name servers, search name servers and global nameservers +parse_resolv() +{ + local line= ns= ds= search= d= n= newns= + local new=true iface= private=false p= domain= l= islocal= + + newns= + + while read -r line; do + case "$line" in + "# resolv.conf from "*) + if ${new}; then + iface="${line#\# resolv.conf from *}" + new=false + if [ -e "$PRIVATEDIR/$iface" ]; then + private=true + else + # Allow expansion + cd "$IFACEDIR" + private=false + for p in $private_interfaces; do + case "$iface" in + "$p"|"$p":*) + private=true + break + ;; + esac + done + fi + fi + ;; + "nameserver "*) + islocal=false + for l in $local_nameservers; do + case "${line#* }" in + $l) + islocal=true + echo "LOCALNAMESERVERS=\"\$LOCALNAMESERVERS ${line#* }\"" + break + ;; + esac + done + $islocal || ns="$ns${line#* } " + ;; + "domain "*) + search="$(strip_trailing_dots ${line#* })" + if [ -z "$domain" ]; then + domain="$search" + echo "DOMAIN=\"$domain\"" + fi + ;; + "search "*) + search="$(strip_trailing_dots ${line#* })" + ;; + *) + [ -n "$line" ] && continue + if [ -n "$ns" -a -n "$search" ]; then + newns= + for n in $ns; do + newns="$newns${newns:+,}$n" + done + ds= + for d in $search; do + ds="$ds${ds:+ }$d:$newns" + done + echo "DOMAINS=\"\$DOMAINS $ds\"" + fi + echo "SEARCH=\"\$SEARCH $search\"" + if ! $private; then + echo "NAMESERVERS=\"\$NAMESERVERS $ns\"" + fi + ns= + search= + new=true + ;; + esac + done +} + +uniqify() +{ + local result= + while [ -n "$1" ]; do + case " $result " in + *" $1 "*);; + *) result="$result $1";; + esac + shift + done + echo "${result# *}" +} + +dirname() +{ + local dir= OIFS="$IFS" + local IFS=/ + set -- $@ + IFS="$OIFS" + if [ -n "$1" ]; then + printf %s . + else + shift + fi + while [ -n "$2" ]; do + printf "/%s" "$1" + shift + done + printf "\n" +} + +config_mkdirs() +{ + local e=0 f d + for f; do + [ -n "$f" ] || continue + d="$(dirname "$f")" + if [ ! -d "$d" ]; then + if type install >/dev/null 2>&1; then + install -d "$d" || e=$? + else + mkdir "$d" || e=$? + fi + fi + done + return $e +} + +# With the advent of alternative init systems, it's possible to have +# more than one installed. So we need to try and guess what one we're +# using unless overriden by configure. +# Note that restarting a service is a last resort - the subscribers +# should make a reasonable attempt to reconfigre the service via some +# method, normally SIGHUP. +detect_init() +{ + [ -n "$RESTARTCMD" ] && return 0 + + # Detect the running init system. + # As systemd and OpenRC can be installed on top of legacy init + # systems we try to detect them first. + local status="@STATUSARG@" + : ${status:=status} + if [ -x /bin/systemctl -a -S /run/systemd/private ]; then + RESTARTCMD="if /bin/systemctl --quiet is-active \$1.service; then + /bin/systemctl restart \$1.service; +fi" + elif [ -x /usr/bin/systemctl -a -S /run/systemd/private ]; then + RESTARTCMD="if /usr/bin/systemctl --quiet is-active \$1.service; then + /usr/bin/systemctl restart \$1.service; +fi" + elif [ -x /sbin/rc-service -a \ + -s /libexec/rc/init.d/softlevel -o -s /run/openrc/softlevel ] + then + RESTARTCMD="/sbin/rc-service -i \$1 -- -Ds restart" + elif [ -x /usr/sbin/invoke-rc.d ]; then + RCDIR=/etc/init.d + RESTARTCMD="if /usr/sbin/invoke-rc.d --quiet \$1 status 1>/dev/null 2>&1; then + /usr/sbin/invoke-rc.d \$1 restart; +fi" + elif [ -x /sbin/service ]; then + # Old RedHat + RCDIR=/etc/init.d + RESTARTCMD="if /sbin/service \$1; then + /sbin/service \$1 restart; +fi" + elif [ -x /usr/sbin/service ]; then + # Could be FreeBSD + RESTARTCMD="if /usr/sbin/service \$1 $status 1>/dev/null 2>&1; then + /usr/sbin/service \$1 restart; +fi" + elif [ -x /bin/sv ]; then + RESTARTCMD="/bin/sv try-restart \$1" + elif [ -x /usr/bin/sv ]; then + RESTARTCMD="/usr/bin/sv try-restart \$1" + elif [ -e /etc/arch-release -a -d /etc/rc.d ]; then + RCDIR=/etc/rc.d + RESTARTCMD="if [ -e /var/run/daemons/\$1 ]; then + /etc/rc.d/\$1 restart; +fi" + elif [ -e /etc/slackware-version -a -d /etc/rc.d ]; then + RESTARTCMD="if /etc/rc.d/rc.\$1 status 1>/dev/null 2>&1; then + /etc/rc.d/rc.\$1 restart; +fi" + elif [ -e /etc/rc.d/rc.subr -a -d /etc/rc.d ]; then + # OpenBSD + RESTARTCMD="if /etc/rc.d/\$1 check 1>/dev/null 2>&1; then + /etc/rc.d/\$1 restart; +fi" + else + for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do + [ -d $x ] || continue + RESTARTCMD="if $x/\$1 $status 1>/dev/null 2>&1; then + $x/\$1 restart; +fi" + break + done + fi + + if [ -z "$RESTARTCMD" ]; then + if [ "$NOINIT_WARNED" != true ]; then + warn "could not detect a useable init system" + _NOINIT_WARNED=true + fi + return 1 + fi + _NOINIT_WARNED= + return 0 +} + +echo_resolv() +{ + local line= OIFS="$IFS" + + [ -n "$1" -a -f "$IFACEDIR/$1" ] || return 1 + echo "# resolv.conf from $1" + # Our variable maker works of the fact each resolv.conf per interface + # is separated by blank lines. + # So we remove them when echoing them. + while read -r line; do + IFS="$OIFS" *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Jul 20 00:02:12 2016 Return-Path: Delivered-To: svn-src-all@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 432BDB9D11F; Wed, 20 Jul 2016 00:02:12 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 20D711E44; Wed, 20 Jul 2016 00:02:12 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K02Be6032043; Wed, 20 Jul 2016 00:02:11 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K02BW2032040; Wed, 20 Jul 2016 00:02:11 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201607200002.u6K02BW2032040@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 20 Jul 2016 00:02:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303050 - in head/sys: cddl/dev/dtrace/amd64 cddl/dev/dtrace/i386 cddl/dev/dtrace/x86 conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 00:02:12 -0000 Author: markj Date: Wed Jul 20 00:02:10 2016 New Revision: 303050 URL: https://svnweb.freebsd.org/changeset/base/303050 Log: Merge {amd64,i386}/instr_size.c into x86_instr_size.c. Also reduce the diff between us and upstream: the input data model will always be DATAMODEL_NATIVE because of a bug (p_model is never set but is always initialized to 0), so we don't need to override the caller anyway. This change is also necessary to support the pid provider for 32-bit processes on amd64. MFC after: 2 weeks Added: head/sys/cddl/dev/dtrace/x86/instr_size.c - copied, changed from r303049, head/sys/cddl/dev/dtrace/i386/instr_size.c Deleted: head/sys/cddl/dev/dtrace/amd64/instr_size.c head/sys/cddl/dev/dtrace/i386/instr_size.c Modified: head/sys/conf/files.amd64 head/sys/conf/files.i386 Copied and modified: head/sys/cddl/dev/dtrace/x86/instr_size.c (from r303049, head/sys/cddl/dev/dtrace/i386/instr_size.c) ============================================================================== --- head/sys/cddl/dev/dtrace/i386/instr_size.c Tue Jul 19 23:25:45 2016 (r303049, copy source) +++ head/sys/cddl/dev/dtrace/x86/instr_size.c Wed Jul 20 00:02:10 2016 (r303050) @@ -44,6 +44,9 @@ #include #include #else +#include +#include + typedef u_int model_t; #define DATAMODEL_NATIVE 0 int dtrace_instr_size(uchar_t *); @@ -104,9 +107,7 @@ dtrace_dis_isize(uchar_t *instr, dis_isi dis86_t x; uint_t mode = SIZE32; -#ifdef illumos mode = (model == DATAMODEL_LP64) ? SIZE64 : SIZE32; -#endif x.d86_data = (void **)&instr; x.d86_get_byte = dtrace_dis_get_byte; Modified: head/sys/conf/files.amd64 ============================================================================== --- head/sys/conf/files.amd64 Tue Jul 19 23:25:45 2016 (r303049) +++ head/sys/conf/files.amd64 Wed Jul 20 00:02:10 2016 (r303050) @@ -142,7 +142,7 @@ cddl/dev/dtrace/amd64/dtrace_asm.S opt cddl/dev/dtrace/amd64/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}" cddl/dev/fbt/x86/fbt_isa.c optional dtrace_fbt | dtraceall compile-with "${FBT_C}" cddl/dev/dtrace/x86/dis_tables.c optional dtrace_fbt | dtraceall compile-with "${DTRACE_C}" -cddl/dev/dtrace/amd64/instr_size.c optional dtrace_fbt | dtraceall compile-with "${DTRACE_C}" +cddl/dev/dtrace/x86/instr_size.c optional dtrace_fbt | dtraceall compile-with "${DTRACE_C}" crypto/aesni/aeskeys_amd64.S optional aesni crypto/aesni/aesni.c optional aesni aesni_ghash.o optional aesni \ Modified: head/sys/conf/files.i386 ============================================================================== --- head/sys/conf/files.i386 Tue Jul 19 23:25:45 2016 (r303049) +++ head/sys/conf/files.i386 Wed Jul 20 00:02:10 2016 (r303050) @@ -83,7 +83,7 @@ cddl/dev/dtrace/i386/dtrace_asm.S opti cddl/dev/dtrace/i386/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}" cddl/dev/fbt/x86/fbt_isa.c optional dtrace_fbt | dtraceall compile-with "${FBT_C}" cddl/dev/dtrace/x86/dis_tables.c optional dtrace_fbt | dtraceall compile-with "${DTRACE_C}" -cddl/dev/dtrace/i386/instr_size.c optional dtrace_fbt | dtraceall compile-with "${DTRACE_C}" +cddl/dev/dtrace/x86/instr_size.c optional dtrace_fbt | dtraceall compile-with "${DTRACE_C}" compat/linprocfs/linprocfs.c optional linprocfs compat/linsysfs/linsysfs.c optional linsysfs compat/linux/linux_event.c optional compat_linux From owner-svn-src-all@freebsd.org Wed Jul 20 00:06:05 2016 Return-Path: Delivered-To: svn-src-all@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 22DEDB9D1E2; Wed, 20 Jul 2016 00:06:05 +0000 (UTC) (envelope-from bdrewery@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 E726A11D5; Wed, 20 Jul 2016 00:06:04 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K0648d032867; Wed, 20 Jul 2016 00:06:04 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K064Sd032866; Wed, 20 Jul 2016 00:06:04 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201607200006.u6K064Sd032866@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Wed, 20 Jul 2016 00:06:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303051 - head/usr.bin/mandoc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 00:06:05 -0000 Author: bdrewery Date: Wed Jul 20 00:06:03 2016 New Revision: 303051 URL: https://svnweb.freebsd.org/changeset/base/303051 Log: Only build makewhatis(1)/apropos(1) with MAN_UTILS. This is what src.conf(5) documents and is what the older non-mandoc versions respected. Sponsored by: EMC / Isilon Storage Division Modified: head/usr.bin/mandoc/Makefile Modified: head/usr.bin/mandoc/Makefile ============================================================================== --- head/usr.bin/mandoc/Makefile Wed Jul 20 00:02:10 2016 (r303050) +++ head/usr.bin/mandoc/Makefile Wed Jul 20 00:06:03 2016 (r303051) @@ -8,7 +8,7 @@ MDOCMLDIR= ${.CURDIR}/../../contrib/mdoc PROG= mandoc MAN= mandoc.1 eqn.7 mandoc_char.7 tbl.7 man.7 mdoc.7 # roff.7 MLINKS= mandoc.1 mdocml.1 -.if ${MK_MANDOCDB} != no +.if ${MK_MANDOCDB} != no && ${MK_MAN_UTILS} != no MAN+= apropos.1 makewhatis.8 MLINKS+= apropos.1 whatis.1 LINKS= ${BINDIR}/mandoc ${BINDIR}/whatis \ From owner-svn-src-all@freebsd.org Wed Jul 20 00:09:23 2016 Return-Path: Delivered-To: svn-src-all@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 5F0D9B9D33A; Wed, 20 Jul 2016 00:09:23 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 31E9814B0; Wed, 20 Jul 2016 00:09:23 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K09MKo033014; Wed, 20 Jul 2016 00:09:22 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K09MNY033012; Wed, 20 Jul 2016 00:09:22 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201607200009.u6K09MNY033012@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 20 Jul 2016 00:09:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303052 - in head/sys: sys vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 00:09:23 -0000 Author: markj Date: Wed Jul 20 00:09:22 2016 New Revision: 303052 URL: https://svnweb.freebsd.org/changeset/base/303052 Log: Make vm_pageout_wakeup_thresh a u_int rather than an int. It's a threshold for v_free_count, which is of type u_int. This also lets us get rid of a cast in vm_paging_needed(). Reviewed by: alc MFC after: 1 week Modified: head/sys/sys/vmmeter.h head/sys/vm/vm_pageout.c Modified: head/sys/sys/vmmeter.h ============================================================================== --- head/sys/sys/vmmeter.h Wed Jul 20 00:06:03 2016 (r303051) +++ head/sys/sys/vmmeter.h Wed Jul 20 00:09:22 2016 (r303052) @@ -117,7 +117,7 @@ struct vmmeter { extern struct vmmeter vm_cnt; -extern int vm_pageout_wakeup_thresh; +extern u_int vm_pageout_wakeup_thresh; /* * Return TRUE if we are under our severe low-free-pages threshold @@ -181,7 +181,7 @@ vm_paging_needed(void) { return (vm_cnt.v_free_count + vm_cnt.v_cache_count < - (u_int)vm_pageout_wakeup_thresh); + vm_pageout_wakeup_thresh); } #endif Modified: head/sys/vm/vm_pageout.c ============================================================================== --- head/sys/vm/vm_pageout.c Wed Jul 20 00:06:03 2016 (r303051) +++ head/sys/vm/vm_pageout.c Wed Jul 20 00:09:22 2016 (r303052) @@ -157,7 +157,7 @@ SYSINIT(vmdaemon, SI_SUB_KTHREAD_VM, SI_ int vm_pageout_deficit; /* Estimated number of pages deficit */ -int vm_pageout_wakeup_thresh; +u_int vm_pageout_wakeup_thresh; static int vm_pageout_oom_seq = 12; bool vm_pageout_wanted; /* Event on which pageout daemon sleeps */ bool vm_pages_needed; /* Are threads waiting for free pages? */ From owner-svn-src-all@freebsd.org Wed Jul 20 00:51:10 2016 Return-Path: Delivered-To: svn-src-all@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 D829AB9DCB3; Wed, 20 Jul 2016 00:51:10 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A487718AD; Wed, 20 Jul 2016 00:51:10 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K0p97n050966; Wed, 20 Jul 2016 00:51:09 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K0p9Pc050965; Wed, 20 Jul 2016 00:51:09 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201607200051.u6K0p9Pc050965@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 20 Jul 2016 00:51:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303056 - stable/10/share/man/man4 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 00:51:10 -0000 Author: markj Date: Wed Jul 20 00:51:09 2016 New Revision: 303056 URL: https://svnweb.freebsd.org/changeset/base/303056 Log: MFC r302797: Document DDB's "alltrace" and "show all trace" commands. Modified: stable/10/share/man/man4/ddb.4 Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man4/ddb.4 ============================================================================== --- stable/10/share/man/man4/ddb.4 Wed Jul 20 00:43:26 2016 (r303055) +++ stable/10/share/man/man4/ddb.4 Wed Jul 20 00:51:09 2016 (r303056) @@ -60,7 +60,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 5, 2015 +.Dd July 13, 2016 .Dt DDB 4 .Os .Sh NAME @@ -547,6 +547,11 @@ modifier will alter the display to show addresses for the process and not show other information. .\" .Pp +.It Ic show Cm all trace +.It Ic alltrace +.Xc +Show a stack trace for every thread in the system. +.Pp .It Ic show Cm all ttys Show all TTY's within the system. Output is similar to From owner-svn-src-all@freebsd.org Wed Jul 20 00:52:13 2016 Return-Path: Delivered-To: svn-src-all@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 00804B9DD28; Wed, 20 Jul 2016 00:52:13 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C6E2A1BC1; Wed, 20 Jul 2016 00:52:12 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K0qC30051054; Wed, 20 Jul 2016 00:52:12 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K0qCNC051053; Wed, 20 Jul 2016 00:52:12 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201607200052.u6K0qCNC051053@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 20 Jul 2016 00:52:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303057 - stable/10/sys/geom/mirror X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 00:52:13 -0000 Author: markj Date: Wed Jul 20 00:52:11 2016 New Revision: 303057 URL: https://svnweb.freebsd.org/changeset/base/303057 Log: MFC r302091: Do not complete pending gmirror BIOs when tearing down the provider. Modified: stable/10/sys/geom/mirror/g_mirror.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/geom/mirror/g_mirror.c ============================================================================== --- stable/10/sys/geom/mirror/g_mirror.c Wed Jul 20 00:51:09 2016 (r303056) +++ stable/10/sys/geom/mirror/g_mirror.c Wed Jul 20 00:52:11 2016 (r303057) @@ -2127,8 +2127,21 @@ g_mirror_destroy_provider(struct g_mirro g_topology_lock(); g_error_provider(sc->sc_provider, ENXIO); mtx_lock(&sc->sc_queue_mtx); - while ((bp = bioq_takefirst(&sc->sc_queue)) != NULL) - g_io_deliver(bp, ENXIO); + while ((bp = bioq_takefirst(&sc->sc_queue)) != NULL) { + /* + * Abort any pending I/O that wasn't generated by us. + * Synchronization requests and requests destined for individual + * mirror components can be destroyed immediately. + */ + if (bp->bio_to == sc->sc_provider && + bp->bio_from->geom != sc->sc_sync.ds_geom) { + g_io_deliver(bp, ENXIO); + } else { + if ((bp->bio_cflags & G_MIRROR_BIO_FLAG_SYNC) != 0) + free(bp->bio_data, M_MIRROR); + g_destroy_bio(bp); + } + } mtx_unlock(&sc->sc_queue_mtx); G_MIRROR_DEBUG(0, "Device %s: provider %s destroyed.", sc->sc_name, sc->sc_provider->name); From owner-svn-src-all@freebsd.org Wed Jul 20 00:53:22 2016 Return-Path: Delivered-To: svn-src-all@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 B0B44B9DDE3; Wed, 20 Jul 2016 00:53:22 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7A3681D62; Wed, 20 Jul 2016 00:53:22 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K0rLbA051148; Wed, 20 Jul 2016 00:53:21 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K0rL5A051147; Wed, 20 Jul 2016 00:53:21 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201607200053.u6K0rL5A051147@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 20 Jul 2016 00:53:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303058 - stable/10/usr.bin/gcore X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 00:53:22 -0000 Author: markj Date: Wed Jul 20 00:53:21 2016 New Revision: 303058 URL: https://svnweb.freebsd.org/changeset/base/303058 Log: MFC r302179: gcore: Forward pending signals when detaching from the target. Modified: stable/10/usr.bin/gcore/elfcore.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/gcore/elfcore.c ============================================================================== --- stable/10/usr.bin/gcore/elfcore.c Wed Jul 20 00:52:11 2016 (r303057) +++ stable/10/usr.bin/gcore/elfcore.c Wed Jul 20 00:53:21 2016 (r303058) @@ -123,6 +123,7 @@ static vm_map_entry_t readmap(pid_t); static void *procstat_sysctl(void *, int, size_t, size_t *sizep); static pid_t g_pid; /* Pid being dumped, global for elf_detach */ +static int g_status; /* proc status after ptrace attach */ static int elf_ident(int efd, pid_t pid __unused, char *binfile __unused) @@ -156,9 +157,18 @@ elf_ident(int efd, pid_t pid __unused, c static void elf_detach(void) { + int sig; - if (g_pid != 0) - ptrace(PT_DETACH, g_pid, (caddr_t)1, 0); + if (g_pid != 0) { + /* + * Forward any pending signals. SIGSTOP is generated by ptrace + * itself, so ignore it. + */ + sig = WIFSTOPPED(g_status) ? WSTOPSIG(g_status) : 0; + if (sig == SIGSTOP) + sig = 0; + ptrace(PT_DETACH, g_pid, (caddr_t)1, sig); + } } /* @@ -184,7 +194,7 @@ elf_coredump(int efd __unused, int fd, p ptrace(PT_ATTACH, pid, NULL, 0); if (errno) err(1, "PT_ATTACH"); - if (waitpid(pid, NULL, 0) == -1) + if (waitpid(pid, &g_status, 0) == -1) err(1, "waitpid"); /* Get the program's memory map. */ From owner-svn-src-all@freebsd.org Wed Jul 20 01:01:51 2016 Return-Path: Delivered-To: svn-src-all@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 50A08B9F0A7; Wed, 20 Jul 2016 01:01:51 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1A5911186; Wed, 20 Jul 2016 01:01:51 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K11o0G054724; Wed, 20 Jul 2016 01:01:50 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K11ohI054723; Wed, 20 Jul 2016 01:01:50 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201607200101.u6K11ohI054723@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 20 Jul 2016 01:01:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303059 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 01:01:51 -0000 Author: markj Date: Wed Jul 20 01:01:50 2016 New Revision: 303059 URL: https://svnweb.freebsd.org/changeset/base/303059 Log: Release the second critical section in uma_zfree_arg() slightly earlier. It is only needed when removing a full bucket from the per-CPU cache. The bucket cache (uz_buckets) is protected by the zone mutex and thus the critical section can be released before inserting into that list. MFC after: 1 week Modified: head/sys/vm/uma_core.c Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Wed Jul 20 00:53:21 2016 (r303058) +++ head/sys/vm/uma_core.c Wed Jul 20 01:01:50 2016 (r303059) @@ -2744,6 +2744,8 @@ zfree_start: goto zfree_start; } cache->uc_freebucket = NULL; + /* We are no longer associated with this CPU. */ + critical_exit(); /* Can we throw this on the zone full list? */ if (bucket != NULL) { @@ -2756,9 +2758,6 @@ zfree_start: LIST_INSERT_HEAD(&zone->uz_buckets, bucket, ub_link); } - /* We are no longer associated with this CPU. */ - critical_exit(); - /* * We bump the uz count when the cache size is insufficient to * handle the working set. From owner-svn-src-all@freebsd.org Wed Jul 20 02:21:55 2016 Return-Path: Delivered-To: svn-src-all@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 D515EB9FD30; Wed, 20 Jul 2016 02:21:55 +0000 (UTC) (envelope-from sjg@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 9F10412F5; Wed, 20 Jul 2016 02:21:55 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K2LseY082938; Wed, 20 Jul 2016 02:21:54 GMT (envelope-from sjg@FreeBSD.org) Received: (from sjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K2Lsn8082936; Wed, 20 Jul 2016 02:21:54 GMT (envelope-from sjg@FreeBSD.org) Message-Id: <201607200221.u6K2Lsn8082936@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sjg set sender to sjg@FreeBSD.org using -f From: "Simon J. Gerraty" Date: Wed, 20 Jul 2016 02:21:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r303060 - svnadmin/conf X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 02:21:55 -0000 Author: sjg Date: Wed Jul 20 02:21:54 2016 New Revision: 303060 URL: https://svnweb.freebsd.org/changeset/base/303060 Log: Add Steve Kiernan as src committer Approved by: core Modified: svnadmin/conf/access svnadmin/conf/mentors Modified: svnadmin/conf/access ============================================================================== --- svnadmin/conf/access Wed Jul 20 01:01:50 2016 (r303059) +++ svnadmin/conf/access Wed Jul 20 02:21:54 2016 (r303060) @@ -223,6 +223,7 @@ smh sobomax stas stefanf +stevek syrinx syuu takawata Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Wed Jul 20 01:01:50 2016 (r303059) +++ svnadmin/conf/mentors Wed Jul 20 02:21:54 2016 (r303060) @@ -32,6 +32,7 @@ peterj jhb Co-mentor: grog phil theraven Co-mentor: sjg slm ken Co-mentor: scottl, ambrisko snb dwmalone +stevek sjg torek rpaulo venkat delphij Co-mentor: luigi, jhb versus gavin Co-mentor: fjoe From owner-svn-src-all@freebsd.org Wed Jul 20 03:01:31 2016 Return-Path: Delivered-To: svn-src-all@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 B5F73B9D644 for ; Wed, 20 Jul 2016 03:01:31 +0000 (UTC) (envelope-from jbeich@vfemail.net) Received: from vfemail.net (onethreetwo.vfemail.net [199.16.11.132]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 741D3177D for ; Wed, 20 Jul 2016 03:01:30 +0000 (UTC) (envelope-from jbeich@vfemail.net) Received: (qmail 90835 invoked by uid 89); 20 Jul 2016 03:01:29 -0000 Received: from localhost (HELO freequeue.vfemail.net) (127.0.0.1) by localhost with (DHE-RSA-AES256-SHA encrypted) SMTP; 20 Jul 2016 03:01:29 -0000 Received: (qmail 90376 invoked by uid 89); 20 Jul 2016 03:01:12 -0000 Received: by simscan 1.3.1 ppid: 90367, pid: 90371, t: 0.0042s scanners:none Received: from unknown (HELO smtp102-2.vfemail.net) (172.16.100.62) by FreeQueue with SMTP; 20 Jul 2016 03:01:12 -0000 Received: (qmail 7662 invoked by uid 89); 20 Jul 2016 03:01:12 -0000 Received: by simscan 1.4.0 ppid: 7641, pid: 7658, t: 0.5424s scanners:none Received: from unknown (HELO nil) (amJlaWNoQHZmZW1haWwubmV0@172.16.100.27) by mail.vfemail.net with ESMTPA; 20 Jul 2016 03:01:11 -0000 From: Jan Beich To: Ed Maste Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303033 - head/share/man/man7 References: <201607191746.u6JHk9ov092270@repo.freebsd.org> Date: Wed, 20 Jul 2016 05:01:03 +0200 In-Reply-To: <201607191746.u6JHk9ov092270@repo.freebsd.org> (Ed Maste's message of "Tue, 19 Jul 2016 17:46:09 +0000 (UTC)") Message-ID: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 03:01:31 -0000 --=-=-= Content-Type: text/plain Ed Maste writes: > +.It Sy Architecture Ta Sy Page Sizes > +.It amd64 Ta 4K, 2M, 1G Does FreeBSD support 1G pages nowadays? $ sysctl hw.pagesizes hw.pagesizes: 4096 2097152 0 $ dmesg | fgrep -i 1gb AMD Features=0x2c100800 > +.Ss Predefined Macros > +The compiler provides a number of predefined macros. > +Some of these provide architecture-specific details and are explained below. > +Other macros, including those required by the language standard, are not > +included here. [...] > +cc -x c -Dm -E /dev/null Typo: -Dm vs. -dM > +.It Dv BYTE_ORDER Ta Either Dv BIG_ENDIAN or Dv LITTLE_ENDIAN . Are these really compiler macros? I think, defines them. $ clang38 -x c -dM -E /dev/null | fgrep ENDIAN #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ #define __LITTLE_ENDIAN__ 1 #define __ORDER_BIG_ENDIAN__ 4321 #define __ORDER_LITTLE_ENDIAN__ 1234 #define __ORDER_PDP_ENDIAN__ 3412 $ gcc5 -x c -dM -E /dev/null | fgrep ENDIAN #define __ORDER_LITTLE_ENDIAN__ 1234 #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ #define __ORDER_PDP_ENDIAN__ 3412 #define __ORDER_BIG_ENDIAN__ 4321 #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQF8BAEBCgBmBQJXjulvXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXREQjQ0MzY3NEM3RDIzNTc4NkUxNDkyQ0VF NEM3Nzg4MzQ3OURCRERCAAoJEOTHeINHnb3ba2QH/iBMtZV06lQ4dAdG2mA5rdoA APlTiA2QF6EcrrgpVsRlQ3wb3x5cMexu2UvRRrICJ2Lj1ZhmX4XxcjTwZxbS3sYI RkRAO/bly1KyF6MGFtKIw+ThWcVMEaBuPc9SpKJUG+O2Kry1BjVVl9UyWcz2BFB/ dK8G+bTHTunPT8IDv5n5CeyzdolzvusLqsSuK+Y2Kjr3hCp4WFoquL4BJFAKySCZ wncRbYHEj675Io27WfXflmxEt5jCeKVpTbvwyFq1BM/OpwZ5X8frEA7wnB5dGSgx Fs+Wp5DsgY/UsLYU+2jWEnVq550ZRakPMCwhSPkCxXd2htHpg+ZzNR/+uYODSsI= =WH2R -----END PGP SIGNATURE----- --=-=-=-- From owner-svn-src-all@freebsd.org Wed Jul 20 03:13:04 2016 Return-Path: Delivered-To: svn-src-all@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 483EBB9D98A; Wed, 20 Jul 2016 03:13:04 +0000 (UTC) (envelope-from emaste@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 10EEE1F8A; Wed, 20 Jul 2016 03:13:03 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K3D377003474; Wed, 20 Jul 2016 03:13:03 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K3D3XE003473; Wed, 20 Jul 2016 03:13:03 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607200313.u6K3D3XE003473@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 20 Jul 2016 03:13:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303061 - head/contrib/llvm/projects/libunwind/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 03:13:04 -0000 Author: emaste Date: Wed Jul 20 03:13:02 2016 New Revision: 303061 URL: https://svnweb.freebsd.org/changeset/base/303061 Log: libunwind: Properly align _Unwind_Exception. _Unwind_Exception is required to be double word aligned. GCC has interpreted this to mean "use the maximum useful alignment for the target" so follow that lead. Obtained from: LLVM review D22543 Modified: head/contrib/llvm/projects/libunwind/include/unwind.h Modified: head/contrib/llvm/projects/libunwind/include/unwind.h ============================================================================== --- head/contrib/llvm/projects/libunwind/include/unwind.h Wed Jul 20 02:21:54 2016 (r303060) +++ head/contrib/llvm/projects/libunwind/include/unwind.h Wed Jul 20 03:13:02 2016 (r303061) @@ -128,7 +128,7 @@ struct _Unwind_Exception { // added for binary compatibility. uint32_t reserved[3]; #endif -}; +} __attribute__((__aligned__)); typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn) (int version, From owner-svn-src-all@freebsd.org Wed Jul 20 03:52:06 2016 Return-Path: Delivered-To: svn-src-all@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 60EBBB9E1E9; Wed, 20 Jul 2016 03:52:06 +0000 (UTC) (envelope-from pfg@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 2A1221181; Wed, 20 Jul 2016 03:52:06 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K3q529015194; Wed, 20 Jul 2016 03:52:05 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K3q4I3015185; Wed, 20 Jul 2016 03:52:04 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607200352.u6K3q4I3015185@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Wed, 20 Jul 2016 03:52:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303062 - head/contrib/openresolv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 03:52:06 -0000 Author: pfg Date: Wed Jul 20 03:52:04 2016 New Revision: 303062 URL: https://svnweb.freebsd.org/changeset/base/303062 Log: MFV r298167, r300962, r303048: openresolv: update to version 3.8.1. Among the new features it attempts to support alternative init systems. MFC after: 1 month Modified: head/contrib/openresolv/Makefile head/contrib/openresolv/configure head/contrib/openresolv/dnsmasq.in head/contrib/openresolv/libc.in head/contrib/openresolv/named.in head/contrib/openresolv/resolvconf.8.in head/contrib/openresolv/resolvconf.conf.5.in head/contrib/openresolv/resolvconf.in head/contrib/openresolv/unbound.in Directory Properties: head/contrib/openresolv/ (props changed) Modified: head/contrib/openresolv/Makefile ============================================================================== --- head/contrib/openresolv/Makefile Wed Jul 20 03:13:02 2016 (r303061) +++ head/contrib/openresolv/Makefile Wed Jul 20 03:52:04 2016 (r303062) @@ -1,5 +1,4 @@ PKG= openresolv -VERSION= 3.7.3 # Nasty hack so that make clean works without configure being run _CONFIG_MK!= test -e config.mk && echo config.mk || echo config-null.mk @@ -10,14 +9,12 @@ SBINDIR?= /sbin SYSCONFDIR?= /etc LIBEXECDIR?= /libexec/resolvconf VARDIR?= /var/run/resolvconf -RCDIR?= /etc/rc.d -RESTARTCMD?= if ${RCDIR}/\1 status >/dev/null 2>\&1; then \ - ${RCDIR}/\1 restart; \ - fi INSTALL?= install SED?= sed +VERSION!= ${SED} -n 's/OPENRESOLV_VERSION="\(.*\)".*/\1/p' resolvconf.in + BINMODE?= 0755 DOCMODE?= 0644 MANMODE?= 0444 @@ -33,7 +30,9 @@ SED_SYSCONFDIR= -e 's:@SYSCONFDIR@:${SY SED_LIBEXECDIR= -e 's:@LIBEXECDIR@:${LIBEXECDIR}:g' SED_VARDIR= -e 's:@VARDIR@:${VARDIR}:g' SED_RCDIR= -e 's:@RCDIR@:${RCDIR}:g' -SED_RESTARTCMD= -e 's:@RESTARTCMD \(.*\)@:${RESTARTCMD}:g' +SED_RESTARTCMD= -e 's:@RESTARTCMD@:${RESTARTCMD}:g' +SED_RCDIR= -e 's:@RCDIR@:${RCDIR}:g' +SED_STATUSARG= -e 's:@STATUSARG@:${STATUSARG}:g' DISTPREFIX?= ${PKG}-${VERSION} DISTFILEGZ?= ${DISTPREFIX}.tar.gz @@ -44,9 +43,10 @@ FOSSILID?= current all: ${TARGET} -.in: +.in: Makefile ${CONFIG_MK} ${SED} ${SED_SBINDIR} ${SED_SYSCONFDIR} ${SED_LIBEXECDIR} \ - ${SED_VARDIR} ${SED_RCDIR} ${SED_RESTARTCMD} \ + ${SED_VARDIR} \ + ${SED_RCDIR} ${SED_RESTARTCMD} ${SED_RCDIR} ${SED_STATUSARG} \ $< > $@ clean: Modified: head/contrib/openresolv/configure ============================================================================== --- head/contrib/openresolv/configure Wed Jul 20 03:13:02 2016 (r303061) +++ head/contrib/openresolv/configure Wed Jul 20 03:52:04 2016 (r303062) @@ -8,6 +8,7 @@ HOST= TARGET= RESTARTCMD= RCDIR= +STATUSARG= for x do opt=${x%%=*} @@ -33,6 +34,8 @@ for x do --target) TARGET=$var;; --libdir) LIBDIR=$var;; --restartcmd) RESTARTCMD=$var;; + --rcdir) RCDIR=$var;; + --statusarg) STATUSARG=$var;; --includedir) eval INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }$var";; --datadir|--infodir) ;; # ignore autotools --disable-maintainer-mode|--disable-dependency-tracking) ;; @@ -117,7 +120,17 @@ echo "Configuring openresolv for ... $OS rm -rf $CONFIG_MK echo "# $OS" >$CONFIG_MK -for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR; do +# On FreeBSD, /etc/init.d/foo status returns 0 if foo is not enabled +# regardless of if it's not running. +# So we force onestatus to work around this silly bug. +if [ -z "$STATUSARG" ]; then + case "$OS" in + freebsd*) STATUSARG="onestatus";; + esac +fi + +for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR RESTARTCMD RCDIR STATUSARG +do eval v=\$$x # Make files look nice for import l=$((10 - ${#x})) @@ -126,96 +139,6 @@ for x in SYSCONFDIR SBINDIR LIBEXECDIR V echo "$x=$t $v" >>$CONFIG_MK done -if [ -z "$RESTARTCMD" ]; then - printf "Checking for systemd ... " - if [ -x /bin/systemctl ]; then - RESTARTCMD="/bin/systemctl try-restart \1" - echo "yes" - elif [ -x /usr/bin/systemctl ]; then - RESTARTCMD="/usr/bin/systemctl try-restart \1" - echo "yes" - else - echo "no" - fi -fi - -# Arch upgraded to systemd, so this check has to be just after systemd -# but higher than the others -if [ -z "$RESTARTCMD" ]; then - printf "Checking for Arch ... " - if [ -e /etc/arch-release -a -d /etc/rc.d ]; then - RCDIR=/etc/rc.d - RESTARTCMD="[ -e /var/run/daemons/\1 ] \&\& /etc/rc.d/\1 restart" - echo "yes" - else - echo "no" - fi -fi - -if [ -z "$RESTARTCMD" ]; then - printf "Checking for OpenRC ... " - if [ -x /sbin/rc-service ]; then - RESTARTCMD="if /sbin/rc-service -e \1; then /sbin/rc-service \1 -- -Ds restart; fi" - echo "yes" - else - echo "no" - fi -fi -if [ -z "$RESTARTCMD" ]; then - printf "Checking for invoke-rc.d ... " - if [ -x /usr/sbin/invoke-rc.d ]; then - RCDIR=/etc/init.d - RESTARTCMD="if /usr/sbin/invoke-rc.d --quiet \1 status >/dev/null 2>\&1; then /usr/sbin/invoke-rc.d \1 restart; fi" - echo "yes" - else - echo "no" - fi -fi -if [ -z "$RESTARTCMD" ]; then - printf "Checking for service ... " - if [ -x /sbin/service ]; then - RCDIR=/etc/init.d - RESTARTCMD="if /sbin/service \1; then /sbin/service \1 restart; fi" - echo "yes" - else - echo "no" - fi -fi -if [ -z "$RESTARTCMD" ]; then - printf "Checking for runit... " - if [ -x /bin/sv ]; then - RESTARTCMD="/bin/sv try-restart \1" - echo "yes" - elif [ -x /usr/bin/sv ]; then - RESTARTCMD="/usr/bin/sv try-restart \1" - echo "yes" - else - echo "no" - fi -fi -if [ -z "$RESTARTCMD" ]; then - for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do - printf "Checking for $x ... " - if [ -d $x ]; then - RCDIR=$x - RESTARTCMD="if $x/\1 status >/dev/null 2>\&1; then $x/\1 restart; fi" - echo "yes" - break - else - echo "no" - fi - done -fi - -if [ -z "$RESTARTCMD" ]; then - echo "$0: WARNING: No means of interacting with system services detected!" - exit 1 -fi - -echo "RCDIR= $RCDIR" >>$CONFIG_MK -# Work around bug in the dash shell as "echo 'foo \1'" does bad things -printf "%s\n" "RESTARTCMD= $RESTARTCMD" >>$CONFIG_MK - echo echo " SYSCONFDIR = $SYSCONFDIR" echo " SBINDIR = $SBINDIR" @@ -223,3 +146,7 @@ echo " LIBEXECDIR = $LIBEXECDIR" echo " VARDIR = $RUNDIR" echo " MANDIR = $MANDIR" echo +echo " RESTARTCMD = $RESTARTCMD" +echo " RCDIR = $RCDIR" +echo " STATUSARG = $STATUSARG" +echo Modified: head/contrib/openresolv/dnsmasq.in ============================================================================== --- head/contrib/openresolv/dnsmasq.in Wed Jul 20 03:13:02 2016 (r303061) +++ head/contrib/openresolv/dnsmasq.in Wed Jul 20 03:52:04 2016 (r303062) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2012 Roy Marples +# Copyright (c) 2007-2016 Roy Marples # All rights reserved # dnsmasq subscriber for resolvconf @@ -37,7 +37,6 @@ NL=" [ -s "$dnsmasq_pid" ] || dnsmasq_pid=/var/run/dnsmasq/dnsmasq.pid [ -s "$dnsmasq_pid" ] || unset dnsmasq_pid : ${dnsmasq_service:=dnsmasq} -: ${dnsmasq_restart:=@RESTARTCMD ${dnsmasq_service}@} newconf="# Generated by resolvconf$NL" newresolv="$newconf" @@ -180,7 +179,15 @@ if [ -n "$dnsmasq_resolv" ]; then fi if $changed; then - eval $dnsmasq_restart + # dnsmasq does not re-read the configuration file on SIGHUP + if [ -n "$dnsmasq_restart" ]; then + eval $dnsmasq_restart + elif [ -n "$RESTARTCMD" ]; then + set -- ${dnsmasq_service} + eval $RESTARTCMD + else + @SBINDIR@/resolvconf -r ${dnsmasq_service} + fi fi if $dbus; then if [ -s "$dnsmasq_pid" ]; then Modified: head/contrib/openresolv/libc.in ============================================================================== --- head/contrib/openresolv/libc.in Wed Jul 20 03:13:02 2016 (r303061) +++ head/contrib/openresolv/libc.in Wed Jul 20 03:52:04 2016 (r303062) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2014 Roy Marples +# Copyright (c) 2007-2016 Roy Marples # All rights reserved # libc subscriber for resolvconf @@ -97,7 +97,6 @@ elif [ -d "$SYSCONFDIR"/resolvconf ]; th fi : ${resolv_conf:=/etc/resolv.conf} : ${libc_service:=nscd} -: ${libc_restart:=@RESTARTCMD ${libc_service}@} : ${list_resolv:=@SBINDIR@/resolvconf -l} if [ "${resolv_conf_head-x}" = x -a -f "$SYSCONFDIR"/resolv.conf.head ]; then resolv_conf_head="$(cat "${SYSCONFDIR}"/resolv.conf.head)" @@ -229,7 +228,14 @@ fi # Create our resolv.conf now (umask 022; echo "$newconf" >"$resolv_conf") -eval $libc_restart +if [ -n "$libc_restart" ]; then + eval $libc_restart +elif [ -n "$RESTARTCMD" ]; then + set -- ${libc_service} + eval $RESTARTCMD +else + @SBINDIR@/resolvconf -r ${libc_service} +fi retval=0 # Notify users of the resolver Modified: head/contrib/openresolv/named.in ============================================================================== --- head/contrib/openresolv/named.in Wed Jul 20 03:13:02 2016 (r303061) +++ head/contrib/openresolv/named.in Wed Jul 20 03:52:04 2016 (r303062) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2007-2012 Roy Marples +# Copyright (c) 2007-2016 Roy Marples # All rights reserved # named subscriber for resolvconf @@ -35,18 +35,22 @@ NL=" # Platform specific kludges if [ -z "$named_service" -a -z "$named_restart" -a \ - -d "@RCDIR@" -a ! -x "@RCDIR@"/named ] + -d "$RCDIR" -a ! -x "$RCDIR"/named ] then - if [ -x "@RCDIR@"/bind9 ]; then + if [ -x "$RCDIR"/bind9 ]; then # Debian and derivatives named_service=bind9 - elif [ -x "@RCDIR@"/rc.bind ]; then + elif [ -x "$RCDIR"/rc.bind ]; then # Slackware named_service=rc.bind fi fi : ${named_service:=named} -: ${named_restart:=@RESTARTCMD ${named_service}@} + +: ${named_pid:=/var/run/$named_service.pid} +[ -s "$named_pid" ] || named_pid=/var/run/$named_service/$named_service.pid +[ -s "$named_pid" ] || unset named_pid + newoptions="# Generated by resolvconf$NL" newzones="$newoptions" @@ -101,6 +105,14 @@ if [ -n "$named_zones" ]; then fi fi +# named does not seem to work with SIGHUP which is a same if $changed; then - eval $named_restart + if [ -n "$named_restart" ]; then + eval $named_restart + elif [ -n "$RESTARTCMD" ]; then + set -- ${named_service} + eval $RESTARTCMD + else + @SBINDIR@/resolvconf -r ${named_service} + fi fi Modified: head/contrib/openresolv/resolvconf.8.in ============================================================================== --- head/contrib/openresolv/resolvconf.8.in Wed Jul 20 03:13:02 2016 (r303061) +++ head/contrib/openresolv/resolvconf.8.in Wed Jul 20 03:52:04 2016 (r303062) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2007-2015 Roy Marples +.\" Copyright (c) 2007-2016 Roy Marples .\" All rights reserved .\" .\" Redistribution and use in source and binary forms, with or without @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 27, 2015 +.Dd May 7, 2016 .Dt RESOLVCONF 8 .Os .Sh NAME @@ -64,7 +64,7 @@ solves this by letting the daemon send t file to .Nm via -.Xr stdin 3 +.Xr stdin 4 with the argument .Fl a Ar interface Ns Op Ar .protocol instead of the filesystem. @@ -101,7 +101,7 @@ as private. This means that the name servers listed in that .Pa resolv.conf are only used for queries against the domain/search listed in the same file. -This only works when a local resolver other than libc is installed. +This only works when a local resolver other than libc is installed. See .Xr resolvconf.conf 5 for how to configure @@ -125,24 +125,28 @@ file(s) for all the on the .Ar interface . .Pp -Here are some more options that -.Nm -has:- +Here are some options for the above commands:- .Bl -tag -width indent -.It Fl I -Initialise the state directory -.Pa @VARDIR@ . -This only needs to be called if the initial system boot sequence does not -automatically clean it out; for example the state directory is moved -somewhere other than -.Pa /var/run . -If used, it should only be called once as early in the system boot sequence -as possible and before -.Nm -is used to add interfaces. .It Fl f -Ignore non existant interfaces. +Ignore non existent interfaces. Only really useful for deleting interfaces. +.It Fl m Ar metric +Set the metric of the interface when adding it, default of 0. +Lower metrics take precedence. +This affects the default order of interfaces when listed. +.It Fl p +Marks the interface +.Pa resolv.conf +as private. +.It Fl x +Mark the interface +.Pa resolv.conf +as exclusive when adding, otherwise only use the latest exclusive interface. +.El +.Pp +.Nm +has some more commands for general usage:- +.Bl -tag -width indent .It Fl i Ar pattern List the interfaces and protocols, optionally matching .Ar pattern , @@ -157,14 +161,6 @@ If .Ar pattern is specified then we list the files for the interfaces and protocols that match it. -.It Fl m Ar metric -Set the metric of the interface when adding it, default of 0. -Lower metrics take precedence. -This affects the default order of interfaces when listed. -.It Fl p -Marks the interface -.Pa resolv.conf -as private. .It Fl u Force .Nm @@ -172,15 +168,31 @@ to update all its subscribers. .Nm does not update the subscribers when adding a resolv.conf that matches what it already has for that interface. -.It Fl x -Mark the interface -.Pa resolv.conf -as exclusive when adding, otherwise only use the latest exclusive interface. .El .Pp .Nm -also has some options designed to be used by its subscribers:- +also has some commands designed to be used by it's subscribers and +system startup:- .Bl -tag -width indent +.It Fl I +Initialise the state directory +.Pa @VARDIR@ . +This only needs to be called if the initial system boot sequence does not +automatically clean it out; for example the state directory is moved +somewhere other than +.Pa /var/run . +If used, it should only be called once as early in the system boot sequence +as possible and before +.Nm +is used to add interfaces. +.It Fl R +Echo the command used to restart a service. +.It Fl r Ar service +If the +.Ar service +is running then restart it. +If the service does not exist or is not running then zero is returned, +otherwise the result of restarting the service. .It Fl v Echo variables DOMAINS, SEARCH and NAMESERVERS so that the subscriber can configure the resolver easily. @@ -278,16 +290,16 @@ Directory of subscribers which are run a State directory for .Nm . .El +.Sh SEE ALSO +.Xr resolver 3 , +.Xr stdin 4 , +.Xr resolv.conf 5 , +.Xr resolvconf.conf 5 .Sh HISTORY This implementation of .Nm is called openresolv and is fully command line compatible with Debian's resolvconf, as written by Thomas Hood. -.Sh SEE ALSO -.Xr resolv.conf 5 , -.Xr resolvconf.conf 5 , -.Xr resolver 3 , -.Xr stdin 3 .Sh AUTHORS .An Roy Marples Aq Mt roy@marples.name .Sh BUGS Modified: head/contrib/openresolv/resolvconf.conf.5.in ============================================================================== --- head/contrib/openresolv/resolvconf.conf.5.in Wed Jul 20 03:13:02 2016 (r303061) +++ head/contrib/openresolv/resolvconf.conf.5.in Wed Jul 20 03:52:04 2016 (r303062) @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd February 21, 2016 +.Dd April 28, 2016 .Dt RESOLVCONF.CONF 5 .Os .Sh NAME @@ -103,7 +103,8 @@ This is equivalent to the .Nm resolvconf -p option. .It Sy replace -Is a space separated list of replacement keywords. The syntax is this: +Is a space separated list of replacement keywords. +The syntax is this: .Va $keyword Ns / Ns Va $match Ns / Ns Va $replacement .Pp Example, given this resolv.conf: @@ -284,33 +285,32 @@ variables, documented below. .Pp .Bl -tag -width indent .It Sy dnsmasq_service -Location of the dnsmasq service. +Name of the dnsmasq service. .It Sy dnsmasq_restart Command to restart the dnsmasq service. .It Sy dnsmasq_pid Location of the dnsmasq pidfile. .It Sy libc_service -Location of the libc service. +Name of the libc service. .It Sy libc_restart Command to restart the libc service. .It Sy named_service -Location of the named service. +Name of the named service. .It Sy named_restart Command to restart the named service. .It Sy pdnsd_restart Command to restart the pdnsd service. .It Sy unbound_service -Location of the unbound service. +Name of the unbound service. .It Sy unbound_restart Command to restart the unbound service. .It Sy unbound_pid Location of the unbound pidfile. .El .Sh SEE ALSO +.Xr sh 1 , .Xr resolv.conf 5 , .Xr resolvconf 8 -and -.Xr sh 1 . .Sh AUTHORS .An Roy Marples Aq Mt roy@marples.name .Sh BUGS Modified: head/contrib/openresolv/resolvconf.in ============================================================================== --- head/contrib/openresolv/resolvconf.in Wed Jul 20 03:13:02 2016 (r303061) +++ head/contrib/openresolv/resolvconf.in Wed Jul 20 03:52:04 2016 (r303062) @@ -25,9 +25,12 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. RESOLVCONF="$0" +OPENRESOLV_VERSION="3.8.1" SYSCONFDIR=@SYSCONFDIR@ LIBEXECDIR=@LIBEXECDIR@ VARDIR=@VARDIR@ +RCDIR=@RCDIR@ +RESTARTCMD=@RESTARTCMD@ # Disregard dhcpcd setting unset interface_order state_dir @@ -71,55 +74,45 @@ error_exit() usage() { cat <<-EOF - Usage: ${RESOLVCONF##*/} [options] + Usage: ${RESOLVCONF##*/} [options] command [argument] Inform the system about any DNS updates. - Options: + Commands: -a \$INTERFACE Add DNS information to the specified interface (DNS supplied via stdin in resolv.conf format) - -m metric Give the added DNS information a metric - -p Mark the interface as private - -x Mark the interface as exclusive -d \$INTERFACE Delete DNS information from the specified interface - -f Ignore non existant interfaces - -I Init the state dir - -u Run updates from our current DNS information - -l [\$PATTERN] Show DNS information, optionally from interfaces - that match the specified pattern + -h Show this help cruft -i [\$PATTERN] Show interfaces that have supplied DNS information optionally from interfaces that match the specified pattern + -l [\$PATTERN] Show DNS information, optionally from interfaces + that match the specified pattern + + -u Run updates from our current DNS information + + Options: + -f Ignore non existent interfaces + -m metric Give the added DNS information a metric + -p Mark the interface as private + -x Mark the interface as exclusive + + Subscriber and System Init Commands: + -I Init the state dir + -r \$SERVICE Restart the system service + (restarting a non-existent or non-running service + should have no output and return 0) + -R Show the system service restart command -v [\$PATTERN] echo NEWDOMAIN, NEWSEARCH and NEWNS variables to the console - -h Show this help cruft + -V [\$PATTERN] Same as -v, but only uses configuration in + $SYSCONFDIR/resolvconf.conf EOF [ -z "$1" ] && exit 0 echo error_exit "$*" } -echo_resolv() -{ - local line= OIFS="$IFS" - - [ -n "$1" -a -f "$IFACEDIR/$1" ] || return 1 - echo "# resolv.conf from $1" - # Our variable maker works of the fact each resolv.conf per interface - # is separated by blank lines. - # So we remove them when echoing them. - while read -r line; do - IFS="$OIFS" - if [ -n "$line" ]; then - # We need to set IFS here to preserve any whitespace - IFS='' - printf "%s\n" "$line" - fi - done < "$IFACEDIR/$1" - echo - IFS="$OIFS" -} - # Strip any trailing dot from each name as a FQDN does not belong # in resolv.conf(5) # If you think otherwise, capture a DNS trace and you'll see libc @@ -159,7 +152,10 @@ parse_resolv() private=false for p in $private_interfaces; do case "$iface" in - "$p"|"$p":*) private=true; break;; + "$p"|"$p":*) + private=true + break + ;; esac done fi @@ -261,6 +257,108 @@ config_mkdirs() return $e } +# With the advent of alternative init systems, it's possible to have +# more than one installed. So we need to try and guess what one we're +# using unless overriden by configure. +# Note that restarting a service is a last resort - the subscribers +# should make a reasonable attempt to reconfigre the service via some +# method, normally SIGHUP. +detect_init() +{ + [ -n "$RESTARTCMD" ] && return 0 + + # Detect the running init system. + # As systemd and OpenRC can be installed on top of legacy init + # systems we try to detect them first. + local status="@STATUSARG@" + : ${status:=status} + if [ -x /bin/systemctl -a -S /run/systemd/private ]; then + RESTARTCMD="if /bin/systemctl --quiet is-active \$1.service; then + /bin/systemctl restart \$1.service; +fi" + elif [ -x /usr/bin/systemctl -a -S /run/systemd/private ]; then + RESTARTCMD="if /usr/bin/systemctl --quiet is-active \$1.service; then + /usr/bin/systemctl restart \$1.service; +fi" + elif [ -x /sbin/rc-service -a \ + -s /libexec/rc/init.d/softlevel -o -s /run/openrc/softlevel ] + then + RESTARTCMD="/sbin/rc-service -i \$1 -- -Ds restart" + elif [ -x /usr/sbin/invoke-rc.d ]; then + RCDIR=/etc/init.d + RESTARTCMD="if /usr/sbin/invoke-rc.d --quiet \$1 status 1>/dev/null 2>&1; then + /usr/sbin/invoke-rc.d \$1 restart; +fi" + elif [ -x /sbin/service ]; then + # Old RedHat + RCDIR=/etc/init.d + RESTARTCMD="if /sbin/service \$1; then + /sbin/service \$1 restart; +fi" + elif [ -x /usr/sbin/service ]; then + # Could be FreeBSD + RESTARTCMD="if /usr/sbin/service \$1 $status 1>/dev/null 2>&1; then + /usr/sbin/service \$1 restart; +fi" + elif [ -x /bin/sv ]; then + RESTARTCMD="/bin/sv try-restart \$1" + elif [ -x /usr/bin/sv ]; then + RESTARTCMD="/usr/bin/sv try-restart \$1" + elif [ -e /etc/arch-release -a -d /etc/rc.d ]; then + RCDIR=/etc/rc.d + RESTARTCMD="if [ -e /var/run/daemons/\$1 ]; then + /etc/rc.d/\$1 restart; +fi" + elif [ -e /etc/slackware-version -a -d /etc/rc.d ]; then + RESTARTCMD="if /etc/rc.d/rc.\$1 status 1>/dev/null 2>&1; then + /etc/rc.d/rc.\$1 restart; +fi" + elif [ -e /etc/rc.d/rc.subr -a -d /etc/rc.d ]; then + # OpenBSD + RESTARTCMD="if /etc/rc.d/\$1 check 1>/dev/null 2>&1; then + /etc/rc.d/\$1 restart; +fi" + else + for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do + [ -d $x ] || continue + RESTARTCMD="if $x/\$1 $status 1>/dev/null 2>&1; then + $x/\$1 restart; +fi" + break + done + fi + + if [ -z "$RESTARTCMD" ]; then + if [ "$NOINIT_WARNED" != true ]; then + warn "could not detect a useable init system" + _NOINIT_WARNED=true + fi + return 1 + fi + _NOINIT_WARNED= + return 0 +} + +echo_resolv() +{ + local line= OIFS="$IFS" + + [ -n "$1" -a -f "$IFACEDIR/$1" ] || return 1 + echo "# resolv.conf from $1" + # Our variable maker works of the fact each resolv.conf per interface + # is separated by blank lines. + # So we remove them when echoing them. + while read -r line; do + IFS="$OIFS" + if [ -n "$line" ]; then + # We need to set IFS here to preserve any whitespace + IFS='' + printf "%s\n" "$line" + fi + done < "$IFACEDIR/$1" + IFS="$OIFS" +} + list_resolv() { [ -d "$IFACEDIR" ] || return 0 @@ -320,6 +418,7 @@ list_resolv() cd "$IFACEDIR" retval=1 + excl=true for i in $(uniqify $list); do # Only list interfaces which we really have if ! [ -f "$i" ]; then @@ -334,6 +433,7 @@ list_resolv() printf %s "$i " else echo_resolv "$i" + echo fi [ $? = 0 -a "$retval" = 1 ] && retval=0 done @@ -499,7 +599,7 @@ make_vars() force=false VFLAG= -while getopts a:Dd:fhIilm:puvVx OPT; do +while getopts a:Dd:fhIilm:pRruvVx OPT; do case "$OPT" in f) force=true;; h) usage;; @@ -541,6 +641,18 @@ if [ "$cmd" = l -o "$cmd" = i ]; then exit $? fi +# Restart a service or echo the command to restart a service +if [ "$cmd" = r -o "$cmd" = R ]; then + detect_init || exit 1 + if [ "$cmd" = r ]; then + set -- $args + eval $RESTARTCMD + else + echo "$RESTARTCMD" + fi + exit $? +fi + # Not normally needed, but subscribers should be able to run independently if [ "$cmd" = v -o -n "$VFLAG" ]; then make_vars "$iface" @@ -765,13 +877,17 @@ case "${resolvconf:-YES}" in *) exit 0;; esac +# Try and detect a suitable init system for our scripts +detect_init +export RESTARTCMD RCDIR _NOINIT_WARNED + eval "$(make_vars)" export RESOLVCONF DOMAINS SEARCH NAMESERVERS LOCALNAMESERVERS : ${list_resolv:=list_resolv -l} retval=0 # Run scripts in the same directory resolvconf is run from -# in case any scripts accidently dump files in the wrong place. +# in case any scripts accidentally dump files in the wrong place. cd "$_PWD" for script in "$LIBEXECDIR"/*; do if [ -f "$script" ]; then Modified: head/contrib/openresolv/unbound.in ============================================================================== --- head/contrib/openresolv/unbound.in Wed Jul 20 03:13:02 2016 (r303061) +++ head/contrib/openresolv/unbound.in Wed Jul 20 03:52:04 2016 (r303062) @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2009-2014 Roy Marples +# Copyright (c) 2009-2016 Roy Marples # All rights reserved # unbound subscriber for resolvconf @@ -37,7 +37,6 @@ NL=" : ${unbound_pid:=/var/run/unbound.pid} : ${unbound_service:=unbound} -: ${unbound_restart:=@RESTARTCMD ${unbound_service}@} newconf="# Generated by resolvconf$NL" for d in $DOMAINS; do @@ -71,6 +70,18 @@ else @SBINDIR@/resolvconf -D "$unbound_conf" fi +restart_unbound() +{ + if [ -n "$unbound_restart" ]; then + eval $unbound_restart + elif [ -n "$RESTARTCMD" ]; then + set -- ${unbound_service} + eval $RESTARTCMD + else + @SBINDIR@/resolvconf -r ${unbound_service} + fi +} + if [ ! -f "$unbound_conf" ] || \ [ "$(cat "$unbound_conf")" != "$(printf %s "$newconf")" ] then @@ -78,9 +89,9 @@ then # If we can't sent a HUP then force a restart if [ -s "$unbound_pid" ]; then if ! kill -HUP $(cat "$unbound_pid") 2>/dev/null; then - eval $unbound_restart + restart_unbound fi else - eval $unbound_restart + restart_unbound fi fi From owner-svn-src-all@freebsd.org Wed Jul 20 03:55:32 2016 Return-Path: Delivered-To: svn-src-all@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 DAA52B9E3B4 for ; Wed, 20 Jul 2016 03:55:32 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm28.bullet.mail.bf1.yahoo.com (nm28.bullet.mail.bf1.yahoo.com [98.139.212.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9473A13A6 for ; Wed, 20 Jul 2016 03:55:32 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1468986931; bh=92z0aOcrKdYbPK0anLyxfrtft7woSolB0w7KRwZt7FQ=; h=Subject:To:References:From:Date:In-Reply-To:From:Subject; b=hWFtUT1rzYqzlXzxqKvgjOMHXR5uYFvej2khcRB2uIaAkLkst58wEMhwvydDAU9uPjr6KrSJ0kb7cc6pUcxCite0Fs4oLJgFMN2mSHcScH5ssy4QrGseJpXnGcFKmz7L8Zt+q6l0r81AVAQ9ZSeXft9nx3POY7UxmU4j1zfyW/IwzLnnAgna0GUUZ5D9c/5LqBoH47idSBVfO9DJlsZEKJfmj8Cwc/CuD4LZCK/qGyTanpITBviAfp/UmvNMJf9zAb2Fj4M29ujQ6ZGL/dpG8Sro3FHOHAc1YDlAEKaNk/byaF/bZ/ppOk6sKnddJdLS0IedTxS73WKKXO8Pv6tKLg== Received: from [98.139.215.143] by nm28.bullet.mail.bf1.yahoo.com with NNFMP; 20 Jul 2016 03:55:31 -0000 Received: from [98.139.211.196] by tm14.bullet.mail.bf1.yahoo.com with NNFMP; 20 Jul 2016 03:55:31 -0000 Received: from [127.0.0.1] by smtp205.mail.bf1.yahoo.com with NNFMP; 20 Jul 2016 03:55:31 -0000 X-Yahoo-Newman-Id: 205918.21047.bm@smtp205.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: cdTdtzMVM1lpQpKtZQ8QxGC1GDbHQHBkPG7lKINz.b5MZg4 SrP1tU9Gki08AabhqVPdE2zoILHNa4HzjFZAq2hjf.gTcWvxHqTZsYP57rvB dNGFEM8mkkHn3O2UrcJdQVoB8G0eatVH3uPFjj59g2Mi4WactjYZixpf_LJ. loUa26uIOlAbFuSxGFr4fK6YyNo6JVNzUj8bJwaHleGem9EAakKSm7TNzIIV vsfSS1DJdE61H5pnn7l25bU6Kz4Z2Iko_CP0H2YwcnYjRx9EK9cZ3Y0fivln 0qY4xAbuI4PSZpw8YAbQJ6RR45voHNNr.0C4HBk.7CSA7NMhKPKOdDMo39pX Tpv_EA1yofnjM6wcL7zRQF9HqdMMDACoayyBKpc1DXINHtM3FECIYKwyS50T kmD7__nhOdXDTZZo1UW.IFs6Fs2iRx29blVoWJnGuBq_rCsxROkAdx0m0g3M k44xuwem5WCl.skzo85MhjwoyRGEWHSgmHPK3Fp_pVqfZXA.DuuOrtA_zMq4 XZcwnUc8lU3E2eYCaF_kwtSpyjzly4DNhcfOIWk3gus_9MA-- X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Subject: Re: svn commit: r303062 - head/contrib/openresolv To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201607200352.u6K3q4I3015185@repo.freebsd.org> From: Pedro Giffuni Message-ID: <1c75b9d0-d70b-7e23-709c-f4ed1c5bfe3b@FreeBSD.org> Date: Tue, 19 Jul 2016 22:55:34 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <201607200352.u6K3q4I3015185@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 03:55:32 -0000 On 07/19/16 22:52, Pedro F. Giffuni wrote: > Author: pfg > Date: Wed Jul 20 03:52:04 2016 > New Revision: 303062 > URL: https://svnweb.freebsd.org/changeset/base/303062 > > Log: > MFV r298167, r300962, r303048: > openresolv: update to version 3.8.1. > > Among the new features it attempts to support alternative init systems. > > MFC after: 1 month > In case it's not clear ... While I am running this and I don't see any issue, I don't have sufficient confidence yet to merge it into a release. Pedro. From owner-svn-src-all@freebsd.org Wed Jul 20 04:10:00 2016 Return-Path: Delivered-To: svn-src-all@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 B509CB9E617; Wed, 20 Jul 2016 04:10:00 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4FA731987; Wed, 20 Jul 2016 04:10:00 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id u6K49sN4015263 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Wed, 20 Jul 2016 07:09:55 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua u6K49sN4015263 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id u6K49sbQ015262; Wed, 20 Jul 2016 07:09:54 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 20 Jul 2016 07:09:54 +0300 From: Konstantin Belousov To: Jan Beich Cc: Ed Maste , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303033 - head/share/man/man7 Message-ID: <20160720040954.GM38613@kib.kiev.ua> References: <201607191746.u6JHk9ov092270@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.6.1 (2016-04-27) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 04:10:00 -0000 On Wed, Jul 20, 2016 at 05:01:03AM +0200, Jan Beich wrote: > Ed Maste writes: > > > +.It Sy Architecture Ta Sy Page Sizes > > +.It amd64 Ta 4K, 2M, 1G > > Does FreeBSD support 1G pages nowadays? Define what do you mean by 'support'. The direct map is mapped with 1G pages where possible, and the mappings are demoted when page attributes change. Neither kernel nor userspace mappings are promoted to 1G superpages in the current pmap. From owner-svn-src-all@freebsd.org Wed Jul 20 04:25:10 2016 Return-Path: Delivered-To: svn-src-all@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 80078B9EABC; Wed, 20 Jul 2016 04:25:10 +0000 (UTC) (envelope-from stevek@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 52A01126B; Wed, 20 Jul 2016 04:25:10 +0000 (UTC) (envelope-from stevek@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K4P9W1029161; Wed, 20 Jul 2016 04:25:09 GMT (envelope-from stevek@FreeBSD.org) Received: (from stevek@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K4P93p029160; Wed, 20 Jul 2016 04:25:09 GMT (envelope-from stevek@FreeBSD.org) Message-Id: <201607200425.u6K4P93p029160@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: stevek set sender to stevek@FreeBSD.org using -f From: "Stephen J. Kiernan" Date: Wed, 20 Jul 2016 04:25:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303063 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 04:25:10 -0000 Author: stevek Date: Wed Jul 20 04:25:09 2016 New Revision: 303063 URL: https://svnweb.freebsd.org/changeset/base/303063 Log: Add myself (stevek) as a src committer and mentor (sjg) to committers-src.dot Approved by: sjg (mentor) Modified: head/share/misc/committers-src.dot Modified: head/share/misc/committers-src.dot ============================================================================== --- head/share/misc/committers-src.dot Wed Jul 20 03:52:04 2016 (r303062) +++ head/share/misc/committers-src.dot Wed Jul 20 04:25:09 2016 (r303063) @@ -303,6 +303,7 @@ sobomax [label="Maxim Sobolev\nsobomax@F sos [label="Soren Schmidt\nsos@FreeBSD.org\n????/??/??"] sson [label="Stacey Son\nsson@FreeBSD.org\n2008/07/08"] stas [label="Stanislav Sedov\nstas@FreeBSD.org\n2008/08/22"] +stevek [label="Stephen J. Kiernan\nstevek@FreeBSD.org\n2016/07/18"] suz [label="SUZUKI Shinsuke\nsuz@FreeBSD.org\n2002/03/26"] syrinx [label="Shteryana Shopova\nsyrinx@FreeBSD.org\n2006/10/07"] takawata [label="Takanori Watanabe\ntakawata@FreeBSD.org\n2000/07/06"] @@ -754,6 +755,7 @@ shin -> ume simon -> benl sjg -> phil +sjg -> stevek sos -> marcel From owner-svn-src-all@freebsd.org Wed Jul 20 04:46:01 2016 Return-Path: Delivered-To: svn-src-all@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 3FBE2B9EFD1; Wed, 20 Jul 2016 04:46:01 +0000 (UTC) (envelope-from pfg@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 F34DB1B71; Wed, 20 Jul 2016 04:46:00 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K4k0UT036376; Wed, 20 Jul 2016 04:46:00 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K4k0G8036372; Wed, 20 Jul 2016 04:46:00 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607200446.u6K4k0G8036372@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Wed, 20 Jul 2016 04:46:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303064 - stable/11/usr.bin/sed X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 04:46:01 -0000 Author: pfg Date: Wed Jul 20 04:45:59 2016 New Revision: 303064 URL: https://svnweb.freebsd.org/changeset/base/303064 Log: MFC r302973: sed(1): Fix off by one introduced in r299211. Detected by running the gsed tests. Submitted by: Mikhail Teterin PR: 195929 Approved by: re (gjb) Modified: stable/11/usr.bin/sed/process.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/sed/process.c ============================================================================== --- stable/11/usr.bin/sed/process.c Wed Jul 20 04:25:09 2016 (r303063) +++ stable/11/usr.bin/sed/process.c Wed Jul 20 04:45:59 2016 (r303064) @@ -450,7 +450,7 @@ substitute(struct s_command *cp) regexec_e(re, ps, REG_NOTBOL, 0, le, psl)); /* Did not find the requested number of matches. */ - if (n > 1) + if (n > 0) return (0); /* Copy the trailing retained string. */ From owner-svn-src-all@freebsd.org Wed Jul 20 04:49:03 2016 Return-Path: Delivered-To: svn-src-all@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 177F0B9F103; Wed, 20 Jul 2016 04:49:03 +0000 (UTC) (envelope-from pfg@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 DADD81E2B; Wed, 20 Jul 2016 04:49:02 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K4n27R036640; Wed, 20 Jul 2016 04:49:02 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K4n2CU036639; Wed, 20 Jul 2016 04:49:02 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607200449.u6K4n2CU036639@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Wed, 20 Jul 2016 04:49:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303065 - stable/10/usr.bin/sed X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 04:49:03 -0000 Author: pfg Date: Wed Jul 20 04:49:01 2016 New Revision: 303065 URL: https://svnweb.freebsd.org/changeset/base/303065 Log: MFC r302973: sed(1): Fix off by one introduced in r299211. Detected by running the gsed tests. Submitted by: Mikhail Teterin PR: 195929 Modified: stable/10/usr.bin/sed/process.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/sed/process.c ============================================================================== --- stable/10/usr.bin/sed/process.c Wed Jul 20 04:45:59 2016 (r303064) +++ stable/10/usr.bin/sed/process.c Wed Jul 20 04:49:01 2016 (r303065) @@ -440,7 +440,7 @@ substitute(struct s_command *cp) regexec_e(re, ps, REG_NOTBOL, 0, le, psl)); /* Did not find the requested number of matches. */ - if (n > 1) + if (n > 0) return (0); /* Copy the trailing retained string. */ From owner-svn-src-all@freebsd.org Wed Jul 20 05:03:06 2016 Return-Path: Delivered-To: svn-src-all@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 4780AB9F453; Wed, 20 Jul 2016 05:03:06 +0000 (UTC) (envelope-from sephe@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 24C7F177A; Wed, 20 Jul 2016 05:03:06 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K535ij043853; Wed, 20 Jul 2016 05:03:05 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K535Oc043849; Wed, 20 Jul 2016 05:03:05 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607200503.u6K535Oc043849@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 20 Jul 2016 05:03:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303066 - in head/sys/dev/hyperv: include netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 05:03:06 -0000 Author: sephe Date: Wed Jul 20 05:03:04 2016 New Revision: 303066 URL: https://svnweb.freebsd.org/changeset/base/303066 Log: hyperv/vmbus: Get rid of unnecessary definition. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7240 Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_rndis_filter.c head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 04:49:01 2016 (r303065) +++ head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 05:03:04 2016 (r303066) @@ -58,8 +58,6 @@ #include #include -typedef uint8_t hv_bool_uint8_t; - #define HV_S_OK 0x00000000 #define HV_E_FAIL 0x80004005 #define HV_ERROR_NOT_SUPPORTED 0x80070032 @@ -90,8 +88,6 @@ struct hyperv_guid { int hyperv_guid2str(const struct hyperv_guid *, char *, size_t); -#define HW_MACADDR_LEN 6 - /* * Common defines for Hyper-V ICs */ Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Jul 20 04:49:01 2016 (r303065) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Jul 20 05:03:04 2016 (r303066) @@ -53,6 +53,7 @@ #include #include +#include #include #include @@ -1065,12 +1066,12 @@ typedef struct netvsc_dev_ { nvsp_msg channel_init_packet; nvsp_msg revoke_packet; - /*uint8_t hw_mac_addr[HW_MACADDR_LEN];*/ + /*uint8_t hw_mac_addr[ETHER_ADDR_LEN];*/ /* Holds rndis device info */ void *extension; - hv_bool_uint8_t destroy; + uint8_t destroy; /* Negotiated NVSP version */ uint32_t nvsp_version; @@ -1109,7 +1110,7 @@ typedef void (*pfn_on_send_rx_completion #endif typedef struct netvsc_packet_ { - hv_bool_uint8_t is_data_pkt; /* One byte */ + uint8_t is_data_pkt; /* One byte */ uint16_t vlan_tci; uint32_t status; @@ -1140,7 +1141,7 @@ typedef struct netvsc_packet_ { typedef struct { uint8_t mac_addr[6]; /* Assumption unsigned long */ - hv_bool_uint8_t link_state; + uint8_t link_state; } netvsc_device_info; #ifndef HN_USE_TXDESC_BUFRING Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Wed Jul 20 04:49:01 2016 (r303065) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Wed Jul 20 05:03:04 2016 (r303066) @@ -699,7 +699,7 @@ cleanup: static inline int hv_rf_query_device_mac(rndis_device *device) { - uint32_t size = HW_MACADDR_LEN; + uint32_t size = ETHER_ADDR_LEN; return (hv_rf_query_device(device, RNDIS_OID_802_3_PERMANENT_ADDRESS, device->hw_mac_addr, &size)); @@ -1126,7 +1126,7 @@ hv_rf_on_device_add(struct hn_softc *sc, "hv_rf_send_offload_request failed, ret=%d\n", ret); } - memcpy(dev_info->mac_addr, rndis_dev->hw_mac_addr, HW_MACADDR_LEN); + memcpy(dev_info->mac_addr, rndis_dev->hw_mac_addr, ETHER_ADDR_LEN); hv_rf_query_device_link_status(rndis_dev); Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Wed Jul 20 04:49:01 2016 (r303065) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Wed Jul 20 05:03:04 2016 (r303066) @@ -31,6 +31,8 @@ #ifndef __HV_RNDIS_FILTER_H__ #define __HV_RNDIS_FILTER_H__ +#include +#include /* * Defines @@ -103,7 +105,7 @@ typedef struct rndis_device_ { STAILQ_HEAD(RQ, rndis_request_) myrequest_list; - uint8_t hw_mac_addr[HW_MACADDR_LEN]; + uint8_t hw_mac_addr[ETHER_ADDR_LEN]; } rndis_device; /* From owner-svn-src-all@freebsd.org Wed Jul 20 05:08:56 2016 Return-Path: Delivered-To: svn-src-all@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 38EE2B9F4F7 for ; Wed, 20 Jul 2016 05:08:56 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-it0-x230.google.com (mail-it0-x230.google.com [IPv6:2607:f8b0:4001:c0b::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E669519D6 for ; Wed, 20 Jul 2016 05:08:55 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-it0-x230.google.com with SMTP id u186so108342561ita.0 for ; Tue, 19 Jul 2016 22:08:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=78063zK/ujFVtirHf7zN4D0t3SeDx1kAuMrFiReU7XI=; b=eqxozsPbyV1sakLNq7GmUjP8OckWlRtlRnqcDnztWp9ccxJCzhuv08PxKBAYhJsDIA tlnf4gsyrgpl4A1tSupqPBOwognikBCYC1ySCCbj540OQgJsksAbz9+6IeRkokajIdJg ezUqiFGaenYzWS6tYVivNR11YrPEfv54lhxq7WPUpQpqJ9qK4a4m5mCh92M3MYRz/nRV 4tWNChMtQjmTP5hglm4EvOlSkA9kDSsQoSLCol8RSrS7vdrrS4F6vkz9cQSmO579T0+v LdOk0SlA9oeP3RUaO+piqeLM6XAxkahTvh233sJKo5alTPa1QKSBt4dLq0VV/MZ+Vp9d V03A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=78063zK/ujFVtirHf7zN4D0t3SeDx1kAuMrFiReU7XI=; b=Agkj6liBsrsSeQelD4gTIU8OcZW49c/xkaq7TpnP6teeVdJdPpX5fKwrzbpvR2s+7j BGYN+wWvlOC6cNJd+dZJ4hApbRrdP06fN+ALziCfMcnUMONi5qFwzUhdZsBQ6lvt3/qz xfJwOm6RkizOhS7JIrd9MPSkCrYrHxxSSj+xsoncyMfk6t0XoyfsZ3vfy/C0+Tsv/r4H U5efgrZS94yMGvj3Pliv6L8mnrK4GMrtC95+C17Muz4+FGv8L53nvDSY3NIqB5cI6hkE Ar6WW55+cvACTvkDQJv0/eAkzPy4PP+41WgKRHFLGT4MfcacT1STQEVospR451y391z7 0ing== X-Gm-Message-State: ALyK8tJudS7SlUdo4k39u3fpJUR1i3/Rj5iDH43TIx4ZLSUz8LZ7BRabcgCWEbM9oeTA9tJgpbWZ+lLr94h0Yw== X-Received: by 10.36.108.194 with SMTP id w185mr7685620itb.72.1468991335103; Tue, 19 Jul 2016 22:08:55 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 10.79.137.131 with HTTP; Tue, 19 Jul 2016 22:08:54 -0700 (PDT) X-Originating-IP: [69.53.245.200] In-Reply-To: References: <201607191746.u6JHk9ov092270@repo.freebsd.org> From: Warner Losh Date: Tue, 19 Jul 2016 23:08:54 -0600 X-Google-Sender-Auth: lWvuVhxctcnFpf1escJvIECscwo Message-ID: Subject: Re: svn commit: r303033 - head/share/man/man7 To: Jan Beich Cc: Ed Maste , src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 05:08:56 -0000 On Tue, Jul 19, 2016 at 9:01 PM, Jan Beich wrote: > Ed Maste writes: > >> +.It Sy Architecture Ta Sy Page Sizes >> +.It amd64 Ta 4K, 2M, 1G > > Does FreeBSD support 1G pages nowadays? > > $ sysctl hw.pagesizes > hw.pagesizes: 4096 2097152 0 > > $ dmesg | fgrep -i 1gb > AMD Features=0x2c100800 > >> +.Ss Predefined Macros >> +The compiler provides a number of predefined macros. >> +Some of these provide architecture-specific details and are explained below. >> +Other macros, including those required by the language standard, are not >> +included here. > [...] >> +cc -x c -Dm -E /dev/null > > Typo: -Dm vs. -dM > >> +.It Dv BYTE_ORDER Ta Either Dv BIG_ENDIAN or Dv LITTLE_ENDIAN . > > Are these really compiler macros? I think, defines them. sys/endian.h defines them (and it implements that by including machine/endian.h in part). > $ clang38 -x c -dM -E /dev/null | fgrep ENDIAN > #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ > #define __LITTLE_ENDIAN__ 1 > #define __ORDER_BIG_ENDIAN__ 4321 > #define __ORDER_LITTLE_ENDIAN__ 1234 > #define __ORDER_PDP_ENDIAN__ 3412 > > $ gcc5 -x c -dM -E /dev/null | fgrep ENDIAN > #define __ORDER_LITTLE_ENDIAN__ 1234 > #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ > #define __ORDER_PDP_ENDIAN__ 3412 > #define __ORDER_BIG_ENDIAN__ 4321 > #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ This is why they are defined in machine/endian.h. Compilers have been somewhat inconsistent in the past. Warner From owner-svn-src-all@freebsd.org Wed Jul 20 05:16:24 2016 Return-Path: Delivered-To: svn-src-all@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 DF538B9F72C; Wed, 20 Jul 2016 05:16:24 +0000 (UTC) (envelope-from sephe@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 A377B1F4F; Wed, 20 Jul 2016 05:16:24 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K5GN1e047694; Wed, 20 Jul 2016 05:16:23 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K5GNSU047687; Wed, 20 Jul 2016 05:16:23 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607200516.u6K5GNSU047687@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 20 Jul 2016 05:16:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303067 - in head/sys/dev/hyperv: include utilities X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 05:16:25 -0000 Author: sephe Date: Wed Jul 20 05:16:23 2016 New Revision: 303067 URL: https://svnweb.freebsd.org/changeset/base/303067 Log: hyperv/vmbus: Move IC register definition to Hyper-V utilities MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7241 Added: head/sys/dev/hyperv/utilities/hv_utilreg.h (contents, props changed) Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/utilities/hv_heartbeat.c head/sys/dev/hyperv/utilities/hv_kvp.c head/sys/dev/hyperv/utilities/hv_shutdown.c head/sys/dev/hyperv/utilities/hv_timesync.c head/sys/dev/hyperv/utilities/hv_util.c Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 05:03:04 2016 (r303066) +++ head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 05:16:23 2016 (r303067) @@ -58,11 +58,6 @@ #include #include -#define HV_S_OK 0x00000000 -#define HV_E_FAIL 0x80004005 -#define HV_ERROR_NOT_SUPPORTED 0x80070032 -#define HV_ERROR_MACHINE_LOCKED 0x800704F7 - /* * VMBUS version is 32 bit, upper 16 bit for major_number and lower * 16 bit for minor_number. @@ -88,60 +83,6 @@ struct hyperv_guid { int hyperv_guid2str(const struct hyperv_guid *, char *, size_t); -/* - * Common defines for Hyper-V ICs - */ -#define HV_ICMSGTYPE_NEGOTIATE 0 -#define HV_ICMSGTYPE_HEARTBEAT 1 -#define HV_ICMSGTYPE_KVPEXCHANGE 2 -#define HV_ICMSGTYPE_SHUTDOWN 3 -#define HV_ICMSGTYPE_TIMESYNC 4 -#define HV_ICMSGTYPE_VSS 5 - -#define HV_ICMSGHDRFLAG_TRANSACTION 1 -#define HV_ICMSGHDRFLAG_REQUEST 2 -#define HV_ICMSGHDRFLAG_RESPONSE 4 - -typedef struct hv_vmbus_pipe_hdr { - uint32_t flags; - uint32_t msgsize; -} __packed hv_vmbus_pipe_hdr; - -typedef struct hv_vmbus_ic_version { - uint16_t major; - uint16_t minor; -} __packed hv_vmbus_ic_version; - -typedef struct hv_vmbus_icmsg_hdr { - hv_vmbus_ic_version icverframe; - uint16_t icmsgtype; - hv_vmbus_ic_version icvermsg; - uint16_t icmsgsize; - uint32_t status; - uint8_t ictransaction_id; - uint8_t icflags; - uint8_t reserved[2]; -} __packed hv_vmbus_icmsg_hdr; - -typedef struct hv_vmbus_icmsg_negotiate { - uint16_t icframe_vercnt; - uint16_t icmsg_vercnt; - uint32_t reserved; - hv_vmbus_ic_version icversion_data[1]; /* any size array */ -} __packed hv_vmbus_icmsg_negotiate; - -typedef struct hv_vmbus_shutdown_msg_data { - uint32_t reason_code; - uint32_t timeout_seconds; - uint32_t flags; - uint8_t display_message[2048]; -} __packed hv_vmbus_shutdown_msg_data; - -typedef struct hv_vmbus_heartbeat_msg_data { - uint64_t seq_num; - uint32_t reserved[8]; -} __packed hv_vmbus_heartbeat_msg_data; - typedef struct { /* * offset in bytes from the start of ring data below Modified: head/sys/dev/hyperv/utilities/hv_heartbeat.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_heartbeat.c Wed Jul 20 05:03:04 2016 (r303066) +++ head/sys/dev/hyperv/utilities/hv_heartbeat.c Wed Jul 20 05:16:23 2016 (r303067) @@ -36,6 +36,7 @@ #include #include +#include #include "hv_util.h" #include "vmbus_if.h" Modified: head/sys/dev/hyperv/utilities/hv_kvp.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_kvp.c Wed Jul 20 05:03:04 2016 (r303066) +++ head/sys/dev/hyperv/utilities/hv_kvp.c Wed Jul 20 05:16:23 2016 (r303067) @@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include "hv_util.h" #include "unicode.h" Modified: head/sys/dev/hyperv/utilities/hv_shutdown.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_shutdown.c Wed Jul 20 05:03:04 2016 (r303066) +++ head/sys/dev/hyperv/utilities/hv_shutdown.c Wed Jul 20 05:16:23 2016 (r303067) @@ -41,6 +41,7 @@ #include #include +#include #include "hv_util.h" #include "vmbus_if.h" Modified: head/sys/dev/hyperv/utilities/hv_timesync.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_timesync.c Wed Jul 20 05:03:04 2016 (r303066) +++ head/sys/dev/hyperv/utilities/hv_timesync.c Wed Jul 20 05:16:23 2016 (r303067) @@ -41,6 +41,7 @@ #include #include +#include #include "hv_util.h" #include "vmbus_if.h" Modified: head/sys/dev/hyperv/utilities/hv_util.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_util.c Wed Jul 20 05:03:04 2016 (r303066) +++ head/sys/dev/hyperv/utilities/hv_util.c Wed Jul 20 05:16:23 2016 (r303067) @@ -41,6 +41,7 @@ #include #include +#include #include "hv_util.h" void Added: head/sys/dev/hyperv/utilities/hv_utilreg.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/hyperv/utilities/hv_utilreg.h Wed Jul 20 05:16:23 2016 (r303067) @@ -0,0 +1,91 @@ +/*- + * Copyright (c) 2016 Microsoft Corp. + * 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 unmodified, 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 ``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 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. + * + * $FreeBSD$ + */ + +#ifndef _HV_UTILREG_H_ +#define _HV_UTILREG_H_ + +#define HV_S_OK 0x00000000 +#define HV_E_FAIL 0x80004005 +#define HV_ERROR_NOT_SUPPORTED 0x80070032 +#define HV_ERROR_MACHINE_LOCKED 0x800704F7 + +/* + * Common defines for Hyper-V ICs + */ +#define HV_ICMSGTYPE_NEGOTIATE 0 +#define HV_ICMSGTYPE_HEARTBEAT 1 +#define HV_ICMSGTYPE_KVPEXCHANGE 2 +#define HV_ICMSGTYPE_SHUTDOWN 3 +#define HV_ICMSGTYPE_TIMESYNC 4 +#define HV_ICMSGTYPE_VSS 5 + +#define HV_ICMSGHDRFLAG_TRANSACTION 1 +#define HV_ICMSGHDRFLAG_REQUEST 2 +#define HV_ICMSGHDRFLAG_RESPONSE 4 + +typedef struct hv_vmbus_pipe_hdr { + uint32_t flags; + uint32_t msgsize; +} __packed hv_vmbus_pipe_hdr; + +typedef struct hv_vmbus_ic_version { + uint16_t major; + uint16_t minor; +} __packed hv_vmbus_ic_version; + +typedef struct hv_vmbus_icmsg_hdr { + hv_vmbus_ic_version icverframe; + uint16_t icmsgtype; + hv_vmbus_ic_version icvermsg; + uint16_t icmsgsize; + uint32_t status; + uint8_t ictransaction_id; + uint8_t icflags; + uint8_t reserved[2]; +} __packed hv_vmbus_icmsg_hdr; + +typedef struct hv_vmbus_icmsg_negotiate { + uint16_t icframe_vercnt; + uint16_t icmsg_vercnt; + uint32_t reserved; + hv_vmbus_ic_version icversion_data[1]; /* any size array */ +} __packed hv_vmbus_icmsg_negotiate; + +typedef struct hv_vmbus_shutdown_msg_data { + uint32_t reason_code; + uint32_t timeout_seconds; + uint32_t flags; + uint8_t display_message[2048]; +} __packed hv_vmbus_shutdown_msg_data; + +typedef struct hv_vmbus_heartbeat_msg_data { + uint64_t seq_num; + uint32_t reserved[8]; +} __packed hv_vmbus_heartbeat_msg_data; + +#endif /* !_HV_UTILREG_H_ */ From owner-svn-src-all@freebsd.org Wed Jul 20 05:26:05 2016 Return-Path: Delivered-To: svn-src-all@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 AF2CDB9FB10; Wed, 20 Jul 2016 05:26:05 +0000 (UTC) (envelope-from sephe@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 7CA531666; Wed, 20 Jul 2016 05:26:05 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K5Q4fg051289; Wed, 20 Jul 2016 05:26:04 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K5Q4Do051283; Wed, 20 Jul 2016 05:26:04 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607200526.u6K5Q4Do051283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 20 Jul 2016 05:26:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303068 - in head/sys/dev/hyperv: include netvsc storvsc vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 05:26:05 -0000 Author: sephe Date: Wed Jul 20 05:26:04 2016 New Revision: 303068 URL: https://svnweb.freebsd.org/changeset/base/303068 Log: hyperv/vmbus: Channel struct field rename MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7242 Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/netvsc/hv_net_vsc.c head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c head/sys/dev/hyperv/vmbus/vmbus.c head/sys/dev/hyperv/vmbus/vmbus_chan.c Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 05:16:23 2016 (r303067) +++ head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 05:26:04 2016 (r303068) @@ -117,7 +117,7 @@ typedef void (*vmbus_chan_callback_t)(vo typedef struct hv_vmbus_channel { device_t ch_dev; - struct vmbus_softc *vmbus_sc; + struct vmbus_softc *ch_vmbus; uint32_t ch_flags; /* VMBUS_CHAN_FLAG_ */ uint32_t ch_id; /* channel id */ @@ -129,13 +129,13 @@ typedef struct hv_vmbus_channel { uint32_t ch_montrig_mask;/* MNF trig mask */ /* - * send to parent + * TX bufring; at the beginning of ch_bufring. */ - hv_vmbus_ring_buffer_info outbound; + hv_vmbus_ring_buffer_info ch_txbr; /* - * receive from parent + * RX bufring; immediately following ch_txbr. */ - hv_vmbus_ring_buffer_info inbound; + hv_vmbus_ring_buffer_info ch_rxbr; struct taskqueue *ch_tq; struct task ch_task; @@ -169,9 +169,9 @@ typedef struct hv_vmbus_channel { /* * Driver private data */ - void *hv_chan_priv1; - void *hv_chan_priv2; - void *hv_chan_priv3; + void *ch_dev_priv1; + void *ch_dev_priv2; + void *ch_dev_priv3; void *ch_bufring; /* TX+RX bufrings */ struct hyperv_dma ch_bufring_dma; Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:16:23 2016 (r303067) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:26:04 2016 (r303068) @@ -50,7 +50,7 @@ #include "hv_rndis_filter.h" /* priv1 and priv2 are consumed by the main driver */ -#define hv_chan_rdbuf hv_chan_priv3 +#define ch_dev_rdbuf ch_dev_priv3 MALLOC_DEFINE(M_NETVSC, "netvsc", "Hyper-V netvsc driver"); @@ -644,7 +644,7 @@ void hv_nv_subchan_attach(struct hv_vmbus_channel *chan) { - chan->hv_chan_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK); + chan->ch_dev_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK); vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0, hv_nv_on_channel_callback, chan); @@ -670,7 +670,7 @@ hv_nv_on_device_add(struct hn_softc *sc, sema_init(&net_dev->channel_init_sema, 0, "netdev_sema"); - chan->hv_chan_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK); + chan->ch_dev_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK); /* * Open the channel @@ -679,7 +679,7 @@ hv_nv_on_device_add(struct hn_softc *sc, NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0, hv_nv_on_channel_callback, chan); if (ret != 0) { - free(chan->hv_chan_rdbuf, M_NETVSC); + free(chan->ch_dev_rdbuf, M_NETVSC); goto cleanup; } @@ -694,7 +694,7 @@ hv_nv_on_device_add(struct hn_softc *sc, close: /* Now, we can close the channel safely */ - free(chan->hv_chan_rdbuf, M_NETVSC); + free(chan->ch_dev_rdbuf, M_NETVSC); vmbus_chan_close(chan); cleanup: @@ -725,7 +725,7 @@ hv_nv_on_device_remove(struct hn_softc * /* Now, we can close the channel safely */ - free(sc->hn_prichan->hv_chan_rdbuf, M_NETVSC); + free(sc->hn_prichan->ch_dev_rdbuf, M_NETVSC); vmbus_chan_close(sc->hn_prichan); sema_destroy(&net_dev->channel_init_sema); @@ -986,7 +986,7 @@ hv_nv_on_channel_callback(void *xchan) if (net_dev == NULL) return; - buffer = chan->hv_chan_rdbuf; + buffer = chan->ch_dev_rdbuf; do { struct vmbus_chanpkt_hdr *pkt = buffer; uint32_t bytes_rxed; Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Wed Jul 20 05:16:23 2016 (r303067) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Wed Jul 20 05:26:04 2016 (r303068) @@ -120,8 +120,8 @@ __FBSDID("$FreeBSD$"); #include "hv_rndis_filter.h" #include "vmbus_if.h" -#define hv_chan_rxr hv_chan_priv1 -#define hv_chan_txr hv_chan_priv2 +#define ch_dev_rxr ch_dev_priv1 +#define ch_dev_txr ch_dev_priv2 /* Short for Hyper-V network interface */ #define NETVSC_DEVNAME "hn" @@ -811,9 +811,9 @@ hn_tx_done(struct hv_vmbus_channel *chan void netvsc_channel_rollup(struct hv_vmbus_channel *chan) { - struct hn_tx_ring *txr = chan->hv_chan_txr; + struct hn_tx_ring *txr = chan->ch_dev_txr; #if defined(INET) || defined(INET6) - struct hn_rx_ring *rxr = chan->hv_chan_rxr; + struct hn_rx_ring *rxr = chan->ch_dev_rxr; tcp_lro_flush_all(&rxr->hn_lro); #endif @@ -1284,7 +1284,7 @@ netvsc_recv(struct hv_vmbus_channel *cha const struct rndis_hash_info *hash_info, const struct rndis_hash_value *hash_value) { - struct hn_rx_ring *rxr = chan->hv_chan_rxr; + struct hn_rx_ring *rxr = chan->ch_dev_rxr; struct ifnet *ifp = rxr->hn_ifp; struct mbuf *m_new; int size, do_lro = 0, do_csum = 1; @@ -2928,7 +2928,7 @@ hn_channel_attach(struct hn_softc *sc, s ("RX ring %d already attached", idx)); rxr->hn_rx_flags |= HN_RX_FLAG_ATTACHED; - chan->hv_chan_rxr = rxr; + chan->ch_dev_rxr = rxr; if (bootverbose) { if_printf(sc->hn_ifp, "link RX ring %d to channel%u\n", idx, chan->ch_id); @@ -2941,7 +2941,7 @@ hn_channel_attach(struct hn_softc *sc, s ("TX ring %d already attached", idx)); txr->hn_tx_flags |= HN_TX_FLAG_ATTACHED; - chan->hv_chan_txr = txr; + chan->ch_dev_txr = txr; txr->hn_chan = chan; if (bootverbose) { if_printf(sc->hn_ifp, "link TX ring %d to channel%u\n", Modified: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Jul 20 05:16:23 2016 (r303067) +++ head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Jul 20 05:26:04 2016 (r303068) @@ -316,7 +316,7 @@ storvsc_subchan_attach(struct storvsc_so memset(&props, 0, sizeof(props)); - new_channel->hv_chan_priv1 = sc; + new_channel->ch_dev_priv1 = sc; vmbus_chan_cpu_rr(new_channel); ret = vmbus_chan_open(new_channel, sc->hs_drv_props->drv_ringbuffer_size, @@ -575,7 +575,7 @@ hv_storvsc_connect_vsp(struct storvsc_so /* * Open the channel */ - KASSERT(sc->hs_chan->hv_chan_priv1 == sc, ("invalid chan priv1")); + KASSERT(sc->hs_chan->ch_dev_priv1 == sc, ("invalid chan priv1")); vmbus_chan_cpu_rr(sc->hs_chan); ret = vmbus_chan_open( sc->hs_chan, @@ -773,7 +773,7 @@ hv_storvsc_on_channel_callback(void *xch { int ret = 0; hv_vmbus_channel *channel = xchan; - struct storvsc_softc *sc = channel->hv_chan_priv1; + struct storvsc_softc *sc = channel->ch_dev_priv1; uint32_t bytes_recvd; uint64_t request_id; uint8_t packet[roundup2(sizeof(struct vstor_packet), 8)]; @@ -915,7 +915,7 @@ storvsc_attach(device_t dev) sc = device_get_softc(dev); sc->hs_chan = vmbus_get_channel(dev); - sc->hs_chan->hv_chan_priv1 = sc; + sc->hs_chan->ch_dev_priv1 = sc; stor_type = storvsc_get_storage_type(dev); Modified: head/sys/dev/hyperv/vmbus/vmbus.c ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus.c Wed Jul 20 05:16:23 2016 (r303067) +++ head/sys/dev/hyperv/vmbus/vmbus.c Wed Jul 20 05:26:04 2016 (r303068) @@ -1015,7 +1015,7 @@ vmbus_child_pnpinfo_str(device_t dev, de int vmbus_add_child(struct hv_vmbus_channel *chan) { - struct vmbus_softc *sc = chan->vmbus_sc; + struct vmbus_softc *sc = chan->ch_vmbus; device_t parent = sc->vmbus_dev; int error = 0; @@ -1052,7 +1052,7 @@ vmbus_delete_child(struct hv_vmbus_chann * device_add_child() */ mtx_lock(&Giant); - error = device_delete_child(chan->vmbus_sc->vmbus_dev, chan->ch_dev); + error = device_delete_child(chan->ch_vmbus->vmbus_dev, chan->ch_dev); mtx_unlock(&Giant); return error; Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chan.c Wed Jul 20 05:16:23 2016 (r303067) +++ head/sys/dev/hyperv/vmbus/vmbus_chan.c Wed Jul 20 05:26:04 2016 (r303068) @@ -83,7 +83,7 @@ vmbus_chan_msgprocs[VMBUS_CHANMSG_TYPE_M static void vmbus_chan_signal_tx(struct hv_vmbus_channel *chan) { - struct vmbus_softc *sc = chan->vmbus_sc; + struct vmbus_softc *sc = chan->ch_vmbus; uint32_t chanid = chan->ch_id; atomic_set_long(&sc->vmbus_tx_evtflags[chanid >> VMBUS_EVTFLAG_SHIFT], @@ -187,7 +187,7 @@ vmbus_chan_sysctl_create(struct hv_vmbus "in", CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); if (br_tree != NULL) { hv_ring_buffer_stat(ctx, SYSCTL_CHILDREN(br_tree), - &chan->inbound, "inbound ring buffer stats"); + &chan->ch_rxbr, "inbound ring buffer stats"); } /* @@ -197,7 +197,7 @@ vmbus_chan_sysctl_create(struct hv_vmbus "out", CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); if (br_tree != NULL) { hv_ring_buffer_stat(ctx, SYSCTL_CHILDREN(br_tree), - &chan->outbound, "outbound ring buffer stats"); + &chan->ch_txbr, "outbound ring buffer stats"); } } @@ -205,7 +205,7 @@ int vmbus_chan_open(struct hv_vmbus_channel *chan, int txbr_size, int rxbr_size, const void *udata, int udlen, vmbus_chan_callback_t cb, void *cbarg) { - struct vmbus_softc *sc = chan->vmbus_sc; + struct vmbus_softc *sc = chan->ch_vmbus; const struct vmbus_chanmsg_chopen_resp *resp; const struct vmbus_message *msg; struct vmbus_chanmsg_chopen *req; @@ -233,7 +233,7 @@ vmbus_chan_open(struct hv_vmbus_channel vmbus_chan_update_evtflagcnt(sc, chan); - chan->ch_tq = VMBUS_PCPU_GET(chan->vmbus_sc, event_tq, chan->ch_cpuid); + chan->ch_tq = VMBUS_PCPU_GET(chan->ch_vmbus, event_tq, chan->ch_cpuid); if (chan->ch_flags & VMBUS_CHAN_FLAG_BATCHREAD) TASK_INIT(&chan->ch_task, 0, vmbus_chan_task, chan); else @@ -254,9 +254,9 @@ vmbus_chan_open(struct hv_vmbus_channel chan->ch_bufring = br; /* TX bufring comes first */ - hv_vmbus_ring_buffer_init(&chan->outbound, br, txbr_size); + hv_vmbus_ring_buffer_init(&chan->ch_txbr, br, txbr_size); /* RX bufring immediately follows TX bufring */ - hv_vmbus_ring_buffer_init(&chan->inbound, br + txbr_size, rxbr_size); + hv_vmbus_ring_buffer_init(&chan->ch_rxbr, br + txbr_size, rxbr_size); /* Create sysctl tree for this channel */ vmbus_chan_sysctl_create(chan); @@ -337,7 +337,7 @@ int vmbus_chan_gpadl_connect(struct hv_vmbus_channel *chan, bus_addr_t paddr, int size, uint32_t *gpadl0) { - struct vmbus_softc *sc = chan->vmbus_sc; + struct vmbus_softc *sc = chan->ch_vmbus; struct vmbus_msghc *mh; struct vmbus_chanmsg_gpadl_conn *req; const struct vmbus_message *msg; @@ -466,7 +466,7 @@ vmbus_chan_gpadl_connect(struct hv_vmbus int vmbus_chan_gpadl_disconnect(struct hv_vmbus_channel *chan, uint32_t gpadl) { - struct vmbus_softc *sc = chan->vmbus_sc; + struct vmbus_softc *sc = chan->ch_vmbus; struct vmbus_msghc *mh; struct vmbus_chanmsg_gpadl_disconn *req; int error; @@ -503,7 +503,7 @@ vmbus_chan_gpadl_disconnect(struct hv_vm static void vmbus_chan_close_internal(struct hv_vmbus_channel *chan) { - struct vmbus_softc *sc = chan->vmbus_sc; + struct vmbus_softc *sc = chan->ch_vmbus; struct vmbus_msghc *mh; struct vmbus_chanmsg_chclose *req; struct taskqueue *tq = chan->ch_tq; @@ -564,8 +564,8 @@ vmbus_chan_close_internal(struct hv_vmbu /* * Destroy the TX+RX bufrings. */ - hv_ring_buffer_cleanup(&chan->outbound); - hv_ring_buffer_cleanup(&chan->inbound); + hv_ring_buffer_cleanup(&chan->ch_txbr); + hv_ring_buffer_cleanup(&chan->ch_rxbr); if (chan->ch_bufring != NULL) { hyperv_dmamem_free(&chan->ch_bufring_dma, chan->ch_bufring); chan->ch_bufring = NULL; @@ -635,7 +635,7 @@ vmbus_chan_send(struct hv_vmbus_channel iov[2].iov_base = &pad; iov[2].iov_len = pad_pktlen - pktlen; - error = hv_ring_buffer_write(&chan->outbound, iov, 3, &send_evt); + error = hv_ring_buffer_write(&chan->ch_txbr, iov, 3, &send_evt); if (!error && send_evt) vmbus_chan_signal_tx(chan); return error; @@ -675,7 +675,7 @@ vmbus_chan_send_sglist(struct hv_vmbus_c iov[3].iov_base = &pad; iov[3].iov_len = pad_pktlen - pktlen; - error = hv_ring_buffer_write(&chan->outbound, iov, 4, &send_evt); + error = hv_ring_buffer_write(&chan->ch_txbr, iov, 4, &send_evt); if (!error && send_evt) vmbus_chan_signal_tx(chan); return error; @@ -717,7 +717,7 @@ vmbus_chan_send_prplist(struct hv_vmbus_ iov[3].iov_base = &pad; iov[3].iov_len = pad_pktlen - pktlen; - error = hv_ring_buffer_write(&chan->outbound, iov, 4, &send_evt); + error = hv_ring_buffer_write(&chan->ch_txbr, iov, 4, &send_evt); if (!error && send_evt) vmbus_chan_signal_tx(chan); return error; @@ -730,7 +730,7 @@ vmbus_chan_recv(struct hv_vmbus_channel struct vmbus_chanpkt_hdr pkt; int error, dlen, hlen; - error = hv_ring_buffer_peek(&chan->inbound, &pkt, sizeof(pkt)); + error = hv_ring_buffer_peek(&chan->ch_rxbr, &pkt, sizeof(pkt)); if (error) return error; @@ -747,7 +747,7 @@ vmbus_chan_recv(struct hv_vmbus_channel *dlen0 = dlen; /* Skip packet header */ - error = hv_ring_buffer_read(&chan->inbound, data, dlen, hlen); + error = hv_ring_buffer_read(&chan->ch_rxbr, data, dlen, hlen); KASSERT(!error, ("hv_ring_buffer_read failed")); return 0; @@ -760,7 +760,7 @@ vmbus_chan_recv_pkt(struct hv_vmbus_chan struct vmbus_chanpkt_hdr pkt; int error, pktlen; - error = hv_ring_buffer_peek(&chan->inbound, &pkt, sizeof(pkt)); + error = hv_ring_buffer_peek(&chan->ch_rxbr, &pkt, sizeof(pkt)); if (error) return error; @@ -773,7 +773,7 @@ vmbus_chan_recv_pkt(struct hv_vmbus_chan *pktlen0 = pktlen; /* Include packet header */ - error = hv_ring_buffer_read(&chan->inbound, pkt0, pktlen, 0); + error = hv_ring_buffer_read(&chan->ch_rxbr, pkt0, pktlen, 0); KASSERT(!error, ("hv_ring_buffer_read failed")); return 0; @@ -803,12 +803,12 @@ vmbus_chan_task(void *xchan, int pending cb(cbarg); - left = hv_ring_buffer_read_end(&chan->inbound); + left = hv_ring_buffer_read_end(&chan->ch_rxbr); if (left == 0) { /* No more data in RX bufring; done */ break; } - hv_ring_buffer_read_begin(&chan->inbound); + hv_ring_buffer_read_begin(&chan->ch_rxbr); } } @@ -850,7 +850,7 @@ vmbus_event_flags_proc(struct vmbus_soft continue; if (chan->ch_flags & VMBUS_CHAN_FLAG_BATCHREAD) - hv_ring_buffer_read_begin(&chan->inbound); + hv_ring_buffer_read_begin(&chan->ch_rxbr); taskqueue_enqueue(chan->ch_tq, &chan->ch_task); } } @@ -925,7 +925,7 @@ vmbus_chan_alloc(struct vmbus_softc *sc) return NULL; } - chan->vmbus_sc = sc; + chan->ch_vmbus = sc; mtx_init(&chan->ch_subchan_lock, "vmbus subchan", NULL, MTX_DEF); TAILQ_INIT(&chan->ch_subchans); TASK_INIT(&chan->ch_detach_task, 0, vmbus_chan_detach_task, chan); @@ -947,7 +947,7 @@ vmbus_chan_free(struct hv_vmbus_channel static int vmbus_chan_add(struct hv_vmbus_channel *newchan) { - struct vmbus_softc *sc = newchan->vmbus_sc; + struct vmbus_softc *sc = newchan->ch_vmbus; struct hv_vmbus_channel *prichan; if (newchan->ch_id == 0) { @@ -1040,14 +1040,14 @@ vmbus_chan_cpu_set(struct hv_vmbus_chann { KASSERT(cpu >= 0 && cpu < mp_ncpus, ("invalid cpu %d", cpu)); - if (chan->vmbus_sc->vmbus_version == VMBUS_VERSION_WS2008 || - chan->vmbus_sc->vmbus_version == VMBUS_VERSION_WIN7) { + if (chan->ch_vmbus->vmbus_version == VMBUS_VERSION_WS2008 || + chan->ch_vmbus->vmbus_version == VMBUS_VERSION_WIN7) { /* Only cpu0 is supported */ cpu = 0; } chan->ch_cpuid = cpu; - chan->ch_vcpuid = VMBUS_PCPU_GET(chan->vmbus_sc, vcpuid, cpu); + chan->ch_vcpuid = VMBUS_PCPU_GET(chan->ch_vmbus, vcpuid, cpu); if (bootverbose) { printf("vmbus_chan%u: assigned to cpu%u [vcpu%u]\n", @@ -1180,7 +1180,7 @@ vmbus_chan_detach_task(void *xchan, int vmbus_delete_child(chan); /* NOTE: DO NOT free primary channel for now */ } else { - struct vmbus_softc *sc = chan->vmbus_sc; + struct vmbus_softc *sc = chan->ch_vmbus; struct hv_vmbus_channel *pri_chan = chan->ch_prichan; struct vmbus_chanmsg_chfree *req; struct vmbus_msghc *mh; @@ -1264,7 +1264,7 @@ vmbus_chan_cpu2chan(struct hv_vmbus_chan if (TAILQ_EMPTY(&prichan->ch_subchans)) return prichan; - vcpu = VMBUS_PCPU_GET(prichan->vmbus_sc, vcpuid, cpu); + vcpu = VMBUS_PCPU_GET(prichan->ch_vmbus, vcpuid, cpu); #define CHAN_VCPU_DIST(ch, vcpu) \ (((ch)->ch_vcpuid > (vcpu)) ? \ From owner-svn-src-all@freebsd.org Wed Jul 20 05:34:31 2016 Return-Path: Delivered-To: svn-src-all@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 1B267B9FC50; Wed, 20 Jul 2016 05:34:31 +0000 (UTC) (envelope-from sephe@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 CEDBC1A94; Wed, 20 Jul 2016 05:34:30 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K5YUDj054844; Wed, 20 Jul 2016 05:34:30 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K5YTZW054833; Wed, 20 Jul 2016 05:34:29 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607200534.u6K5YTZW054833@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 20 Jul 2016 05:34:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303069 - in head/sys/dev/hyperv: include netvsc storvsc utilities vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 05:34:31 -0000 Author: sephe Date: Wed Jul 20 05:34:28 2016 New Revision: 303069 URL: https://svnweb.freebsd.org/changeset/base/303069 Log: hyperv/vmbus: Pass channel as the first argument for channel callback The prepares to kill device private fields in channel struct, which are not flexible and extensible. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7243 Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/netvsc/hv_net_vsc.c head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c head/sys/dev/hyperv/utilities/hv_heartbeat.c head/sys/dev/hyperv/utilities/hv_kvp.c head/sys/dev/hyperv/utilities/hv_shutdown.c head/sys/dev/hyperv/utilities/hv_timesync.c head/sys/dev/hyperv/utilities/hv_util.c head/sys/dev/hyperv/utilities/hv_util.h head/sys/dev/hyperv/vmbus/vmbus_chan.c Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 05:26:04 2016 (r303068) +++ head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 05:34:28 2016 (r303069) @@ -113,7 +113,9 @@ typedef struct { uint32_t ring_data_size; /* ring_size */ } hv_vmbus_ring_buffer_info; -typedef void (*vmbus_chan_callback_t)(void *); +struct hv_vmbus_channel; + +typedef void (*vmbus_chan_callback_t)(struct hv_vmbus_channel *, void *); typedef struct hv_vmbus_channel { device_t ch_dev; Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:26:04 2016 (r303068) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:34:28 2016 (r303069) @@ -57,7 +57,7 @@ MALLOC_DEFINE(M_NETVSC, "netvsc", "Hyper /* * Forward declarations */ -static void hv_nv_on_channel_callback(void *xchan); +static void hv_nv_on_channel_callback(struct hv_vmbus_channel *chan, void *arg); static int hv_nv_init_send_buffer_with_net_vsp(struct hn_softc *sc); static int hv_nv_init_rx_buffer_with_net_vsp(struct hn_softc *); static int hv_nv_destroy_send_buffer(netvsc_dev *net_dev); @@ -647,7 +647,7 @@ hv_nv_subchan_attach(struct hv_vmbus_cha chan->ch_dev_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK); vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0, - hv_nv_on_channel_callback, chan); + hv_nv_on_channel_callback, NULL); } /* @@ -677,7 +677,7 @@ hv_nv_on_device_add(struct hn_softc *sc, */ ret = vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE, - NULL, 0, hv_nv_on_channel_callback, chan); + NULL, 0, hv_nv_on_channel_callback, NULL); if (ret != 0) { free(chan->ch_dev_rdbuf, M_NETVSC); goto cleanup; @@ -973,9 +973,8 @@ hv_nv_send_table(struct hn_softc *sc, co * Net VSC on channel callback */ static void -hv_nv_on_channel_callback(void *xchan) +hv_nv_on_channel_callback(struct hv_vmbus_channel *chan, void *arg __unused) { - struct hv_vmbus_channel *chan = xchan; device_t dev = chan->ch_dev; struct hn_softc *sc = device_get_softc(dev); netvsc_dev *net_dev; Modified: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Jul 20 05:26:04 2016 (r303068) +++ head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Jul 20 05:34:28 2016 (r303069) @@ -274,7 +274,7 @@ static int create_storvsc_request(union static void storvsc_free_request(struct storvsc_softc *sc, struct hv_storvsc_request *reqp); static enum hv_storage_type storvsc_get_storage_type(device_t dev); static void hv_storvsc_rescan_target(struct storvsc_softc *sc); -static void hv_storvsc_on_channel_callback(void *xchan); +static void hv_storvsc_on_channel_callback(struct hv_vmbus_channel *chan, void *xsc); static void hv_storvsc_on_iocompletion( struct storvsc_softc *sc, struct vstor_packet *vstor_packet, struct hv_storvsc_request *request); @@ -316,15 +316,13 @@ storvsc_subchan_attach(struct storvsc_so memset(&props, 0, sizeof(props)); - new_channel->ch_dev_priv1 = sc; vmbus_chan_cpu_rr(new_channel); ret = vmbus_chan_open(new_channel, sc->hs_drv_props->drv_ringbuffer_size, sc->hs_drv_props->drv_ringbuffer_size, (void *)&props, sizeof(struct vmstor_chan_props), - hv_storvsc_on_channel_callback, - new_channel); + hv_storvsc_on_channel_callback, sc); } /** @@ -575,7 +573,6 @@ hv_storvsc_connect_vsp(struct storvsc_so /* * Open the channel */ - KASSERT(sc->hs_chan->ch_dev_priv1 == sc, ("invalid chan priv1")); vmbus_chan_cpu_rr(sc->hs_chan); ret = vmbus_chan_open( sc->hs_chan, @@ -583,8 +580,7 @@ hv_storvsc_connect_vsp(struct storvsc_so sc->hs_drv_props->drv_ringbuffer_size, (void *)&props, sizeof(struct vmstor_chan_props), - hv_storvsc_on_channel_callback, - sc->hs_chan); + hv_storvsc_on_channel_callback, sc); if (ret != 0) { return ret; @@ -769,11 +765,10 @@ hv_storvsc_rescan_target(struct storvsc_ } static void -hv_storvsc_on_channel_callback(void *xchan) +hv_storvsc_on_channel_callback(struct hv_vmbus_channel *channel, void *xsc) { int ret = 0; - hv_vmbus_channel *channel = xchan; - struct storvsc_softc *sc = channel->ch_dev_priv1; + struct storvsc_softc *sc = xsc; uint32_t bytes_recvd; uint64_t request_id; uint8_t packet[roundup2(sizeof(struct vstor_packet), 8)]; @@ -915,7 +910,6 @@ storvsc_attach(device_t dev) sc = device_get_softc(dev); sc->hs_chan = vmbus_get_channel(dev); - sc->hs_chan->ch_dev_priv1 = sc; stor_type = storvsc_get_storage_type(dev); @@ -1265,7 +1259,7 @@ storvsc_poll(struct cam_sim *sim) mtx_assert(&sc->hs_lock, MA_OWNED); mtx_unlock(&sc->hs_lock); - hv_storvsc_on_channel_callback(sc->hs_chan); + hv_storvsc_on_channel_callback(sc->hs_chan, sc); mtx_lock(&sc->hs_lock); } Modified: head/sys/dev/hyperv/utilities/hv_heartbeat.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_heartbeat.c Wed Jul 20 05:26:04 2016 (r303068) +++ head/sys/dev/hyperv/utilities/hv_heartbeat.c Wed Jul 20 05:34:28 2016 (r303069) @@ -49,10 +49,9 @@ static const struct hyperv_guid service_ * Process heartbeat message */ static void -hv_heartbeat_cb(void *context) +hv_heartbeat_cb(struct hv_vmbus_channel *channel, void *context) { uint8_t* buf; - hv_vmbus_channel* channel; int recvlen; uint64_t requestid; int ret; @@ -63,7 +62,6 @@ hv_heartbeat_cb(void *context) softc = (hv_util_sc*)context; buf = softc->receive_buffer; - channel = softc->channel; recvlen = PAGE_SIZE; ret = vmbus_chan_recv(channel, buf, &recvlen, &requestid); Modified: head/sys/dev/hyperv/utilities/hv_kvp.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_kvp.c Wed Jul 20 05:26:04 2016 (r303068) +++ head/sys/dev/hyperv/utilities/hv_kvp.c Wed Jul 20 05:34:28 2016 (r303069) @@ -121,6 +121,7 @@ static struct cdevsw hv_kvp_cdevsw = */ typedef struct hv_kvp_sc { struct hv_util_sc util_sc; + device_t dev; /* Unless specified the pending mutex should be * used to alter the values of the following parameters: @@ -576,7 +577,7 @@ hv_kvp_respond_host(hv_kvp_sc *sc, int e hv_icmsg_hdrp->status = error; hv_icmsg_hdrp->icflags = HV_ICMSGHDRFLAG_TRANSACTION | HV_ICMSGHDRFLAG_RESPONSE; - error = vmbus_chan_send(sc->util_sc.channel, + error = vmbus_chan_send(vmbus_get_channel(sc->dev), VMBUS_CHANPKT_TYPE_INBAND, 0, sc->rcv_buf, sc->host_msg_len, sc->host_msg_id); if (error) @@ -625,7 +626,7 @@ hv_kvp_process_request(void *context, in sc = (hv_kvp_sc*)context; kvp_buf = sc->util_sc.receive_buffer; - channel = sc->util_sc.channel; + channel = vmbus_get_channel(sc->dev); recvlen = 2 * PAGE_SIZE; ret = vmbus_chan_recv(channel, kvp_buf, &recvlen, &requestid); @@ -709,7 +710,7 @@ hv_kvp_process_request(void *context, in * Callback routine that gets called whenever there is a message from host */ static void -hv_kvp_callback(void *context) +hv_kvp_callback(struct hv_vmbus_channel *chan __unused, void *context) { hv_kvp_sc *sc = (hv_kvp_sc*)context; /* @@ -813,7 +814,7 @@ hv_kvp_dev_daemon_write(struct cdev *dev if (sc->register_done == false) { if (sc->daemon_kvp_msg.kvp_hdr.operation == HV_KVP_OP_REGISTER) { sc->register_done = true; - hv_kvp_callback(dev->si_drv1); + hv_kvp_callback(vmbus_get_channel(sc->dev), dev->si_drv1); } else { hv_kvp_log_info("%s, KVP Registration Failed\n", __func__); @@ -891,6 +892,7 @@ hv_kvp_attach(device_t dev) hv_kvp_sc *sc = (hv_kvp_sc*)device_get_softc(dev); sc->util_sc.callback = hv_kvp_callback; + sc->dev = dev; sema_init(&sc->dev_sema, 0, "hv_kvp device semaphore"); mtx_init(&sc->pending_mutex, "hv-kvp pending mutex", NULL, MTX_DEF); Modified: head/sys/dev/hyperv/utilities/hv_shutdown.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_shutdown.c Wed Jul 20 05:26:04 2016 (r303068) +++ head/sys/dev/hyperv/utilities/hv_shutdown.c Wed Jul 20 05:34:28 2016 (r303069) @@ -53,10 +53,9 @@ static const struct hyperv_guid service_ * Shutdown */ static void -hv_shutdown_cb(void *context) +hv_shutdown_cb(struct hv_vmbus_channel *channel, void *context) { uint8_t* buf; - hv_vmbus_channel* channel; uint8_t execute_shutdown = 0; hv_vmbus_icmsg_hdr* icmsghdrp; uint32_t recv_len; @@ -67,7 +66,6 @@ hv_shutdown_cb(void *context) softc = (hv_util_sc*)context; buf = softc->receive_buffer; - channel = softc->channel; recv_len = PAGE_SIZE; ret = vmbus_chan_recv(channel, buf, &recv_len, &request_id); Modified: head/sys/dev/hyperv/utilities/hv_timesync.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_timesync.c Wed Jul 20 05:26:04 2016 (r303068) +++ head/sys/dev/hyperv/utilities/hv_timesync.c Wed Jul 20 05:34:28 2016 (r303069) @@ -130,9 +130,8 @@ void hv_adj_guesttime(hv_timesync_sc *sc * Time Sync Channel message handler */ static void -hv_timesync_cb(void *context) +hv_timesync_cb(struct hv_vmbus_channel *channel, void *context) { - hv_vmbus_channel* channel; hv_vmbus_icmsg_hdr* icmsghdrp; uint32_t recvlen; uint64_t requestId; @@ -142,7 +141,6 @@ hv_timesync_cb(void *context) hv_timesync_sc *softc; softc = (hv_timesync_sc*)context; - channel = softc->util_sc.channel; time_buf = softc->util_sc.receive_buffer; recvlen = PAGE_SIZE; Modified: head/sys/dev/hyperv/utilities/hv_util.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_util.c Wed Jul 20 05:26:04 2016 (r303068) +++ head/sys/dev/hyperv/utilities/hv_util.c Wed Jul 20 05:34:28 2016 (r303069) @@ -77,12 +77,13 @@ int hv_util_attach(device_t dev) { struct hv_util_sc* softc; + struct hv_vmbus_channel *chan; int ret; softc = device_get_softc(dev); - softc->channel = vmbus_get_channel(dev); softc->receive_buffer = malloc(4 * PAGE_SIZE, M_DEVBUF, M_WAITOK | M_ZERO); + chan = vmbus_get_channel(dev); /* * These services are not performance critical and do not need @@ -91,11 +92,10 @@ hv_util_attach(device_t dev) * Turn off batched reading for all util drivers before we open the * channel. */ - vmbus_chan_set_readbatch(softc->channel, false); + vmbus_chan_set_readbatch(chan, false); - ret = vmbus_chan_open(softc->channel, 4 * PAGE_SIZE, - 4 * PAGE_SIZE, NULL, 0, - softc->callback, softc); + ret = vmbus_chan_open(chan, 4 * PAGE_SIZE, 4 * PAGE_SIZE, NULL, 0, + softc->callback, softc); if (ret) goto error0; @@ -112,7 +112,7 @@ hv_util_detach(device_t dev) { struct hv_util_sc *sc = device_get_softc(dev); - vmbus_chan_close(sc->channel); + vmbus_chan_close(vmbus_get_channel(dev)); free(sc->receive_buffer, M_DEVBUF); return (0); Modified: head/sys/dev/hyperv/utilities/hv_util.h ============================================================================== --- head/sys/dev/hyperv/utilities/hv_util.h Wed Jul 20 05:26:04 2016 (r303068) +++ head/sys/dev/hyperv/utilities/hv_util.h Wed Jul 20 05:34:28 2016 (r303069) @@ -39,9 +39,7 @@ typedef struct hv_util_sc { /* * function to process Hyper-V messages */ - void (*callback)(void *); - - struct hv_vmbus_channel *channel; + void (*callback)(struct hv_vmbus_channel *, void *); uint8_t *receive_buffer; } hv_util_sc; Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chan.c Wed Jul 20 05:26:04 2016 (r303068) +++ head/sys/dev/hyperv/vmbus/vmbus_chan.c Wed Jul 20 05:34:28 2016 (r303069) @@ -801,7 +801,7 @@ vmbus_chan_task(void *xchan, int pending for (;;) { uint32_t left; - cb(cbarg); + cb(chan, cbarg); left = hv_ring_buffer_read_end(&chan->ch_rxbr); if (left == 0) { @@ -817,7 +817,7 @@ vmbus_chan_task_nobatch(void *xchan, int { struct hv_vmbus_channel *chan = xchan; - chan->ch_cb(chan->ch_cbarg); + chan->ch_cb(chan, chan->ch_cbarg); } static __inline void From owner-svn-src-all@freebsd.org Wed Jul 20 05:48:54 2016 Return-Path: Delivered-To: svn-src-all@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 2B359B9FE1C; Wed, 20 Jul 2016 05:48:54 +0000 (UTC) (envelope-from sephe@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 EA5BB11E4; Wed, 20 Jul 2016 05:48:53 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K5mr0f058760; Wed, 20 Jul 2016 05:48:53 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K5mq82058753; Wed, 20 Jul 2016 05:48:52 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607200548.u6K5mq82058753@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 20 Jul 2016 05:48:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303070 - in head/sys/dev/hyperv: include netvsc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 05:48:54 -0000 Author: sephe Date: Wed Jul 20 05:48:52 2016 New Revision: 303070 URL: https://svnweb.freebsd.org/changeset/base/303070 Log: hyperv/vmbus: Deprecate the device private data in channel struct They are neither flexible nor extensible. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7244 Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/netvsc/hv_net_vsc.c head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c head/sys/dev/hyperv/netvsc/hv_rndis.h head/sys/dev/hyperv/netvsc/hv_rndis_filter.c head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 05:34:28 2016 (r303069) +++ head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 05:48:52 2016 (r303070) @@ -168,13 +168,6 @@ typedef struct hv_vmbus_channel { TAILQ_ENTRY(hv_vmbus_channel) ch_sublink; /* sub-channel link */ struct hv_vmbus_channel *ch_prichan; /* owner primary chan */ - /* - * Driver private data - */ - void *ch_dev_priv1; - void *ch_dev_priv2; - void *ch_dev_priv3; - void *ch_bufring; /* TX+RX bufrings */ struct hyperv_dma ch_bufring_dma; uint32_t ch_bufring_gpadl; Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:34:28 2016 (r303069) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:48:52 2016 (r303070) @@ -49,15 +49,13 @@ #include "hv_rndis.h" #include "hv_rndis_filter.h" -/* priv1 and priv2 are consumed by the main driver */ -#define ch_dev_rdbuf ch_dev_priv3 - MALLOC_DEFINE(M_NETVSC, "netvsc", "Hyper-V netvsc driver"); /* * Forward declarations */ -static void hv_nv_on_channel_callback(struct hv_vmbus_channel *chan, void *arg); +static void hv_nv_on_channel_callback(struct hv_vmbus_channel *chan, + void *xrxr); static int hv_nv_init_send_buffer_with_net_vsp(struct hn_softc *sc); static int hv_nv_init_rx_buffer_with_net_vsp(struct hn_softc *); static int hv_nv_destroy_send_buffer(netvsc_dev *net_dev); @@ -68,7 +66,7 @@ static void hv_nv_on_send_completion(net static void hv_nv_on_receive_completion(struct hv_vmbus_channel *chan, uint64_t tid, uint32_t status); static void hv_nv_on_receive(netvsc_dev *net_dev, - struct hn_softc *sc, struct hv_vmbus_channel *chan, + struct hn_rx_ring *rxr, struct hv_vmbus_channel *chan, const struct vmbus_chanpkt_hdr *pkt); /* @@ -641,13 +639,14 @@ hv_nv_disconnect_from_vsp(netvsc_dev *ne } void -hv_nv_subchan_attach(struct hv_vmbus_channel *chan) +hv_nv_subchan_attach(struct hv_vmbus_channel *chan, struct hn_rx_ring *rxr) { - - chan->ch_dev_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK); + KASSERT(rxr->hn_rx_idx == chan->ch_subidx, + ("chan%u subidx %u, rxr%d mismatch", + chan->ch_id, chan->ch_subidx, rxr->hn_rx_idx)); vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0, - hv_nv_on_channel_callback, NULL); + hv_nv_on_channel_callback, rxr); } /* @@ -656,7 +655,8 @@ hv_nv_subchan_attach(struct hv_vmbus_cha * Callback when the device belonging to this driver is added */ netvsc_dev * -hv_nv_on_device_add(struct hn_softc *sc, void *additional_info) +hv_nv_on_device_add(struct hn_softc *sc, void *additional_info, + struct hn_rx_ring *rxr) { struct hv_vmbus_channel *chan = sc->hn_prichan; netvsc_dev *net_dev; @@ -670,18 +670,17 @@ hv_nv_on_device_add(struct hn_softc *sc, sema_init(&net_dev->channel_init_sema, 0, "netdev_sema"); - chan->ch_dev_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK); - /* * Open the channel */ + KASSERT(rxr->hn_rx_idx == chan->ch_subidx, + ("chan%u subidx %u, rxr%d mismatch", + chan->ch_id, chan->ch_subidx, rxr->hn_rx_idx)); ret = vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE, - NULL, 0, hv_nv_on_channel_callback, NULL); - if (ret != 0) { - free(chan->ch_dev_rdbuf, M_NETVSC); + NULL, 0, hv_nv_on_channel_callback, rxr); + if (ret != 0) goto cleanup; - } /* * Connect with the NetVsp @@ -694,7 +693,6 @@ hv_nv_on_device_add(struct hn_softc *sc, close: /* Now, we can close the channel safely */ - free(chan->ch_dev_rdbuf, M_NETVSC); vmbus_chan_close(chan); cleanup: @@ -725,7 +723,6 @@ hv_nv_on_device_remove(struct hn_softc * /* Now, we can close the channel safely */ - free(sc->hn_prichan->ch_dev_rdbuf, M_NETVSC); vmbus_chan_close(sc->hn_prichan); sema_destroy(&net_dev->channel_init_sema); @@ -840,14 +837,13 @@ hv_nv_on_send(struct hv_vmbus_channel *c * with virtual addresses. */ static void -hv_nv_on_receive(netvsc_dev *net_dev, struct hn_softc *sc, +hv_nv_on_receive(netvsc_dev *net_dev, struct hn_rx_ring *rxr, struct hv_vmbus_channel *chan, const struct vmbus_chanpkt_hdr *pkthdr) { const struct vmbus_chanpkt_rxbuf *pkt; const nvsp_msg *nvsp_msg_pkt; netvsc_packet vsc_pkt; netvsc_packet *net_vsc_pkt = &vsc_pkt; - device_t dev = sc->hn_dev; int count = 0; int i = 0; int status = nvsp_status_success; @@ -856,7 +852,7 @@ hv_nv_on_receive(netvsc_dev *net_dev, st /* Make sure this is a valid nvsp packet */ if (nvsp_msg_pkt->hdr.msg_type != nvsp_msg_1_type_send_rndis_pkt) { - device_printf(dev, "packet hdr type %u is invalid!\n", + if_printf(rxr->hn_ifp, "packet hdr type %u is invalid!\n", nvsp_msg_pkt->hdr.msg_type); return; } @@ -864,7 +860,7 @@ hv_nv_on_receive(netvsc_dev *net_dev, st pkt = (const struct vmbus_chanpkt_rxbuf *)pkthdr; if (pkt->cp_rxbuf_id != NETVSC_RECEIVE_BUFFER_ID) { - device_printf(dev, "rxbuf_id %d is invalid!\n", + if_printf(rxr->hn_ifp, "rxbuf_id %d is invalid!\n", pkt->cp_rxbuf_id); return; } @@ -878,7 +874,7 @@ hv_nv_on_receive(netvsc_dev *net_dev, st pkt->cp_rxbuf[i].rb_ofs); net_vsc_pkt->tot_data_buf_len = pkt->cp_rxbuf[i].rb_len; - hv_rf_on_receive(net_dev, chan, net_vsc_pkt); + hv_rf_on_receive(net_dev, rxr, net_vsc_pkt); if (net_vsc_pkt->status != nvsp_status_success) { status = nvsp_status_failure; } @@ -973,10 +969,10 @@ hv_nv_send_table(struct hn_softc *sc, co * Net VSC on channel callback */ static void -hv_nv_on_channel_callback(struct hv_vmbus_channel *chan, void *arg __unused) +hv_nv_on_channel_callback(struct hv_vmbus_channel *chan, void *xrxr) { - device_t dev = chan->ch_dev; - struct hn_softc *sc = device_get_softc(dev); + struct hn_rx_ring *rxr = xrxr; + struct hn_softc *sc = rxr->hn_ifp->if_softc; netvsc_dev *net_dev; void *buffer; int bufferlen = NETVSC_PACKET_SIZE; @@ -985,7 +981,7 @@ hv_nv_on_channel_callback(struct hv_vmbu if (net_dev == NULL) return; - buffer = chan->ch_dev_rdbuf; + buffer = rxr->hn_rdbuf; do { struct vmbus_chanpkt_hdr *pkt = buffer; uint32_t bytes_rxed; @@ -1001,13 +997,13 @@ hv_nv_on_channel_callback(struct hv_vmbu pkt); break; case VMBUS_CHANPKT_TYPE_RXBUF: - hv_nv_on_receive(net_dev, sc, chan, pkt); + hv_nv_on_receive(net_dev, rxr, chan, pkt); break; case VMBUS_CHANPKT_TYPE_INBAND: hv_nv_send_table(sc, pkt); break; default: - device_printf(dev, + if_printf(rxr->hn_ifp, "unknown chan pkt %u\n", pkt->cph_type); break; @@ -1023,7 +1019,7 @@ hv_nv_on_channel_callback(struct hv_vmbu /* alloc new buffer */ buffer = malloc(bytes_rxed, M_NETVSC, M_NOWAIT); if (buffer == NULL) { - device_printf(dev, + if_printf(rxr->hn_ifp, "hv_cb malloc buffer failed, len=%u\n", bytes_rxed); bufferlen = 0; @@ -1039,5 +1035,5 @@ hv_nv_on_channel_callback(struct hv_vmbu if (bufferlen > NETVSC_PACKET_SIZE) free(buffer, M_NETVSC); - hv_rf_channel_rollup(chan); + hv_rf_channel_rollup(rxr, rxr->hn_txr); } Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Jul 20 05:34:28 2016 (r303069) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Jul 20 05:48:52 2016 (r303070) @@ -1151,8 +1151,12 @@ SLIST_HEAD(hn_txdesc_list, hn_txdesc); struct buf_ring; #endif +struct hn_tx_ring; + struct hn_rx_ring { struct ifnet *hn_ifp; + struct hn_tx_ring *hn_txr; + void *hn_rdbuf; int hn_rx_idx; /* Trust csum verification on host side */ @@ -1266,12 +1270,13 @@ extern int hv_promisc_mode; void netvsc_linkstatus_callback(struct hn_softc *sc, uint32_t status); netvsc_dev *hv_nv_on_device_add(struct hn_softc *sc, - void *additional_info); + void *additional_info, struct hn_rx_ring *rxr); int hv_nv_on_device_remove(struct hn_softc *sc, boolean_t destroy_channel); int hv_nv_on_send(struct hv_vmbus_channel *chan, netvsc_packet *pkt); int hv_nv_get_next_send_section(netvsc_dev *net_dev); -void hv_nv_subchan_attach(struct hv_vmbus_channel *chan); +void hv_nv_subchan_attach(struct hv_vmbus_channel *chan, + struct hn_rx_ring *rxr); #endif /* __HV_NET_VSC_H__ */ Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Wed Jul 20 05:34:28 2016 (r303069) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Wed Jul 20 05:48:52 2016 (r303070) @@ -120,9 +120,6 @@ __FBSDID("$FreeBSD$"); #include "hv_rndis_filter.h" #include "vmbus_if.h" -#define ch_dev_rxr ch_dev_priv1 -#define ch_dev_txr ch_dev_priv2 - /* Short for Hyper-V network interface */ #define NETVSC_DEVNAME "hn" @@ -544,7 +541,8 @@ netvsc_attach(device_t dev) IFCAP_LRO; ifp->if_hwassist = sc->hn_tx_ring[0].hn_csum_assist | CSUM_TSO; - error = hv_rf_on_device_add(sc, &device_info, ring_cnt); + error = hv_rf_on_device_add(sc, &device_info, ring_cnt, + &sc->hn_rx_ring[0]); if (error) goto failed; KASSERT(sc->net_dev->num_channel > 0 && @@ -809,12 +807,9 @@ hn_tx_done(struct hv_vmbus_channel *chan } void -netvsc_channel_rollup(struct hv_vmbus_channel *chan) +netvsc_channel_rollup(struct hn_rx_ring *rxr, struct hn_tx_ring *txr) { - struct hn_tx_ring *txr = chan->ch_dev_txr; #if defined(INET) || defined(INET6) - struct hn_rx_ring *rxr = chan->ch_dev_rxr; - tcp_lro_flush_all(&rxr->hn_lro); #endif @@ -1279,12 +1274,11 @@ hn_lro_rx(struct lro_ctrl *lc, struct mb * Note: This is no longer used as a callback */ int -netvsc_recv(struct hv_vmbus_channel *chan, netvsc_packet *packet, +netvsc_recv(struct hn_rx_ring *rxr, netvsc_packet *packet, const rndis_tcp_ip_csum_info *csum_info, const struct rndis_hash_info *hash_info, const struct rndis_hash_value *hash_value) { - struct hn_rx_ring *rxr = chan->ch_dev_rxr; struct ifnet *ifp = rxr->hn_ifp; struct mbuf *m_new; int size, do_lro = 0, do_csum = 1; @@ -1589,7 +1583,7 @@ hn_ioctl(struct ifnet *ifp, u_long cmd, vmbus_subchan_drain(sc->hn_prichan); error = hv_rf_on_device_add(sc, &device_info, - sc->hn_rx_ring_inuse); + sc->hn_rx_ring_inuse, &sc->hn_rx_ring[0]); if (error) { NV_LOCK(sc); sc->temp_unusable = FALSE; @@ -2223,6 +2217,9 @@ hn_create_rx_data(struct hn_softc *sc, i if (hn_trust_hostip) rxr->hn_trust_hcsum |= HN_TRUST_HCSUM_IP; rxr->hn_ifp = sc->hn_ifp; + if (i < sc->hn_tx_ring_cnt) + rxr->hn_txr = &sc->hn_tx_ring[i]; + rxr->hn_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK); rxr->hn_rx_idx = i; /* @@ -2335,17 +2332,19 @@ hn_create_rx_data(struct hn_softc *sc, i static void hn_destroy_rx_data(struct hn_softc *sc) { -#if defined(INET) || defined(INET6) int i; -#endif if (sc->hn_rx_ring_cnt == 0) return; + for (i = 0; i < sc->hn_rx_ring_cnt; ++i) { + struct hn_rx_ring *rxr = &sc->hn_rx_ring[i]; + #if defined(INET) || defined(INET6) - for (i = 0; i < sc->hn_rx_ring_cnt; ++i) - tcp_lro_free(&sc->hn_rx_ring[i].hn_lro); + tcp_lro_free(&rxr->hn_lro); #endif + free(rxr->hn_rdbuf, M_NETVSC); + } free(sc->hn_rx_ring, M_NETVSC); sc->hn_rx_ring = NULL; @@ -2928,7 +2927,6 @@ hn_channel_attach(struct hn_softc *sc, s ("RX ring %d already attached", idx)); rxr->hn_rx_flags |= HN_RX_FLAG_ATTACHED; - chan->ch_dev_rxr = rxr; if (bootverbose) { if_printf(sc->hn_ifp, "link RX ring %d to channel%u\n", idx, chan->ch_id); @@ -2941,7 +2939,6 @@ hn_channel_attach(struct hn_softc *sc, s ("TX ring %d already attached", idx)); txr->hn_tx_flags |= HN_TX_FLAG_ATTACHED; - chan->ch_dev_txr = txr; txr->hn_chan = chan; if (bootverbose) { if_printf(sc->hn_ifp, "link TX ring %d to channel%u\n", @@ -2968,22 +2965,25 @@ hn_subchan_attach(struct hn_softc *sc, s static void hn_subchan_setup(struct hn_softc *sc) { - struct hv_vmbus_channel **subchan; + struct hv_vmbus_channel **subchans; int subchan_cnt = sc->net_dev->num_channel - 1; int i; /* Wait for sub-channels setup to complete. */ - subchan = vmbus_subchan_get(sc->hn_prichan, subchan_cnt); + subchans = vmbus_subchan_get(sc->hn_prichan, subchan_cnt); /* Attach the sub-channels. */ for (i = 0; i < subchan_cnt; ++i) { + struct hv_vmbus_channel *subchan = subchans[i]; + /* NOTE: Calling order is critical. */ - hn_subchan_attach(sc, subchan[i]); - hv_nv_subchan_attach(subchan[i]); + hn_subchan_attach(sc, subchan); + hv_nv_subchan_attach(subchan, + &sc->hn_rx_ring[subchan->ch_subidx]); } /* Release the sub-channels */ - vmbus_subchan_rel(subchan, subchan_cnt); + vmbus_subchan_rel(subchans, subchan_cnt); if_printf(sc->hn_ifp, "%d sub-channels setup done\n", subchan_cnt); } Modified: head/sys/dev/hyperv/netvsc/hv_rndis.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis.h Wed Jul 20 05:34:28 2016 (r303069) +++ head/sys/dev/hyperv/netvsc/hv_rndis.h Wed Jul 20 05:48:52 2016 (r303070) @@ -1083,12 +1083,14 @@ typedef struct rndismp_rx_bufs_info_ { * Externs */ struct hv_vmbus_channel; +struct hn_rx_ring; +struct hn_tx_ring; -int netvsc_recv(struct hv_vmbus_channel *chan, +int netvsc_recv(struct hn_rx_ring *rxr, netvsc_packet *packet, const rndis_tcp_ip_csum_info *csum_info, const struct rndis_hash_info *hash_info, const struct rndis_hash_value *hash_value); -void netvsc_channel_rollup(struct hv_vmbus_channel *chan); +void netvsc_channel_rollup(struct hn_rx_ring *rxr, struct hn_tx_ring *txr); void* hv_set_rppi_data(rndis_msg *rndis_mesg, uint32_t rppi_size, Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Wed Jul 20 05:34:28 2016 (r303069) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Wed Jul 20 05:48:52 2016 (r303070) @@ -34,7 +34,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include #include #include #include @@ -74,8 +76,7 @@ static int hv_rf_send_request(rndis_dev static void hv_rf_receive_response(rndis_device *device, rndis_msg *response); static void hv_rf_receive_indicate_status(rndis_device *device, rndis_msg *response); -static void hv_rf_receive_data(rndis_device *device, rndis_msg *message, - struct hv_vmbus_channel *chan, +static void hv_rf_receive_data(struct hn_rx_ring *rxr, rndis_msg *message, netvsc_packet *pkt); static int hv_rf_query_device(rndis_device *device, uint32_t oid, void *result, uint32_t *result_size); @@ -527,12 +528,11 @@ skip: * RNDIS filter receive data */ static void -hv_rf_receive_data(rndis_device *device, rndis_msg *message, - struct hv_vmbus_channel *chan, netvsc_packet *pkt) +hv_rf_receive_data(struct hn_rx_ring *rxr, rndis_msg *message, + netvsc_packet *pkt) { rndis_packet *rndis_pkt; uint32_t data_offset; - device_t dev = device->net_dev->sc->hn_dev; struct hv_rf_recvinfo info; rndis_pkt = &message->msg.packet; @@ -548,7 +548,7 @@ hv_rf_receive_data(rndis_device *device, pkt->tot_data_buf_len -= data_offset; if (pkt->tot_data_buf_len < rndis_pkt->data_length) { pkt->status = nvsp_status_failure; - device_printf(dev, + if_printf(rxr->hn_ifp, "total length %u is less than data length %u\n", pkt->tot_data_buf_len, rndis_pkt->data_length); return; @@ -559,7 +559,7 @@ hv_rf_receive_data(rndis_device *device, if (hv_rf_find_recvinfo(rndis_pkt, &info)) { pkt->status = nvsp_status_failure; - device_printf(dev, "recvinfo parsing failed\n"); + if_printf(rxr->hn_ifp, "recvinfo parsing failed\n"); return; } @@ -568,7 +568,7 @@ hv_rf_receive_data(rndis_device *device, else pkt->vlan_tci = 0; - netvsc_recv(chan, pkt, info.csum_info, info.hash_info, info.hash_value); + netvsc_recv(rxr, pkt, info.csum_info, info.hash_info, info.hash_value); } /* @@ -576,7 +576,7 @@ hv_rf_receive_data(rndis_device *device, */ int hv_rf_on_receive(netvsc_dev *net_dev, - struct hv_vmbus_channel *chan, netvsc_packet *pkt) + struct hn_rx_ring *rxr, netvsc_packet *pkt) { rndis_device *rndis_dev; rndis_msg *rndis_hdr; @@ -599,7 +599,7 @@ hv_rf_on_receive(netvsc_dev *net_dev, /* data message */ case REMOTE_NDIS_PACKET_MSG: - hv_rf_receive_data(rndis_dev, rndis_hdr, chan, pkt); + hv_rf_receive_data(rxr, rndis_hdr, pkt); break; /* completion messages */ case REMOTE_NDIS_INITIALIZE_CMPLT: @@ -1058,7 +1058,7 @@ hv_rf_close_device(rndis_device *device) */ int hv_rf_on_device_add(struct hn_softc *sc, void *additl_info, - int nchan) + int nchan, struct hn_rx_ring *rxr) { int ret; netvsc_dev *net_dev; @@ -1081,7 +1081,7 @@ hv_rf_on_device_add(struct hn_softc *sc, * (hv_rf_on_receive()) before this call is completed. * Note: Earlier code used a function pointer here. */ - net_dev = hv_nv_on_device_add(sc, additl_info); + net_dev = hv_nv_on_device_add(sc, additl_info, rxr); if (!net_dev) { hv_put_rndis_device(rndis_dev); @@ -1266,8 +1266,8 @@ hv_rf_on_send_request_halt_completion(st } void -hv_rf_channel_rollup(struct hv_vmbus_channel *chan) +hv_rf_channel_rollup(struct hn_rx_ring *rxr, struct hn_tx_ring *txr) { - netvsc_channel_rollup(chan); + netvsc_channel_rollup(rxr, txr); } Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Wed Jul 20 05:34:28 2016 (r303069) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Wed Jul 20 05:48:52 2016 (r303070) @@ -113,12 +113,14 @@ typedef struct rndis_device_ { */ struct hv_vmbus_channel; struct hn_softc; +struct hn_rx_ring; int hv_rf_on_receive(netvsc_dev *net_dev, - struct hv_vmbus_channel *chan, netvsc_packet *pkt); + struct hn_rx_ring *rxr, netvsc_packet *pkt); void hv_rf_receive_rollup(netvsc_dev *net_dev); -void hv_rf_channel_rollup(struct hv_vmbus_channel *chan); -int hv_rf_on_device_add(struct hn_softc *sc, void *additl_info, int nchan); +void hv_rf_channel_rollup(struct hn_rx_ring *rxr, struct hn_tx_ring *txr); +int hv_rf_on_device_add(struct hn_softc *sc, void *additl_info, int nchan, + struct hn_rx_ring *rxr); int hv_rf_on_device_remove(struct hn_softc *sc, boolean_t destroy_channel); int hv_rf_on_open(struct hn_softc *sc); int hv_rf_on_close(struct hn_softc *sc); From owner-svn-src-all@freebsd.org Wed Jul 20 06:00:29 2016 Return-Path: Delivered-To: svn-src-all@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 B6634B9E04B; Wed, 20 Jul 2016 06:00:29 +0000 (UTC) (envelope-from sephe@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 86B18179C; Wed, 20 Jul 2016 06:00:29 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K60SpW062652; Wed, 20 Jul 2016 06:00:28 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K60SbG062642; Wed, 20 Jul 2016 06:00:28 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607200600.u6K60SbG062642@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 20 Jul 2016 06:00:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303071 - in head/sys/dev/hyperv: include netvsc storvsc utilities vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 06:00:29 -0000 Author: sephe Date: Wed Jul 20 06:00:27 2016 New Revision: 303071 URL: https://svnweb.freebsd.org/changeset/base/303071 Log: hyperv/vmbus: Hide channel struct definition. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7245 Added: head/sys/dev/hyperv/vmbus/vmbus_chanvar.h (contents, props changed) Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/include/vmbus.h head/sys/dev/hyperv/netvsc/hv_net_vsc.c head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c head/sys/dev/hyperv/utilities/hv_kvp.c head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h head/sys/dev/hyperv/vmbus/vmbus_chan.c Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 05:48:52 2016 (r303070) +++ head/sys/dev/hyperv/include/hyperv.h Wed Jul 20 06:00:27 2016 (r303071) @@ -83,122 +83,8 @@ struct hyperv_guid { int hyperv_guid2str(const struct hyperv_guid *, char *, size_t); -typedef struct { - /* - * offset in bytes from the start of ring data below - */ - volatile uint32_t write_index; - /* - * offset in bytes from the start of ring data below - */ - volatile uint32_t read_index; - /* - * NOTE: The interrupt_mask field is used only for channels, but - * vmbus connection also uses this data structure - */ - volatile uint32_t interrupt_mask; - /* pad it to PAGE_SIZE so that data starts on a page */ - uint8_t reserved[4084]; - - /* - * WARNING: Ring data starts here - * !!! DO NOT place any fields below this !!! - */ - uint8_t buffer[0]; /* doubles as interrupt mask */ -} __packed hv_vmbus_ring_buffer; - -typedef struct { - hv_vmbus_ring_buffer* ring_buffer; - struct mtx ring_lock; - uint32_t ring_data_size; /* ring_size */ -} hv_vmbus_ring_buffer_info; - struct hv_vmbus_channel; -typedef void (*vmbus_chan_callback_t)(struct hv_vmbus_channel *, void *); - -typedef struct hv_vmbus_channel { - device_t ch_dev; - struct vmbus_softc *ch_vmbus; - uint32_t ch_flags; /* VMBUS_CHAN_FLAG_ */ - uint32_t ch_id; /* channel id */ - - /* - * These are based on the offer_msg.monitor_id. - * Save it here for easy access. - */ - int ch_montrig_idx; /* MNF trig index */ - uint32_t ch_montrig_mask;/* MNF trig mask */ - - /* - * TX bufring; at the beginning of ch_bufring. - */ - hv_vmbus_ring_buffer_info ch_txbr; - /* - * RX bufring; immediately following ch_txbr. - */ - hv_vmbus_ring_buffer_info ch_rxbr; - - struct taskqueue *ch_tq; - struct task ch_task; - vmbus_chan_callback_t ch_cb; - void *ch_cbarg; - - struct hyperv_mon_param *ch_monprm; - struct hyperv_dma ch_monprm_dma; - - int ch_cpuid; /* owner cpu */ - /* - * Virtual cpuid for ch_cpuid; it is used to communicate cpuid - * related information w/ Hyper-V. If MSR_HV_VP_INDEX does not - * exist, ch_vcpuid will always be 0 for compatibility. - */ - uint32_t ch_vcpuid; - - /* - * If this is a primary channel, ch_subchan* fields - * contain sub-channels belonging to this primary - * channel. - */ - struct mtx ch_subchan_lock; - TAILQ_HEAD(, hv_vmbus_channel) ch_subchans; - int ch_subchan_cnt; - - /* If this is a sub-channel */ - TAILQ_ENTRY(hv_vmbus_channel) ch_sublink; /* sub-channel link */ - struct hv_vmbus_channel *ch_prichan; /* owner primary chan */ - - void *ch_bufring; /* TX+RX bufrings */ - struct hyperv_dma ch_bufring_dma; - uint32_t ch_bufring_gpadl; - - struct task ch_detach_task; - TAILQ_ENTRY(hv_vmbus_channel) ch_prilink; /* primary chan link */ - uint32_t ch_subidx; /* subchan index */ - volatile uint32_t ch_stflags; /* atomic-op */ - /* VMBUS_CHAN_ST_ */ - struct hyperv_guid ch_guid_type; - struct hyperv_guid ch_guid_inst; - - struct sysctl_ctx_list ch_sysctl_ctx; -} hv_vmbus_channel; - -#define VMBUS_CHAN_ISPRIMARY(chan) ((chan)->ch_subidx == 0) - -#define VMBUS_CHAN_FLAG_HASMNF 0x0001 -/* - * If this flag is set, this channel's interrupt will be masked in ISR, - * and the RX bufring will be drained before this channel's interrupt is - * unmasked. - * - * This flag is turned on by default. Drivers can turn it off according - * to their own requirement. - */ -#define VMBUS_CHAN_FLAG_BATCHREAD 0x0002 - -#define VMBUS_CHAN_ST_OPENED_SHIFT 0 -#define VMBUS_CHAN_ST_OPENED (1 << VMBUS_CHAN_ST_OPENED_SHIFT) - /** * @brief Get physical address from virtual */ Modified: head/sys/dev/hyperv/include/vmbus.h ============================================================================== --- head/sys/dev/hyperv/include/vmbus.h Wed Jul 20 05:48:52 2016 (r303070) +++ head/sys/dev/hyperv/include/vmbus.h Wed Jul 20 06:00:27 2016 (r303071) @@ -88,6 +88,9 @@ struct vmbus_chanpkt_rxbuf { #define VMBUS_CHAN_PRPLIST_MAX 32 struct hv_vmbus_channel; +struct hyperv_guid; + +typedef void (*vmbus_chan_callback_t)(struct hv_vmbus_channel *, void *); int vmbus_chan_open(struct hv_vmbus_channel *chan, int txbr_size, int rxbr_size, const void *udata, int udlen, @@ -124,4 +127,10 @@ int vmbus_chan_send_prplist(struct hv_vm struct vmbus_gpa_range *prp, int prp_cnt, void *data, int dlen, uint64_t xactid); +uint32_t vmbus_chan_id(const struct hv_vmbus_channel *chan); +uint32_t vmbus_chan_subidx(const struct hv_vmbus_channel *chan); +bool vmbus_chan_is_primary(const struct hv_vmbus_channel *chan); +const struct hyperv_guid * + vmbus_chan_guid_inst(const struct hv_vmbus_channel *chan); + #endif /* !_VMBUS_H_ */ Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:48:52 2016 (r303070) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 06:00:27 2016 (r303071) @@ -641,9 +641,9 @@ hv_nv_disconnect_from_vsp(netvsc_dev *ne void hv_nv_subchan_attach(struct hv_vmbus_channel *chan, struct hn_rx_ring *rxr) { - KASSERT(rxr->hn_rx_idx == chan->ch_subidx, + KASSERT(rxr->hn_rx_idx == vmbus_chan_subidx(chan), ("chan%u subidx %u, rxr%d mismatch", - chan->ch_id, chan->ch_subidx, rxr->hn_rx_idx)); + vmbus_chan_id(chan), vmbus_chan_subidx(chan), rxr->hn_rx_idx)); vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0, hv_nv_on_channel_callback, rxr); @@ -673,9 +673,9 @@ hv_nv_on_device_add(struct hn_softc *sc, /* * Open the channel */ - KASSERT(rxr->hn_rx_idx == chan->ch_subidx, + KASSERT(rxr->hn_rx_idx == vmbus_chan_subidx(chan), ("chan%u subidx %u, rxr%d mismatch", - chan->ch_id, chan->ch_subidx, rxr->hn_rx_idx)); + vmbus_chan_id(chan), vmbus_chan_subidx(chan), rxr->hn_rx_idx)); ret = vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0, hv_nv_on_channel_callback, rxr); Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Wed Jul 20 05:48:52 2016 (r303070) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Wed Jul 20 06:00:27 2016 (r303071) @@ -791,9 +791,8 @@ hn_tx_done(struct hv_vmbus_channel *chan txr = txd->txr; KASSERT(txr->hn_chan == chan, - ("channel mismatch, on channel%u, should be channel%u", - chan->ch_subidx, - txr->hn_chan->ch_subidx)); + ("channel mismatch, on chan%u, should be chan%u", + vmbus_chan_subidx(chan), vmbus_chan_subidx(txr->hn_chan))); txr->hn_has_txeof = 1; hn_txdesc_put(txr, txd); @@ -2917,7 +2916,7 @@ hn_channel_attach(struct hn_softc *sc, s struct hn_rx_ring *rxr; int idx; - idx = chan->ch_subidx; + idx = vmbus_chan_subidx(chan); KASSERT(idx >= 0 && idx < sc->hn_rx_ring_inuse, ("invalid channel index %d, should > 0 && < %d", @@ -2929,7 +2928,7 @@ hn_channel_attach(struct hn_softc *sc, s if (bootverbose) { if_printf(sc->hn_ifp, "link RX ring %d to channel%u\n", - idx, chan->ch_id); + idx, vmbus_chan_id(chan)); } if (idx < sc->hn_tx_ring_inuse) { @@ -2942,7 +2941,7 @@ hn_channel_attach(struct hn_softc *sc, s txr->hn_chan = chan; if (bootverbose) { if_printf(sc->hn_ifp, "link TX ring %d to channel%u\n", - idx, chan->ch_id); + idx, vmbus_chan_id(chan)); } } @@ -2954,11 +2953,8 @@ static void hn_subchan_attach(struct hn_softc *sc, struct hv_vmbus_channel *chan) { - KASSERT(!VMBUS_CHAN_ISPRIMARY(chan), + KASSERT(!vmbus_chan_is_primary(chan), ("subchannel callback on primary channel")); - KASSERT(chan->ch_subidx > 0, - ("invalid channel subidx %u", - chan->ch_subidx)); hn_channel_attach(sc, chan); } @@ -2979,7 +2975,7 @@ hn_subchan_setup(struct hn_softc *sc) /* NOTE: Calling order is critical. */ hn_subchan_attach(sc, subchan); hv_nv_subchan_attach(subchan, - &sc->hn_rx_ring[subchan->ch_subidx]); + &sc->hn_rx_ring[vmbus_chan_subidx(subchan)]); } /* Release the sub-channels */ Modified: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Jul 20 05:48:52 2016 (r303070) +++ head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Wed Jul 20 06:00:27 2016 (r303071) @@ -876,7 +876,7 @@ storvsc_create_cpu2chan(struct storvsc_s sc->hs_cpu2chan[cpu] = vmbus_chan_cpu2chan(sc->hs_chan, cpu); if (bootverbose) { device_printf(sc->hs_dev, "cpu%d -> chan%u\n", - cpu, sc->hs_cpu2chan[cpu]->ch_id); + cpu, vmbus_chan_id(sc->hs_cpu2chan[cpu])); } } } Modified: head/sys/dev/hyperv/utilities/hv_kvp.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_kvp.c Wed Jul 20 05:48:52 2016 (r303070) +++ head/sys/dev/hyperv/utilities/hv_kvp.c Wed Jul 20 06:00:27 2016 (r303071) @@ -342,7 +342,8 @@ hv_kvp_convert_utf16_ipinfo_to_utf8(stru * TODO: need vmbus interface. */ chan = vmbus_get_channel(dev); - hyperv_guid2str(&chan->ch_guid_inst, buf, sizeof(buf)); + hyperv_guid2str(vmbus_chan_guid_inst(chan), + buf, sizeof(buf)); if (strncmp(buf, (char *)umsg->body.kvp_ip_val.adapter_id, HYPERV_GUID_STRLEN - 1) == 0) { @@ -615,7 +616,7 @@ static void hv_kvp_process_request(void *context, int pending) { uint8_t *kvp_buf; - hv_vmbus_channel *channel; + struct hv_vmbus_channel *channel; uint32_t recvlen = 0; uint64_t requestid; struct hv_vmbus_icmsg_hdr *icmsghdrp; Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Wed Jul 20 05:48:52 2016 (r303070) +++ head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Wed Jul 20 06:00:27 2016 (r303071) @@ -37,7 +37,7 @@ #include #include -#include +#include struct vmbus_softc; Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chan.c Wed Jul 20 05:48:52 2016 (r303070) +++ head/sys/dev/hyperv/vmbus/vmbus_chan.c Wed Jul 20 06:00:27 2016 (r303071) @@ -1378,3 +1378,30 @@ vmbus_chan_set_readbatch(struct hv_vmbus else chan->ch_flags |= VMBUS_CHAN_FLAG_BATCHREAD; } + +uint32_t +vmbus_chan_id(const struct hv_vmbus_channel *chan) +{ + return chan->ch_id; +} + +uint32_t +vmbus_chan_subidx(const struct hv_vmbus_channel *chan) +{ + return chan->ch_subidx; +} + +bool +vmbus_chan_is_primary(const struct hv_vmbus_channel *chan) +{ + if (VMBUS_CHAN_ISPRIMARY(chan)) + return true; + else + return false; +} + +const struct hyperv_guid * +vmbus_chan_guid_inst(const struct hv_vmbus_channel *chan) +{ + return &chan->ch_guid_inst; +} Added: head/sys/dev/hyperv/vmbus/vmbus_chanvar.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Wed Jul 20 06:00:27 2016 (r303071) @@ -0,0 +1,155 @@ +/*- + * Copyright (c) 2016 Microsoft Corp. + * 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 unmodified, 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 ``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 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. + * + * $FreeBSD$ + */ + +#ifndef _VMBUS_CHANVAR_H_ +#define _VMBUS_CHANVAR_H_ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +typedef struct { + /* + * offset in bytes from the start of ring data below + */ + volatile uint32_t write_index; + /* + * offset in bytes from the start of ring data below + */ + volatile uint32_t read_index; + /* + * NOTE: The interrupt_mask field is used only for channels, but + * vmbus connection also uses this data structure + */ + volatile uint32_t interrupt_mask; + /* pad it to PAGE_SIZE so that data starts on a page */ + uint8_t reserved[4084]; + + /* + * WARNING: Ring data starts here + * !!! DO NOT place any fields below this !!! + */ + uint8_t buffer[0]; /* doubles as interrupt mask */ +} __packed hv_vmbus_ring_buffer; + +typedef struct { + hv_vmbus_ring_buffer* ring_buffer; + struct mtx ring_lock; + uint32_t ring_data_size; /* ring_size */ +} hv_vmbus_ring_buffer_info; + +typedef struct hv_vmbus_channel { + device_t ch_dev; + struct vmbus_softc *ch_vmbus; + uint32_t ch_flags; /* VMBUS_CHAN_FLAG_ */ + uint32_t ch_id; /* channel id */ + + /* + * These are based on the offer_msg.monitor_id. + * Save it here for easy access. + */ + int ch_montrig_idx; /* MNF trig index */ + uint32_t ch_montrig_mask;/* MNF trig mask */ + + /* + * TX bufring; at the beginning of ch_bufring. + */ + hv_vmbus_ring_buffer_info ch_txbr; + /* + * RX bufring; immediately following ch_txbr. + */ + hv_vmbus_ring_buffer_info ch_rxbr; + + struct taskqueue *ch_tq; + struct task ch_task; + vmbus_chan_callback_t ch_cb; + void *ch_cbarg; + + struct hyperv_mon_param *ch_monprm; + struct hyperv_dma ch_monprm_dma; + + int ch_cpuid; /* owner cpu */ + /* + * Virtual cpuid for ch_cpuid; it is used to communicate cpuid + * related information w/ Hyper-V. If MSR_HV_VP_INDEX does not + * exist, ch_vcpuid will always be 0 for compatibility. + */ + uint32_t ch_vcpuid; + + /* + * If this is a primary channel, ch_subchan* fields + * contain sub-channels belonging to this primary + * channel. + */ + struct mtx ch_subchan_lock; + TAILQ_HEAD(, hv_vmbus_channel) ch_subchans; + int ch_subchan_cnt; + + /* If this is a sub-channel */ + TAILQ_ENTRY(hv_vmbus_channel) ch_sublink; /* sub-channel link */ + struct hv_vmbus_channel *ch_prichan; /* owner primary chan */ + + void *ch_bufring; /* TX+RX bufrings */ + struct hyperv_dma ch_bufring_dma; + uint32_t ch_bufring_gpadl; + + struct task ch_detach_task; + TAILQ_ENTRY(hv_vmbus_channel) ch_prilink; /* primary chan link */ + uint32_t ch_subidx; /* subchan index */ + volatile uint32_t ch_stflags; /* atomic-op */ + /* VMBUS_CHAN_ST_ */ + struct hyperv_guid ch_guid_type; + struct hyperv_guid ch_guid_inst; + + struct sysctl_ctx_list ch_sysctl_ctx; +} hv_vmbus_channel; + +#define VMBUS_CHAN_ISPRIMARY(chan) ((chan)->ch_subidx == 0) + +#define VMBUS_CHAN_FLAG_HASMNF 0x0001 +/* + * If this flag is set, this channel's interrupt will be masked in ISR, + * and the RX bufring will be drained before this channel's interrupt is + * unmasked. + * + * This flag is turned on by default. Drivers can turn it off according + * to their own requirement. + */ +#define VMBUS_CHAN_FLAG_BATCHREAD 0x0002 + +#define VMBUS_CHAN_ST_OPENED_SHIFT 0 +#define VMBUS_CHAN_ST_OPENED (1 << VMBUS_CHAN_ST_OPENED_SHIFT) + +#endif /* !_VMBUS_CHANVAR_H_ */ From owner-svn-src-all@freebsd.org Wed Jul 20 06:12:33 2016 Return-Path: Delivered-To: svn-src-all@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 DEFE8B9E3A7; Wed, 20 Jul 2016 06:12:33 +0000 (UTC) (envelope-from sephe@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 8F4E01F75; Wed, 20 Jul 2016 06:12:33 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K6CWJc069740; Wed, 20 Jul 2016 06:12:32 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K6CW9v069738; Wed, 20 Jul 2016 06:12:32 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607200612.u6K6CW9v069738@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Wed, 20 Jul 2016 06:12:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303072 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 06:12:34 -0000 Author: sephe Date: Wed Jul 20 06:12:32 2016 New Revision: 303072 URL: https://svnweb.freebsd.org/changeset/base/303072 Log: hyperv/vmbus: Save MNF trigger location instead of MNF trigger index. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7246 Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chan.c Wed Jul 20 06:00:27 2016 (r303071) +++ head/sys/dev/hyperv/vmbus/vmbus_chan.c Wed Jul 20 06:12:32 2016 (r303072) @@ -89,13 +89,10 @@ vmbus_chan_signal_tx(struct hv_vmbus_cha atomic_set_long(&sc->vmbus_tx_evtflags[chanid >> VMBUS_EVTFLAG_SHIFT], 1UL << (chanid & VMBUS_EVTFLAG_MASK)); - if (chan->ch_flags & VMBUS_CHAN_FLAG_HASMNF) { - atomic_set_int( - &sc->vmbus_mnf2->mnf_trigs[chan->ch_montrig_idx].mt_pending, - chan->ch_montrig_mask); - } else { + if (chan->ch_flags & VMBUS_CHAN_FLAG_HASMNF) + atomic_set_int(chan->ch_montrig, chan->ch_montrig_mask); + else hypercall_signal_event(chan->ch_monprm_dma.hv_paddr); - } } static int @@ -1106,13 +1103,19 @@ vmbus_chan_msgproc_choffer(struct vmbus_ chan->ch_monprm->mp_connid = offer->chm_connid; if (offer->chm_flags1 & VMBUS_CHOFFER_FLAG1_HASMNF) { + int trig_idx; + /* * Setup MNF stuffs. */ chan->ch_flags |= VMBUS_CHAN_FLAG_HASMNF; - chan->ch_montrig_idx = offer->chm_montrig / VMBUS_MONTRIG_LEN; - if (chan->ch_montrig_idx >= VMBUS_MONTRIGS_MAX) + + trig_idx = offer->chm_montrig / VMBUS_MONTRIG_LEN; + if (trig_idx >= VMBUS_MONTRIGS_MAX) panic("invalid monitor trigger %u", offer->chm_montrig); + chan->ch_montrig = + &sc->vmbus_mnf2->mnf_trigs[trig_idx].mt_pending; + chan->ch_montrig_mask = 1 << (offer->chm_montrig % VMBUS_MONTRIG_LEN); } Modified: head/sys/dev/hyperv/vmbus/vmbus_chanvar.h ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Wed Jul 20 06:00:27 2016 (r303071) +++ head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Wed Jul 20 06:12:32 2016 (r303072) @@ -80,7 +80,7 @@ typedef struct hv_vmbus_channel { * These are based on the offer_msg.monitor_id. * Save it here for easy access. */ - int ch_montrig_idx; /* MNF trig index */ + volatile uint32_t *ch_montrig; /* MNF trigger */ uint32_t ch_montrig_mask;/* MNF trig mask */ /* From owner-svn-src-all@freebsd.org Wed Jul 20 06:29:28 2016 Return-Path: Delivered-To: svn-src-all@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 1AA7FB9E5B5; Wed, 20 Jul 2016 06:29:28 +0000 (UTC) (envelope-from tuexen@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 D2D2515D7; Wed, 20 Jul 2016 06:29:27 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K6TRur073556; Wed, 20 Jul 2016 06:29:27 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K6TR95073555; Wed, 20 Jul 2016 06:29:27 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <201607200629.u6K6TR95073555@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Wed, 20 Jul 2016 06:29:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303073 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 06:29:28 -0000 Author: tuexen Date: Wed Jul 20 06:29:26 2016 New Revision: 303073 URL: https://svnweb.freebsd.org/changeset/base/303073 Log: Fix a bug in deferred stream reset processing which results in using a length field before it is set. Thanks to Taylor Brandstetter for reporting the issue and providing a fix. MFC after: 3 days Modified: head/sys/netinet/sctp_output.c Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Wed Jul 20 06:12:32 2016 (r303072) +++ head/sys/netinet/sctp_output.c Wed Jul 20 06:29:26 2016 (r303073) @@ -11940,7 +11940,6 @@ sctp_send_deferred_reset_response(struct return; } SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD); - sctp_add_stream_reset_result(chk, ent->seq, response); /* setup chunk parameters */ chk->sent = SCTP_DATAGRAM_UNSENT; chk->snd_count = 0; @@ -11955,6 +11954,7 @@ sctp_send_deferred_reset_response(struct ch->chunk_length = htons(chk->book_size); atomic_add_int(&chk->whoTo->ref_count, 1); SCTP_BUF_LEN(chk->data) = chk->send_size; + sctp_add_stream_reset_result(chk, ent->seq, response); /* insert the chunk for sending */ TAILQ_INSERT_TAIL(&asoc->control_send_queue, chk, From owner-svn-src-all@freebsd.org Wed Jul 20 06:53:41 2016 Return-Path: Delivered-To: svn-src-all@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 C8049B9EE2B; Wed, 20 Jul 2016 06:53:41 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (glebi.us [96.95.210.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id B234814C8; Wed, 20 Jul 2016 06:53:41 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id u6K6rZHD001607 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 19 Jul 2016 23:53:35 -0700 (PDT) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id u6K6rZ0N001606; Tue, 19 Jul 2016 23:53:35 -0700 (PDT) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 19 Jul 2016 23:53:35 -0700 From: Gleb Smirnoff To: Randall Stewart Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303037 - head/sys/kern Message-ID: <20160720065335.GU1076@FreeBSD.org> References: <201607191831.u6JIVJWq007542@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201607191831.u6JIVJWq007542@repo.freebsd.org> User-Agent: Mutt/1.6.1 (2016-04-27) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 06:53:41 -0000 On Tue, Jul 19, 2016 at 06:31:19PM +0000, Randall Stewart wrote: R> Author: rrs R> Date: Tue Jul 19 18:31:19 2016 R> New Revision: 303037 R> URL: https://svnweb.freebsd.org/changeset/base/303037 R> R> Log: R> This reverts out Gleb's changes and adds three small R> fixes that I think closes up the races Gleb was R> looking for. This is running quite nicely in Netflix and R> now no longer causes TCP-tcb leaks. R> R> Differential Revision: 7135 Just to notice that I am completely pissed of by this commit war, that you started. I've been testing my changes properly, I gave people time to review my changes. You didn't. >From your explanation in other emails I see that you've been testing your changes with a version of FreeBSD that is a heavily modified FreeBSD 10, not 11. The new code you mixed with revert of mine, doesn't fix the problem observed. It fixes another problem that you imagined, which might exist, but isn't observed. We already discussed that and you didn't prove it wrong. Your change doesn't even revert my change completely. -- Totus tuus, Glebius. From owner-svn-src-all@freebsd.org Wed Jul 20 07:30:45 2016 Return-Path: Delivered-To: svn-src-all@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 736AFB9C7CB; Wed, 20 Jul 2016 07:30:45 +0000 (UTC) (envelope-from ache@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 483DE147B; Wed, 20 Jul 2016 07:30:45 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K7UiPc096328; Wed, 20 Jul 2016 07:30:44 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K7Ui3s096327; Wed, 20 Jul 2016 07:30:44 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607200730.u6K7Ui3s096327@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Wed, 20 Jul 2016 07:30:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303074 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 07:30:45 -0000 Author: ache Date: Wed Jul 20 07:30:44 2016 New Revision: 303074 URL: https://svnweb.freebsd.org/changeset/base/303074 Log: 1) Per POSIX (and glibc) GLOB_NOCHECK should return original pattern, unmodified, if no matches found. But our original code strips all '\' returning it. Rewrite the code to allow to reconstruct exact the original pattern with backslashes for this case. 2) Prevent to use truncated pattern if MAXPATHLEN exceeded, return GLOB_NOMATCH instead. 3) Fix few end loop conditions filling Char arrays with mbrtowc(), MB_CUR_MAX is unneeded in two places and condition is less by one in other place. 4) Prevent to use truncated filenames match if MAXPATHLEN exceeded, skip such directory entries. 5) Don't end *pathend with L'/' in glob3() if limit is reached, this change will be not visible since error is returned. 6) If error happens in (*readdirfunc)(), do the same GLOB_ABORTED processing as for g_opendir() as POSIX requires. Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Wed Jul 20 06:29:26 2016 (r303073) +++ head/lib/libc/gen/glob.c Wed Jul 20 07:30:44 2016 (r303074) @@ -152,6 +152,7 @@ typedef char Char; #define CHAR(c) ((Char)((c)&M_CHAR)) #define META(c) ((Char)((c)|M_QUOTE)) +#define UNPROT(c) ((c) & ~M_PROTECT) #define M_ALL META(L'*') #define M_END META(L']') #define M_NOT META(L'!') @@ -159,10 +160,11 @@ typedef char Char; #define M_RNG META(L'-') #define M_SET META(L'[') #define ismeta(c) (((c)&M_QUOTE) != 0) +#define isprot(c) (((c)&M_PROTECT) != 0) static int compare(const void *, const void *); -static int g_Ctoc(const Char *, char *, size_t); +static int g_Ctoc(const Char *, char *, size_t, int); static int g_lstat(Char *, struct stat *, glob_t *); static DIR *g_opendir(Char *, glob_t *); static const Char *g_strchr(const Char *, wchar_t); @@ -176,7 +178,7 @@ static int glob2(Char *, Char *, Char * struct glob_limit *); static int glob3(Char *, Char *, Char *, Char *, Char *, glob_t *, struct glob_limit *); -static int globextend(const Char *, glob_t *, struct glob_limit *); +static int globextend(const Char *, glob_t *, struct glob_limit *, int); static const Char * globtilde(const Char *, Char *, size_t, glob_t *); static int globexp1(const Char *, glob_t *, struct glob_limit *); @@ -197,6 +199,7 @@ glob(const char * __restrict pattern, in mbstate_t mbs; wchar_t wc; size_t clen; + int too_long; patnext = pattern; if (!(flags & GLOB_APPEND)) { @@ -216,24 +219,27 @@ glob(const char * __restrict pattern, in bufnext = patbuf; bufend = bufnext + MAXPATHLEN - 1; + too_long = 1; if (flags & GLOB_NOESCAPE) { memset(&mbs, 0, sizeof(mbs)); - while (bufend - bufnext >= MB_CUR_MAX) { + while (bufnext <= bufend) { clen = mbrtowc(&wc, patnext, MB_LEN_MAX, &mbs); if (clen == (size_t)-1 || clen == (size_t)-2) return (GLOB_NOMATCH); - else if (clen == 0) + else if (clen == 0) { + too_long = 0; break; + } *bufnext++ = wc; patnext += clen; } } else { /* Protect the quoted characters. */ memset(&mbs, 0, sizeof(mbs)); - while (bufend - bufnext >= MB_CUR_MAX) { + while (bufnext <= bufend) { if (*patnext == '\\') { if (*++patnext == '\0') { - *bufnext++ = QUOTE | M_PROTECT; + *bufnext++ = QUOTE; continue; } prot = M_PROTECT; @@ -242,13 +248,16 @@ glob(const char * __restrict pattern, in clen = mbrtowc(&wc, patnext, MB_LEN_MAX, &mbs); if (clen == (size_t)-1 || clen == (size_t)-2) return (GLOB_NOMATCH); - else if (clen == 0) + else if (clen == 0) { + too_long = 0; break; - *bufnext++ = wc | ((wc != DOT && wc != SEP) ? - prot : 0); + } + *bufnext++ = wc | prot; patnext += clen; } } + if (too_long) + return (GLOB_NOMATCH); *bufnext = EOS; if (flags & GLOB_BRACE) @@ -447,7 +456,7 @@ globtilde(const Char *pattern, Char *pat /* * Expand a ~user */ - if (g_Ctoc(patbuf, (char *)wbuf, sizeof(wbuf))) + if (g_Ctoc(patbuf, (char *)wbuf, sizeof(wbuf), 0)) return (NULL); if ((pwd = getpwnam((char *)wbuf)) == NULL) return (pattern); @@ -479,8 +488,8 @@ globtilde(const Char *pattern, Char *pat return (NULL); dc = wbuf; - for (b = patbuf; b < eb && *dc != EOS; b++, dc++) - *b = *dc | ((*dc != DOT && *dc != SEP) ? M_PROTECT : 0); + for (b = patbuf; b < eb && *dc != EOS; *b++ = *dc++ | M_PROTECT) + continue; if (*dc != EOS) return (NULL); @@ -589,7 +598,7 @@ glob0(const Char *pattern, glob_t *pglob if (((pglob->gl_flags & GLOB_NOCHECK) || ((pglob->gl_flags & GLOB_NOMAGIC) && !(pglob->gl_flags & GLOB_MAGCHAR)))) - return (globextend(pattern, pglob, limit)); + return (globextend(pattern, pglob, limit, 1)); else return (GLOB_NOMATCH); } @@ -645,10 +654,11 @@ glob2(Char *pathbuf, Char *pathend, Char errno = 0; return (GLOB_NOSPACE); } - if (((pglob->gl_flags & GLOB_MARK) && - pathend[-1] != SEP) && (S_ISDIR(sb.st_mode) - || (S_ISLNK(sb.st_mode) && - (g_stat(pathbuf, &sb, pglob) == 0) && + if ((pglob->gl_flags & GLOB_MARK) && + UNPROT(pathend[-1]) != SEP && + (S_ISDIR(sb.st_mode) || + (S_ISLNK(sb.st_mode) && + g_stat(pathbuf, &sb, pglob) == 0 && S_ISDIR(sb.st_mode)))) { if (pathend + 1 > pathend_last) { errno = 0; @@ -658,13 +668,13 @@ glob2(Char *pathbuf, Char *pathend, Char *pathend = EOS; } ++pglob->gl_matchc; - return (globextend(pathbuf, pglob, limit)); + return (globextend(pathbuf, pglob, limit, 0)); } /* Find end of next segment, copy tentatively to pathend. */ q = pathend; p = pattern; - while (*p != EOS && *p != SEP) { + while (*p != EOS && UNPROT(*p) != SEP) { if (ismeta(*p)) anymeta = 1; if (q + 1 > pathend_last) { @@ -677,7 +687,7 @@ glob2(Char *pathbuf, Char *pathend, Char if (!anymeta) { /* No expansion, do next segment. */ pathend = q; pattern = p; - while (*pattern == SEP) { + while (UNPROT(*pattern) == SEP) { if (pathend + 1 > pathend_last) { errno = 0; return (GLOB_NOSPACE); @@ -698,28 +708,29 @@ glob3(Char *pathbuf, Char *pathend, Char { struct dirent *dp; DIR *dirp; - int err; + int err, too_long, saverrno; char buf[MAXPATHLEN + MB_LEN_MAX - 1]; struct dirent *(*readdirfunc)(DIR *); - errno = 0; - if (pathend > pathend_last) + if (pathend > pathend_last) { + errno = 0; return (GLOB_NOSPACE); + } *pathend = EOS; + if (pglob->gl_errfunc != NULL && + g_Ctoc(pathbuf, buf, sizeof(buf), 0)) { + errno = 0; + return (GLOB_NOSPACE); + } + errno = 0; if ((dirp = g_opendir(pathbuf, pglob)) == NULL) { if (errno == ENOENT || errno == ENOTDIR) return (0); - if (pglob->gl_errfunc != NULL) { - if (g_Ctoc(pathbuf, buf, sizeof(buf))) { - errno = 0; - return (GLOB_NOSPACE); - } - if (pglob->gl_errfunc(buf, errno)) - return (GLOB_ABORTED); - } - if (pglob->gl_flags & GLOB_ERR) + if ((pglob->gl_errfunc != NULL && + pglob->gl_errfunc(buf, errno)) || + (pglob->gl_flags & GLOB_ERR)) return (GLOB_ABORTED); return (0); } @@ -732,6 +743,7 @@ glob3(Char *pathbuf, Char *pathend, Char else readdirfunc = readdir; + errno = 0; /* Search directory for matching names. */ while ((dp = (*readdirfunc)(dirp)) != NULL) { char *sc; @@ -743,23 +755,18 @@ glob3(Char *pathbuf, Char *pathend, Char if ((pglob->gl_flags & GLOB_LIMIT) && limit->l_readdir_cnt++ >= GLOB_LIMIT_READDIR) { errno = 0; - if (pathend + 1 > pathend_last) - err = GLOB_NOSPACE; - else { - *pathend++ = SEP; - *pathend = EOS; - err = GLOB_NOSPACE; - } + err = GLOB_NOSPACE; break; } /* Initial DOT must be matched literally. */ - if (dp->d_name[0] == '.' && *pattern != DOT) + if (dp->d_name[0] == '.' && UNPROT(*pattern) != DOT) continue; memset(&mbs, 0, sizeof(mbs)); dc = pathend; sc = dp->d_name; - while (dc < pathend_last) { + too_long = 1; + while (dc <= pathend_last) { clen = mbrtowc(&wc, sc, MB_LEN_MAX, &mbs); if (clen == (size_t)-1 || clen == (size_t)-2) { /* XXX See initial comment #2. */ @@ -767,11 +774,13 @@ glob3(Char *pathbuf, Char *pathend, Char clen = 1; memset(&mbs, 0, sizeof(mbs)); } - if ((*dc++ = wc) == EOS) + if ((*dc++ = wc) == EOS) { + too_long = 0; break; + } sc += clen; } - if (!match(pathend, pattern, restpattern)) { + if (too_long || !match(pathend, pattern, restpattern)) { *pathend = EOS; continue; } @@ -779,13 +788,24 @@ glob3(Char *pathbuf, Char *pathend, Char pglob, limit); if (err) break; + errno = 0; } + saverrno = errno; if (pglob->gl_flags & GLOB_ALTDIRFUNC) (*pglob->gl_closedir)(dirp); else closedir(dirp); - return (err); + errno = saverrno; + + if (err) + return (err); + + if (dp == NULL && errno != 0 && ((pglob->gl_errfunc != NULL && + pglob->gl_errfunc(buf, errno)) || (pglob->gl_flags & GLOB_ERR))) + return (GLOB_ABORTED); + + return (0); } @@ -804,7 +824,8 @@ glob3(Char *pathbuf, Char *pathend, Char * gl_pathv points to (gl_offs + gl_pathc + 1) items. */ static int -globextend(const Char *path, glob_t *pglob, struct glob_limit *limit) +globextend(const Char *path, glob_t *pglob, struct glob_limit *limit, + int prot) { char **pathv; size_t i, newsize, len; @@ -831,9 +852,11 @@ globextend(const Char *path, glob_t *pgl } pglob->gl_pathv = pathv; - for (p = path; *p++;) + for (p = path; *p++ != EOS;) continue; len = MB_CUR_MAX * (size_t)(p - path); /* XXX overallocation */ + if (prot) + len += (size_t)(p - path) - 1; limit->l_string_cnt += len; if ((pglob->gl_flags & GLOB_LIMIT) && limit->l_string_cnt >= GLOB_LIMIT_STRING) { @@ -841,7 +864,7 @@ globextend(const Char *path, glob_t *pgl return (GLOB_NOSPACE); } if ((copy = malloc(len)) != NULL) { - if (g_Ctoc(path, copy, len)) { + if (g_Ctoc(path, copy, len, prot)) { free(copy); errno = 0; return (GLOB_NOSPACE); @@ -935,7 +958,7 @@ g_opendir(Char *str, glob_t *pglob) if (*str == EOS) strcpy(buf, "."); else { - if (g_Ctoc(str, buf, sizeof(buf))) { + if (g_Ctoc(str, buf, sizeof(buf), 0)) { errno = ENAMETOOLONG; return (NULL); } @@ -952,7 +975,7 @@ g_lstat(Char *fn, struct stat *sb, glob_ { char buf[MAXPATHLEN + MB_LEN_MAX - 1]; - if (g_Ctoc(fn, buf, sizeof(buf))) { + if (g_Ctoc(fn, buf, sizeof(buf), 0)) { errno = ENAMETOOLONG; return (-1); } @@ -966,7 +989,7 @@ g_stat(Char *fn, struct stat *sb, glob_t { char buf[MAXPATHLEN + MB_LEN_MAX - 1]; - if (g_Ctoc(fn, buf, sizeof(buf))) { + if (g_Ctoc(fn, buf, sizeof(buf), 0)) { errno = ENAMETOOLONG; return (-1); } @@ -987,23 +1010,31 @@ g_strchr(const Char *str, wchar_t ch) } static int -g_Ctoc(const Char *str, char *buf, size_t len) +g_Ctoc(const Char *str, char *buf, size_t len, int prot) { mbstate_t mbs; size_t clen; + Char Ch; + Ch = *str; memset(&mbs, 0, sizeof(mbs)); while (len >= MB_CUR_MAX) { - clen = wcrtomb(buf, CHAR(*str), &mbs); + if (prot && isprot(Ch)) { + Ch = UNPROT(Ch); + *buf++ = '\\'; + len--; + continue; + } + clen = wcrtomb(buf, CHAR(Ch), &mbs); if (clen == (size_t)-1) { /* XXX See initial comment #2. */ - *buf = (char)CHAR(*str); + *buf = (char)CHAR(Ch); clen = 1; memset(&mbs, 0, sizeof(mbs)); } - if (CHAR(*str) == EOS) + if (CHAR(Ch) == EOS) return (0); - str++; + Ch = *++str; buf += clen; len -= clen; } From owner-svn-src-all@freebsd.org Wed Jul 20 07:32:11 2016 Return-Path: Delivered-To: svn-src-all@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 0D029B9C87A; Wed, 20 Jul 2016 07:32:11 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail107.syd.optusnet.com.au (mail107.syd.optusnet.com.au [211.29.132.53]) by mx1.freebsd.org (Postfix) with ESMTP id 3B97F17E2; Wed, 20 Jul 2016 07:32:09 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c122-106-149-109.carlnfd1.nsw.optusnet.com.au (c122-106-149-109.carlnfd1.nsw.optusnet.com.au [122.106.149.109]) by mail107.syd.optusnet.com.au (Postfix) with ESMTPS id 816BCD4A084; Wed, 20 Jul 2016 17:32:02 +1000 (AEST) Date: Wed, 20 Jul 2016 17:32:01 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Warner Losh cc: Jan Beich , Ed Maste , src-committers , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r303033 - head/share/man/man7 In-Reply-To: Message-ID: <20160720170316.T3729@besplex.bde.org> References: <201607191746.u6JHk9ov092270@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=EfU1O6SC c=1 sm=1 tr=0 a=R/f3m204ZbWUO/0rwPSMPw==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=tITsiVaQAAAA:8 a=6I5d2MoRAAAA:8 a=ST0UujPXQ9mVs6hp854A:9 a=CjuIK1q_8ugA:10 a=Rrwg1Sb9G9BBOlP1exfM:22 a=IjZwj45LgO3ly-622nXo:22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 07:32:11 -0000 On Tue, 19 Jul 2016, Warner Losh wrote: > On Tue, Jul 19, 2016 at 9:01 PM, Jan Beich wrote: >> Ed Maste writes: >> >>> +.Ss Predefined Macros >>> +The compiler provides a number of predefined macros. >>> +Some of these provide architecture-specific details and are explained below. >>> +Other macros, including those required by the language standard, are not >>> +included here. >> [...] >>> +cc -x c -Dm -E /dev/null >> >> Typo: -Dm vs. -dM >> >>> +.It Dv BYTE_ORDER Ta Either Dv BIG_ENDIAN or Dv LITTLE_ENDIAN . >> >> Are these really compiler macros? I think, defines them. These are non-compiler-predefined macros. They are namespace pollution in which is only there in the __BSD_VISIBLE case. > sys/endian.h defines them (and it implements that by including machine/endian.h > in part). > >> $ clang38 -x c -dM -E /dev/null | fgrep ENDIAN >> #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ >> #define __LITTLE_ENDIAN__ 1 >> #define __ORDER_BIG_ENDIAN__ 4321 >> #define __ORDER_LITTLE_ENDIAN__ 1234 >> #define __ORDER_PDP_ENDIAN__ 3412 These are the related compiler definitions in the implementation namespace. Their spelling is quite different and there are no consistency checks between values, but the ABI requires similar values. The values are as different as the spellings in some cases. __LITTLE_ENDIAN__ is 1, but FreeBSD's _LITTLE_ENDIAN is 1234. Actually, the semantics of these is very different too. FreeBSD's _LITTLE_ENDIAN corresponds to __ORDER_LITTLE_ENDIAN. >> $ gcc5 -x c -dM -E /dev/null | fgrep ENDIAN >> #define __ORDER_LITTLE_ENDIAN__ 1234 >> #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__ >> #define __ORDER_PDP_ENDIAN__ 3412 >> #define __ORDER_BIG_ENDIAN__ 4321 >> #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ gcc apparently doesn't even have the confusing __LITTLE_ENDIAN__. > This is why they are defined in machine/endian.h. Compilers have been > somewhat inconsistent in the past. But they aren't defined in machine/endian.h. Compilers had no trace of them in the past. Even gcc-4.2 in the present /usr/src doesn't have them. The FreeBSD macros should be used since they have been portable in BSD for at last 25 years, with a better spelling which is unsuitable for standards because it is not ugly enough to not be already in use with possibly inconsistent semantics. glibc is different again. In an old version (2.6), it uses __BYTE_ORDER where FreeBSD uses _BYTE_ORDER and compilers use __BYTE_ORDER__. It also defines the FreeBSD pollution BYTE_ORDER in string/endian.h and uses this in dangerous places like netinet/icmp6.h, but in the standard netinet/in.h which doesn't allow this, it is more careful and uses __BYTE_ORDER. The man page might need to be more careful about this. BYTE_ORDER is not a compiler predefine or standard spelling and determing the applicable spelling is time-consuming. Bruce From owner-svn-src-all@freebsd.org Wed Jul 20 07:33:49 2016 Return-Path: Delivered-To: svn-src-all@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 48AC9B9C8DB; Wed, 20 Jul 2016 07:33:49 +0000 (UTC) (envelope-from gahr@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 265A019E0; Wed, 20 Jul 2016 07:33:49 +0000 (UTC) (envelope-from gahr@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K7XmB4099395; Wed, 20 Jul 2016 07:33:48 GMT (envelope-from gahr@FreeBSD.org) Received: (from gahr@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K7Xmos099394; Wed, 20 Jul 2016 07:33:48 GMT (envelope-from gahr@FreeBSD.org) Message-Id: <201607200733.u6K7Xmos099394@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gahr set sender to gahr@FreeBSD.org using -f From: Pietro Cerutti Date: Wed, 20 Jul 2016 07:33:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303075 - stable/10/usr.bin/ul X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 07:33:49 -0000 Author: gahr (ports committer) Date: Wed Jul 20 07:33:48 2016 New Revision: 303075 URL: https://svnweb.freebsd.org/changeset/base/303075 Log: MFC r302558: Do not truncate lines longer than 512 chars. PR: 210344 Differential Revision: https://reviews.freebsd.org/D6881 Modified: stable/10/usr.bin/ul/ul.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/ul/ul.c ============================================================================== --- stable/10/usr.bin/ul/ul.c Wed Jul 20 07:30:44 2016 (r303074) +++ stable/10/usr.bin/ul/ul.c Wed Jul 20 07:33:48 2016 (r303075) @@ -78,7 +78,9 @@ struct CHAR { int c_width; /* width or -1 if multi-column char. filler */ } ; -static struct CHAR obuf[MAXBUF]; +static struct CHAR sobuf[MAXBUF]; /* static output buffer */ +static struct CHAR *obuf = sobuf; +static int buflen = MAXBUF; static int col, maxcol; static int mode; static int halfpos; @@ -155,6 +157,9 @@ main(int argc, char **argv) else filter(f); } + if (obuf != sobuf) { + free(obuf); + } exit(0); } @@ -170,128 +175,148 @@ filter(FILE *f) { wint_t c; int i, w; + int copy; + + copy = 0; + + while ((c = getwc(f)) != WEOF) { + if (col == buflen) { + if (obuf == sobuf) { + obuf = NULL; + copy = 1; + } + obuf = realloc(obuf, sizeof(*obuf) * 2 * buflen); + if (obuf == NULL) { + obuf = sobuf; + break; + } else if (copy) { + memcpy(obuf, sobuf, sizeof(*obuf) * buflen); + copy = 0; + } + bzero((char *)(obuf + buflen), sizeof(*obuf) * buflen); + buflen *= 2; + } + switch(c) { + case '\b': + if (col > 0) + col--; + continue; - while ((c = getwc(f)) != WEOF && col < MAXBUF) switch(c) { + case '\t': + col = (col+8) & ~07; + if (col > maxcol) + maxcol = col; + continue; - case '\b': - if (col > 0) - col--; - continue; - - case '\t': - col = (col+8) & ~07; - if (col > maxcol) - maxcol = col; - continue; - - case '\r': - col = 0; - continue; - - case SO: - mode |= ALTSET; - continue; - - case SI: - mode &= ~ALTSET; - continue; - - case IESC: - switch (c = getwc(f)) { - - case HREV: - if (halfpos == 0) { - mode |= SUPERSC; - halfpos--; - } else if (halfpos > 0) { - mode &= ~SUBSC; - halfpos--; - } else { - halfpos = 0; - reverse(); - } + case '\r': + col = 0; continue; - case HFWD: - if (halfpos == 0) { - mode |= SUBSC; - halfpos++; - } else if (halfpos < 0) { - mode &= ~SUPERSC; - halfpos++; - } else { - halfpos = 0; - fwd(); - } + case SO: + mode |= ALTSET; continue; - case FREV: - reverse(); + case SI: + mode &= ~ALTSET; continue; - default: - errx(1, "unknown escape sequence in input: %o, %o", IESC, c); - } - continue; + case IESC: + switch (c = getwc(f)) { - case '_': - if (obuf[col].c_char || obuf[col].c_width < 0) { - while (col > 0 && obuf[col].c_width < 0) - col--; - w = obuf[col].c_width; - for (i = 0; i < w; i++) - obuf[col++].c_mode |= UNDERL | mode; + case HREV: + if (halfpos == 0) { + mode |= SUPERSC; + halfpos--; + } else if (halfpos > 0) { + mode &= ~SUBSC; + halfpos--; + } else { + halfpos = 0; + reverse(); + } + continue; + + case HFWD: + if (halfpos == 0) { + mode |= SUBSC; + halfpos++; + } else if (halfpos < 0) { + mode &= ~SUPERSC; + halfpos++; + } else { + halfpos = 0; + fwd(); + } + continue; + + case FREV: + reverse(); + continue; + + default: + errx(1, "unknown escape sequence in input: %o, %o", IESC, c); + } + continue; + + case '_': + if (obuf[col].c_char || obuf[col].c_width < 0) { + while (col > 0 && obuf[col].c_width < 0) + col--; + w = obuf[col].c_width; + for (i = 0; i < w; i++) + obuf[col++].c_mode |= UNDERL | mode; + if (col > maxcol) + maxcol = col; + continue; + } + obuf[col].c_char = '_'; + obuf[col].c_width = 1; + /* FALLTHROUGH */ + case ' ': + col++; if (col > maxcol) maxcol = col; continue; - } - obuf[col].c_char = '_'; - obuf[col].c_width = 1; - /* FALLTHROUGH */ - case ' ': - col++; - if (col > maxcol) - maxcol = col; - continue; - case '\n': - flushln(); - continue; + case '\n': + flushln(); + continue; - case '\f': - flushln(); - putwchar('\f'); - continue; + case '\f': + flushln(); + putwchar('\f'); + continue; - default: - if ((w = wcwidth(c)) <= 0) /* non printing */ + default: + if ((w = wcwidth(c)) <= 0) /* non printing */ + continue; + if (obuf[col].c_char == '\0') { + obuf[col].c_char = c; + for (i = 0; i < w; i++) + obuf[col + i].c_mode = mode; + obuf[col].c_width = w; + for (i = 1; i < w; i++) + obuf[col + i].c_width = -1; + } else if (obuf[col].c_char == '_') { + obuf[col].c_char = c; + for (i = 0; i < w; i++) + obuf[col + i].c_mode |= UNDERL|mode; + obuf[col].c_width = w; + for (i = 1; i < w; i++) + obuf[col + i].c_width = -1; + } else if ((wint_t)obuf[col].c_char == c) { + for (i = 0; i < w; i++) + obuf[col + i].c_mode |= BOLD|mode; + } else { + w = obuf[col].c_width; + for (i = 0; i < w; i++) + obuf[col + i].c_mode = mode; + } + col += w; + if (col > maxcol) + maxcol = col; continue; - if (obuf[col].c_char == '\0') { - obuf[col].c_char = c; - for (i = 0; i < w; i++) - obuf[col + i].c_mode = mode; - obuf[col].c_width = w; - for (i = 1; i < w; i++) - obuf[col + i].c_width = -1; - } else if (obuf[col].c_char == '_') { - obuf[col].c_char = c; - for (i = 0; i < w; i++) - obuf[col + i].c_mode |= UNDERL|mode; - obuf[col].c_width = w; - for (i = 1; i < w; i++) - obuf[col + i].c_width = -1; - } else if ((wint_t)obuf[col].c_char == c) { - for (i = 0; i < w; i++) - obuf[col + i].c_mode |= BOLD|mode; - } else { - w = obuf[col].c_width; - for (i = 0; i < w; i++) - obuf[col + i].c_mode = mode; } - col += w; - if (col > maxcol) - maxcol = col; - continue; } if (ferror(f)) err(1, NULL); @@ -409,7 +434,7 @@ static void initbuf(void) { - bzero((char *)obuf, sizeof (obuf)); /* depends on NORMAL == 0 */ + bzero((char *)obuf, buflen * sizeof(*obuf)); /* depends on NORMAL == 0 */ col = 0; maxcol = 0; mode &= ALTSET; From owner-svn-src-all@freebsd.org Wed Jul 20 07:44:33 2016 Return-Path: Delivered-To: svn-src-all@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 198F0B9CEFE; Wed, 20 Jul 2016 07:44:33 +0000 (UTC) (envelope-from koobs.freebsd@gmail.com) Received: from mail-pa0-x229.google.com (mail-pa0-x229.google.com [IPv6:2607:f8b0:400e:c03::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DB89711EA; Wed, 20 Jul 2016 07:44:32 +0000 (UTC) (envelope-from koobs.freebsd@gmail.com) Received: by mail-pa0-x229.google.com with SMTP id fi15so15793710pac.1; Wed, 20 Jul 2016 00:44:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:reply-to:subject:references:to:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=UHN6yCn41HEEcjSdVLd/VhnYrF1UYxm86NaEn+K5L/U=; b=YFjVVAGmIRDpET6wOtvNRdB3Yb91XePtli5xGgcr5uKzVNRa6XxgZBLJTVneKXe/l2 hoZuOexqWznfGtDm2uRgYXYiZnNx/prB6vw4SXWo+KqalSW76cJrWQPf8RdBJhP/rm9I LH32h+TxMjEJyZx/dlG2lHNnkXxUo56fQyy7HeBrjZY7cdBc8P3jeJFXLWteHAq17GCX uIF+QFlIlNK3p8G9OADed6nnEvtnahiuO5HbPw1Y52JiAZ5mFRHo39KamLwM7Fry/k7L NE4Ozh59Esq2uqspSjrv/6wGGuhWICTAnhfklYugdTE2TD4IonOb86e7fZUGwT4dIedG 2oAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:reply-to:subject:references:to:from :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding; bh=UHN6yCn41HEEcjSdVLd/VhnYrF1UYxm86NaEn+K5L/U=; b=dCKIPfEuS3w/Qyr0HUOK9T3xBzahGkuS62caMylqA6FhGU3KuRtylHrGGnxh24OrHT ayC0+TayQsSPUpLsksnziW5FOEJ1xG9AerZ/2PZSuRgjw19u1Q9/Cbpo7S50gGJ1Zozd J8slMgvyWFH5xrFo2wT2SsGJghng7uNABd9tYRmX5CvGFeK3xH/oo9Q2/iNAD/3OQxT0 MzEHuFzE9kJq3mGOl5RYb8eoB2kHqs0vBL6WP9Kv7BudLa6zxWtP+jDTvFQq3U7ZsYex e5B8AhzaxhqipUjiQGmGW38XSP3Z1JYgttjBjUDm7kfyBGUFqES5DMZofYS2aW2VUBSS 9z4Q== X-Gm-Message-State: ALyK8tIRCRVAbpTOqRUr/yCd3y48F+TlG32N53ru+zwv8NxTZItva1zglXgLK1+4pVnwIw== X-Received: by 10.66.219.105 with SMTP id pn9mr72291097pac.25.1469000672192; Wed, 20 Jul 2016 00:44:32 -0700 (PDT) Received: from ?IPv6:2001:44b8:31ae:7b01:f985:3c4b:2a0c:8bea? (2001-44b8-31ae-7b01-f985-3c4b-2a0c-8bea.static.ipv6.internode.on.net. [2001:44b8:31ae:7b01:f985:3c4b:2a0c:8bea]) by smtp.gmail.com with ESMTPSA id 9sm2321535pfo.74.2016.07.20.00.44.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Jul 2016 00:44:31 -0700 (PDT) Sender: Kubilay Kocak Reply-To: koobs@FreeBSD.org Subject: Re: svn commit: r303043 - in head: share/man/man4 sys/dev/vt sys/dev/vt/hw/fb References: <201607191920.u6JJKm7R026421@repo.freebsd.org> To: "Conrad E. Meyer" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Kubilay Kocak Message-ID: <1c485351-51f3-99f1-b7da-0745030dd1e6@FreeBSD.org> Date: Wed, 20 Jul 2016 17:44:27 +1000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Thunderbird/47.0 MIME-Version: 1.0 In-Reply-To: <201607191920.u6JJKm7R026421@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 07:44:33 -0000 On 20/07/2016 5:20 AM, Conrad E. Meyer wrote: > Author: cem > Date: Tue Jul 19 19:20:47 2016 > New Revision: 303043 > URL: https://svnweb.freebsd.org/changeset/base/303043 > > Log: > Increase vt(4) framebuffer maximum size > > And rename "DEFAULT" constants to the more accurate "MAX." > > PR: 210382 > Submitted by: Felix > Reviewed by: wblock, cem > Tested by: Dave Cottlehuber Can MFC? There are high hopes for this coming out in 11.0 / next 10.x re is cc'd on the original bugzilla issue > Modified: > head/share/man/man4/vt.4 > head/sys/dev/vt/hw/fb/vt_fb.c > head/sys/dev/vt/vt.h > head/sys/dev/vt/vt_core.c > > Modified: head/share/man/man4/vt.4 > ============================================================================== > --- head/share/man/man4/vt.4 Tue Jul 19 19:19:03 2016 (r303042) > +++ head/share/man/man4/vt.4 Tue Jul 19 19:20:47 2016 (r303043) > @@ -24,7 +24,7 @@ > .\" > .\" $FreeBSD$ > .\" > -.Dd June 21, 2016 > +.Dd July 19, 2016 > .Dt "VIRTUAL TERMINALS" 4 > .Os > .Sh NAME > @@ -36,8 +36,8 @@ > .Cd "options VT_MAXWINDOWS=N" > .Cd "options VT_ALT_TO_ESC_HACK=1" > .Cd "options VT_TWOBUTTON_MOUSE" > -.Cd "options VT_FB_DEFAULT_WIDTH=X" > -.Cd "options VT_FB_DEFAULT_HEIGHT=Y" > +.Cd "options VT_FB_MAX_WIDTH=X" > +.Cd "options VT_FB_MAX_HEIGHT=Y" > .Cd "options SC_NO_CUTPASTE" > .Cd "device vt" > .Pp > > Modified: head/sys/dev/vt/hw/fb/vt_fb.c > ============================================================================== > --- head/sys/dev/vt/hw/fb/vt_fb.c Tue Jul 19 19:19:03 2016 (r303042) > +++ head/sys/dev/vt/hw/fb/vt_fb.c Tue Jul 19 19:20:47 2016 (r303043) > @@ -416,10 +416,10 @@ vt_fb_init(struct vt_device *vd) > int err; > > info = vd->vd_softc; > - vd->vd_height = MIN(VT_FB_DEFAULT_HEIGHT, info->fb_height); > + vd->vd_height = MIN(VT_FB_MAX_HEIGHT, info->fb_height); > margin = (info->fb_height - vd->vd_height) >> 1; > vd->vd_transpose = margin * info->fb_stride; > - vd->vd_width = MIN(VT_FB_DEFAULT_WIDTH, info->fb_width); > + vd->vd_width = MIN(VT_FB_MAX_WIDTH, info->fb_width); > margin = (info->fb_width - vd->vd_width) >> 1; > vd->vd_transpose += margin * (info->fb_bpp / NBBY); > vd->vd_video_dev = info->fb_video_dev; > > Modified: head/sys/dev/vt/vt.h > ============================================================================== > --- head/sys/dev/vt/vt.h Tue Jul 19 19:19:03 2016 (r303042) > +++ head/sys/dev/vt/vt.h Tue Jul 19 19:20:47 2016 (r303043) > @@ -377,11 +377,11 @@ void vt_upgrade(struct vt_device *vd); > #define PIXEL_WIDTH(w) ((w) / 8) > #define PIXEL_HEIGHT(h) ((h) / 16) > > -#ifndef VT_FB_DEFAULT_WIDTH > -#define VT_FB_DEFAULT_WIDTH 2048 > +#ifndef VT_FB_MAX_WIDTH > +#define VT_FB_MAX_WIDTH 4096 > #endif > -#ifndef VT_FB_DEFAULT_HEIGHT > -#define VT_FB_DEFAULT_HEIGHT 1200 > +#ifndef VT_FB_MAX_HEIGHT > +#define VT_FB_MAX_HEIGHT 2400 > #endif > > /* name argument is not used yet. */ > > Modified: head/sys/dev/vt/vt_core.c > ============================================================================== > --- head/sys/dev/vt/vt_core.c Tue Jul 19 19:19:03 2016 (r303042) > +++ head/sys/dev/vt/vt_core.c Tue Jul 19 19:20:47 2016 (r303043) > @@ -181,8 +181,8 @@ static void vt_resume_handler(void *priv > > SET_DECLARE(vt_drv_set, struct vt_driver); > > -#define _VTDEFH MAX(100, PIXEL_HEIGHT(VT_FB_DEFAULT_HEIGHT)) > -#define _VTDEFW MAX(200, PIXEL_WIDTH(VT_FB_DEFAULT_WIDTH)) > +#define _VTDEFH MAX(100, PIXEL_HEIGHT(VT_FB_MAX_HEIGHT)) > +#define _VTDEFW MAX(200, PIXEL_WIDTH(VT_FB_MAX_WIDTH)) > > struct terminal vt_consterm; > static struct vt_window vt_conswindow; > _______________________________________________ > svn-src-head@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" > From owner-svn-src-all@freebsd.org Wed Jul 20 09:29:40 2016 Return-Path: Delivered-To: svn-src-all@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 E79E0B9F52C; Wed, 20 Jul 2016 09:29:40 +0000 (UTC) (envelope-from royger@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 9D9D0182F; Wed, 20 Jul 2016 09:29:40 +0000 (UTC) (envelope-from royger@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K9TdwP040646; Wed, 20 Jul 2016 09:29:39 GMT (envelope-from royger@FreeBSD.org) Received: (from royger@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K9Td8S040645; Wed, 20 Jul 2016 09:29:39 GMT (envelope-from royger@FreeBSD.org) Message-Id: <201607200929.u6K9Td8S040645@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: royger set sender to royger@FreeBSD.org using -f From: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Date: Wed, 20 Jul 2016 09:29:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303076 - head/sys/dev/fb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 09:29:41 -0000 Author: royger Date: Wed Jul 20 09:29:39 2016 New Revision: 303076 URL: https://svnweb.freebsd.org/changeset/base/303076 Log: vesa: fix panic on suspend Fix the following panic seen when migrating a FreeBSD guest on Xen: panic: mtx_lock() of destroyed mutex @ /usr/src/sys/dev/fb/vesa.c:541 cpuid = 0 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe001d2fa4f0 vpanic() at vpanic+0x182/frame 0xfffffe001d2fa570 kassert_panic() at kassert_panic+0x126/frame 0xfffffe001d2fa5e0 __mtx_lock_flags() at __mtx_lock_flags+0x15b/frame 0xfffffe001d2fa630 vesa_bios_save_restore() at vesa_bios_save_restore+0x78/frame 0xfffffe001d2fa680 vga_suspend() at vga_suspend+0xa3/frame 0xfffffe001d2fa6b0 isavga_suspend() at isavga_suspend+0x1d/frame 0xfffffe001d2fa6d0 bus_generic_suspend_child() at bus_generic_suspend_child+0x44/frame [...] This is caused because vga_sub_configure (which is called if the VGA adapter is attached after VESA tried to initialize), points to vesa_configure, which doesn't initialize the VESA mutex. In order to fix it, make sure vga_sub_configure points to vesa_load, so that all the needed vesa components are properly initialized. Sponsored by: Citrix Systems R&D MFC after: 3 days PR: 209203 Reviewed by: dumbbell Differential revision: https://reviews.freebsd.org/D7196 Modified: head/sys/dev/fb/vesa.c Modified: head/sys/dev/fb/vesa.c ============================================================================== --- head/sys/dev/fb/vesa.c Wed Jul 20 07:33:48 2016 (r303075) +++ head/sys/dev/fb/vesa.c Wed Jul 20 09:29:39 2016 (r303076) @@ -134,6 +134,7 @@ static vi_fill_rect_t vesa_fill_rect; static vi_bitblt_t vesa_bitblt; static vi_diag_t vesa_diag; static int vesa_bios_info(int level); +static int vesa_late_load(int flags); static video_switch_t vesavidsw = { vesa_probe, @@ -1141,7 +1142,7 @@ vesa_configure(int flags) * initialization for now and try again later. */ if (adp == NULL) { - vga_sub_configure = vesa_configure; + vga_sub_configure = vesa_late_load; return (ENODEV); } @@ -1909,6 +1910,17 @@ vesa_bios_info(int level) static int vesa_load(void) { + + return (vesa_late_load(0)); +} + +/* + * To be called from the vga_sub_configure hook in case the VGA adapter is + * not found when VESA is loaded. + */ +static int +vesa_late_load(int flags) +{ int error; if (vesa_init_done) @@ -1918,7 +1930,7 @@ vesa_load(void) /* locate a VGA adapter */ vesa_adp = NULL; - error = vesa_configure(0); + error = vesa_configure(flags); if (error == 0) vesa_bios_info(bootverbose); From owner-svn-src-all@freebsd.org Wed Jul 20 09:47:37 2016 Return-Path: Delivered-To: svn-src-all@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 08086B9FCAD; Wed, 20 Jul 2016 09:47:37 +0000 (UTC) (envelope-from avg@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 BA56D163D; Wed, 20 Jul 2016 09:47:36 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K9lZUw049728; Wed, 20 Jul 2016 09:47:35 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K9lZXg049725; Wed, 20 Jul 2016 09:47:35 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607200947.u6K9lZXg049725@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 20 Jul 2016 09:47:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303077 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 09:47:37 -0000 Author: avg Date: Wed Jul 20 09:47:35 2016 New Revision: 303077 URL: https://svnweb.freebsd.org/changeset/base/303077 Log: 7072 zfs fails to expand if lun added when os is in shutdown state illumos/illumos-gate@c39a2aae1e2c439d156021edfc20910dad7f9891 https://github.com/illumos/illumos-gate/commit/c39a2aae1e2c439d156021edfc20910dad7f9891 https://www.illumos.org/issues/7072 upstream: 38733 zfs fails to expand if lun added when os is in shutdown state DLPX-36910 spares and caches should not display expandable space DLPX-39262 vdev_disk_open spam zfs_dbgmsg buffer Reviewed by: Igor Kozhukhov Reviewed by: Dan Kimmel Reviewed by: Matthew Ahrens Reviewed by: Prakash Surya Reviewed by: Alex Reece Approved by: Dan McDonald Author: George Wilson Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_disk.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c Wed Jul 20 09:29:39 2016 (r303076) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/metaslab.c Wed Jul 20 09:47:35 2016 (r303077) @@ -381,7 +381,13 @@ metaslab_class_expandable_space(metaslab continue; } - space += tvd->vdev_max_asize - tvd->vdev_asize; + /* + * Calculate if we have enough space to add additional + * metaslabs. We report the expandable space in terms + * of the metaslab size since that's the unit of expansion. + */ + space += P2ALIGN(tvd->vdev_max_asize - tvd->vdev_asize, + 1ULL << tvd->vdev_ms_shift); } spa_config_exit(mc->mc_spa, SCL_VDEV, FTAG); return (space); Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c Wed Jul 20 09:29:39 2016 (r303076) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c Wed Jul 20 09:47:35 2016 (r303077) @@ -2731,6 +2731,7 @@ vdev_get_stats(vdev_t *vd, vdev_stat_t * { spa_t *spa = vd->vdev_spa; vdev_t *rvd = spa->spa_root_vdev; + vdev_t *tvd = vd->vdev_top; ASSERT(spa_config_held(spa, SCL_ALL, RW_READER) != 0); @@ -2741,7 +2742,15 @@ vdev_get_stats(vdev_t *vd, vdev_stat_t * vs->vs_rsize = vdev_get_min_asize(vd); if (vd->vdev_ops->vdev_op_leaf) vs->vs_rsize += VDEV_LABEL_START_SIZE + VDEV_LABEL_END_SIZE; - vs->vs_esize = vd->vdev_max_asize - vd->vdev_asize; + /* + * Report expandable space on top-level, non-auxillary devices only. + * The expandable space is reported in terms of metaslab sized units + * since that determines how much space the pool can expand. + */ + if (vd->vdev_aux == NULL && tvd != NULL) { + vs->vs_esize = P2ALIGN(vd->vdev_max_asize - vd->vdev_asize, + 1ULL << tvd->vdev_ms_shift); + } if (vd->vdev_aux == NULL && vd == vd->vdev_top && !vd->vdev_ishole) { vs->vs_fragmentation = vd->vdev_mg->mg_fragmentation; } Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_disk.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_disk.c Wed Jul 20 09:29:39 2016 (r303076) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/vdev_disk.c Wed Jul 20 09:47:35 2016 (r303077) @@ -241,34 +241,6 @@ vdev_disk_rele(vdev_t *vd) } } -static uint64_t -vdev_disk_get_space(vdev_t *vd, uint64_t capacity, uint_t blksz) -{ - ASSERT(vd->vdev_wholedisk); - - vdev_disk_t *dvd = vd->vdev_tsd; - dk_efi_t dk_ioc; - efi_gpt_t *efi; - uint64_t avail_space = 0; - int efisize = EFI_LABEL_SIZE * 2; - - dk_ioc.dki_data = kmem_alloc(efisize, KM_SLEEP); - dk_ioc.dki_lba = 1; - dk_ioc.dki_length = efisize; - dk_ioc.dki_data_64 = (uint64_t)(uintptr_t)dk_ioc.dki_data; - efi = dk_ioc.dki_data; - - if (ldi_ioctl(dvd->vd_lh, DKIOCGETEFI, (intptr_t)&dk_ioc, - FKIOCTL, kcred, NULL) == 0) { - uint64_t efi_altern_lba = LE_64(efi->efi_gpt_AlternateLBA); - - if (capacity > efi_altern_lba) - avail_space = (capacity - efi_altern_lba) * blksz; - } - kmem_free(dk_ioc.dki_data, efisize); - return (avail_space); -} - /* * We want to be loud in DEBUG kernels when DKIOCGMEDIAINFOEXT fails, or when * even a fallback to DKIOCGMEDIAINFO fails. @@ -559,10 +531,7 @@ skip_open: * Adjust max_psize upward accordingly since we know * we own the whole disk now. */ - *max_psize += vdev_disk_get_space(vd, capacity, blksz); - zfs_dbgmsg("capacity change: vdev %s, psize %llu, " - "max_psize %llu", vd->vdev_path, *psize, - *max_psize); + *max_psize = capacity * blksz; } /* From owner-svn-src-all@freebsd.org Wed Jul 20 09:49:11 2016 Return-Path: Delivered-To: svn-src-all@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 15EE1B9FE13; Wed, 20 Jul 2016 09:49:11 +0000 (UTC) (envelope-from avg@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 E8094183A; Wed, 20 Jul 2016 09:49:10 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K9nAAA049821; Wed, 20 Jul 2016 09:49:10 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K9nAtD049820; Wed, 20 Jul 2016 09:49:10 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607200949.u6K9nAtD049820@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 20 Jul 2016 09:49:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303078 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 09:49:11 -0000 Author: avg Date: Wed Jul 20 09:49:09 2016 New Revision: 303078 URL: https://svnweb.freebsd.org/changeset/base/303078 Log: 7086 ztest attempts dva_get_dsize_sync on an embedded blockpointer illumos/illumos-gate@926549256b71acd595f69b236779ff6b78fa08ef https://github.com/illumos/illumos-gate/commit/926549256b71acd595f69b236779ff6b78fa08ef https://www.illumos.org/issues/7086 In dbuf_dirty(), we need to grab the dn_struct_rwlock before looking at the db_blkptr, to prevent it from being changed by syncing context. Otherwise we may see that ztest got a segfault from this stack: libzpool.so.1`dva_get_dsize_sync+0x98(872f000, b32b240, fed7811b, 0, b4cda20, 0) libzpool.so.1`bp_get_dsize+0x60(872f000, b32b240, 0, 97cb780, 9d4c1a8, 0) libzpool.so.1`dbuf_dirty+0x9b3(ce0a100, 97cb780, 9, fecd2530) libzpool.so.1`dmu_buf_will_dirty+0xc3(ce0a100, 97cb780, ea293d6c, 1) libzpool.so.1`zap_lockdir+0x1a0(8aaa3c0, 1, 0, 97cb780, 1, 1) libzpool.so.1`zap_remove_norm+0x30(8aaa3c0, 1, 0, 8728b10, 0, 97cb780) libzpool.so.1`zap_remove+0x29(8aaa3c0, 1, 0, 8728b10, 97cb780, a) ztest_replay_remove+0x225(ea294588, 8728ae8, 0, 38010000, 0, 0) ztest_remove+0x9f(ea294588, ea293f50, 4, 3) ztest_object_init+0x78(ea294588, ea293f50, 4e0, 1) ztest_dmu_object_alloc_free+0x71(ea294588, 13) ztest_dmu_objset_create_destroy+0x224(80cef08, 13, 0, 805d36c, 9017ad44, 0) ztest_execute+0x89(a, 807c720, 13, 0) ztest_thread+0xea(13, 0, 0, 0) libc.so.1`_thrp_setup+0x88(f0983240) libc.so.1`_lwp_start(f0983240, 0, 0, 0, 0, 0) Looking into it a bit, we see that this is an embedded blockpointer, so BP_GET_NDVAS should have returned 0: b32b240::blkptr EMBEDDED [L0 ZAP_OTHER] et=0 LZ4 size=200L/4aP birth=80L Instead, it looks like another thread is modifying this blockpointer: b32b240::ugrep | ::whatis f47a0e0c is in [ stack tid=0x19f ] ebd6ec40 is in [ stack tid=0x226 ] ea293bd0 is in [ stack tid=0x244 ] ea293be4 is in [ stack tid=0x244 ] Reviewed by: Prakash Surya Reviewed by: George Wilson Approved by: Robert Mustacchi Author: Matthew Ahrens Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c Wed Jul 20 09:47:35 2016 (r303077) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c Wed Jul 20 09:49:09 2016 (r303078) @@ -1662,7 +1662,20 @@ dbuf_dirty(dmu_buf_impl_t *db, dmu_tx_t dnode_setdirty(dn, tx); DB_DNODE_EXIT(db); return (dr); - } else if (do_free_accounting) { + } + + /* + * The dn_struct_rwlock prevents db_blkptr from changing + * due to a write from syncing context completing + * while we are running, so we want to acquire it before + * looking at db_blkptr. + */ + if (!RW_WRITE_HELD(&dn->dn_struct_rwlock)) { + rw_enter(&dn->dn_struct_rwlock, RW_READER); + drop_struct_lock = TRUE; + } + + if (do_free_accounting) { blkptr_t *bp = db->db_blkptr; int64_t willfree = (bp && !BP_IS_HOLE(bp)) ? bp_get_dsize(os->os_spa, bp) : db->db.db_size; @@ -1678,11 +1691,6 @@ dbuf_dirty(dmu_buf_impl_t *db, dmu_tx_t dnode_willuse_space(dn, -willfree, tx); } - if (!RW_WRITE_HELD(&dn->dn_struct_rwlock)) { - rw_enter(&dn->dn_struct_rwlock, RW_READER); - drop_struct_lock = TRUE; - } - if (db->db_level == 0) { dnode_new_blkid(dn, db->db_blkid, tx, drop_struct_lock); ASSERT(dn->dn_maxblkid >= db->db_blkid); From owner-svn-src-all@freebsd.org Wed Jul 20 09:51:34 2016 Return-Path: Delivered-To: svn-src-all@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 BE6E6B9FF66; Wed, 20 Jul 2016 09:51:34 +0000 (UTC) (envelope-from avg@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 930D41B84; Wed, 20 Jul 2016 09:51:34 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K9pXx9049969; Wed, 20 Jul 2016 09:51:33 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K9pXv5049968; Wed, 20 Jul 2016 09:51:33 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607200951.u6K9pXv5049968@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 20 Jul 2016 09:51:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303079 - vendor/illumos/dist/cmd/ztest X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 09:51:34 -0000 Author: avg Date: Wed Jul 20 09:51:33 2016 New Revision: 303079 URL: https://svnweb.freebsd.org/changeset/base/303079 Log: 7147 ztest: ztest_ddt_repair fails with ztest_pattern_match assertion illumos/illumos-gate@aab80726335c76a7cae32c7300890248d73a51e3 https://github.com/illumos/illumos-gate/commit/aab80726335c76a7cae32c7300890248d73a51e3 https://www.illumos.org/issues/7147 Here's the dbuf we're currently reading: 966f200::dbuf addr object lvl blkid holds os 966f200 4 0 0 1 ztest/ds_3 966f200::print dmu_buf_t db_data db_data = 0x9ae0400 0x9ae0400/10J 0x9ae0400: c1c7ced932020d c1c7ced932020d c1c7ced932020d c1c7ced932020d c1c7ced932020d c1c7ced932020d c1c7ced932020d c1c7ced932020d c1c7ced932020d c1c7ced932020d The pattern we're expecting is actually this: a34ae10b5f2db2. If we attempt to read the block on disk we find that it has matches what ztest_ddt_repair() would have written: ~c1c7ced932020d=J ff3e383126cdfdf2 966f200::print dmu_buf_impl_t db_blkptr | ::blkptr DVA0=<0:71d3c00:800> [L0 UINT64_OTHER] SHA256 OFF LE contiguous dedup single size=400L/400P birth=55L/55P fill=1 cksum=18486450d3ce8c6d:75a72f4bbf117b0f:2d3a226314eb5650:2eb0fd68648b1af0 1. zdb -U /rpool/tmp/zpool.cache -R ztest 0:71d3c00:800 | head Found vdev type: mirror 0:71d3c00:800 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 000000: ff3e383126cdfdf2 ff3e383126cdfdf2 ...&18>....&18>. 000010: ff3e383126cdfdf2 ff3e383126cdfdf2 ...&18>....&18>. 000020: ff3e383126cdfdf2 ff3e383126cdfdf2 ...&18>....&18>. 000030: ff3e383126cdfdf2 ff3e383126cdfdf2 ...&18>....&18>. 000040: ff3e383126cdfdf2 ff3e383126cdfdf2 ...&18>....&18>. 000050: ff3e383126cdfdf2 ff3e383126cdfdf2 ...&18>....&18>. Reviewed by: Matthew Ahrens Reviewed by: Prakash Surya Approved by: Robert Mustacchi Author: George Wilson Modified: vendor/illumos/dist/cmd/ztest/ztest.c Modified: vendor/illumos/dist/cmd/ztest/ztest.c ============================================================================== --- vendor/illumos/dist/cmd/ztest/ztest.c Wed Jul 20 09:49:09 2016 (r303078) +++ vendor/illumos/dist/cmd/ztest/ztest.c Wed Jul 20 09:51:33 2016 (r303079) @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011, 2015 by Delphix. All rights reserved. + * Copyright (c) 2011, 2016 by Delphix. All rights reserved. * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2013 Steven Hartland. All rights reserved. * Copyright (c) 2014 Integros [integros.com] @@ -5021,9 +5021,14 @@ ztest_ddt_repair(ztest_ds_t *zd, uint64_ return; } + dmu_objset_stats_t dds; + dsl_pool_config_enter(dmu_objset_pool(os), FTAG); + dmu_objset_fast_stat(os, &dds); + dsl_pool_config_exit(dmu_objset_pool(os), FTAG); + object = od[0].od_object; blocksize = od[0].od_blocksize; - pattern = zs->zs_guid ^ dmu_objset_fsid_guid(os); + pattern = zs->zs_guid ^ dds.dds_guid; ASSERT(object != 0); @@ -5625,9 +5630,13 @@ ztest_run(ztest_shared_t *zs) metaslab_preload_limit = ztest_random(20) + 1; ztest_spa = spa; + dmu_objset_stats_t dds; VERIFY0(dmu_objset_own(ztest_opts.zo_pool, DMU_OST_ANY, B_TRUE, FTAG, &os)); - zs->zs_guid = dmu_objset_fsid_guid(os); + dsl_pool_config_enter(dmu_objset_pool(os), FTAG); + dmu_objset_fast_stat(os, &dds); + dsl_pool_config_exit(dmu_objset_pool(os), FTAG); + zs->zs_guid = dds.dds_guid; dmu_objset_disown(os, FTAG); spa->spa_dedup_ditto = 2 * ZIO_DEDUPDITTO_MIN; From owner-svn-src-all@freebsd.org Wed Jul 20 09:53:47 2016 Return-Path: Delivered-To: svn-src-all@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 53EEAB9C0C6; Wed, 20 Jul 2016 09:53:47 +0000 (UTC) (envelope-from avg@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 31DA81DCD; Wed, 20 Jul 2016 09:53:47 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K9rkec053388; Wed, 20 Jul 2016 09:53:46 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K9rkVT053387; Wed, 20 Jul 2016 09:53:46 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607200953.u6K9rkVT053387@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 20 Jul 2016 09:53:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303080 - vendor/illumos/dist/cmd/ztest X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 09:53:47 -0000 Author: avg Date: Wed Jul 20 09:53:46 2016 New Revision: 303080 URL: https://svnweb.freebsd.org/changeset/base/303080 Log: 6451 ztest fails due to checksum errors illumos/illumos-gate@f9eb9fdf196b6ed476e4ffc69cecd8b0da3cb7e7 https://github.com/illumos/illumos-gate/commit/f9eb9fdf196b6ed476e4ffc69cecd8b0da3cb7e7 https://www.illumos.org/issues/6451 Sometimes ztest fails because zdb detects checksum errors. e.g.: Traversing all blocks to verify checksums and verify nothing leaked ... zdb_blkptr_cb: Got error 50 reading <71, 47, 0, 8000160> DVA0=<0:1cc2000: 180000> [L0 other uint64[]] sha256 uncompressed LE contiguou s unique single size=100000L/100000P birth=271L/271P fill=1 cksum=c5a3e27d1ed0f894:843bca3a5473c4bf:f76a19b6830a2e4:91292591613a12bf -- skipping zdb_blkptr_cb: Got error 50 reading <71, 47, 0, 800000180> DVA0=<0:ce16800: 180000> [L0 other uint64[]] sha256 uncompressed LE contigu ous unique single size=100000L/100000P birth=840L/840P fill=1 cksum=5d018f3d061e17f3:6d1584784587bf63:2805a74a0ce37369:ba68a214806c7e75 -- skipping zdb_blkptr_cb: Got error 50 reading <71, 47, 0, 1000000360> DVA0=<0:10d37400: 180000> [L0 other uint64[]] sha256 uncompressed LE conti guous unique single size=100000L/100000P birth=904L/904P fill=1 cksum=fa1e11d4138bd14b:86c9488c444473e3:f31e43c72e72e46b:e3446472d1174d ba -- skipping zdb_blkptr_cb: Got error 50 reading <71, 47, 0, 400000002c0> DVA0=<0:127ef400: 180000> [L0 other uint64[]] sha256 uncompressed LE cont iguous dedup single size=100000L/100000P birth=549L/549P fill=1 cksum=30e14955ebf13522:66dc2ff8067e6810:4607e750abb9d3b3:6582b8af909fcb 58 -- skipping zdb_blkptr_cb: Got error 50 reading <657, 5, 0, 1c0> DVA0=<0:1a180400:180000> [L0 other uint64[]] fletcher4 uncompressed LE contiguou s unique single size=100000L/100000P birth=1091L/1091P fill=1 cksum=a6cf1e50: 29b3bd01c57e5:36779b914035db9a:db61cdcf6bec56f0 -- skippin g The problem is that ztest_fault_inject() can inject multiple faults into the same block. It is designed such that it can inject errors on all leafs of a RAID-Z or mirror, but for a given range of offsets, it will only inject errors Reviewed by: George Wilson Reviewed by: Prakash Surya Reviewed by: Jorgen Lundman Approved by: Dan McDonald Author: Matthew Ahrens Modified: vendor/illumos/dist/cmd/ztest/ztest.c Modified: vendor/illumos/dist/cmd/ztest/ztest.c ============================================================================== --- vendor/illumos/dist/cmd/ztest/ztest.c Wed Jul 20 09:51:33 2016 (r303079) +++ vendor/illumos/dist/cmd/ztest/ztest.c Wed Jul 20 09:53:46 2016 (r303080) @@ -4792,7 +4792,7 @@ ztest_fault_inject(ztest_ds_t *zd, uint6 char path0[MAXPATHLEN]; char pathrand[MAXPATHLEN]; size_t fsize; - int bshift = SPA_OLD_MAXBLOCKSHIFT + 2; /* don't scrog all labels */ + int bshift = SPA_MAXBLOCKSHIFT + 2; /* don't scrog all labels */ int iters = 1000; int maxfaults; int mirror_save; @@ -4953,6 +4953,31 @@ ztest_fault_inject(ztest_ds_t *zd, uint6 fsize = lseek(fd, 0, SEEK_END); while (--iters != 0) { + /* + * The offset must be chosen carefully to ensure that + * we do not inject a given logical block with errors + * on two different leaf devices, because ZFS can not + * tolerate that (if maxfaults==1). + * + * We divide each leaf into chunks of size + * (# leaves * SPA_MAXBLOCKSIZE * 4). Within each chunk + * there is a series of ranges to which we can inject errors. + * Each range can accept errors on only a single leaf vdev. + * The error injection ranges are separated by ranges + * which we will not inject errors on any device (DMZs). + * Each DMZ must be large enough such that a single block + * can not straddle it, so that a single block can not be + * a target in two different injection ranges (on different + * leaf vdevs). + * + * For example, with 3 leaves, each chunk looks like: + * 0 to 32M: injection range for leaf 0 + * 32M to 64M: DMZ - no injection allowed + * 64M to 96M: injection range for leaf 1 + * 96M to 128M: DMZ - no injection allowed + * 128M to 160M: injection range for leaf 2 + * 160M to 192M: DMZ - no injection allowed + */ offset = ztest_random(fsize / (leaves << bshift)) * (leaves << bshift) + (leaf << bshift) + (ztest_random(1ULL << (bshift - 1)) & -8ULL); From owner-svn-src-all@freebsd.org Wed Jul 20 09:54:19 2016 Return-Path: Delivered-To: svn-src-all@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 48411B9C139; Wed, 20 Jul 2016 09:54:19 +0000 (UTC) (envelope-from avg@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 2658F1F18; Wed, 20 Jul 2016 09:54:19 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K9sII5053453; Wed, 20 Jul 2016 09:54:18 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K9sIie053452; Wed, 20 Jul 2016 09:54:18 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607200954.u6K9sIie053452@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 20 Jul 2016 09:54:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303081 - vendor/illumos/dist/cmd/ztest X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 09:54:19 -0000 Author: avg Date: Wed Jul 20 09:54:18 2016 New Revision: 303081 URL: https://svnweb.freebsd.org/changeset/base/303081 Log: 7163 ztest failures due to excess error injection illumos/illumos-gate@f34284d835bc555f987c1310df46c034c3101155 https://github.com/illumos/illumos-gate/commit/f34284d835bc555f987c1310df46c034c3101155 https://www.illumos.org/issues/7163 Running zloop from zfs-precommit hit this assertion: *panicstr/s 0xfffffd7fd7419370: assertion failed for thread 0xfffffd7fe29ed240, thread-id 577: parent != NULL, file ../../../uts/common/fs/zfs/dbuf.c, line 1827 $c libc.so.1`_lwp_kill+0xa() libc.so.1`_assfail+0x182(fffffd7ffb1c29fa, fffffd7ffb1cc028, 723) libc.so.1`assfail+0x19(fffffd7ffb1c29fa, fffffd7ffb1cc028, 723) libzpool.so.1`dbuf_dirty+0xc69(10e3bc10, 3601700) libzpool.so.1`dbuf_dirty+0x61e(10c73640, 3601700) libzpool.so.1`dbuf_dirty+0x61e(10e28280, 3601700) libzpool.so.1`dmu_buf_will_fill+0x64(10e28280, 3601700) libzpool.so.1`dmu_write+0x1b6(2c7e640, d, 400000002e000000, 200, 3717b40, 3601700) ztest_replay_write+0x568(4950d0, 3717a80, 0) ztest_write+0x125(4950d0, d, 400000002e000000, 200, 413f000) ztest_io+0x1bb(4950d0, d, 400000002e000000) ztest_dmu_write_parallel+0xaa(4950d0, 6) ztest_execute+0x83(1, 420c98, 6) ztest_thread+0xf4(6) libc.so.1`_thrp_setup+0x8a(fffffd7fe29ed240) libc.so.1`_lwp_start() This is another manifestation of ECKSUM in ztest: The lowest level ancestor that’s in memory is the L8 (topmost). The L7 ancestor is blkid 0x10: ::dbufs -O 0x2c7e640 -o d -l 7 |::dbuf addr object lvl blkid holds os 600be50 d 7 4 1 ztest/ds_6 719d880 d 7 0 4 ztest/ds_6 Reviewed by: George Wilson Reviewed by: Paul Dagnelie Approved by: Robert Mustacchi Author: Matthew Ahrens Modified: vendor/illumos/dist/cmd/ztest/ztest.c Modified: vendor/illumos/dist/cmd/ztest/ztest.c ============================================================================== --- vendor/illumos/dist/cmd/ztest/ztest.c Wed Jul 20 09:53:46 2016 (r303080) +++ vendor/illumos/dist/cmd/ztest/ztest.c Wed Jul 20 09:54:18 2016 (r303081) @@ -4792,7 +4792,7 @@ ztest_fault_inject(ztest_ds_t *zd, uint6 char path0[MAXPATHLEN]; char pathrand[MAXPATHLEN]; size_t fsize; - int bshift = SPA_MAXBLOCKSHIFT + 2; /* don't scrog all labels */ + int bshift = SPA_MAXBLOCKSHIFT + 2; int iters = 1000; int maxfaults; int mirror_save; @@ -4982,7 +4982,29 @@ ztest_fault_inject(ztest_ds_t *zd, uint6 (leaves << bshift) + (leaf << bshift) + (ztest_random(1ULL << (bshift - 1)) & -8ULL); - if (offset >= fsize) + /* + * Only allow damage to the labels at one end of the vdev. + * + * If all labels are damaged, the device will be totally + * inaccessible, which will result in loss of data, + * because we also damage (parts of) the other side of + * the mirror/raidz. + * + * Additionally, we will always have both an even and an + * odd label, so that we can handle crashes in the + * middle of vdev_config_sync(). + */ + if ((leaf & 1) == 0 && offset < VDEV_LABEL_START_SIZE) + continue; + + /* + * The two end labels are stored at the "end" of the disk, but + * the end of the disk (vdev_psize) is aligned to + * sizeof (vdev_label_t). + */ + uint64_t psize = P2ALIGN(fsize, sizeof (vdev_label_t)); + if ((leaf & 1) == 1 && + offset + sizeof (bad) > psize - VDEV_LABEL_END_SIZE) continue; VERIFY(mutex_lock(&ztest_vdev_lock) == 0); From owner-svn-src-all@freebsd.org Wed Jul 20 09:57:17 2016 Return-Path: Delivered-To: svn-src-all@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 8E712B9C257; Wed, 20 Jul 2016 09:57:17 +0000 (UTC) (envelope-from avg@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 47662123C; Wed, 20 Jul 2016 09:57:17 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K9vG3d053614; Wed, 20 Jul 2016 09:57:16 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K9vGAs053613; Wed, 20 Jul 2016 09:57:16 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607200957.u6K9vGAs053613@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 20 Jul 2016 09:57:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303082 - vendor/illumos/dist/cmd/zdb X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 09:57:17 -0000 Author: avg Date: Wed Jul 20 09:57:16 2016 New Revision: 303082 URL: https://svnweb.freebsd.org/changeset/base/303082 Log: 6391 Override default SPA config location via environment illumos/illumos-gate@ae24175b2b25e9fb4bfd9ac0648b57e0735b6651 https://github.com/illumos/illumos-gate/commit/ae24175b2b25e9fb4bfd9ac0648b57e0735b6651 https://www.illumos.org/issues/6391 When using zdb with non-default SPA config file it is not convenient to add -U all the time. This commit introduces support for setting/overriding SPA config location via environment variable 'SPA_CONFIG_PATH'. If -U flag is specified in the command line it will override any other value as usual. https://github.com/zfsonlinux/zfs/commit/64d7b6cf75e52a4698d9bdec61745573c39d2e5a Reviewed by: Brian Behlendorf Reviewed by: Richard Yao Reviewed by: Matthew Ahrens Reviewed by: Will Andrews Reviewed by: George Wilson Approved by: Robert Mustacchi Author: Cyril Plisko Modified: vendor/illumos/dist/cmd/zdb/zdb.c Modified: vendor/illumos/dist/cmd/zdb/zdb.c ============================================================================== --- vendor/illumos/dist/cmd/zdb/zdb.c Wed Jul 20 09:54:18 2016 (r303081) +++ vendor/illumos/dist/cmd/zdb/zdb.c Wed Jul 20 09:57:16 2016 (r303082) @@ -3529,12 +3529,22 @@ main(int argc, char **argv) nvlist_t *policy = NULL; uint64_t max_txg = UINT64_MAX; int rewind = ZPOOL_NEVER_REWIND; + char *spa_config_path_env; (void) setrlimit(RLIMIT_NOFILE, &rl); (void) enable_extended_FILE_stdio(-1, -1); dprintf_setup(&argc, argv); + /* + * If there is an environment variable SPA_CONFIG_PATH it overrides + * default spa_config_path setting. If -U flag is specified it will + * override this environment variable settings once again. + */ + spa_config_path_env = getenv("SPA_CONFIG_PATH"); + if (spa_config_path_env != NULL) + spa_config_path = spa_config_path_env; + while ((c = getopt(argc, argv, "bcdhilmMI:suCDRSAFLXx:evp:t:U:P")) != -1) { switch (c) { From owner-svn-src-all@freebsd.org Wed Jul 20 09:58:11 2016 Return-Path: Delivered-To: svn-src-all@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 A2AA7B9C2BA; Wed, 20 Jul 2016 09:58:11 +0000 (UTC) (envelope-from avg@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 66BDE139B; Wed, 20 Jul 2016 09:58:11 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6K9wAFW053688; Wed, 20 Jul 2016 09:58:10 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6K9wABC053686; Wed, 20 Jul 2016 09:58:10 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607200958.u6K9wABC053686@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 20 Jul 2016 09:58:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303083 - in vendor/illumos/dist: cmd/zdb man/man1m X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 09:58:11 -0000 Author: avg Date: Wed Jul 20 09:58:10 2016 New Revision: 303083 URL: https://svnweb.freebsd.org/changeset/base/303083 Log: 7164 zdb should be able to open the root dataset illumos/illumos-gate@b702644a6eb66615d67b492fd73ecd9efa11fc7d https://github.com/illumos/illumos-gate/commit/b702644a6eb66615d67b492fd73ecd9efa11fc7d https://www.illumos.org/issues/7164 If the pool/dataset command-line argument is specified with a trailing slash, for example, "tank/", we should interpret it as the topmost dataset (rather than the whole pool) Reviewed by: Pavel Zakharov Reviewed by: Matthew Ahrens Approved by: Robert Mustacchi Author: Tim Chase Modified: vendor/illumos/dist/cmd/zdb/zdb.c vendor/illumos/dist/man/man1m/zdb.1m Modified: vendor/illumos/dist/cmd/zdb/zdb.c ============================================================================== --- vendor/illumos/dist/cmd/zdb/zdb.c Wed Jul 20 09:57:16 2016 (r303082) +++ vendor/illumos/dist/cmd/zdb/zdb.c Wed Jul 20 09:58:10 2016 (r303083) @@ -3530,6 +3530,7 @@ main(int argc, char **argv) uint64_t max_txg = UINT64_MAX; int rewind = ZPOOL_NEVER_REWIND; char *spa_config_path_env; + boolean_t target_is_spa = B_TRUE; (void) setrlimit(RLIMIT_NOFILE, &rl); (void) enable_extended_FILE_stdio(-1, -1); @@ -3708,8 +3709,23 @@ main(int argc, char **argv) } } + if (strpbrk(target, "/@") != NULL) { + size_t targetlen; + + target_is_spa = B_FALSE; + /* + * Remove any trailing slash. Later code would get confused + * by it, but we want to allow it so that "pool/" can + * indicate that we want to dump the topmost filesystem, + * rather than the whole pool. + */ + targetlen = strlen(target); + if (targetlen != 0 && target[targetlen - 1] == '/') + target[targetlen - 1] = '\0'; + } + if (error == 0) { - if (strpbrk(target, "/@") == NULL || dump_opt['R']) { + if (target_is_spa || dump_opt['R']) { error = spa_open_rewind(target, &spa, FTAG, policy, NULL); if (error) { Modified: vendor/illumos/dist/man/man1m/zdb.1m ============================================================================== --- vendor/illumos/dist/man/man1m/zdb.1m Wed Jul 20 09:57:16 2016 (r303082) +++ vendor/illumos/dist/man/man1m/zdb.1m Wed Jul 20 09:58:10 2016 (r303083) @@ -56,6 +56,11 @@ pool, and is inherently unstable. The pr not documented, a knowledge of ZFS internals is assumed. .P +If the \fIdataset\fR argument does not contain any \fB/\fR or \fB@\fR +characters, it is interpreted as a pool name. The root dataset can be +specified as \fIpool\fB/\fR (pool name followed by a slash). + +.P When operating on an imported and active pool it is possible, though unlikely, that zdb may interpret inconsistent pool data and behave erratically. From owner-svn-src-all@freebsd.org Wed Jul 20 10:06:58 2016 Return-Path: Delivered-To: svn-src-all@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 0033DB9C88F; Wed, 20 Jul 2016 10:06:58 +0000 (UTC) (envelope-from avg@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 AAFE01A76; Wed, 20 Jul 2016 10:06:57 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KA6uTs057279; Wed, 20 Jul 2016 10:06:56 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KA6u5P057278; Wed, 20 Jul 2016 10:06:56 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607201006.u6KA6u5P057278@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 20 Jul 2016 10:06:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303084 - head/cddl/contrib/opensolaris/cmd/zdb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 10:06:58 -0000 Author: avg Date: Wed Jul 20 10:06:56 2016 New Revision: 303084 URL: https://svnweb.freebsd.org/changeset/base/303084 Log: MFV r303082: 6391 Override default SPA config location via environment illumos/illumos-gate@ae24175b2b25e9fb4bfd9ac0648b57e0735b6651 https://github.com/illumos/illumos-gate/commit/ae24175b2b25e9fb4bfd9ac0648b57e0735b6651 https://www.illumos.org/issues/6391 When using zdb with non-default SPA config file it is not convenient to add -U all the time. This commit introduces support for setting/overriding SPA config location via environment variable 'SPA_CONFIG_PATH'. If -U flag is specified in the command line it will override any other value as usual. https://github.com/zfsonlinux/zfs/commit/64d7b6cf75e52a4698d9bdec61745573c39d2e5a Reviewed by: Brian Behlendorf Reviewed by: Richard Yao Reviewed by: Matthew Ahrens Reviewed by: Will Andrews Reviewed by: George Wilson Approved by: Robert Mustacchi Author: Cyril Plisko MFC after: 1 week Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Directory Properties: head/cddl/contrib/opensolaris/cmd/zdb/ (props changed) Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Wed Jul 20 09:58:10 2016 (r303083) +++ head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Wed Jul 20 10:06:56 2016 (r303084) @@ -3558,12 +3558,22 @@ main(int argc, char **argv) nvlist_t *policy = NULL; uint64_t max_txg = UINT64_MAX; int rewind = ZPOOL_NEVER_REWIND; + char *spa_config_path_env; (void) setrlimit(RLIMIT_NOFILE, &rl); (void) enable_extended_FILE_stdio(-1, -1); dprintf_setup(&argc, argv); + /* + * If there is an environment variable SPA_CONFIG_PATH it overrides + * default spa_config_path setting. If -U flag is specified it will + * override this environment variable settings once again. + */ + spa_config_path_env = getenv("SPA_CONFIG_PATH"); + if (spa_config_path_env != NULL) + spa_config_path = spa_config_path_env; + while ((c = getopt(argc, argv, "bcdhilmMI:suCDRSAFLXx:evp:t:U:P")) != -1) { switch (c) { From owner-svn-src-all@freebsd.org Wed Jul 20 11:04:50 2016 Return-Path: Delivered-To: svn-src-all@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 A1C1DB9A297; Wed, 20 Jul 2016 11:04:50 +0000 (UTC) (envelope-from mav@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 6B99914A8; Wed, 20 Jul 2016 11:04:50 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KB4nlP079161; Wed, 20 Jul 2016 11:04:49 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KB4nom079160; Wed, 20 Jul 2016 11:04:49 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607201104.u6KB4nom079160@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 20 Jul 2016 11:04:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303085 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 11:04:50 -0000 Author: mav Date: Wed Jul 20 11:04:49 2016 New Revision: 303085 URL: https://svnweb.freebsd.org/changeset/base/303085 Log: Remove outdated list of supported chipsets, generalizing it. Modified: head/share/man/man4/ichsmb.4 Modified: head/share/man/man4/ichsmb.4 ============================================================================== --- head/share/man/man4/ichsmb.4 Wed Jul 20 10:06:56 2016 (r303084) +++ head/share/man/man4/ichsmb.4 Wed Jul 20 11:04:49 2016 (r303085) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 28, 2007 +.Dd July 20, 2016 .Dt ICHSMB 4 .Os .Sh NAME @@ -46,10 +46,12 @@ .Cd device smb .Cd device ichsmb .Sh DESCRIPTION -This driver provides access to the SMBus controller logical -device contained in the Intel 82801AA (ICH), 82801AB (ICH0), -82801BA (ICH2), 82801CA (ICH3), 82801DC (ICH4), 82801EB (ICH5), -82801FB (ICH6) and 82801GB (ICH7) PCI chips. +The +.Nm +driver provides +.Xr smbus 4 +support for the SMBus controller logical device contained in all Intel +motherboard chipsets starting from 82801AA (ICH). .Sh SEE ALSO .Xr smb 4 , .Xr smbus 4 From owner-svn-src-all@freebsd.org Wed Jul 20 11:15:34 2016 Return-Path: Delivered-To: svn-src-all@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 4ECF7B9A677; Wed, 20 Jul 2016 11:15:34 +0000 (UTC) (envelope-from avg@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 0AD6F1B2E; Wed, 20 Jul 2016 11:15:33 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KBFX7A082973; Wed, 20 Jul 2016 11:15:33 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KBFXcE082971; Wed, 20 Jul 2016 11:15:33 GMT (envelope-from avg@FreeBSD.org) Message-Id: <201607201115.u6KBFXcE082971@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Wed, 20 Jul 2016 11:15:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303086 - head/cddl/contrib/opensolaris/cmd/zdb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 11:15:34 -0000 Author: avg Date: Wed Jul 20 11:15:32 2016 New Revision: 303086 URL: https://svnweb.freebsd.org/changeset/base/303086 Log: MFV r303083: 7164 zdb should be able to open the root dataset Note: conversion of the manual page change from roff to mdoc is mine. illumos/illumos-gate@b702644a6eb66615d67b492fd73ecd9efa11fc7d https://github.com/illumos/illumos-gate/commit/b702644a6eb66615d67b492fd73ecd9efa11fc7d https://www.illumos.org/issues/7164 If the pool/dataset command-line argument is specified with a trailing slash, for example, "tank/", we should interpret it as the topmost dataset (rather than the whole pool) Reviewed by: Pavel Zakharov Reviewed by: Matthew Ahrens Approved by: Robert Mustacchi Author: Tim Chase PR: 204661 MFC after: 1 week Relnotes: yes Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.8 head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Directory Properties: head/cddl/contrib/opensolaris/cmd/zdb/ (props changed) Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.8 ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Wed Jul 20 11:04:49 2016 (r303085) +++ head/cddl/contrib/opensolaris/cmd/zdb/zdb.8 Wed Jul 20 11:15:32 2016 (r303086) @@ -86,6 +86,17 @@ pool, and is inherently unstable. The precise output of most invocations is not documented, a knowledge of ZFS internals is assumed. .Pp +If the +.Ar dataset +argument does not contain any +.Sy / +or +.Sy @ +characters, it is interpreted as a pool name. +The root dataset can be specified as +.Pa pool Ns Sy / +(pool name followed by a slash). +.Pp When operating on an imported and active pool it is possible, though unlikely, that zdb may interpret inconsistent pool data and behave erratically. .Sh OPTIONS Modified: head/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Wed Jul 20 11:04:49 2016 (r303085) +++ head/cddl/contrib/opensolaris/cmd/zdb/zdb.c Wed Jul 20 11:15:32 2016 (r303086) @@ -3559,6 +3559,7 @@ main(int argc, char **argv) uint64_t max_txg = UINT64_MAX; int rewind = ZPOOL_NEVER_REWIND; char *spa_config_path_env; + boolean_t target_is_spa = B_TRUE; (void) setrlimit(RLIMIT_NOFILE, &rl); (void) enable_extended_FILE_stdio(-1, -1); @@ -3738,8 +3739,23 @@ main(int argc, char **argv) } } + if (strpbrk(target, "/@") != NULL) { + size_t targetlen; + + target_is_spa = B_FALSE; + /* + * Remove any trailing slash. Later code would get confused + * by it, but we want to allow it so that "pool/" can + * indicate that we want to dump the topmost filesystem, + * rather than the whole pool. + */ + targetlen = strlen(target); + if (targetlen != 0 && target[targetlen - 1] == '/') + target[targetlen - 1] = '\0'; + } + if (error == 0) { - if (strpbrk(target, "/@") == NULL || dump_opt['R']) { + if (target_is_spa || dump_opt['R']) { error = spa_open_rewind(target, &spa, FTAG, policy, NULL); if (error) { From owner-svn-src-all@freebsd.org Wed Jul 20 11:23:07 2016 Return-Path: Delivered-To: svn-src-all@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 C45BBB9A906; Wed, 20 Jul 2016 11:23:07 +0000 (UTC) (envelope-from manu@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 9C412113B; Wed, 20 Jul 2016 11:23:07 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KBN6sD086612; Wed, 20 Jul 2016 11:23:06 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KBN62g086610; Wed, 20 Jul 2016 11:23:06 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201607201123.u6KBN62g086610@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Wed, 20 Jul 2016 11:23:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303087 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 11:23:07 -0000 Author: manu Date: Wed Jul 20 11:23:06 2016 New Revision: 303087 URL: https://svnweb.freebsd.org/changeset/base/303087 Log: Add support for the SID (Security ID Module) on Allwinner A10 and A20. The rootkey is burnt at production and can't be changed, thus is can be used as a device unique ID or to generate a MAC address (This is was u-boot does). The rootkey is exposed as a sysctl (dev.aw_sid..rootkey). Reviewed by: jmcneill Differential Revision: https://reviews.freebsd.org/D6383 Modified: head/sys/arm/allwinner/aw_sid.c head/sys/arm/allwinner/aw_sid.h Modified: head/sys/arm/allwinner/aw_sid.c ============================================================================== --- head/sys/arm/allwinner/aw_sid.c Wed Jul 20 11:15:32 2016 (r303086) +++ head/sys/arm/allwinner/aw_sid.c Wed Jul 20 11:23:06 2016 (r303087) @@ -33,12 +33,14 @@ #include __FBSDID("$FreeBSD$"); +#include #include #include #include #include #include #include +#include #include #include @@ -50,13 +52,22 @@ __FBSDID("$FreeBSD$"); #define SID_THERMAL_CALIB0 (SID_SRAM + 0x34) #define SID_THERMAL_CALIB1 (SID_SRAM + 0x38) +enum sid_type { + A10_SID = 1, + A20_SID, + A83T_SID, +}; + static struct ofw_compat_data compat_data[] = { - { "allwinner,sun8i-a83t-sid", 1 }, + { "allwinner,sun4i-a10-sid", A10_SID}, + { "allwinner,sun7i-a20-sid", A20_SID}, + { "allwinner,sun8i-a83t-sid", A83T_SID}, { NULL, 0 } }; struct aw_sid_softc { struct resource *res; + int type; }; static struct aw_sid_softc *aw_sid_sc; @@ -66,9 +77,18 @@ static struct resource_spec aw_sid_spec[ { -1, 0 } }; +enum sid_keys { + AW_SID_ROOT_KEY, +}; + +#define ROOT_KEY_OFF 0x0 +#define ROOT_KEY_SIZE 4 + #define RD4(sc, reg) bus_read_4((sc)->res, (reg)) #define WR4(sc, reg, val) bus_write_4((sc)->res, (reg), (val)) +static int aw_sid_sysctl(SYSCTL_HANDLER_ARGS); + static int aw_sid_probe(device_t dev) { @@ -96,6 +116,19 @@ aw_sid_attach(device_t dev) aw_sid_sc = sc; + sc->type = ofw_bus_search_compatible(dev, compat_data)->ocd_data; + switch (sc->type) { + case A10_SID: + case A20_SID: + SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), + OID_AUTO, "rootkey", + CTLTYPE_STRING | CTLFLAG_RD, + dev, AW_SID_ROOT_KEY, aw_sid_sysctl, "A", "Root Key"); + break; + default: + break; + } return (0); } @@ -107,6 +140,8 @@ aw_sid_read_tscalib(uint32_t *calib0, ui sc = aw_sid_sc; if (sc == NULL) return (ENXIO); + if (sc->type != A83T_SID) + return (ENXIO); *calib0 = RD4(sc, SID_THERMAL_CALIB0); *calib1 = RD4(sc, SID_THERMAL_CALIB1); @@ -114,6 +149,45 @@ aw_sid_read_tscalib(uint32_t *calib0, ui return (0); } +int +aw_sid_get_rootkey(u_char *out) +{ + struct aw_sid_softc *sc; + int i; + u_int tmp; + + sc = aw_sid_sc; + if (sc == NULL) + return (ENXIO); + if (sc->type != A10_SID && sc->type != A20_SID) + return (ENXIO); + + for (i = 0; i < ROOT_KEY_SIZE ; i++) { + tmp = RD4(aw_sid_sc, ROOT_KEY_OFF + (i * 4)); + be32enc(&out[i * 4], tmp); + } + + return (0); +} + +static int +aw_sid_sysctl(SYSCTL_HANDLER_ARGS) +{ + enum sid_keys key = arg2; + u_char rootkey[16]; + char out[33]; + + if (key != AW_SID_ROOT_KEY) + return (ENOENT); + + if (aw_sid_get_rootkey(rootkey) != 0) + return (ENOENT); + snprintf(out, sizeof(out), + "%16D", rootkey, ""); + + return sysctl_handle_string(oidp, out, sizeof(out), req); +} + static device_method_t aw_sid_methods[] = { /* Device interface */ DEVMETHOD(device_probe, aw_sid_probe), Modified: head/sys/arm/allwinner/aw_sid.h ============================================================================== --- head/sys/arm/allwinner/aw_sid.h Wed Jul 20 11:15:32 2016 (r303086) +++ head/sys/arm/allwinner/aw_sid.h Wed Jul 20 11:23:06 2016 (r303087) @@ -30,5 +30,6 @@ #define __AW_SID_H__ int aw_sid_read_tscalib(uint32_t *, uint32_t *); +int aw_sid_get_rootkey(u_char *out); #endif /* !__AW_SID_H__ */ From owner-svn-src-all@freebsd.org Wed Jul 20 11:29:02 2016 Return-Path: Delivered-To: svn-src-all@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 5E68AB9AB1A; Wed, 20 Jul 2016 11:29:02 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mail.miracle.cz (mail.miracle.cz [193.84.128.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.miracle.cz", Issuer "Miracle Group Root CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 9305F1454; Wed, 20 Jul 2016 11:29:01 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from [193.84.128.50] (meloun.ad.miracle.cz [193.84.128.50]) by mail.miracle.cz (Postfix) with ESMTPSA id 8EBC73AC9B; Wed, 20 Jul 2016 13:28:53 +0200 (CEST) Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Nathan Whitehorn , Svatopluk Kraus , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578E0B5D.3070105@FreeBSD.org> From: Michal Meloun X-Enigmail-Draft-Status: N1110 Message-ID: <578F6075.7010500@FreeBSD.org> Date: Wed, 20 Jul 2016 13:28:53 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.miracle.cz); Wed, 20 Jul 2016 13:28:53 +0200 (CEST) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 11:29:02 -0000 Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): > > > On 07/19/16 04:13, Michal Meloun wrote: >> Dne 19.07.2016 v 2:11 Nathan Whitehorn napsal(a): >> Hi Nathan, >> I’m afraid that skra is on vacation, for next 2 weeks (at minimum), so >> please don’t expect quick response. >> >>> Could you please describe what this change is in more detail? >> Short description is appended. >> >>> It breaks a lot of encapsulations we have worked very hard to maintain, >>> moves ARM code into MI parts of the kernel, and the OFW parts violate >>> IEEE 1275 (the Open Firmware standard). In particular, there is no >>> guarantee that the interrupts for a newbus (or OF) device are >>> encoded in >>> a property called "interrupts" (or, indeed, in any property at all) on >>> that node and there are many, many device trees where that is not the >>> case (e.g. ones with interrupt maps, as well as Apple hardware). By >>> putting that knowledge into the OF root bus device, which we have tried >>> to keep it out of, this enforces a standard that doesn't actually >>> exist. >> Imho, this patch doesn’t change anything in this area. Only handling of >> “interrupts†property is changed, all other cases are unchanged (I >> hope). Also, INTRNG code is currently shared by ARM, ARM64 and MIPS. > > But "interrupts" isn't a generic part of OF. This makes it one, > incorrectly. How? Can you be little more exact ? > >> >>> I'm hesitant to ask for reversion on something that landed 6 weeks ago >>> without me noticing, but this needs a lot more architectural work >>> before >>> any parts of the kernel should use it. >>> -Nathan >> I think that it’s too late. This patch series consist of r301451 >> (https://reviews.freebsd.org/D6632), >> r301453, r301539 and 301543. And new GPIO interrupts are currently used >> (by in tree drivers or in development trees). > > Well, then we need in-place rearchitecture. > >> >> >> The root of problem is that standard way of delivering interrupt >> resource to consumer driver doesn’t works in OFW world. >> >> So we have some fact: >> - the format of interrupt property is dependent of interrupt >> controller and only interrupt controller can parse it. >> - the interrupt property can have more data than just interrupt >> number. >> - single interrupt controller must be able to handle multiple >> format of interrupt description. >> >> In pre-patchset era, simplebus enumerates children and attempts to set >> memory and interrupts to resource list for them. But the interrupt >> controllers are not yet populated so nobody can parse interrupt >> property. Moreover, in all cases (parsed or not), we cannot store >> complete interrupt description into resource list. > > We have done this for many years on PowerPC and sparc64 with delayed > configuration of interrupts and a look-up table. This handles > complicated bus configurations better than this code and requires no > changes outside of a few MD files. That is why the (now partially > duplicated) OFW_BUS_MAP_INTR() function exists. That one also has the > benefit of still working when used in conjunction with, e.g., devices > with an interrupt-map-mask property. > >> >> The patch simply postpones reading of interrupt property to >> bus_alloc_resource() (called by consumer driver) time. >> >> Due to this, we can: >> - parse interrupt property. The interrupt driver must exist >> at this time. > > This only works with some types of interrupt properties, not all, and > breaks if the interrupt driver hasn't attached yet (which it can't be > guaranteed to -- some PPC systems have interrupt drivers that live on > the PCI bus, for example). How you can allocate (and reserve it in rman) interrupt if is not mapped (so you have not real IRQ number for it). Just for notice - multiple virtual IRQs can be mapped into single real IRQ. > >> - bus_alloc_resource() returns resource, so we can attach parsed >> interrupt data to it. By this, the resource itself can be used >> for delivering configuration data to subsequent call to >> bus_setup_intr() (or to all related bus_() calls). >> >> >> The patched code still accepts delivering of interrupts in resource >> list. >> >> Michal >> > > Given that other code depends on this, fixing it will likely require > some complex work. I wish I had known about it when it went in. > > There are three main problems: > 1. It doesn't work for interrupts defined by other mechanisms (e.g. > interrupt-map properties) I aggree, but missing ' interrupt-map' functioanlity is not caused by this patch. > 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), > but is both problematically more general and less flexible (it has > requirements on timing of PIC attachment vs. driver resource allocation) OFW_BUS_MAP_INTR() can parse only OFW based data and expect that parsed data are magicaly stored within the call. The new method, bus_map_intr(), can parse data from multiple sources (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). It also returns parsed data back to caller. And no, it doesn't add any additional timing requirements . > 3. It is not fully transparent to end code. Since it happens at > bus_alloc_resource() time, it is complicated to get the appropriate > values for IRQs constructed by composite techniques (interrupt-map vs. > interrupts vs. hand allocation vs. PCI routing, for example). I don't see any limitation - can you be more exact? Why is not transparent? Why is more complicated ? > It is much easier to do this correctly at bus attach time when the > resource lists are made (how PPC does it). > I don't agree. I don't agree. Making this at bus attach time leads into complicated 'virtual' IRQ infrastructure, with many unresolved corner cases. > (1) is easy to fix without API changes, but (2) and (3) are > fundamental architectural problems that will bite us immediately down > the road and cause a permanent schism between OF support on different > platforms. > > Let me describe how this is handled on PowerPC (Linux on PPC solves > the problem the same way). When constructing a resource list, bus > drivers that construct them from OF properties call ofw_bus_map_intr() > with the interrupt parent phandle and the array of cells corresponding > to the interrupt. This thunks immediately to nexus, which connects to > code in intr_machdep.c. Code there assigns a unique made-up virtual > IRQ and returns it, caching the interrupt parent ID and opaque > interrupt data (if the same string of data reappears later, you get > back the same virtual IRQ of course). > > When PIC drivers attach and register themselves with the interrupt > handling layer, all the interrupts for that PIC are passed to it along > with the virtual IRQ. The PIC driver is supposed to know what its > interrupt data mean, which can be safely guaranteed, and it presents > the assigned virtual IRQ number to the kernel when dispatching > interrupts. (IRQs configured after PIC attachment are passed through > immediately). > > This accomplishes the following things: > 1. Parsing interrupt data is moved to the PIC driver, which is the > only place it can be done safely. I don't see anything different comparing with INTRNG. > 2. There is no ordering requirement on PIC attachment vs. the > attachment of anything else. I think thats is not a true - PIC must exist before bus_alloc_resource() / bus_setup_intr() is called. > 3. Changes are extremely minimal relative to the "standard" interrupt > flow: you only have to patch code that is already directly dealing > with OF interrupts. I don't see anything different comparing with INTRNG. > 4. It happens at bus enumeration time, when results can be guaranteed > self-consistent. Where do you see any potential source of inconsistency in INTRNG? > 5. It combines naturally with ofw_bus_lookup_imap() and friends in the > interrupt-map case (e.g. for PCI). Again, I don't see anything different. Proper parsing of interrupt property is not a problem of INTRNG (but must be fixed, of course). > > I'm not sure what the right path forward is, but this code needs to be > fixed. The PowerPC code is fully MI, and was the template for the > original INTRNG, so it shouldn't be too bad to replace. > -Nathan > So, new INTRNG: - Introduces new more general bus method that can parse interrupt configuration data from any source. Is this step backward? - Old INTRNG and PPC code stores unparsed and/or parsed interrupt data in INTRNG and each consumer must query for them. This data sharing also causes significant locking issues. New INTRNG stores interrupt configuration data into given resource, so each relevant bus method can access it immediately. Is this step backward? - New INTRNG is not OFW centric, it can works with virtually unlimited number of configuration data sources. Is this step backward? - New INTRNG correctly uses standard system infrastructure. Real IRQ number is reserved in rman within bus_alloc_resource() call, interrupt HW is configured (only!) within bus_setup_intr() call. Is this step backward? - New INTRNG completely eliminates huge and not always working virtual IRQ concept. Don’t take me bad, I’m open to any change. But no, at this time, I’m not ready to completely revert someone else's work – although I am a co-author. Michal From owner-svn-src-all@freebsd.org Wed Jul 20 12:46:22 2016 Return-Path: Delivered-To: svn-src-all@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 57180B9DC45; Wed, 20 Jul 2016 12:46:22 +0000 (UTC) (envelope-from ache@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 266DC13A2; Wed, 20 Jul 2016 12:46:22 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KCkLHA016324; Wed, 20 Jul 2016 12:46:21 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KCkL7X016323; Wed, 20 Jul 2016 12:46:21 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607201246.u6KCkL7X016323@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Wed, 20 Jul 2016 12:46:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303088 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 12:46:22 -0000 Author: ache Date: Wed Jul 20 12:46:21 2016 New Revision: 303088 URL: https://svnweb.freebsd.org/changeset/base/303088 Log: In addition to r303074 case 1, search for protected L'/' too in globtilde() Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Wed Jul 20 11:23:06 2016 (r303087) +++ head/lib/libc/gen/glob.c Wed Jul 20 12:46:21 2016 (r303088) @@ -126,7 +126,6 @@ struct glob_limit { #define TILDE L'~' #define LBRACE L'{' #define RBRACE L'}' -#define SLASH L'/' #define COMMA L',' #ifndef DEBUG @@ -427,10 +426,10 @@ globtilde(const Char *pattern, Char *pat */ eb = &patbuf[patbuf_len - 1]; for (p = pattern + 1, b = patbuf; - b < eb && *p != EOS && *p != SLASH; *b++ = *p++) + b < eb && *p != EOS && UNPROT(*p) != SEP; *b++ = *p++) continue; - if (*p != EOS && *p != SLASH) + if (*p != EOS && UNPROT(*p) != SEP) return (NULL); *b = EOS; From owner-svn-src-all@freebsd.org Wed Jul 20 13:33:42 2016 Return-Path: Delivered-To: svn-src-all@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 57D3CB9EA03 for ; Wed, 20 Jul 2016 13:33:42 +0000 (UTC) (envelope-from rrs@netflix.com) Received: from mail-qt0-x22f.google.com (mail-qt0-x22f.google.com [IPv6:2607:f8b0:400d:c0d::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 123A11D7B for ; Wed, 20 Jul 2016 13:33:42 +0000 (UTC) (envelope-from rrs@netflix.com) Received: by mail-qt0-x22f.google.com with SMTP id x25so26168672qtx.2 for ; Wed, 20 Jul 2016 06:33:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=bSHanfuZHo5kt9yK99Py9p4O/GZmY3Vboj49GoSqc7g=; b=Bwk3wGa5p2DVNZc2dus5CQur28SzB4EGbEDInirMo25nA4XGH/3H2Al+7Ko/P3Tunw LuFQ3uijw59COC7sJ6S54Rm5fZJ940I7Bph1Lo1VwdEp17cpujea9BBDR2ErH7tLs9sA qH26/LiUsToUzWaMNCNd70pU1SBG3X5dK8Xhs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=bSHanfuZHo5kt9yK99Py9p4O/GZmY3Vboj49GoSqc7g=; b=THJ3Mv0ss9n3+ZTNmw9gx7eQo5b7c8ppfrTmVvCpXc7JCVajD7guomsjG2dAPZu1du ik+YGdcPB9qbwiPcpEqLTdMrES5RioHsTeIql1Fm0mb6CtniyHQ+o5s0C8FE8+MTV7fF D6Tt/vjL+B8OzXUfTVxKoFoMhB1J/Kc1L387rlWpHVia5E4+gPn7Y+WVW01Y6u7ArnI8 ErfRKfnkL+pyyFWMMarwJHPE88LgN21T2LcDfgT5zevCkIBm5urllrBW0vyyaaA/EjxV nzJDNvy4tGIcGsDQ+3qWZUYksUch1gET63SH8HA6kT2ivj6VVibw/qG9GbTbrgVFq+/G IgYA== X-Gm-Message-State: ALyK8tIk4b/vRlZY4lbtfm3U5t8/2FilxM7JMwx4751T9pGu/uCIWyT5hsBSczhgNQtih7lc X-Received: by 10.237.53.19 with SMTP id a19mr68514536qte.67.1469021621035; Wed, 20 Jul 2016 06:33:41 -0700 (PDT) Received: from [100.127.85.21] ([69.53.246.16]) by smtp.gmail.com with ESMTPSA id o70sm1418645qka.29.2016.07.20.06.33.39 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 20 Jul 2016 06:33:40 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: svn commit: r303037 - head/sys/kern From: Randall Stewart In-Reply-To: <20160720065335.GU1076@FreeBSD.org> Date: Wed, 20 Jul 2016 15:33:37 +0200 Cc: Randall Ray Stewart , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <1CA02E0F-6871-4291-9F5A-20EFF5F6315D@netflix.com> References: <201607191831.u6JIVJWq007542@repo.freebsd.org> <20160720065335.GU1076@FreeBSD.org> To: Gleb Smirnoff X-Mailer: Apple Mail (2.3124) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 13:33:42 -0000 Gleb I wish you would have responded earlier.. I am more than glad to hand off all kern_timeout.c to you=E2=80=A6 please take it commit what you = want to it and have it. I hate the code and I dislike having to touch it. Its yours.. I can assure you I will not touch it again. R > On Jul 20, 2016, at 8:53 AM, Gleb Smirnoff = wrote: >=20 > On Tue, Jul 19, 2016 at 06:31:19PM +0000, Randall Stewart wrote: > R> Author: rrs > R> Date: Tue Jul 19 18:31:19 2016 > R> New Revision: 303037 > R> URL: https://svnweb.freebsd.org/changeset/base/303037 > R>=20 > R> Log: > R> This reverts out Gleb's changes and adds three small > R> fixes that I think closes up the races Gleb was > R> looking for. This is running quite nicely in Netflix and > R> now no longer causes TCP-tcb leaks. > R> =20 > R> Differential Revision: 7135 >=20 > Just to notice that I am completely pissed of by this commit > war, that you started. >=20 > I've been testing my changes properly, I gave people time to > review my changes. You didn't. >=20 > =46rom your explanation in other emails I see that you've been > testing your changes with a version of FreeBSD that is a heavily > modified FreeBSD 10, not 11. >=20 > The new code you mixed with revert of mine, doesn't fix the > problem observed. It fixes another problem that you imagined, > which might exist, but isn't observed. We already discussed that > and you didn't prove it wrong. >=20 > Your change doesn't even revert my change completely. >=20 > --=20 > Totus tuus, Glebius. -------- Randall Stewart rrs@netflix.com 803-317-4952 From owner-svn-src-all@freebsd.org Wed Jul 20 13:46:34 2016 Return-Path: Delivered-To: svn-src-all@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 A66D1B9EDB0; Wed, 20 Jul 2016 13:46:34 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Received: from smarthost1.greenhost.nl (smarthost1.greenhost.nl [195.190.28.81]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 723BC154E; Wed, 20 Jul 2016 13:46:34 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Received: from smtp.greenhost.nl ([213.108.104.138]) by smarthost1.greenhost.nl with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1bPrpR-0003vA-3n; Wed, 20 Jul 2016 15:46:25 +0200 Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org, "Glen Barber" Subject: Re: svn commit: r303027 - in stable/11/release: . scripts References: <201607191622.u6JGMoAZ062294@repo.freebsd.org> Date: Wed, 20 Jul 2016 15:46:24 +0200 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: "Ronald Klop" Message-ID: In-Reply-To: <201607191622.u6JGMoAZ062294@repo.freebsd.org> User-Agent: Opera Mail/12.16 (FreeBSD) X-Authenticated-As-Hash: 398f5522cb258ce43cb679602f8cfe8b62a256d1 X-Virus-Scanned: by clamav at smarthost1.samage.net X-Spam-Level: / X-Spam-Score: -0.2 X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, BAYES_50 autolearn=disabled version=3.4.0 X-Scan-Signature: f0d5e446bfc5bbd6ce781899a390d841 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 13:46:34 -0000 Hi, I made this PR for the issue. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211029 Ronald. On Tue, 19 Jul 2016 18:22:50 +0200, Glen Barber wrote: > Author: gjb > Date: Tue Jul 19 16:22:50 2016 > New Revision: 303027 > URL: https://svnweb.freebsd.org/changeset/base/303027 > > Log: > Reduce the disc1.iso size from 850+M to just over 650M. > As a result of this change, the 'kernel-dbg.txz' distribution > is no longer provided on disc1.iso, and deselected by default > in bsdinstall(8). When 'kernel-dbg.txz' is selected, network > configuration happens before the installer proceeds, to fetch > the distribution from the mirrors. > This is a direct commit to stable/11, as there is intention > to solve this differently for 12.0-RELEASE. > Reviewed by: nwhitehorn (glanced at) > Approved by: re (hrs) > Sponsored by: The FreeBSD Foundation > > Modified: > stable/11/release/Makefile > stable/11/release/scripts/make-manifest.sh > > Modified: stable/11/release/Makefile > ============================================================================== > --- stable/11/release/Makefile Tue Jul 19 16:02:07 2016 (r303026) > +++ stable/11/release/Makefile Tue Jul 19 16:22:50 2016 (r303027) > @@ -172,11 +172,12 @@ disc1: packagesystem > mkdir -p ${.TARGET} > cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \ > DESTDIR=${.OBJDIR}/${.TARGET} MK_RESCUE=no MK_KERNEL_SYMBOLS=no \ > - MK_PROFILE=no MK_SENDMAIL=no MK_TESTS=no MK_LIB32=no \ > - MK_DEBUG_FILES=no > + MK_PROFILE=no MK_MAIL=no MK_TESTS=no MK_LIB32=no \ > + MK_DEBUG_FILES=no MK_LLDB=no \ > + MK_TOOLCHAIN=no > # Copy distfiles > mkdir -p ${.TARGET}/usr/freebsd-dist > - for dist in MANIFEST $$(ls *.txz | grep -vE -- '(base|lib32)-dbg'); \ > + for dist in MANIFEST $$(ls *.txz | grep -vE -- > '(base|lib32|kernel)-dbg'); \ > do cp $${dist} ${.TARGET}/usr/freebsd-dist; \ > done > # Copy documentation, if generated > > Modified: stable/11/release/scripts/make-manifest.sh > ============================================================================== > --- stable/11/release/scripts/make-manifest.sh Tue Jul 19 16:02:07 > 2016 (r303026) > +++ stable/11/release/scripts/make-manifest.sh Tue Jul 19 16:22:50 > 2016 (r303027) > @@ -36,7 +36,7 @@ default_tests=off > default_base_dbg=off > default_lib32_dbg=off > default_kernel_alt=off > -default_kernel_dbg=on > +default_kernel_dbg=off > default_kernel_alt_dbg=off > for i in ${*}; do > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-svn-src-all@freebsd.org Wed Jul 20 13:53:37 2016 Return-Path: Delivered-To: svn-src-all@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 84C37B9EF6A; Wed, 20 Jul 2016 13:53:37 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 7472519E2; Wed, 20 Jul 2016 13:53:37 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from FreeBSD.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by freefall.freebsd.org (Postfix) with ESMTP id 17A461A8F; Wed, 20 Jul 2016 13:53:37 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Date: Wed, 20 Jul 2016 13:53:35 +0000 From: Glen Barber To: Ronald Klop Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r303027 - in stable/11/release: . scripts Message-ID: <20160720135335.GP65494@FreeBSD.org> References: <201607191622.u6JGMoAZ062294@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="WjWU9mUuKzTKEtBb" Content-Disposition: inline In-Reply-To: X-Operating-System: FreeBSD 11.0-CURRENT amd64 X-SCUD-Definition: Sudden Completely Unexpected Dataloss X-SULE-Definition: Sudden Unexpected Learning Event X-PEKBAC-Definition: Problem Exists, Keyboard Between Admin/Computer User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 13:53:37 -0000 --WjWU9mUuKzTKEtBb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable My apologies for not mentioning that in the commit log. I'd like to keep the PR open, though, since we're going to fix this differently for current. Glen On Wed, Jul 20, 2016 at 03:46:24PM +0200, Ronald Klop wrote: > Hi, I made this PR for the issue. >=20 > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D211029 >=20 > Ronald. >=20 >=20 >=20 > On Tue, 19 Jul 2016 18:22:50 +0200, Glen Barber wrote: >=20 > >Author: gjb > >Date: Tue Jul 19 16:22:50 2016 > >New Revision: 303027 > >URL: https://svnweb.freebsd.org/changeset/base/303027 > > > >Log: > > Reduce the disc1.iso size from 850+M to just over 650M. > > As a result of this change, the 'kernel-dbg.txz' distribution > > is no longer provided on disc1.iso, and deselected by default > > in bsdinstall(8). When 'kernel-dbg.txz' is selected, network > > configuration happens before the installer proceeds, to fetch > > the distribution from the mirrors. > > This is a direct commit to stable/11, as there is intention > > to solve this differently for 12.0-RELEASE. > > Reviewed by: nwhitehorn (glanced at) > > Approved by: re (hrs) > > Sponsored by: The FreeBSD Foundation > > > >Modified: > > stable/11/release/Makefile > > stable/11/release/scripts/make-manifest.sh > > > >Modified: stable/11/release/Makefile > >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > >--- stable/11/release/Makefile Tue Jul 19 16:02:07 2016 (r303026) > >+++ stable/11/release/Makefile Tue Jul 19 16:22:50 2016 (r303027) > >@@ -172,11 +172,12 @@ disc1: packagesystem > > mkdir -p ${.TARGET} > > cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \ > > DESTDIR=3D${.OBJDIR}/${.TARGET} MK_RESCUE=3Dno MK_KERNEL_SYMBOLS=3Dno= \ > >- MK_PROFILE=3Dno MK_SENDMAIL=3Dno MK_TESTS=3Dno MK_LIB32=3Dno \ > >- MK_DEBUG_FILES=3Dno > >+ MK_PROFILE=3Dno MK_MAIL=3Dno MK_TESTS=3Dno MK_LIB32=3Dno \ > >+ MK_DEBUG_FILES=3Dno MK_LLDB=3Dno \ > >+ MK_TOOLCHAIN=3Dno > > # Copy distfiles > > mkdir -p ${.TARGET}/usr/freebsd-dist > >- for dist in MANIFEST $$(ls *.txz | grep -vE -- '(base|lib32)-dbg'); \ > >+ for dist in MANIFEST $$(ls *.txz | grep -vE -- > >'(base|lib32|kernel)-dbg'); \ > > do cp $${dist} ${.TARGET}/usr/freebsd-dist; \ > > done > > # Copy documentation, if generated > > > >Modified: stable/11/release/scripts/make-manifest.sh > >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > >--- stable/11/release/scripts/make-manifest.sh Tue Jul 19 16:02:07 > >2016 (r303026) > >+++ stable/11/release/scripts/make-manifest.sh Tue Jul 19 16:22:50 > >2016 (r303027) > >@@ -36,7 +36,7 @@ default_tests=3Doff > > default_base_dbg=3Doff > > default_lib32_dbg=3Doff > > default_kernel_alt=3Doff > >-default_kernel_dbg=3Don > >+default_kernel_dbg=3Doff > > default_kernel_alt_dbg=3Doff > >for i in ${*}; do > >_______________________________________________ > >svn-src-all@freebsd.org mailing list > >https://lists.freebsd.org/mailman/listinfo/svn-src-all > >To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" >=20 --WjWU9mUuKzTKEtBb Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXj4JUAAoJEAMUWKVHj+KT5koP/3ZCyB7+oN658CDlFo9aTjp+ Eg4fYGf6Kmn9wLgP/ohnX91gDgMf/RHR+4H8RtU4xKuKRoX04p1Mm5lwTnqvCfl+ HAhXIB5C6kihcbIc3zIbx/v4ItyqIwC3BTuJrD+1wMmxSsXBMJATVO6XnPIWFJdY V3k39ycF19RatdI0KGy9Tsnia4YFvesOWC9DYtj2iCJRiK6GjGyQeuxHZ01CUXea 8vIXzcIAbWQVmABNQwL57OShxIHEkVSuafjk5x0dYqbetKcdj4Arif8iCCcIyv1F fcEnR3VW18Dkgmuk4OeZgiLu4MBzt+mSgeFRUkq40lNUM8Q5gR92iL2K9A2dht9y I5GhiQrCR+gaeJSHQMCXxXMDA81+HPKwGtJy8kaoy3dYe/LbLbbursIxYiTjUGPH CRZr0SwHiL/piVxNloJ4dKGkAcUJdl3ZBTYANIkD8XwhNnw0GMkNUMqgT4gyUcFL bmygQXf/bz/ecZm8HBJq5cNnOwgy/ZN88CDUtNVwPXTPpTwCXwGG/F5dRrJO+cVD 0zTMHyjFsLjbDUQtPqHT5iFVnpJ2gUNPh7UE5zOKEYxKlenlB1wfOe7VcMNLz5LM D4jVqclwFiF739kX72fl7q342kZGfNziwNe3O6svW1m7QOUpnLIqFcQIg0cZ6t/5 Udnz8/zl2z1BEXHuaz0L =T+fX -----END PGP SIGNATURE----- --WjWU9mUuKzTKEtBb-- From owner-svn-src-all@freebsd.org Wed Jul 20 14:38:04 2016 Return-Path: Delivered-To: svn-src-all@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 A2F43B9ECDF; Wed, 20 Jul 2016 14:38:04 +0000 (UTC) (envelope-from slm@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 70E0A1563; Wed, 20 Jul 2016 14:38:04 +0000 (UTC) (envelope-from slm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KEc3fX057047; Wed, 20 Jul 2016 14:38:03 GMT (envelope-from slm@FreeBSD.org) Received: (from slm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KEc2eV057039; Wed, 20 Jul 2016 14:38:02 GMT (envelope-from slm@FreeBSD.org) Message-Id: <201607201438.u6KEc2eV057039@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: slm set sender to slm@FreeBSD.org using -f From: Stephen McConnell Date: Wed, 20 Jul 2016 14:38:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303089 - in stable/10: share/man/man4 sys/dev/mpr sys/dev/mps X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 14:38:04 -0000 Author: slm Date: Wed Jul 20 14:38:02 2016 New Revision: 303089 URL: https://svnweb.freebsd.org/changeset/base/303089 Log: MFC r302673 Use real values to calculate Max I/O size instead of guessing. Reviewed by: ken, scottl Approved by: ken, scottl, ambrisko (mentors) Differential Revision: https://reviews.freebsd.org/D7043 Modified: stable/10/share/man/man4/mpr.4 stable/10/share/man/man4/mps.4 stable/10/sys/dev/mpr/mpr.c stable/10/sys/dev/mpr/mpr_sas.c stable/10/sys/dev/mpr/mprvar.h stable/10/sys/dev/mps/mps.c stable/10/sys/dev/mps/mps_sas.c stable/10/sys/dev/mps/mpsvar.h Directory Properties: stable/10/ (props changed) Modified: stable/10/share/man/man4/mpr.4 ============================================================================== --- stable/10/share/man/man4/mpr.4 Wed Jul 20 12:46:21 2016 (r303088) +++ stable/10/share/man/man4/mpr.4 Wed Jul 20 14:38:02 2016 (r303089) @@ -29,7 +29,7 @@ .\" 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 DAMAGES. -.\" +.\" .\" mpr driver man page. .\" .\" Author: Ken Merry @@ -38,7 +38,7 @@ .\" $Id$ .\" $FreeBSD$ .\" -.Dd April 29, 2016 +.Dd July 6, 2016 .Dt MPR 4 .Os .Sh NAME @@ -156,6 +156,29 @@ The current number of active I/O command dev.mpr.X.io_cmds_active .Xr sysctl 8 variable. +.Ed +.Pp +To set the maximum number of pages that will be used per I/O for all adapters, +set this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +hw.mpr.max_io_pages=NNNN +.Ed +.Pp +To set the maximum number of pages that will be used per I/O for a specific +adapter, set this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +dev.mpr.X.max_io_pages=NNNN +.Ed +.Pp +The default max_io_pages value is -1, meaning that the maximum I/O size that +will be used per I/O will be calculated using the IOCFacts values stored in +the controller. +The lowest value that the driver will use for max_io_pages is 1, otherwise +IOCFacts will be used to calculate the maximum I/O size. +The smaller I/O size calculated from either max_io_pages or IOCFacts will be the +maximum I/O size used by the driver. .Pp The highest number of active I/O commands seen since boot is stored in the dev.mpr.X.io_cmds_highwater @@ -220,7 +243,7 @@ SATA disks that take several seconds to command might not be discovered by the driver. This problem can sometimes be overcome by increasing the value of the spinup wait time in -.Xr loader.conf 5 : +.Xr loader.conf 5 with the .Bd -literal -offset indent hw.mpr.spinup_wait_time=NNNN @@ -250,7 +273,7 @@ hw.mpr.X.debug_level .Pp tunable, either in .Xr loader.conf 5 -or by using +or by using .Xr sysctl 8 . These bits have the described effects: .Bd -literal -offset indent Modified: stable/10/share/man/man4/mps.4 ============================================================================== --- stable/10/share/man/man4/mps.4 Wed Jul 20 12:46:21 2016 (r303088) +++ stable/10/share/man/man4/mps.4 Wed Jul 20 14:38:02 2016 (r303089) @@ -1,5 +1,8 @@ .\" .\" Copyright (c) 2010 Spectra Logic Corporation +.\" Copyright (c) 2014 LSI Corp +.\" Copyright (c) 2016 Avago Technologies +.\" Copyright (c) 2016 Broadcom Ltd. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -30,25 +33,27 @@ .\" mps driver man page. .\" .\" Author: Ken Merry +.\" Author: Stephen McConnell .\" .\" $Id: //depot/SpectraBSD/head/share/man/man4/mps.4#6 $ .\" $FreeBSD$ .\" -.Dd December 9, 2015 +.Dd July 5, 2016 .Dt MPS 4 .Os .Sh NAME .Nm mps -.Nd LSI Fusion-MPT 2 Serial Attached SCSI driver +.Nd "LSI Fusion-MPT 2 IT/IR 6Gb/s Serial Attached SCSI/SATA driver" .Sh SYNOPSIS -To compile this driver into your kernel, -place the following lines in your kernel configuration file: +To compile this driver into the kernel, place these lines in the kernel +configuration file: .Bd -ragged -offset indent +.Cd "device pci" .Cd "device scbus" .Cd "device mps" .Ed .Pp -Or, to load the driver as a module at boot, place the following line in +The driver can be loaded as a module at boot time by placing this line in .Xr loader.conf 5 : .Bd -literal -offset indent mps_load="YES" @@ -56,35 +61,30 @@ mps_load="YES" .Sh DESCRIPTION The .Nm -driver provides support for LSI Logic Fusion-MPT 2 +driver provides support for Broadcom Ltd./Avago Tech (LSI) +Fusion-MPT 2 IT/IR .Tn SAS controllers and WarpDrive solid state storage cards. .Sh HARDWARE -The +These controllers are supported by the .Nm -driver supports the following hardware: +driver: .Pp .Bl -bullet -compact .It -LSI Logic SAS2004 (4 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2004 (4 Port SAS) .It -LSI Logic SAS2008 (8 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2008 (8 Port SAS) .It -LSI Logic SAS2108 (8 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2108 (8 Port SAS) .It -LSI Logic SAS2116 (16 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2116 (16 Port SAS) .It -LSI Logic SAS2208 (8 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2208 (8 Port SAS) .It -LSI Logic SAS2308 (8 Port -.Tn SAS ) +Broadcom Ltd./Avago Tech (LSI) SAS 2308 (8 Port SAS) .It -LSI Logic SSS6200 Solid State Storage +Broadcom Ltd./Avago Tech (LSI) SSS6200 Solid State Storage .It Intel Integrated RAID Module RMS25JB040 .It @@ -95,9 +95,12 @@ Intel Integrated RAID Module RMS25KB040 Intel Integrated RAID Module RMS25KB080 .El .Sh CONFIGURATION +.Pp +In all tunable descriptions below, X represents the adapter number. +.Pp To disable MSI interrupts for all .Nm -driver instances, set the following tunable value in +driver instances, set this tunable value in .Xr loader.conf 5 : .Bd -literal -offset indent hw.mps.disable_msi=1 @@ -105,17 +108,15 @@ hw.mps.disable_msi=1 .Pp To disable MSI interrupts for a specific .Nm -driver instance, set the following tunable value in +driver instance, set this tunable value in .Xr loader.conf 5 : .Bd -literal -offset indent dev.mps.X.disable_msi=1 .Ed .Pp -where X is the adapter number. -.Pp To disable MSI-X interrupts for all .Nm -driver instances, set the following tunable value in +driver instances, set this tunable value in .Xr loader.conf 5 : .Bd -literal -offset indent hw.mps.disable_msix=1 @@ -123,84 +124,157 @@ hw.mps.disable_msix=1 .Pp To disable MSI-X interrupts for a specific .Nm -driver instance, set the following tunable value in +driver instance, set this tunable value in .Xr loader.conf 5 : .Bd -literal -offset indent dev.mps.X.disable_msix=1 .Ed .Pp -where X is the adapter number. -.Pp -To set the maximum number of DMA chains allocated for all adapters, -set the following variable in +To set the maximum number of DMA chains allocated for all adapters, set this +tunable in .Xr loader.conf 5 : .Bd -literal -offset indent hw.mps.max_chains=NNNN .Ed .Pp To set the maximum number of DMA chains allocated for a specific adapter, -set the following variable in +set this tunable in .Xr loader.conf 5 : .Bd -literal -offset indent dev.mps.X.max_chains=NNNN .Ed .Pp -This variable may also be viewed via -.Xr sysctl 8 -to see the maximum set for a given adapter. +The default max_chains value is 2048. .Pp -The current number of free chain frames may be seen via the +The current number of free chain frames is stored in the dev.mps.X.chain_free .Xr sysctl 8 variable. .Pp -The lowest number of free chain frames may be seen via the +The lowest number of free chain frames seen since boot is stored in the dev.mps.X.chain_free_lowwater .Xr sysctl 8 variable. .Pp +The number of times that chain frame allocations have failed since boot is +stored in the +dev.mps.X.chain_alloc_fail +.Xr sysctl 8 +variable. +This can be used to determine whether the max_chains tunable should be +increased to help performance. +.Pp The current number of active I/O commands is shown in the dev.mps.X.io_cmds_active .Xr sysctl 8 variable. +.Ed +.Pp +To set the maximum number of pages that will be used per I/O for all adapters, +set this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +hw.mps.max_io_pages=NNNN +.Ed .Pp -The maximum number of active I/O command seen since boot is shown in the +To set the maximum number of pages that will be used per I/O for a specific +adapter, set this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +dev.mps.X.max_io_pages=NNNN +.Ed +.Pp +The default max_io_pages value is -1, meaning that the maximum I/O size that +will be used per I/O will be calculated using the IOCFacts values stored in +the controller. +The lowest value that the driver will use for max_io_pages is 1, otherwise +IOCFacts will be used to calculate the maximum I/O size. +The smaller I/O size calculated from either max_io_pages or IOCFacts will be the +maximum I/O size used by the driver. +.Pp +The highest number of active I/O commands seen since boot is stored in the dev.mps.X.io_cmds_highwater .Xr sysctl 8 variable. .Pp +Devices can be excluded from +.Nm +control for all adapters by setting this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +hw.mps.exclude_ids=Y +.Ed +.Pp +Y represents the target ID of the device. +If more than one device is to be excluded, target IDs are separated by commas. +.Pp +Devices can be excluded from +.Nm +control for a specific adapter by setting this tunable in +.Xr loader.conf 5 : +.Bd -literal -offset indent +dev.mps.X.exclude_ids=Y +.Ed +.Pp +Y represents the target ID of the device. +If more than one device is to be excluded, target IDs are separated by commas. +.Pp The adapter can issue the .Sy StartStopUnit -SCSI command to SATA direct-access devices during shutdown, to allow the -device to quiesce before being powered down. +SCSI command to SATA direct-access devices during shutdown. +This allows the device to quiesce powering down. To control this feature for all adapters, set the .Bd -literal -offset indent hw.mps.enable_ssu .Ed .Pp -tunable value in +tunable in .Xr loader.conf 5 -to one of the following values: +to one of these values: .Bl -tag -width 6n -offset indent .It 0 Do not send SSU to either HDDs or SSDs. .It 1 -Send SSU to SSDs, but not to HDDs; this is the default value. +Send SSU to SSDs, but not to HDDs. +This is the default value. .It 2 Send SSU to HDDs, but not to SSDs. .It 3 Send SSU to both HDDs and SSDs. .El .Pp -To control the feature for a specific adapter, set the following tunable -value in +To control the feature for a specific adapter, set this tunable value in .Xr loader.conf 5 : .Bd -literal -offset indent dev.mps.X.enable_ssu .Ed .Pp -where X is the adapter number. -The same set of values are valid as for all adapters. +The same set of values are valid when setting this tunable for all adapters. +.Pp +SATA disks that take several seconds to spin up and fail the SATA Identify +command might not be discovered by the driver. +This problem can sometimes be overcome by increasing the value of the spinup +wait time in +.Xr loader.conf 5 +with the +.Bd -literal -offset indent +hw.mps.spinup_wait_time=NNNN +.Ed +.Pp +tunable. +NNNN represents the number of seconds to wait for SATA devices to spin up when +the device fails the initial SATA Identify command. +.Pp +Spinup wait times can be set for specific adapters in +.Xr loader.conf 5 : +with the +.Bd -literal -offset indent +dev.mps.X.spinup_wait_time=NNNN +.Ed +.Pp +tunable. +NNNN is the number of seconds to wait for SATA devices to spin up when they fail +the initial SATA Identify command. .Sh DEBUGGING To enable debugging prints from the .Nm @@ -209,25 +283,30 @@ driver, set the hw.mps.X.debug_level .Ed .Pp -variable, where X is the adapter number, either in +tunable, either in .Xr loader.conf 5 -or via +or by using .Xr sysctl 8 . -The following bits have the described effects: -.Bl -tag -width 6n -offset indent -.It 0x01 -Enable informational prints. -.It 0x02 -Enable tracing prints. -.It 0x04 -Enable prints for driver faults. -.It 0x08 -Enable prints for controller events. -.El +These bits have the described effects: +.Bd -literal -offset indent +0x0001 Enable informational prints (set by default). +0x0002 Enable prints for driver faults (set by default). +0x0004 Enable prints for controller events. +0x0008 Enable prints for controller logging. +0x0010 Enable prints for tracing recovery operations. +0x0020 Enable prints for parameter errors and programming bugs. +0x0040 Enable prints for system initialization operations. +0x0080 Enable prints for more detailed information. +0x0100 Enable prints for user-generated commands (IOCTL). +0x0200 Enable prints for device mapping. +0x0400 Enable prints for tracing through driver functions. +.Ed .Sh SEE ALSO +.Xr cam 4 , .Xr cd 4 , .Xr ch 4 , .Xr da 4 , +.Xr mpr 4 , .Xr mpt 4 , .Xr pci 4 , .Xr sa 4 , @@ -238,24 +317,17 @@ Enable prints for controller events. .Sh HISTORY The .Nm -driver first appeared in -.Fx 9.0 . +driver first appeared in FreeBSD 9.3. .Sh AUTHORS -.An -nosplit The .Nm driver was originally written by -.An Scott Long Aq scottl@FreeBSD.org . -It has been improved and tested by LSI Logic Corporation. +.An -nosplit +.An Scott Long Aq Mt scottl@FreeBSD.org . +It has been improved and tested by LSI Corporation, +Avago Technologies (formally LSI), and Broadcom Ltd. (formally Avago). +.Pp This man page was written by -.An Ken Merry Aq ken@FreeBSD.org . -.Sh BUGS -This driver has a couple of known shortcomings: -.Bl -bullet -compact -.It -No userland utility available (e.g., -.Xr mptutil 8 ) . -.It -The driver probes devices sequentially. -If your system has a large number of devices, the probe will take a while. -.El +.An Ken Merry Aq Mt ken@FreeBSD.org +with additional input from +.An Stephen McConnell Aq Mt slm@FreeBSD.org . Modified: stable/10/sys/dev/mpr/mpr.c ============================================================================== --- stable/10/sys/dev/mpr/mpr.c Wed Jul 20 12:46:21 2016 (r303088) +++ stable/10/sys/dev/mpr/mpr.c Wed Jul 20 14:38:02 2016 (r303089) @@ -1373,6 +1373,7 @@ mpr_get_tunables(struct mpr_softc *sc) sc->disable_msix = 0; sc->disable_msi = 0; sc->max_chains = MPR_CHAIN_FRAMES; + sc->max_io_pages = MPR_MAXIO_PAGES; sc->enable_ssu = MPR_SSU_ENABLE_SSD_DISABLE_HDD; sc->spinup_wait_time = DEFAULT_SPINUP_WAIT; @@ -1383,6 +1384,7 @@ mpr_get_tunables(struct mpr_softc *sc) TUNABLE_INT_FETCH("hw.mpr.disable_msix", &sc->disable_msix); TUNABLE_INT_FETCH("hw.mpr.disable_msi", &sc->disable_msi); TUNABLE_INT_FETCH("hw.mpr.max_chains", &sc->max_chains); + TUNABLE_INT_FETCH("hw.mpr.max_io_pages", &sc->max_io_pages); TUNABLE_INT_FETCH("hw.mpr.enable_ssu", &sc->enable_ssu); TUNABLE_INT_FETCH("hw.mpr.spinup_wait_time", &sc->spinup_wait_time); @@ -1403,6 +1405,10 @@ mpr_get_tunables(struct mpr_softc *sc) device_get_unit(sc->mpr_dev)); TUNABLE_INT_FETCH(tmpstr, &sc->max_chains); + snprintf(tmpstr, sizeof(tmpstr), "dev.mpr.%d.max_io_pages", + device_get_unit(sc->mpr_dev)); + TUNABLE_INT_FETCH(tmpstr, &sc->max_io_pages); + bzero(sc->exclude_ids, sizeof(sc->exclude_ids)); snprintf(tmpstr, sizeof(tmpstr), "dev.mpr.%d.exclude_ids", device_get_unit(sc->mpr_dev)); @@ -1488,6 +1494,11 @@ mpr_setup_sysctl(struct mpr_softc *sc) &sc->max_chains, 0,"maximum chain frames that will be allocated"); SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), + OID_AUTO, "max_io_pages", CTLFLAG_RD, + &sc->max_io_pages, 0,"maximum pages to allow per I/O (if <1 use " + "IOCFacts)"); + + SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, "enable_ssu", CTLFLAG_RW, &sc->enable_ssu, 0, "enable SSU to SATA SSD/HDD at shutdown"); Modified: stable/10/sys/dev/mpr/mpr_sas.c ============================================================================== --- stable/10/sys/dev/mpr/mpr_sas.c Wed Jul 20 12:46:21 2016 (r303088) +++ stable/10/sys/dev/mpr/mpr_sas.c Wed Jul 20 14:38:02 2016 (r303089) @@ -971,6 +971,8 @@ mprsas_action(struct cam_sim *sim, union case XPT_PATH_INQ: { struct ccb_pathinq *cpi = &ccb->cpi; + struct mpr_softc *sc = sassc->sc; + uint8_t sges_per_frame; cpi->version_num = 1; cpi->hba_inquiry = PI_SDTR_ABLE|PI_TAG_ABLE|PI_WIDE_16; @@ -999,13 +1001,23 @@ mprsas_action(struct cam_sim *sim, union cpi->transport_version = 0; cpi->protocol = PROTO_SCSI; cpi->protocol_version = SCSI_REV_SPC; -#if __FreeBSD_version >= 800001 + /* - * XXXSLM-probably need to base this number on max SGL's and - * page size. - */ - cpi->maxio = 256 * 1024; -#endif + * Max IO Size is Page Size * the following: + * ((SGEs per frame - 1 for chain element) * + * Max Chain Depth) + 1 for no chain needed in last frame + * + * If user suggests a Max IO size to use, use the smaller of the + * user's value and the calculated value as long as the user's + * value is larger than 0. The user's value is in pages. + */ + sges_per_frame = (sc->chain_frame_size / + sizeof(MPI2_IEEE_SGE_SIMPLE64)) - 1; + cpi->maxio = (sges_per_frame * sc->facts->MaxChainDepth) + 1; + cpi->maxio *= PAGE_SIZE; + if ((sc->max_io_pages > 0) && (sc->max_io_pages * PAGE_SIZE < + cpi->maxio)) + cpi->maxio = sc->max_io_pages * PAGE_SIZE; mprsas_set_ccbstatus(ccb, CAM_REQ_CMP); break; } Modified: stable/10/sys/dev/mpr/mprvar.h ============================================================================== --- stable/10/sys/dev/mpr/mprvar.h Wed Jul 20 12:46:21 2016 (r303088) +++ stable/10/sys/dev/mpr/mprvar.h Wed Jul 20 14:38:02 2016 (r303089) @@ -33,7 +33,7 @@ #ifndef _MPRVAR_H #define _MPRVAR_H -#define MPR_DRIVER_VERSION "13.00.00.00-fbsd" +#define MPR_DRIVER_VERSION "13.01.00.00-fbsd" #define MPR_DB_MAX_WAIT 2500 @@ -41,6 +41,7 @@ #define MPR_EVT_REPLY_FRAMES 32 #define MPR_REPLY_FRAMES MPR_REQ_FRAMES #define MPR_CHAIN_FRAMES 2048 +#define MPR_MAXIO_PAGES (-1) #define MPR_SENSE_LEN SSD_FULL_SIZE #define MPR_MSI_COUNT 1 #define MPR_SGE64_SIZE 12 @@ -264,6 +265,7 @@ struct mpr_softc { int io_cmds_highwater; int chain_free; int max_chains; + int max_io_pages; int chain_free_lowwater; uint32_t chain_frame_size; uint16_t chain_seg_size; Modified: stable/10/sys/dev/mps/mps.c ============================================================================== --- stable/10/sys/dev/mps/mps.c Wed Jul 20 12:46:21 2016 (r303088) +++ stable/10/sys/dev/mps/mps.c Wed Jul 20 14:38:02 2016 (r303089) @@ -1350,6 +1350,7 @@ mps_get_tunables(struct mps_softc *sc) sc->disable_msix = 0; sc->disable_msi = 0; sc->max_chains = MPS_CHAIN_FRAMES; + sc->max_io_pages = MPS_MAXIO_PAGES; sc->enable_ssu = MPS_SSU_ENABLE_SSD_DISABLE_HDD; sc->spinup_wait_time = DEFAULT_SPINUP_WAIT; @@ -1360,6 +1361,7 @@ mps_get_tunables(struct mps_softc *sc) TUNABLE_INT_FETCH("hw.mps.disable_msix", &sc->disable_msix); TUNABLE_INT_FETCH("hw.mps.disable_msi", &sc->disable_msi); TUNABLE_INT_FETCH("hw.mps.max_chains", &sc->max_chains); + TUNABLE_INT_FETCH("hw.mps.max_io_pages", &sc->max_io_pages); TUNABLE_INT_FETCH("hw.mps.enable_ssu", &sc->enable_ssu); TUNABLE_INT_FETCH("hw.mps.spinup_wait_time", &sc->spinup_wait_time); @@ -1380,6 +1382,10 @@ mps_get_tunables(struct mps_softc *sc) device_get_unit(sc->mps_dev)); TUNABLE_INT_FETCH(tmpstr, &sc->max_chains); + snprintf(tmpstr, sizeof(tmpstr), "dev.mps.%d.max_io_pages", + device_get_unit(sc->mps_dev)); + TUNABLE_INT_FETCH(tmpstr, &sc->max_io_pages); + bzero(sc->exclude_ids, sizeof(sc->exclude_ids)); snprintf(tmpstr, sizeof(tmpstr), "dev.mps.%d.exclude_ids", device_get_unit(sc->mps_dev)); @@ -1465,6 +1471,11 @@ mps_setup_sysctl(struct mps_softc *sc) &sc->max_chains, 0,"maximum chain frames that will be allocated"); SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), + OID_AUTO, "max_io_pages", CTLFLAG_RD, + &sc->max_io_pages, 0,"maximum pages to allow per I/O (if <1 use " + "IOCFacts)"); + + SYSCTL_ADD_INT(sysctl_ctx, SYSCTL_CHILDREN(sysctl_tree), OID_AUTO, "enable_ssu", CTLFLAG_RW, &sc->enable_ssu, 0, "enable SSU to SATA SSD/HDD at shutdown"); Modified: stable/10/sys/dev/mps/mps_sas.c ============================================================================== --- stable/10/sys/dev/mps/mps_sas.c Wed Jul 20 12:46:21 2016 (r303088) +++ stable/10/sys/dev/mps/mps_sas.c Wed Jul 20 14:38:02 2016 (r303089) @@ -928,6 +928,8 @@ mpssas_action(struct cam_sim *sim, union case XPT_PATH_INQ: { struct ccb_pathinq *cpi = &ccb->cpi; + struct mps_softc *sc = sassc->sc; + uint8_t sges_per_frame; cpi->version_num = 1; cpi->hba_inquiry = PI_SDTR_ABLE|PI_TAG_ABLE|PI_WIDE_16; @@ -951,12 +953,23 @@ mpssas_action(struct cam_sim *sim, union cpi->transport_version = 0; cpi->protocol = PROTO_SCSI; cpi->protocol_version = SCSI_REV_SPC; -#if __FreeBSD_version >= 800001 + /* - * XXX KDM where does this number come from? - */ - cpi->maxio = 256 * 1024; -#endif + * Max IO Size is Page Size * the following: + * ((SGEs per frame - 1 for chain element) * + * Max Chain Depth) + 1 for no chain needed in last frame + * + * If user suggests a Max IO size to use, use the smaller of the + * user's value and the calculated value as long as the user's + * value is larger than 0. The user's value is in pages. + */ + sges_per_frame = ((sc->facts->IOCRequestFrameSize * 4) / + sizeof(MPI2_SGE_SIMPLE64)) - 1; + cpi->maxio = (sges_per_frame * sc->facts->MaxChainDepth) + 1; + cpi->maxio *= PAGE_SIZE; + if ((sc->max_io_pages > 0) && (sc->max_io_pages * PAGE_SIZE < + cpi->maxio)) + cpi->maxio = sc->max_io_pages * PAGE_SIZE; mpssas_set_ccbstatus(ccb, CAM_REQ_CMP); break; } Modified: stable/10/sys/dev/mps/mpsvar.h ============================================================================== --- stable/10/sys/dev/mps/mpsvar.h Wed Jul 20 12:46:21 2016 (r303088) +++ stable/10/sys/dev/mps/mpsvar.h Wed Jul 20 14:38:02 2016 (r303089) @@ -33,7 +33,7 @@ #ifndef _MPSVAR_H #define _MPSVAR_H -#define MPS_DRIVER_VERSION "21.00.00.00-fbsd" +#define MPS_DRIVER_VERSION "21.01.00.00-fbsd" #define MPS_DB_MAX_WAIT 2500 @@ -41,6 +41,7 @@ #define MPS_EVT_REPLY_FRAMES 32 #define MPS_REPLY_FRAMES MPS_REQ_FRAMES #define MPS_CHAIN_FRAMES 2048 +#define MPS_MAXIO_PAGES (-1) #define MPS_SENSE_LEN SSD_FULL_SIZE #define MPS_MSI_COUNT 1 #define MPS_SGE64_SIZE 12 @@ -280,6 +281,7 @@ struct mps_softc { int io_cmds_highwater; int chain_free; int max_chains; + int max_io_pages; int chain_free_lowwater; u_int enable_ssu; int spinup_wait_time; From owner-svn-src-all@freebsd.org Wed Jul 20 14:40:58 2016 Return-Path: Delivered-To: svn-src-all@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 4CBE6B9F0C3; Wed, 20 Jul 2016 14:40:58 +0000 (UTC) (envelope-from kib@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 04E09186B; Wed, 20 Jul 2016 14:40:57 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KEevoK059184; Wed, 20 Jul 2016 14:40:57 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KEevLD059182; Wed, 20 Jul 2016 14:40:57 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607201440.u6KEevLD059182@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 20 Jul 2016 14:40:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303090 - head/sys/ufs/ufs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 14:40:58 -0000 Author: kib Date: Wed Jul 20 14:40:56 2016 New Revision: 303090 URL: https://svnweb.freebsd.org/changeset/base/303090 Log: Ensure that the UFS directory vnode' vm_object is properly sized before UFS_BALLOC() is called. I do not believe that this caused any real issue on FreeBSD because the exclusive vnode lock is held over the balloc/resize, the change is to make formally correct KPI use. Based on: the Matthew Dillon' patch from DragonFly BSD PR: 93942 Reviewed by: mckusick Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/ufs/ufs/ufs_lookup.c head/sys/ufs/ufs/ufs_vnops.c Modified: head/sys/ufs/ufs/ufs_lookup.c ============================================================================== --- head/sys/ufs/ufs/ufs_lookup.c Wed Jul 20 14:38:02 2016 (r303089) +++ head/sys/ufs/ufs/ufs_lookup.c Wed Jul 20 14:40:56 2016 (r303090) @@ -881,6 +881,7 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdir struct buf *bp; u_int dsize; struct direct *ep, *nep; + u_int64_t old_isize; int error, ret, blkoff, loc, spacefree, flags, namlen; char *dirbuf; @@ -909,16 +910,18 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdir return (error); } #endif + old_isize = dp->i_size; + vnode_pager_setsize(dvp, (u_long)dp->i_offset + DIRBLKSIZ); if ((error = UFS_BALLOC(dvp, (off_t)dp->i_offset, DIRBLKSIZ, cr, flags, &bp)) != 0) { if (DOINGSOFTDEP(dvp) && newdirbp != NULL) bdwrite(newdirbp); + vnode_pager_setsize(dvp, (u_long)old_isize); return (error); } dp->i_size = dp->i_offset + DIRBLKSIZ; DIP_SET(dp, i_size, dp->i_size); dp->i_flag |= IN_CHANGE | IN_UPDATE; - vnode_pager_setsize(dvp, (u_long)dp->i_size); dirp->d_reclen = DIRBLKSIZ; blkoff = dp->i_offset & (VFSTOUFS(dvp->v_mount)->um_mountp->mnt_stat.f_iosize - 1); Modified: head/sys/ufs/ufs/ufs_vnops.c ============================================================================== --- head/sys/ufs/ufs/ufs_vnops.c Wed Jul 20 14:38:02 2016 (r303089) +++ head/sys/ufs/ufs/ufs_vnops.c Wed Jul 20 14:40:56 2016 (r303090) @@ -1913,13 +1913,13 @@ ufs_mkdir(ap) dirtemplate = *dtp; dirtemplate.dot_ino = ip->i_number; dirtemplate.dotdot_ino = dp->i_number; + vnode_pager_setsize(tvp, DIRBLKSIZ); if ((error = UFS_BALLOC(tvp, (off_t)0, DIRBLKSIZ, cnp->cn_cred, BA_CLRBUF, &bp)) != 0) goto bad; ip->i_size = DIRBLKSIZ; DIP_SET(ip, i_size, DIRBLKSIZ); ip->i_flag |= IN_CHANGE | IN_UPDATE; - vnode_pager_setsize(tvp, (u_long)ip->i_size); bcopy((caddr_t)&dirtemplate, (caddr_t)bp->b_data, sizeof dirtemplate); if (DOINGSOFTDEP(tvp)) { /* From owner-svn-src-all@freebsd.org Wed Jul 20 15:00:06 2016 Return-Path: Delivered-To: svn-src-all@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 DD807B9F6ED; Wed, 20 Jul 2016 15:00:06 +0000 (UTC) (envelope-from asomers@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 B0628180A; Wed, 20 Jul 2016 15:00:06 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KF05Yt064636; Wed, 20 Jul 2016 15:00:05 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KF05T6064635; Wed, 20 Jul 2016 15:00:05 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201607201500.u6KF05T6064635@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Wed, 20 Jul 2016 15:00:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303091 - head/usr.sbin/camdd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 15:00:07 -0000 Author: asomers Date: Wed Jul 20 15:00:05 2016 New Revision: 303091 URL: https://svnweb.freebsd.org/changeset/base/303091 Log: Fix camdd for host-aware and host-managed SMR disks. This should've gone in as part of r300207 Reviewed by: ken MFC after: 3 days Sponsored by: Spectra Logic Corp Modified: head/usr.sbin/camdd/camdd.c Modified: head/usr.sbin/camdd/camdd.c ============================================================================== --- head/usr.sbin/camdd/camdd.c Wed Jul 20 14:40:56 2016 (r303090) +++ head/usr.sbin/camdd/camdd.c Wed Jul 20 15:00:05 2016 (r303091) @@ -1292,6 +1292,7 @@ camdd_probe_pass(struct cam_device *cam_ case T_CDROM: case T_OPTICAL: case T_RBC: + case T_ZBC_HM: break; default: errx(1, "Unsupported SCSI device type %d", scsi_dev_type); From owner-svn-src-all@freebsd.org Wed Jul 20 15:02:38 2016 Return-Path: Delivered-To: svn-src-all@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 9D653B9F8D3; Wed, 20 Jul 2016 15:02:38 +0000 (UTC) (envelope-from kib@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 798241C40; Wed, 20 Jul 2016 15:02:38 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KF2bTt067988; Wed, 20 Jul 2016 15:02:37 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KF2bGr067985; Wed, 20 Jul 2016 15:02:37 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607201502.u6KF2bGr067985@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 20 Jul 2016 15:02:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303092 - in stable/11: sys/kern sys/sys usr.bin/kdump X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 15:02:38 -0000 Author: kib Date: Wed Jul 20 15:02:37 2016 New Revision: 303092 URL: https://svnweb.freebsd.org/changeset/base/303092 Log: MFC r302770: Trace timeval parameters to the getitimer(2) and setitimer(2) syscalls. Approved by: re (gjb) Modified: stable/11/sys/kern/kern_time.c stable/11/sys/sys/ktrace.h stable/11/usr.bin/kdump/kdump.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/kern_time.c ============================================================================== --- stable/11/sys/kern/kern_time.c Wed Jul 20 15:00:05 2016 (r303091) +++ stable/11/sys/kern/kern_time.c Wed Jul 20 15:02:37 2016 (r303092) @@ -32,6 +32,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_ktrace.h" + #include #include #include @@ -54,6 +56,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef KTRACE +#include +#endif #include #include @@ -701,6 +706,10 @@ kern_getitimer(struct thread *td, u_int *aitv = p->p_stats->p_timer[which]; PROC_ITIMUNLOCK(p); } +#ifdef KTRACE + if (KTRPOINT(td, KTR_STRUCT)) + ktritimerval(aitv); +#endif return (0); } @@ -742,6 +751,10 @@ kern_setitimer(struct thread *td, u_int if (which > ITIMER_PROF) return (EINVAL); +#ifdef KTRACE + if (KTRPOINT(td, KTR_STRUCT)) + ktritimerval(aitv); +#endif if (itimerfix(&aitv->it_value) || aitv->it_value.tv_sec > INT32_MAX / 2) return (EINVAL); @@ -786,6 +799,10 @@ kern_setitimer(struct thread *td, u_int p->p_stats->p_timer[which] = *aitv; PROC_ITIMUNLOCK(p); } +#ifdef KTRACE + if (KTRPOINT(td, KTR_STRUCT)) + ktritimerval(oitv); +#endif return (0); } Modified: stable/11/sys/sys/ktrace.h ============================================================================== --- stable/11/sys/sys/ktrace.h Wed Jul 20 15:00:05 2016 (r303091) +++ stable/11/sys/sys/ktrace.h Wed Jul 20 15:02:37 2016 (r303092) @@ -270,6 +270,8 @@ void ktrcapfail(enum ktr_cap_fail_type, const cap_rights_t *); #define ktrcaprights(s) \ ktrstruct("caprights", (s), sizeof(cap_rights_t)) +#define ktritimerval(s) \ + ktrstruct("itimerval", (s), sizeof(struct itimerval)) #define ktrsockaddr(s) \ ktrstruct("sockaddr", (s), ((struct sockaddr *)(s))->sa_len) #define ktrstat(s) \ Modified: stable/11/usr.bin/kdump/kdump.c ============================================================================== --- stable/11/usr.bin/kdump/kdump.c Wed Jul 20 15:00:05 2016 (r303091) +++ stable/11/usr.bin/kdump/kdump.c Wed Jul 20 15:02:37 2016 (r303092) @@ -109,6 +109,7 @@ void ktruser_malloc(void *); void ktruser_rtld(int, void *); void ktruser(int, void *); void ktrcaprights(cap_rights_t *); +void ktritimerval(struct itimerval *it); void ktrsockaddr(struct sockaddr *); void ktrstat(struct stat *); void ktrstruct(char *, size_t); @@ -1562,6 +1563,24 @@ ktrcaprights(cap_rights_t *rightsp) printf("\n"); } +static void +ktrtimeval(struct timeval *tv) +{ + + printf("{%ld, %ld}", (long)tv->tv_sec, tv->tv_usec); +} + +void +ktritimerval(struct itimerval *it) +{ + + printf("itimerval { .interval = "); + ktrtimeval(&it->it_interval); + printf(", .value = "); + ktrtimeval(&it->it_value); + printf(" }\n"); +} + void ktrsockaddr(struct sockaddr *sa) { @@ -1737,6 +1756,7 @@ ktrstruct(char *buf, size_t buflen) size_t namelen, datalen; int i; cap_rights_t rights; + struct itimerval it; struct stat sb; struct sockaddr_storage ss; @@ -1761,6 +1781,11 @@ ktrstruct(char *buf, size_t buflen) goto invalid; memcpy(&rights, data, datalen); ktrcaprights(&rights); + } else if (strcmp(name, "itimerval") == 0) { + if (datalen != sizeof(struct itimerval)) + goto invalid; + memcpy(&it, data, datalen); + ktritimerval(&it); } else if (strcmp(name, "stat") == 0) { if (datalen != sizeof(struct stat)) goto invalid; From owner-svn-src-all@freebsd.org Wed Jul 20 15:07:53 2016 Return-Path: Delivered-To: svn-src-all@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 DD428B9FA80; Wed, 20 Jul 2016 15:07:53 +0000 (UTC) (envelope-from kib@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 B51DE1F80; Wed, 20 Jul 2016 15:07:53 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KF7qYp068222; Wed, 20 Jul 2016 15:07:52 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KF7qp4068218; Wed, 20 Jul 2016 15:07:52 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607201507.u6KF7qp4068218@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 20 Jul 2016 15:07:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303093 - in stable/10: sys/kern sys/sys usr.bin/kdump X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 15:07:54 -0000 Author: kib Date: Wed Jul 20 15:07:52 2016 New Revision: 303093 URL: https://svnweb.freebsd.org/changeset/base/303093 Log: MFC r302770: Trace timeval parameters to the getitimer(2) and setitimer(2) syscalls. Modified: stable/10/sys/kern/kern_time.c stable/10/sys/sys/ktrace.h stable/10/usr.bin/kdump/kdump.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/kern_time.c ============================================================================== --- stable/10/sys/kern/kern_time.c Wed Jul 20 15:02:37 2016 (r303092) +++ stable/10/sys/kern/kern_time.c Wed Jul 20 15:07:52 2016 (r303093) @@ -32,6 +32,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_ktrace.h" + #include #include #include @@ -54,6 +56,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#ifdef KTRACE +#include +#endif #include #include @@ -699,6 +704,10 @@ kern_getitimer(struct thread *td, u_int *aitv = p->p_stats->p_timer[which]; PROC_ITIMUNLOCK(p); } +#ifdef KTRACE + if (KTRPOINT(td, KTR_STRUCT)) + ktritimerval(aitv); +#endif return (0); } @@ -740,6 +749,10 @@ kern_setitimer(struct thread *td, u_int if (which > ITIMER_PROF) return (EINVAL); +#ifdef KTRACE + if (KTRPOINT(td, KTR_STRUCT)) + ktritimerval(aitv); +#endif if (itimerfix(&aitv->it_value) || aitv->it_value.tv_sec > INT32_MAX / 2) return (EINVAL); @@ -784,6 +797,10 @@ kern_setitimer(struct thread *td, u_int p->p_stats->p_timer[which] = *aitv; PROC_ITIMUNLOCK(p); } +#ifdef KTRACE + if (KTRPOINT(td, KTR_STRUCT)) + ktritimerval(oitv); +#endif return (0); } Modified: stable/10/sys/sys/ktrace.h ============================================================================== --- stable/10/sys/sys/ktrace.h Wed Jul 20 15:02:37 2016 (r303092) +++ stable/10/sys/sys/ktrace.h Wed Jul 20 15:07:52 2016 (r303093) @@ -270,6 +270,8 @@ void ktrcapfail(enum ktr_cap_fail_type, const cap_rights_t *); #define ktrcaprights(s) \ ktrstruct("caprights", (s), sizeof(cap_rights_t)) +#define ktritimerval(s) \ + ktrstruct("itimerval", (s), sizeof(struct itimerval)) #define ktrsockaddr(s) \ ktrstruct("sockaddr", (s), ((struct sockaddr *)(s))->sa_len) #define ktrstat(s) \ Modified: stable/10/usr.bin/kdump/kdump.c ============================================================================== --- stable/10/usr.bin/kdump/kdump.c Wed Jul 20 15:02:37 2016 (r303092) +++ stable/10/usr.bin/kdump/kdump.c Wed Jul 20 15:07:52 2016 (r303093) @@ -106,6 +106,7 @@ void ktruser_malloc(void *); void ktruser_rtld(int, void *); void ktruser(int, void *); void ktrcaprights(cap_rights_t *); +void ktritimerval(struct itimerval *it); void ktrsockaddr(struct sockaddr *); void ktrstat(struct stat *); void ktrstruct(char *, size_t); @@ -1616,6 +1617,24 @@ ktrcaprights(cap_rights_t *rightsp) printf("\n"); } +static void +ktrtimeval(struct timeval *tv) +{ + + printf("{%ld, %ld}", (long)tv->tv_sec, tv->tv_usec); +} + +void +ktritimerval(struct itimerval *it) +{ + + printf("itimerval { .interval = "); + ktrtimeval(&it->it_interval); + printf(", .value = "); + ktrtimeval(&it->it_value); + printf(" }\n"); +} + void ktrsockaddr(struct sockaddr *sa) { @@ -1799,6 +1818,7 @@ ktrstruct(char *buf, size_t buflen) size_t namelen, datalen; int i; cap_rights_t rights; + struct itimerval it; struct stat sb; struct sockaddr_storage ss; @@ -1823,6 +1843,11 @@ ktrstruct(char *buf, size_t buflen) goto invalid; memcpy(&rights, data, datalen); ktrcaprights(&rights); + } else if (strcmp(name, "itimerval") == 0) { + if (datalen != sizeof(struct itimerval)) + goto invalid; + memcpy(&it, data, datalen); + ktritimerval(&it); } else if (strcmp(name, "stat") == 0) { if (datalen != sizeof(struct stat)) goto invalid; From owner-svn-src-all@freebsd.org Wed Jul 20 15:20:11 2016 Return-Path: Delivered-To: svn-src-all@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 E3EB2B9FE76; Wed, 20 Jul 2016 15:20:11 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io0-f179.google.com (mail-io0-f179.google.com [209.85.223.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B78B519B1; Wed, 20 Jul 2016 15:20:11 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io0-f179.google.com with SMTP id m101so50396700ioi.2; Wed, 20 Jul 2016 08:20:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=7qwxLgnR6no4IVerhQZfwAvYLAxHBbprLOof3cgTVRY=; b=XUIfxG5Qcy5jbHaLKOJE0Vl34yKxnNgNIIG70bXpCTQJT+OQfB7/1PC9X5tauNLc+m GjrhViAEgEmooL3vLfYrDP+yeD1Hm8+x9ZRfPgXZxivI0efQEmgtVG38uA6jhY39boIJ HI2EMaLQs8WrzLFnbqNzO/98mAG54nlWPjVA3P6vXcOZ3WroDfUCD/Er1BrqfMYkK/Uo nvN7eVHtjyTkGSr8leoLLiPHLdrFH+lhnvA6/s9XT5/Ci4lFionoc8u2NKWJtChz8cAW OaPq6AXLMDJgIsHnnPiWooHAQgkZX671U4kRqDzdWniU/qAKEpYZMWGiNAYOgxUKo4OZ mdgQ== X-Gm-Message-State: ALyK8tIy9h0Iz3jc0WVvbe4VhmvQhSkyrzzcnR/t9lFKhUSefBpKFQP8MbulFbCzo+C5/g== X-Received: by 10.107.17.68 with SMTP id z65mr45259681ioi.150.1469028005383; Wed, 20 Jul 2016 08:20:05 -0700 (PDT) Received: from mail-io0-f171.google.com (mail-io0-f171.google.com. [209.85.223.171]) by smtp.gmail.com with ESMTPSA id 188sm8950093itk.19.2016.07.20.08.20.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Jul 2016 08:20:05 -0700 (PDT) Received: by mail-io0-f171.google.com with SMTP id m101so50396347ioi.2; Wed, 20 Jul 2016 08:20:05 -0700 (PDT) X-Received: by 10.107.28.11 with SMTP id c11mr3969572ioc.7.1469028004881; Wed, 20 Jul 2016 08:20:04 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.36.233.67 with HTTP; Wed, 20 Jul 2016 08:20:04 -0700 (PDT) In-Reply-To: <1c485351-51f3-99f1-b7da-0745030dd1e6@FreeBSD.org> References: <201607191920.u6JJKm7R026421@repo.freebsd.org> <1c485351-51f3-99f1-b7da-0745030dd1e6@FreeBSD.org> From: Conrad Meyer Date: Wed, 20 Jul 2016 08:20:04 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r303043 - in head: share/man/man4 sys/dev/vt sys/dev/vt/hw/fb To: koobs@freebsd.org Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 15:20:12 -0000 On Wed, Jul 20, 2016 at 12:44 AM, Kubilay Kocak wrote: > On 20/07/2016 5:20 AM, Conrad E. Meyer wrote: >> Author: cem >> Date: Tue Jul 19 19:20:47 2016 >> New Revision: 303043 >> URL: https://svnweb.freebsd.org/changeset/base/303043 >> >> Log: >> Increase vt(4) framebuffer maximum size >> >> And rename "DEFAULT" constants to the more accurate "MAX." >> >> PR: 210382 >> Submitted by: Felix >> Reviewed by: wblock, cem >> Tested by: Dave Cottlehuber > > Can MFC? > > There are high hopes for this coming out in 11.0 / next 10.x > > re is cc'd on the original bugzilla issue If you would like to do so, please go ahead. Best, Conrad From owner-svn-src-all@freebsd.org Wed Jul 20 15:45:22 2016 Return-Path: Delivered-To: svn-src-all@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 23DEEB9E475; Wed, 20 Jul 2016 15:45:22 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from c.mail.sonic.net (c.mail.sonic.net [64.142.111.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0AD201B12; Wed, 20 Jul 2016 15:45:21 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from zeppelin.tachypleus.net (75-101-50-44.static.sonic.net [75.101.50.44]) (authenticated bits=0) by c.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6KFj6hg022302 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 20 Jul 2016 08:45:07 -0700 Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Michal Meloun , Svatopluk Kraus , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578E0B5D.3070105@FreeBSD.org> <578F6075.7010500@FreeBSD.org> From: Nathan Whitehorn Message-ID: <05a80ac6-4285-ec9d-36e9-2f92c609f746@freebsd.org> Date: Wed, 20 Jul 2016 08:45:06 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <578F6075.7010500@FreeBSD.org> X-Sonic-CAuth: UmFuZG9tSVaCibFARB3fA4bleaDLT/egfL6kT6bkkayTbSm+b2UDY18aEJQZdTY2NRqWHUAL7fcc8NyxTWgU3p4gXVNJbafDqFQWA0XC53Y= X-Sonic-ID: C;qh3D7pBO5hG5MZtMTlz00w== M;Kp4m75BO5hG5MZtMTlz00w== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 15:45:22 -0000 On 07/20/16 04:28, Michal Meloun wrote: > Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): >> >> >> On 07/19/16 04:13, Michal Meloun wrote: >>> Dne 19.07.2016 v 2:11 Nathan Whitehorn napsal(a): >>> Hi Nathan, >>> I’m afraid that skra is on vacation, for next 2 weeks (at minimum), so >>> please don’t expect quick response. >>> >>>> Could you please describe what this change is in more detail? >>> Short description is appended. >>> >>>> It breaks a lot of encapsulations we have worked very hard to >>>> maintain, >>>> moves ARM code into MI parts of the kernel, and the OFW parts violate >>>> IEEE 1275 (the Open Firmware standard). In particular, there is no >>>> guarantee that the interrupts for a newbus (or OF) device are >>>> encoded in >>>> a property called "interrupts" (or, indeed, in any property at all) on >>>> that node and there are many, many device trees where that is not the >>>> case (e.g. ones with interrupt maps, as well as Apple hardware). By >>>> putting that knowledge into the OF root bus device, which we have >>>> tried >>>> to keep it out of, this enforces a standard that doesn't actually >>>> exist. >>> Imho, this patch doesn’t change anything in this area. Only handling of >>> “interrupts†property is changed, all other cases are unchanged (I >>> hope). Also, INTRNG code is currently shared by ARM, ARM64 and MIPS. >> >> But "interrupts" isn't a generic part of OF. This makes it one, >> incorrectly. > How? Can you be little more exact ? Because it puts knowledge into ofwbus that expects that children at arbitrary levels of nesting have interrupts defined by an "interrupts" property. You could patch this through on sub-devices, of course, but that's already done correctly by the existing ofw_bus_map_intr() code in a much more robust way that doesn't involve trying to guess how sub-buses and devices have chosen to allocate resources. Why reinvent the wheel all the way through the bus hierarchy? >> >>> >>>> I'm hesitant to ask for reversion on something that landed 6 weeks ago >>>> without me noticing, but this needs a lot more architectural work >>>> before >>>> any parts of the kernel should use it. >>>> -Nathan >>> I think that it’s too late. This patch series consist of r301451 >>> (https://reviews.freebsd.org/D6632), >>> r301453, r301539 and 301543. And new GPIO interrupts are currently >>> used >>> (by in tree drivers or in development trees). >> >> Well, then we need in-place rearchitecture. >> >>> >>> >>> The root of problem is that standard way of delivering interrupt >>> resource to consumer driver doesn’t works in OFW world. >>> >>> So we have some fact: >>> - the format of interrupt property is dependent of interrupt >>> controller and only interrupt controller can parse it. >>> - the interrupt property can have more data than just interrupt >>> number. >>> - single interrupt controller must be able to handle multiple >>> format of interrupt description. >>> >>> In pre-patchset era, simplebus enumerates children and attempts to set >>> memory and interrupts to resource list for them. But the interrupt >>> controllers are not yet populated so nobody can parse interrupt >>> property. Moreover, in all cases (parsed or not), we cannot store >>> complete interrupt description into resource list. >> >> We have done this for many years on PowerPC and sparc64 with delayed >> configuration of interrupts and a look-up table. This handles >> complicated bus configurations better than this code and requires no >> changes outside of a few MD files. That is why the (now partially >> duplicated) OFW_BUS_MAP_INTR() function exists. That one also has the >> benefit of still working when used in conjunction with, e.g., devices >> with an interrupt-map-mask property. >> >>> >>> The patch simply postpones reading of interrupt property to >>> bus_alloc_resource() (called by consumer driver) time. >>> >>> Due to this, we can: >>> - parse interrupt property. The interrupt driver must exist >>> at this time. >> >> This only works with some types of interrupt properties, not all, and >> breaks if the interrupt driver hasn't attached yet (which it can't be >> guaranteed to -- some PPC systems have interrupt drivers that live on >> the PCI bus, for example). > How you can allocate (and reserve it in rman) interrupt if is not > mapped (so you have not real IRQ number for it). Just for notice - > multiple virtual IRQs can be mapped into single real IRQ. The core idea is to think of the full interrupt specifier -- the interrupt parent and the full byte string in the device tree -- as the IRQ rather than the interrupt pin on some chip (which is usually, but not always, the first word in that byte string). The "virtual" IRQ number is just a compression of that longer piece of data, which usually can't fit in an rman resource. There is no need to actually activate those interrupts before interrupts are enabled, so you can just cache them in a table until the end of device probing, which lets you break circular dependency loops between bus and interrupt topology. So long as you keep track of your mapping and the same (parent, interrupt specifier) parent always gives the same virtual IRQ, there is no way in this system to map multiple active IRQs onto a single interrupt pin on the PIC unless your device tree is broken and specifies two devices with incompatible modes (active high and edge downgoing or something) on the same pin. In this case, nothing you can do will save you -- unless your PIC supports interrupts for different kinds of events, in which case this system will work perfectly by treating them as different interrupts to the kernel for which the fact they are on the same pin is immaterial. I should note that ARM and MIPS have an almost complete implementation of this already: maybe some more intr_machdep.c logic is needed for some cases, but all the rest of the plumbing is there. > >> >>> - bus_alloc_resource() returns resource, so we can attach parsed >>> interrupt data to it. By this, the resource itself can be used >>> for delivering configuration data to subsequent call to >>> bus_setup_intr() (or to all related bus_() calls). >>> >>> >>> The patched code still accepts delivering of interrupts in resource >>> list. >>> >>> Michal >>> >> >> Given that other code depends on this, fixing it will likely require >> some complex work. I wish I had known about it when it went in. >> >> There are three main problems: >> 1. It doesn't work for interrupts defined by other mechanisms (e.g. >> interrupt-map properties) > I aggree, but missing ' interrupt-map' functioanlity is not caused by > this patch. It is in that the standard system already implements it completely. > >> 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), >> but is both problematically more general and less flexible (it has >> requirements on timing of PIC attachment vs. driver resource allocation) > OFW_BUS_MAP_INTR() can parse only OFW based data and expect that > parsed data are magicaly stored within the call. > The new method, bus_map_intr(), can parse data from multiple sources > (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). It also > returns parsed data back to caller. That is not true. It works as long as you can specify the interrupt state as a 32-bit key of some kind for the PIC and a string of arbitrary data, which works with all of those. You could even make the interrupt data be a pointer to exactly the structs you have chosen to define here. > And no, it doesn't add any additional timing requirements . As far as I can tell, it requires the interrupt controller to be attached before you can allocate interrupts. Is that not true? > >> 3. It is not fully transparent to end code. Since it happens at >> bus_alloc_resource() time, it is complicated to get the appropriate >> values for IRQs constructed by composite techniques (interrupt-map >> vs. interrupts vs. hand allocation vs. PCI routing, for example). > I don't see any limitation - can you be more exact? Why is not > transparent? Why is more complicated ? Suppose that a PCI device adds more IRQs to its resource list or modifies the ordering. How is whatever bus layer supposed to do something sensible at allocation time? It requires that RID numbers mean something to the parent bus after assignment, which is not guaranteed by anything and is, in more than handful of cases I think of, not true in practice. >> It is much easier to do this correctly at bus attach time when the >> resource lists are made (how PPC does it). >> > I don't agree. I don't agree. Making this at bus attach time leads > into complicated 'virtual' IRQ infrastructure, with many unresolved > corner cases. Which unresolved corner cases? This has been working correctly on a number of platforms in both FreeBSD and Linux for many years. > >> (1) is easy to fix without API changes, but (2) and (3) are >> fundamental architectural problems that will bite us immediately down >> the road and cause a permanent schism between OF support on different >> platforms. >> >> Let me describe how this is handled on PowerPC (Linux on PPC solves >> the problem the same way). When constructing a resource list, bus >> drivers that construct them from OF properties call >> ofw_bus_map_intr() with the interrupt parent phandle and the array of >> cells corresponding to the interrupt. This thunks immediately to >> nexus, which connects to code in intr_machdep.c. Code there assigns a >> unique made-up virtual IRQ and returns it, caching the interrupt >> parent ID and opaque interrupt data (if the same string of data >> reappears later, you get back the same virtual IRQ of course). >> >> When PIC drivers attach and register themselves with the interrupt >> handling layer, all the interrupts for that PIC are passed to it >> along with the virtual IRQ. The PIC driver is supposed to know what >> its interrupt data mean, which can be safely guaranteed, and it >> presents the assigned virtual IRQ number to the kernel when >> dispatching interrupts. (IRQs configured after PIC attachment are >> passed through immediately). >> >> This accomplishes the following things: >> 1. Parsing interrupt data is moved to the PIC driver, which is the >> only place it can be done safely. > I don't see anything different comparing with INTRNG. What I am advocating *is* INTRNG, at least as originally conceived and implemented. >> 2. There is no ordering requirement on PIC attachment vs. the >> attachment of anything else. > I think thats is not a true - PIC must exist before > bus_alloc_resource() / bus_setup_intr() is called. It does not with the IRQ mapping infrastructure. Interrupts are set up at PIC attachment, whenever that occurs. > >> 3. Changes are extremely minimal relative to the "standard" interrupt >> flow: you only have to patch code that is already directly dealing >> with OF interrupts. > I don't see anything different comparing with INTRNG. Again, this was the original INTRNG architecture and is already implemented. As such, there are *no* changes required on ARM to get it. bus_map_intr() adds a bunch of new code, in parallel with the old code that also solves the problem, to no purpose. >> 4. It happens at bus enumeration time, when results can be guaranteed >> self-consistent. > Where do you see any potential source of inconsistency in INTRNG? See the example above about modified interrupt lists. There is also no obvious way for a child device to construct an interrupt not assigned to it by the parent device from device tree properties without knowing in some detail what kind of interrupt needs to be built. > >> 5. It combines naturally with ofw_bus_lookup_imap() and friends in >> the interrupt-map case (e.g. for PCI). > Again, I don't see anything different. Proper parsing of interrupt > property is not a problem of INTRNG (but must be fixed, of course). But it is *already* fixed by the standard code that already exists. You are introducing a less-functional parallel code path here. >> >> I'm not sure what the right path forward is, but this code needs to >> be fixed. The PowerPC code is fully MI, and was the template for the >> original INTRNG, so it shouldn't be too bad to replace. >> -Nathan >> > > So, new INTRNG: > - Introduces new more general bus method that can parse interrupt > configuration > data from any source. Is this step backward? Yes, since it is more general in some sense, while simultaneously handling fewer cases than code that already exists and is implemented. > > - Old INTRNG and PPC code stores unparsed and/or parsed interrupt data in > INTRNG and each consumer must query for them. This data sharing also > causes > significant locking issues. New INTRNG stores interrupt > configuration data into > given resource, so each relevant bus method can access it immediately. > Is this step backward? Which locking issues? And yes, it is. > > - New INTRNG is not OFW centric, it can works with virtually unlimited > number > of configuration data sources. Is this step backward? Also yes, because it makes the interrupt handles less opaque, which makes the infrastructure less flexible. > - New INTRNG correctly uses standard system infrastructure. Real IRQ > number > is reserved in rman within bus_alloc_resource() call, interrupt HW is > configured (only!) within bus_setup_intr() call. Is this step > backward? The "real" IRQ number is not well defined always, so requiring that is a step backwards, yes. > - New INTRNG completely eliminates huge and not always working virtual > IRQ concept. When does it "not always work"? It seems to, in fact, always work on multiple platforms and have for a long time in the face of all kinds of totally bizarre topologies and system architectures. > > > Don’t take me bad, I’m open to any change. But no, at this time, I’m > not ready to completely revert someone else's work – although I am a > co-author. I would urge, in the strongest possible terms, that this be backed out from stable/11 at least. We can add the new API back for 11.1 if we want it, but we totally lose the ability to change it later in the stable/11 cycle if it stays in now. -Nathan > > Michal > > From owner-svn-src-all@freebsd.org Wed Jul 20 15:59:39 2016 Return-Path: Delivered-To: svn-src-all@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 19DCCB9EEBB; Wed, 20 Jul 2016 15:59:39 +0000 (UTC) (envelope-from ache@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 DD8E21C4A; Wed, 20 Jul 2016 15:59:38 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KFxcdD088595; Wed, 20 Jul 2016 15:59:38 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KFxck2088594; Wed, 20 Jul 2016 15:59:38 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607201559.u6KFxck2088594@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Wed, 20 Jul 2016 15:59:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303094 - head/usr.bin X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 15:59:39 -0000 Author: ache Date: Wed Jul 20 15:59:37 2016 New Revision: 303094 URL: https://svnweb.freebsd.org/changeset/base/303094 Log: Continuation lines with comments badly affects gprof, it is excluded from build on amd64 f.e. Modified: head/usr.bin/Makefile Modified: head/usr.bin/Makefile ============================================================================== --- head/usr.bin/Makefile Wed Jul 20 15:07:52 2016 (r303093) +++ head/usr.bin/Makefile Wed Jul 20 15:59:37 2016 (r303094) @@ -270,8 +270,9 @@ SUBDIR.${MK_TOOLCHAIN}+= ctags SUBDIR.${MK_TOOLCHAIN}+= cxxfilt SUBDIR.${MK_TOOLCHAIN}+= elfcopy SUBDIR.${MK_TOOLCHAIN}+= file2c -.if ${MACHINE_ARCH} != "aarch64" && \ # ARM64TODO gprof does not build - ${MACHINE_CPUARCH} != "riscv" # RISCVTODO gprof does not build +# ARM64TODO gprof does not build +# RISCVTODO gprof does not build +.if ${MACHINE_ARCH} != "aarch64" && ${MACHINE_CPUARCH} != "riscv" SUBDIR.${MK_TOOLCHAIN}+= gprof .endif SUBDIR.${MK_TOOLCHAIN}+= indent From owner-svn-src-all@freebsd.org Wed Jul 20 16:35:03 2016 Return-Path: Delivered-To: svn-src-all@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 502C3B9F673; Wed, 20 Jul 2016 16:35:03 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (glebi.us [96.95.210.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 2B3201ECD; Wed, 20 Jul 2016 16:35:02 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id u6KGZ114005033 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 20 Jul 2016 09:35:01 -0700 (PDT) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id u6KGZ1Ne005032; Wed, 20 Jul 2016 09:35:01 -0700 (PDT) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@FreeBSD.org using -f Date: Wed, 20 Jul 2016 09:35:01 -0700 From: Gleb Smirnoff To: Randall Stewart Cc: Randall Ray Stewart , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303037 - head/sys/kern Message-ID: <20160720163501.GY1076@FreeBSD.org> References: <201607191831.u6JIVJWq007542@repo.freebsd.org> <20160720065335.GU1076@FreeBSD.org> <1CA02E0F-6871-4291-9F5A-20EFF5F6315D@netflix.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1CA02E0F-6871-4291-9F5A-20EFF5F6315D@netflix.com> User-Agent: Mutt/1.6.1 (2016-04-27) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 16:35:03 -0000 Randall, I have just tested and r303037 brings the TCP panic back. I got two crashes during 2.5 hours. In your email [1] you are right, there is regression that (-1) return value is lost. This problem was worked on in the PR 210884, and we were very close to commiting the fix. The whole 11.0-RELEASE cycle strongly depends on this change. We don't want to release with TCP panic, and of course we want the regression described in 210884 to be fixed. Your backout mixed with extra code really made things messy. Since I don't want to go with commit war, on behalf of RE we are asking for explicit agreement to back out r303037. Then we will proceed with latest patch from 210884. Is that okay? [1] https://lists.freebsd.org/pipermail/svn-src-head/2016-July/089313.html On Wed, Jul 20, 2016 at 03:33:37PM +0200, Randall Stewart wrote: R> Gleb R> R> I wish you would have responded earlier.. I am more than glad to hand R> off all kern_timeout.c to you… please take it commit what you want to R> it and have it. I hate the code and I dislike having to touch it. R> R> Its yours.. I can assure you I will not touch it again. R> R> R R> > On Jul 20, 2016, at 8:53 AM, Gleb Smirnoff wrote: R> > R> > On Tue, Jul 19, 2016 at 06:31:19PM +0000, Randall Stewart wrote: R> > R> Author: rrs R> > R> Date: Tue Jul 19 18:31:19 2016 R> > R> New Revision: 303037 R> > R> URL: https://svnweb.freebsd.org/changeset/base/303037 R> > R> R> > R> Log: R> > R> This reverts out Gleb's changes and adds three small R> > R> fixes that I think closes up the races Gleb was R> > R> looking for. This is running quite nicely in Netflix and R> > R> now no longer causes TCP-tcb leaks. R> > R> R> > R> Differential Revision: 7135 R> > R> > Just to notice that I am completely pissed of by this commit R> > war, that you started. R> > R> > I've been testing my changes properly, I gave people time to R> > review my changes. You didn't. R> > R> > From your explanation in other emails I see that you've been R> > testing your changes with a version of FreeBSD that is a heavily R> > modified FreeBSD 10, not 11. R> > R> > The new code you mixed with revert of mine, doesn't fix the R> > problem observed. It fixes another problem that you imagined, R> > which might exist, but isn't observed. We already discussed that R> > and you didn't prove it wrong. R> > R> > Your change doesn't even revert my change completely. R> > R> > -- R> > Totus tuus, Glebius. R> R> -------- R> Randall Stewart R> rrs@netflix.com R> 803-317-4952 R> R> R> R> R> R> -- Totus tuus, Glebius. From owner-svn-src-all@freebsd.org Wed Jul 20 16:36:20 2016 Return-Path: Delivered-To: svn-src-all@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 187D2B9F6D3; Wed, 20 Jul 2016 16:36:20 +0000 (UTC) (envelope-from sobomax@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 D5DBC11CC; Wed, 20 Jul 2016 16:36:19 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KGaJBJ003155; Wed, 20 Jul 2016 16:36:19 GMT (envelope-from sobomax@FreeBSD.org) Received: (from sobomax@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KGaHbC003138; Wed, 20 Jul 2016 16:36:17 GMT (envelope-from sobomax@FreeBSD.org) Message-Id: <201607201636.u6KGaHbC003138@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sobomax set sender to sobomax@FreeBSD.org using -f From: Maxim Sobolev Date: Wed, 20 Jul 2016 16:36:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303095 - stable/10/usr.bin/mkuzip X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 16:36:20 -0000 Author: sobomax Date: Wed Jul 20 16:36:17 2016 New Revision: 303095 URL: https://svnweb.freebsd.org/changeset/base/303095 Log: MFC: merge in all new features and improvements into mkuzip(8) from current, which includes: o LZMA compression; o block de-duplication; o performance improvements; o multi-thread support. This includes the following revisions: r295943,r296626,r296628,r296810,r298504,r298505,r298577 Suggested by: emaste Added: stable/10/usr.bin/mkuzip/mkuz_blk.c (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_blk.h (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_blk_chain.h (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_blockcache.c (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_blockcache.h (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_cfg.h (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_cloop.h (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_conveyor.c (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_conveyor.h (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_format.h (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_fqueue.c (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_fqueue.h (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_lzma.c (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_lzma.h (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_time.c (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_time.h (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_zlib.c (contents, props changed) stable/10/usr.bin/mkuzip/mkuz_zlib.h (contents, props changed) stable/10/usr.bin/mkuzip/mkuzip.h (contents, props changed) Modified: stable/10/usr.bin/mkuzip/Makefile stable/10/usr.bin/mkuzip/mkuzip.8 stable/10/usr.bin/mkuzip/mkuzip.c Modified: stable/10/usr.bin/mkuzip/Makefile ============================================================================== --- stable/10/usr.bin/mkuzip/Makefile Wed Jul 20 15:59:37 2016 (r303094) +++ stable/10/usr.bin/mkuzip/Makefile Wed Jul 20 16:36:17 2016 (r303095) @@ -2,9 +2,10 @@ PROG= mkuzip MAN= mkuzip.8 +SRCS= mkuzip.c mkuz_blockcache.c mkuz_lzma.c mkuz_zlib.c mkuz_conveyor.c \ + mkuz_blk.c mkuz_fqueue.c mkuz_time.c -DPADD= ${LIBZ} -LDADD= -lz - +DPADD= ${LIBZ} ${LIBMD} ${LIBLZMA} ${LIBPTHREAD} +LDADD= -lz -lmd -llzma -lpthread .include Added: stable/10/usr.bin/mkuzip/mkuz_blk.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_blk.c Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2004-2016 Maxim Sobolev + * 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 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 + +#include "mkuzip.h" +#include "mkuz_blk.h" + +struct mkuz_blk * +mkuz_blk_ctor(size_t blen) +{ + struct mkuz_blk *rval; + + rval = mkuz_safe_zmalloc(sizeof(struct mkuz_blk) + blen); + rval->alen = blen; + rval->br_offset = OFFSET_UNDEF; + return (rval); +} Added: stable/10/usr.bin/mkuzip/mkuz_blk.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_blk.h Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2004-2016 Maxim Sobolev + * 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 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. + * + * $FreeBSD$ + */ + +#define OFFSET_UNDEF UINT64_MAX + +struct mkuz_blk_info { + uint64_t offset; + size_t len; + uint32_t blkno; + unsigned char digest[16]; +}; + +#define MKUZ_BLK_EOF (void *)0x1 +#define MKUZ_BLK_MORE (void *)0x2 + +struct mkuz_blk { + struct mkuz_blk_info info; + size_t alen; + uint64_t br_offset; + unsigned char data[]; +}; + +struct mkuz_blk *mkuz_blk_ctor(size_t); Added: stable/10/usr.bin/mkuzip/mkuz_blk_chain.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_blk_chain.h Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2016 Maxim Sobolev + * 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 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. + * + * $FreeBSD$ + */ + +struct mkuz_blk; +struct mkuz_bchain_link; + +struct mkuz_bchain_link { + struct mkuz_blk *this; + struct mkuz_bchain_link *prev; +}; Added: stable/10/usr.bin/mkuzip/mkuz_blockcache.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_blockcache.c Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2016 Maxim Sobolev + * 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 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 +#include +#include +#include + +#if defined(MKUZ_DEBUG) +# include +# include +#endif + +#include "mkuz_blockcache.h" +#include "mkuz_blk.h" + +struct mkuz_blkcache_itm { + struct mkuz_blk_info hit; + struct mkuz_blkcache_itm *next; +}; + +static struct mkuz_blkcache { + struct mkuz_blkcache_itm first[256]; +} blkcache; + +static int +verify_match(int fd, const struct mkuz_blk *cbp, struct mkuz_blkcache_itm *bcep) +{ + void *vbuf; + ssize_t rlen; + int rval; + + rval = -1; + vbuf = malloc(cbp->info.len); + if (vbuf == NULL) { + goto e0; + } + if (lseek(fd, bcep->hit.offset, SEEK_SET) < 0) { + goto e1; + } + rlen = read(fd, vbuf, cbp->info.len); + if (rlen < 0 || (unsigned)rlen != cbp->info.len) { + goto e2; + } + rval = (memcmp(cbp->data, vbuf, cbp->info.len) == 0) ? 1 : 0; +e2: + lseek(fd, cbp->info.offset, SEEK_SET); +e1: + free(vbuf); +e0: + return (rval); +} + +#define I2J(x) ((intmax_t)(x)) +#define U2J(x) ((uintmax_t)(x)) + +static unsigned char +digest_fold(const unsigned char *mdigest) +{ + int i; + unsigned char rval; + + rval = mdigest[0]; + for (i = 1; i < 16; i++) { + rval = rval ^ mdigest[i]; + } + return (rval); +} + +struct mkuz_blk_info * +mkuz_blkcache_regblock(int fd, const struct mkuz_blk *bp) +{ + struct mkuz_blkcache_itm *bcep; + int rval; + unsigned char h; + +#if defined(MKUZ_DEBUG) + assert((unsigned)lseek(fd, 0, SEEK_CUR) == bp->info.offset); +#endif + h = digest_fold(bp->info.digest); + if (blkcache.first[h].hit.len == 0) { + bcep = &blkcache.first[h]; + } else { + for (bcep = &blkcache.first[h]; bcep != NULL; bcep = bcep->next) { + if (bcep->hit.len != bp->info.len) + continue; + if (memcmp(bp->info.digest, bcep->hit.digest, + sizeof(bp->info.digest)) == 0) { + break; + } + } + if (bcep != NULL) { + rval = verify_match(fd, bp, bcep); + if (rval == 1) { +#if defined(MKUZ_DEBUG) + fprintf(stderr, "cache hit %jd, %jd, %jd, %jd\n", + I2J(bcep->hit.blkno), I2J(bcep->hit.offset), + I2J(bp->info.offset), I2J(bp->info.len)); +#endif + return (&bcep->hit); + } + if (rval == 0) { +#if defined(MKUZ_DEBUG) + fprintf(stderr, "block MD5 collision, you should try lottery, " + "man!\n"); +#endif + return (NULL); + } + warn("verify_match"); + return (NULL); + } + bcep = malloc(sizeof(struct mkuz_blkcache_itm)); + if (bcep == NULL) + return (NULL); + memset(bcep, '\0', sizeof(struct mkuz_blkcache_itm)); + bcep->next = blkcache.first[h].next; + blkcache.first[h].next = bcep; + } + bcep->hit = bp->info; + return (NULL); +} Added: stable/10/usr.bin/mkuzip/mkuz_blockcache.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_blockcache.h Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016 Maxim Sobolev + * 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 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. + * + * $FreeBSD$ + */ + +struct mkuz_blk; + +struct mkuz_blk_info *mkuz_blkcache_regblock(int, const struct mkuz_blk *); Added: stable/10/usr.bin/mkuzip/mkuz_cfg.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_cfg.h Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2016 Maxim Sobolev + * 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 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. + * + * $FreeBSD$ + */ + +struct mkuz_conveyor; + +struct mkuz_cfg { + int fdr; + int fdw; + int verbose; + int no_zcomp; + int en_dedup; + int nworkers; + int blksz; + const struct mkuz_format *handler; +}; Added: stable/10/usr.bin/mkuzip/mkuz_cloop.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_cloop.h Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2004-2016 Maxim Sobolev + * 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 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. + * + * $FreeBSD$ + */ + +/* CLOOP format and related constants */ + +/* + * Integer values (block size, number of blocks, offsets) + * are stored in big-endian (network) order on disk. + */ + +#define CLOOP_MAGIC_LEN 128 +#define CLOOP_OFS_COMPR 0x0b +#define CLOOP_OFS_VERSN (CLOOP_OFS_COMPR + 1) + +#define CLOOP_MAJVER_2 '2' +#define CLOOP_MAJVER_3 '3' + +#define CLOOP_COMP_LIBZ 'V' +#define CLOOP_COMP_LZMA 'L' + +struct cloop_header { + char magic[CLOOP_MAGIC_LEN]; /* cloop magic */ + uint32_t blksz; /* block size */ + uint32_t nblocks; /* number of blocks */ +}; Added: stable/10/usr.bin/mkuzip/mkuz_conveyor.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_conveyor.c Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2004-2016 Maxim Sobolev + * 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 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 +#include +#include +#include +#include +#include + +#if defined(MKUZ_DEBUG) +# include +#endif + +#include "mkuz_conveyor.h" +#include "mkuz_cfg.h" +#include "mkuzip.h" +#include "mkuz_format.h" +#include "mkuz_blk.h" +#include "mkuz_fqueue.h" +#include "mkuz_blk_chain.h" + +static void compute_digest(struct mkuz_blk *); + +struct cw_args { + struct mkuz_conveyor *cvp; + struct mkuz_cfg *cfp; +}; + +static void * +cworker(void *p) +{ + struct cw_args *cwp; + struct mkuz_cfg *cfp; + struct mkuz_blk *oblk, *iblk; + struct mkuz_conveyor *cvp; + void *c_ctx; + + cwp = (struct cw_args *)p; + cfp = cwp->cfp; + cvp = cwp->cvp; + free(cwp); + c_ctx = cfp->handler->f_init(cfp->blksz); + for (;;) { + iblk = mkuz_fqueue_deq(cvp->wrk_queue); + if (iblk == MKUZ_BLK_EOF) { + /* Let other threads to see the EOF block */ + mkuz_fqueue_enq(cvp->wrk_queue, iblk); + break; + } + if (cfp->no_zcomp == 0 && + mkuz_memvcmp(iblk->data, '\0', iblk->info.len) != 0) { + /* All zeroes block */ + oblk = mkuz_blk_ctor(0); + } else { + oblk = cfp->handler->f_compress(c_ctx, iblk); + if (cfp->en_dedup != 0) { + compute_digest(oblk); + } + } + oblk->info.blkno = iblk->info.blkno; + mkuz_fqueue_enq(cvp->results, oblk); + free(iblk); + } + return (NULL); +} + +static void +compute_digest(struct mkuz_blk *bp) +{ + MD5_CTX mcontext; + + MD5Init(&mcontext); + MD5Update(&mcontext, bp->data, bp->info.len); + MD5Final(bp->info.digest, &mcontext); +} + +struct mkuz_conveyor * +mkuz_conveyor_ctor(struct mkuz_cfg *cfp) +{ + struct mkuz_conveyor *cp; + struct cw_args *cwp; + int i, r; + + cp = mkuz_safe_zmalloc(sizeof(struct mkuz_conveyor) + + (sizeof(pthread_t) * cfp->nworkers)); + + cp->wrk_queue = mkuz_fqueue_ctor(1); + cp->results = mkuz_fqueue_ctor(1); + + for (i = 0; i < cfp->nworkers; i++) { + cwp = mkuz_safe_zmalloc(sizeof(struct cw_args)); + cwp->cfp = cfp; + cwp->cvp = cp; + r = pthread_create(&cp->wthreads[i], NULL, cworker, (void *)cwp); + if (r != 0) { + errx(1, "mkuz_conveyor_ctor: pthread_create() failed"); + /* Not reached */ + } + } + return (cp); +} Added: stable/10/usr.bin/mkuzip/mkuz_conveyor.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_conveyor.h Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2016 Maxim Sobolev + * 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 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. + * + * $FreeBSD$ + */ + +struct mkuz_fifo_queue; + +#define ITEMS_PER_WORKER 4 + +#define MAX_WORKERS_AUTO 24 + +struct mkuz_conveyor { + /* + * Work items are places in here, and picked up by workers in a FIFO + * fashion. + */ + struct mkuz_fifo_queue *wrk_queue; + /* + * Results are dropped into this FIFO and consumer is buzzed to pick them + * up + */ + struct mkuz_fifo_queue *results; + + pthread_t wthreads[]; +}; + +struct mkuz_cfg; + +struct mkuz_conveyor *mkuz_conveyor_ctor(struct mkuz_cfg *); Added: stable/10/usr.bin/mkuzip/mkuz_format.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_format.h Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2016 Maxim Sobolev + * 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 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. + * + * $FreeBSD$ + */ + +DEFINE_RAW_METHOD(f_init, void *, uint32_t); +DEFINE_RAW_METHOD(f_compress, struct mkuz_blk *, void *, const struct mkuz_blk *); + +struct mkuz_format { + const char *magic; + const char *default_sufx; + f_init_t f_init; + f_compress_t f_compress; +}; Added: stable/10/usr.bin/mkuzip/mkuz_fqueue.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_fqueue.c Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,214 @@ +/* + * Copyright (c) 2004-2016 Maxim Sobolev + * 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 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 +#include +#include + +#if defined(MKUZ_DEBUG) +# include +#endif + +#include "mkuzip.h" +#include "mkuz_fqueue.h" +#include "mkuz_conveyor.h" +#include "mkuz_blk.h" +#include "mkuz_blk_chain.h" + +struct mkuz_fifo_queue * +mkuz_fqueue_ctor(int wakeup_len) +{ + struct mkuz_fifo_queue *fqp; + + fqp = mkuz_safe_zmalloc(sizeof(struct mkuz_fifo_queue)); + fqp->wakeup_len = wakeup_len; + if (pthread_mutex_init(&fqp->mtx, NULL) != 0) { + errx(1, "pthread_mutex_init() failed"); + } + if (pthread_cond_init(&fqp->cvar, NULL) != 0) { + errx(1, "pthread_cond_init() failed"); + } + return (fqp); +} + +void +mkuz_fqueue_enq(struct mkuz_fifo_queue *fqp, struct mkuz_blk *bp) +{ + struct mkuz_bchain_link *ip; + + ip = mkuz_safe_zmalloc(sizeof(struct mkuz_bchain_link)); + ip->this = bp; + + pthread_mutex_lock(&fqp->mtx); + if (fqp->first != NULL) { + fqp->first->prev = ip; + } else { + fqp->last = ip; + } + fqp->first = ip; + fqp->length += 1; + if (fqp->length >= fqp->wakeup_len) { + pthread_cond_signal(&fqp->cvar); + } + pthread_mutex_unlock(&fqp->mtx); +} + +#if defined(NOTYET) +int +mkuz_fqueue_enq_all(struct mkuz_fifo_queue *fqp, struct mkuz_bchain_link *cip_f, + struct mkuz_bchain_link *cip_l, int clen) +{ + int rval; + + pthread_mutex_lock(&fqp->mtx); + if (fqp->first != NULL) { + fqp->first->prev = cip_l; + } else { + fqp->last = cip_l; + } + fqp->first = cip_f; + fqp->length += clen; + rval = fqp->length; + if (fqp->length >= fqp->wakeup_len) { + pthread_cond_signal(&fqp->cvar); + } + pthread_mutex_unlock(&fqp->mtx); + return (rval); +} +#endif + +static int +mkuz_fqueue_check(struct mkuz_fifo_queue *fqp, cmp_cb_t cmp_cb, void *cap) +{ + struct mkuz_bchain_link *ip; + + for (ip = fqp->last; ip != NULL; ip = ip->prev) { + if (cmp_cb(ip->this, cap)) { + return (1); + } + } + return (0); +} + +struct mkuz_blk * +mkuz_fqueue_deq_when(struct mkuz_fifo_queue *fqp, cmp_cb_t cmp_cb, void *cap) +{ + struct mkuz_bchain_link *ip, *newlast, *newfirst, *mip; + struct mkuz_blk *bp; + + pthread_mutex_lock(&fqp->mtx); + while (fqp->last == NULL || !mkuz_fqueue_check(fqp, cmp_cb, cap)) { + pthread_cond_wait(&fqp->cvar, &fqp->mtx); + } + if (cmp_cb(fqp->last->this, cap)) { + mip = fqp->last; + fqp->last = mip->prev; + if (fqp->last == NULL) { +#if defined(MKUZ_DEBUG) + assert(fqp->length == 1); +#endif + fqp->first = NULL; + } + } else { +#if defined(MKUZ_DEBUG) + assert(fqp->length > 1); +#endif + newfirst = newlast = fqp->last; + mip = NULL; + for (ip = fqp->last->prev; ip != NULL; ip = ip->prev) { + if (cmp_cb(ip->this, cap)) { + mip = ip; + continue; + } + newfirst->prev = ip; + newfirst = ip; + } + newfirst->prev = NULL; + fqp->first = newfirst; + fqp->last = newlast; + } + fqp->length -= 1; + pthread_mutex_unlock(&fqp->mtx); + bp = mip->this; + free(mip); + + return bp; +} + +struct mkuz_blk * +mkuz_fqueue_deq(struct mkuz_fifo_queue *fqp) +{ + struct mkuz_bchain_link *ip; + struct mkuz_blk *bp; + + pthread_mutex_lock(&fqp->mtx); + while (fqp->last == NULL) { + pthread_cond_wait(&fqp->cvar, &fqp->mtx); + } +#if defined(MKUZ_DEBUG) + assert(fqp->length > 0); +#endif + ip = fqp->last; + fqp->last = ip->prev; + if (fqp->last == NULL) { +#if defined(MKUZ_DEBUG) + assert(fqp->length == 1); +#endif + fqp->first = NULL; + } + fqp->length -= 1; + pthread_mutex_unlock(&fqp->mtx); + bp = ip->this; + free(ip); + + return bp; +} + +#if defined(NOTYET) +struct mkuz_bchain_link * +mkuz_fqueue_deq_all(struct mkuz_fifo_queue *fqp, int *rclen) +{ + struct mkuz_bchain_link *rchain; + + pthread_mutex_lock(&fqp->mtx); + while (fqp->last == NULL) { + pthread_cond_wait(&fqp->cvar, &fqp->mtx); + } +#if defined(MKUZ_DEBUG) + assert(fqp->length > 0); +#endif + rchain = fqp->last; + fqp->first = fqp->last = NULL; + *rclen = fqp->length; + fqp->length = 0; + pthread_mutex_unlock(&fqp->mtx); + return (rchain); +} +#endif Added: stable/10/usr.bin/mkuzip/mkuz_fqueue.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_fqueue.h Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2004-2016 Maxim Sobolev + * 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 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. + * + * $FreeBSD$ + */ + +struct mkuz_fifo_queue { + pthread_mutex_t mtx; + pthread_cond_t cvar; + struct mkuz_bchain_link *first; + struct mkuz_bchain_link *last; + int length; + int wakeup_len; +}; + +struct mkuz_blk; +struct mkuz_bchain_link; + +DEFINE_RAW_METHOD(cmp_cb, int, const struct mkuz_blk *, void *); + +struct mkuz_fifo_queue *mkuz_fqueue_ctor(int); +void mkuz_fqueue_enq(struct mkuz_fifo_queue *, struct mkuz_blk *); +struct mkuz_blk *mkuz_fqueue_deq(struct mkuz_fifo_queue *); +struct mkuz_blk *mkuz_fqueue_deq_when(struct mkuz_fifo_queue *, cmp_cb_t, void *); +#if defined(NOTYET) +struct mkuz_bchain_link *mkuz_fqueue_deq_all(struct mkuz_fifo_queue *, int *); +int mkuz_fqueue_enq_all(struct mkuz_fifo_queue *, struct mkuz_bchain_link *, + struct mkuz_bchain_link *, int); +#endif Added: stable/10/usr.bin/mkuzip/mkuz_lzma.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/usr.bin/mkuzip/mkuz_lzma.c Wed Jul 20 16:36:17 2016 (r303095) @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2004-2016 Maxim Sobolev + * Copyright (c) 2011 Aleksandr Rybalko + * 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 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 +#include + +#include + +#include "mkuzip.h" +#include "mkuz_lzma.h" +#include "mkuz_blk.h" + +#define USED_BLOCKSIZE DEV_BSIZE + +struct mkuz_lzma { + lzma_filter filters[2]; + lzma_options_lzma opt_lzma; + lzma_stream strm; + uint32_t blksz; +}; + +static const lzma_stream lzma_stream_init = LZMA_STREAM_INIT; + +void * +mkuz_lzma_init(uint32_t blksz) +{ + struct mkuz_lzma *ulp; + + if (blksz % USED_BLOCKSIZE != 0) { + errx(1, "cluster size should be multiple of %d", + USED_BLOCKSIZE); + /* Not reached */ + } + if (blksz > MAXPHYS) { + errx(1, "cluster size is too large"); + /* Not reached */ + } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Wed Jul 20 16:37:01 2016 Return-Path: Delivered-To: svn-src-all@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 9C52EB9F76C for ; Wed, 20 Jul 2016 16:37:01 +0000 (UTC) (envelope-from rrs@netflix.com) Received: from mail-pf0-x236.google.com (mail-pf0-x236.google.com [IPv6:2607:f8b0:400e:c00::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6D3661342 for ; Wed, 20 Jul 2016 16:37:01 +0000 (UTC) (envelope-from rrs@netflix.com) Received: by mail-pf0-x236.google.com with SMTP id x72so20713425pfd.2 for ; Wed, 20 Jul 2016 09:37:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=q5XRxHZpy2RFa0Rbfu+aNlEGQEzcjwb2VL/U05U4DuA=; b=EBuhp8k5EUwj4I60OR5gA41emdOLMCG9Wh/45RgwrZFfytxXlskRB25IuFX7M4/6CK 8VZckhuFzFY37lfXbEWFRSZ5S3rzcmZzS/4MfZB4gIaM3SX2O3KPlXxLFBr4pNdlcB8C nddbEhb0dmbr+UclufQHkqnwxO+t7kEikFqDk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=q5XRxHZpy2RFa0Rbfu+aNlEGQEzcjwb2VL/U05U4DuA=; b=m3qjL5qwRjhWJLMJAmUexKzbIJDsiWZldKhAepS5TYe17J4TIQhmQrk8dPP/MMnNnY cFEDJ5XyBm/wCG5pXF9CoRTgUljsKwkXmBy82rAO/xeP2rXwoVQqRi1HOLK1iIp4/djL wIxkx94tRPmSjvc2nVobzzfq8gT3U4/6OOBVVB4pX0do/WUiMSRyYRZt3yXpSWPw1bP7 vcZVuk7yBHHO2TySNuSQ+bmpgNPq8R/XfiCsqE661PO1ZrdFOpiy0fd7C5hUE45Yra93 O0VMLlVlDLdDxmSqfnenKgJQGaN421Krkn2sr54OYtkK9d8l0ljgGOBZwtQK70Y2v3xa 01rQ== X-Gm-Message-State: ALyK8tI7+q6pQAQTq6KA8VJKG3JMN0XOL5kaGBBKlWygUgiazVBeIHV8xeNqolQDJpJHKQeL X-Received: by 10.98.77.65 with SMTP id a62mr66104464pfb.128.1469032620968; Wed, 20 Jul 2016 09:37:00 -0700 (PDT) Received: from [100.127.67.9] ([69.53.245.200]) by smtp.gmail.com with ESMTPSA id n5sm5867740pai.11.2016.07.20.09.36.58 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 20 Jul 2016 09:37:00 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: svn commit: r303037 - head/sys/kern From: Randall Stewart In-Reply-To: <20160720163501.GY1076@FreeBSD.org> Date: Wed, 20 Jul 2016 18:36:55 +0200 Cc: Randall Ray Stewart , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <6135F2B2-6543-4A06-92D3-5BC7F75ED320@netflix.com> References: <201607191831.u6JIVJWq007542@repo.freebsd.org> <20160720065335.GU1076@FreeBSD.org> <1CA02E0F-6871-4291-9F5A-20EFF5F6315D@netflix.com> <20160720163501.GY1076@FreeBSD.org> To: Gleb Smirnoff X-Mailer: Apple Mail (2.3124) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 16:37:01 -0000 You are most welcome to backout anything you like.. as far as I am concerned you own the code.. R > On Jul 20, 2016, at 6:35 PM, Gleb Smirnoff = wrote: >=20 > Randall, >=20 > I have just tested and r303037 brings the TCP panic back. I > got two crashes during 2.5 hours. >=20 > In your email [1] you are right, there is regression that (-1) > return value is lost. This problem was worked on in the PR 210884, > and we were very close to commiting the fix. >=20 > The whole 11.0-RELEASE cycle strongly depends on this change. We > don't want to release with TCP panic, and of course we want the > regression described in 210884 to be fixed. >=20 > Your backout mixed with extra code really made things messy. Since > I don't want to go with commit war, on behalf of RE we are asking > for explicit agreement to back out r303037. Then we will proceed with > latest patch from 210884. Is that okay? >=20 > [1] = https://lists.freebsd.org/pipermail/svn-src-head/2016-July/089313.html >=20 > On Wed, Jul 20, 2016 at 03:33:37PM +0200, Randall Stewart wrote: > R> Gleb > R>=20 > R> I wish you would have responded earlier.. I am more than glad to = hand > R> off all kern_timeout.c to you=E2=80=A6 please take it commit what = you want to > R> it and have it. I hate the code and I dislike having to touch it. > R>=20 > R> Its yours.. I can assure you I will not touch it again. > R>=20 > R> R > R> > On Jul 20, 2016, at 8:53 AM, Gleb Smirnoff = wrote: > R> >=20 > R> > On Tue, Jul 19, 2016 at 06:31:19PM +0000, Randall Stewart wrote: > R> > R> Author: rrs > R> > R> Date: Tue Jul 19 18:31:19 2016 > R> > R> New Revision: 303037 > R> > R> URL: https://svnweb.freebsd.org/changeset/base/303037 > R> > R>=20 > R> > R> Log: > R> > R> This reverts out Gleb's changes and adds three small > R> > R> fixes that I think closes up the races Gleb was > R> > R> looking for. This is running quite nicely in Netflix and > R> > R> now no longer causes TCP-tcb leaks. > R> > R> =20 > R> > R> Differential Revision: 7135 > R> >=20 > R> > Just to notice that I am completely pissed of by this commit > R> > war, that you started. > R> >=20 > R> > I've been testing my changes properly, I gave people time to > R> > review my changes. You didn't. > R> >=20 > R> > =46rom your explanation in other emails I see that you've been > R> > testing your changes with a version of FreeBSD that is a heavily > R> > modified FreeBSD 10, not 11. > R> >=20 > R> > The new code you mixed with revert of mine, doesn't fix the > R> > problem observed. It fixes another problem that you imagined, > R> > which might exist, but isn't observed. We already discussed that > R> > and you didn't prove it wrong. > R> >=20 > R> > Your change doesn't even revert my change completely. > R> >=20 > R> > --=20 > R> > Totus tuus, Glebius. > R>=20 > R> -------- > R> Randall Stewart > R> rrs@netflix.com > R> 803-317-4952 > R>=20 > R>=20 > R>=20 > R>=20 > R>=20 > R>=20 >=20 > --=20 > Totus tuus, Glebius. -------- Randall Stewart rrs@netflix.com 803-317-4952 From owner-svn-src-all@freebsd.org Wed Jul 20 16:43:08 2016 Return-Path: Delivered-To: svn-src-all@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 5C23AB9F923; Wed, 20 Jul 2016 16:43:08 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (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 23523182F; Wed, 20 Jul 2016 16:43:07 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 03F411FE024; Wed, 20 Jul 2016 18:43:04 +0200 (CEST) Subject: Re: svn commit: r303037 - head/sys/kern To: Gleb Smirnoff , Randall Stewart References: <201607191831.u6JIVJWq007542@repo.freebsd.org> <20160720065335.GU1076@FreeBSD.org> <1CA02E0F-6871-4291-9F5A-20EFF5F6315D@netflix.com> <20160720163501.GY1076@FreeBSD.org> Cc: Randall Ray Stewart , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Hans Petter Selasky Message-ID: <959a352e-f7a7-b578-2aaa-ab99281b6666@selasky.org> Date: Wed, 20 Jul 2016 18:47:06 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: <20160720163501.GY1076@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 16:43:08 -0000 On 07/20/16 18:35, Gleb Smirnoff wrote: > Randall, > > I have just tested and r303037 brings the TCP panic back. I > got two crashes during 2.5 hours. Hi Gleb, There is more than one way to fix the TCP panic. You don't _need_ to change the return values of callout_stop(). You _can_ make a new function for this, which doesn't cause problems in case anyone out there is depending on the current callout_stop() behaviour. > In your email [1] you are right, there is regression that (-1) > return value is lost. This problem was worked on in the PR 210884, > and we were very close to commiting the fix. > > The whole 11.0-RELEASE cycle strongly depends on this change. We > don't want to release with TCP panic, and of course we want the > regression described in 210884 to be fixed. > > Your backout mixed with extra code really made things messy. Since > I don't want to go with commit war, on behalf of RE we are asking > for explicit agreement to back out r303037. Then we will proceed with > latest patch from 210884. Is that okay? I think Randall is right trying to preserve the callout API. My wish Gleb, is that you add a new function to handle the new behaviour. > > [1] https://lists.freebsd.org/pipermail/svn-src-head/2016-July/089313.html > --HPS From owner-svn-src-all@freebsd.org Wed Jul 20 16:44:23 2016 Return-Path: Delivered-To: svn-src-all@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 C0392B9F98E; Wed, 20 Jul 2016 16:44:23 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 94C7D1A12; Wed, 20 Jul 2016 16:44:23 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KGiMEc007024; Wed, 20 Jul 2016 16:44:22 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KGiM3e007023; Wed, 20 Jul 2016 16:44:22 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201607201644.u6KGiM3e007023@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 20 Jul 2016 16:44:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303096 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 16:44:23 -0000 Author: glebius Date: Wed Jul 20 16:44:22 2016 New Revision: 303096 URL: https://svnweb.freebsd.org/changeset/base/303096 Log: Revert r303037. It re-introduces the panic with TCP timers. Agreed by: rrs, re (gjb) Modified: head/sys/kern/kern_timeout.c Modified: head/sys/kern/kern_timeout.c ============================================================================== --- head/sys/kern/kern_timeout.c Wed Jul 20 16:36:17 2016 (r303095) +++ head/sys/kern/kern_timeout.c Wed Jul 20 16:44:22 2016 (r303096) @@ -1050,7 +1050,7 @@ callout_reset_sbt_on(struct callout *c, */ if (c->c_lock != NULL && !cc_exec_cancel(cc, direct)) cancelled = cc_exec_cancel(cc, direct) = true; - if (cc_exec_waiting(cc, direct) || cc_exec_drain(cc, direct)) { + if (cc_exec_waiting(cc, direct)) { /* * Someone has called callout_drain to kill this * callout. Don't reschedule. @@ -1166,7 +1166,7 @@ _callout_stop_safe(struct callout *c, in struct callout_cpu *cc, *old_cc; struct lock_class *class; int direct, sq_locked, use_lock; - int not_on_a_list; + int cancelled, not_on_a_list; if ((flags & CS_DRAIN) != 0) WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, c->c_lock, @@ -1234,47 +1234,17 @@ again: panic("migration should not happen"); #endif } - if ((drain != NULL) && (c->c_iflags & CALLOUT_PENDING) && - (cc_exec_curr(cc, direct) != c)) { - /* - * This callout is executing and we are draining. - * The only way this can happen is if its also - * been rescheduled to run on one thread *and* asked to drain - * on this thread (at the same time it is waiting to execute). - */ - if ((c->c_iflags & CALLOUT_PROCESSED) == 0) { - if (cc_exec_next(cc) == c) - cc_exec_next(cc) = LIST_NEXT(c, c_links.le); - LIST_REMOVE(c, c_links.le); - } else { - TAILQ_REMOVE(&cc->cc_expireq, c, c_links.tqe); - } - c->c_iflags &= ~CALLOUT_PENDING; - c->c_flags &= ~CALLOUT_ACTIVE; - } + /* - * If the callout isn't pending, it's not on the queue, so - * don't attempt to remove it from the queue. We can try to - * stop it by other means however. + * If the callout is running, try to stop it or drain it. */ - if (!(c->c_iflags & CALLOUT_PENDING)) { + if (cc_exec_curr(cc, direct) == c) { /* - * If it wasn't on the queue and it isn't the current - * callout, then we can't stop it, so just bail. - * It probably has already been run (if locking - * is properly done). You could get here if the caller - * calls stop twice in a row for example. The second - * call would fall here without CALLOUT_ACTIVE set. + * Succeed we to stop it or not, we must clear the + * active flag - this is what API users expect. */ c->c_flags &= ~CALLOUT_ACTIVE; - if (cc_exec_curr(cc, direct) != c) { - CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", - c, c->c_func, c->c_arg); - CC_UNLOCK(cc); - if (sq_locked) - sleepq_release(&cc_exec_waiting(cc, direct)); - return (-1); - } + if ((flags & CS_DRAIN) != 0) { /* * The current callout is running (or just @@ -1308,6 +1278,7 @@ again: old_cc = cc; goto again; } + /* * Migration could be cancelled here, but * as long as it is still not sure when it @@ -1391,8 +1362,6 @@ again: cc_exec_drain(cc, direct) = drain; } CC_UNLOCK(cc); - if (drain) - return(0); return ((flags & CS_EXECUTING) != 0); } CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", @@ -1400,13 +1369,21 @@ again: if (drain) { cc_exec_drain(cc, direct) = drain; } - CC_UNLOCK(cc); KASSERT(!sq_locked, ("sleepqueue chain still locked")); - return (0); - } + cancelled = ((flags & CS_EXECUTING) != 0); + } else + cancelled = 1; + if (sq_locked) sleepq_release(&cc_exec_waiting(cc, direct)); + if ((c->c_iflags & CALLOUT_PENDING) == 0) { + CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", + c, c->c_func, c->c_arg); + CC_UNLOCK(cc); + return (0); + } + c->c_iflags &= ~CALLOUT_PENDING; c->c_flags &= ~CALLOUT_ACTIVE; @@ -1423,7 +1400,7 @@ again: } callout_cc_del(c, cc); CC_UNLOCK(cc); - return (1); + return (cancelled); } void @@ -1638,6 +1615,7 @@ SYSCTL_PROC(_kern, OID_AUTO, callout_sta CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, 0, 0, sysctl_kern_callout_stat, "I", "Dump immediate statistic snapshot of the scheduled callouts"); + #ifdef DDB static void _show_callout(struct callout *c) From owner-svn-src-all@freebsd.org Wed Jul 20 16:46:15 2016 Return-Path: Delivered-To: svn-src-all@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 4353CB9FA3A; Wed, 20 Jul 2016 16:46:15 +0000 (UTC) (envelope-from nwhitehorn@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 0D1501BCE; Wed, 20 Jul 2016 16:46:14 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KGkElh007146; Wed, 20 Jul 2016 16:46:14 GMT (envelope-from nwhitehorn@FreeBSD.org) Received: (from nwhitehorn@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KGkEt4007145; Wed, 20 Jul 2016 16:46:14 GMT (envelope-from nwhitehorn@FreeBSD.org) Message-Id: <201607201646.u6KGkEt4007145@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: nwhitehorn set sender to nwhitehorn@FreeBSD.org using -f From: Nathan Whitehorn Date: Wed, 20 Jul 2016 16:46:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303097 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 16:46:15 -0000 Author: nwhitehorn Date: Wed Jul 20 16:46:13 2016 New Revision: 303097 URL: https://svnweb.freebsd.org/changeset/base/303097 Log: Add myself to MAINTAINERS. Modified: head/MAINTAINERS Modified: head/MAINTAINERS ============================================================================== --- head/MAINTAINERS Wed Jul 20 16:44:22 2016 (r303096) +++ head/MAINTAINERS Wed Jul 20 16:46:13 2016 (r303097) @@ -105,3 +105,4 @@ vmm(4) neel,grehan Pre-commit review re autofs(5) trasz Pre-commit review recommended. iscsi(4) trasz Pre-commit review recommended. rctl(8) trasz Pre-commit review recommended. +sys/dev/ofw nwhitehorn Pre-commit review recommended. From owner-svn-src-all@freebsd.org Wed Jul 20 16:48:27 2016 Return-Path: Delivered-To: svn-src-all@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 16952B9FB0A; Wed, 20 Jul 2016 16:48:27 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DDA091D9B; Wed, 20 Jul 2016 16:48:26 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KGmQVu007254; Wed, 20 Jul 2016 16:48:26 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KGmQPs007253; Wed, 20 Jul 2016 16:48:26 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201607201648.u6KGmQPs007253@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 20 Jul 2016 16:48:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303098 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 16:48:27 -0000 Author: glebius Date: Wed Jul 20 16:48:25 2016 New Revision: 303098 URL: https://svnweb.freebsd.org/changeset/base/303098 Log: Redo the r302894: the very new value for a non-scheduled callout is -1. This was recently added in r290664. Noticed by: hselasky Tested by: Larry Rosenman PR: 210884 Modified: head/sys/kern/kern_timeout.c Modified: head/sys/kern/kern_timeout.c ============================================================================== --- head/sys/kern/kern_timeout.c Wed Jul 20 16:46:13 2016 (r303097) +++ head/sys/kern/kern_timeout.c Wed Jul 20 16:48:25 2016 (r303098) @@ -1380,8 +1380,14 @@ again: if ((c->c_iflags & CALLOUT_PENDING) == 0) { CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", c, c->c_func, c->c_arg); + /* + * For not scheduled and not executing callout return + * negative value. + */ + if (cc_exec_curr(cc, direct) != c) + cancelled = -1; CC_UNLOCK(cc); - return (0); + return (cancelled); } c->c_iflags &= ~CALLOUT_PENDING; From owner-svn-src-all@freebsd.org Wed Jul 20 16:59:37 2016 Return-Path: Delivered-To: svn-src-all@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 69CC4B9FE18; Wed, 20 Jul 2016 16:59:37 +0000 (UTC) (envelope-from cem@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 2F30C15AC; Wed, 20 Jul 2016 16:59:37 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KGxa89010930; Wed, 20 Jul 2016 16:59:36 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KGxaNs010929; Wed, 20 Jul 2016 16:59:36 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201607201659.u6KGxaNs010929@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: "Conrad E. Meyer" Date: Wed, 20 Jul 2016 16:59:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303099 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 16:59:37 -0000 Author: cem Date: Wed Jul 20 16:59:36 2016 New Revision: 303099 URL: https://svnweb.freebsd.org/changeset/base/303099 Log: Extend ELF coredump to support more than 65535 segments The ELF e_phnum field is only 16 bits wide. To support more than 65535 segments (program headers), Sun's "Linker and Libraries Guide" table 7-7 (or 12-7, depending on document version) prescribes a special first section header where sh_info represents the real number of program headers. Test code to follow, when it is ready. Reference: http://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf Reviewed by: emaste, markj Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D7255 Modified: head/sys/kern/imgact_elf.c Modified: head/sys/kern/imgact_elf.c ============================================================================== --- head/sys/kern/imgact_elf.c Wed Jul 20 16:48:25 2016 (r303098) +++ head/sys/kern/imgact_elf.c Wed Jul 20 16:59:36 2016 (r303099) @@ -1323,6 +1323,8 @@ __elfN(coredump)(struct thread *td, stru * Collect info about the core file header area. */ hdrsize = sizeof(Elf_Ehdr) + sizeof(Elf_Phdr) * (1 + seginfo.count); + if (seginfo.count + 1 >= PN_XNUM) + hdrsize += sizeof(Elf_Shdr); __elfN(prepare_notes)(td, ¬elst, ¬esz); coresize = round_page(hdrsize + notesz) + seginfo.size; @@ -1618,10 +1620,10 @@ __elfN(puthdr)(struct thread *td, void * { Elf_Ehdr *ehdr; Elf_Phdr *phdr; + Elf_Shdr *shdr; struct phdr_closure phc; ehdr = (Elf_Ehdr *)hdr; - phdr = (Elf_Phdr *)((char *)hdr + sizeof(Elf_Ehdr)); ehdr->e_ident[EI_MAG0] = ELFMAG0; ehdr->e_ident[EI_MAG1] = ELFMAG1; @@ -1645,14 +1647,43 @@ __elfN(puthdr)(struct thread *td, void * ehdr->e_flags = 0; ehdr->e_ehsize = sizeof(Elf_Ehdr); ehdr->e_phentsize = sizeof(Elf_Phdr); - ehdr->e_phnum = numsegs + 1; ehdr->e_shentsize = sizeof(Elf_Shdr); - ehdr->e_shnum = 0; ehdr->e_shstrndx = SHN_UNDEF; + if (numsegs + 1 < PN_XNUM) { + ehdr->e_phnum = numsegs + 1; + ehdr->e_shnum = 0; + } else { + ehdr->e_phnum = PN_XNUM; + ehdr->e_shnum = 1; + + ehdr->e_shoff = ehdr->e_phoff + + (numsegs + 1) * ehdr->e_phentsize; + KASSERT(ehdr->e_shoff == hdrsize - sizeof(Elf_Shdr), + ("e_shoff: %zu, hdrsize - shdr: %zu", + ehdr->e_shoff, hdrsize - sizeof(Elf_Shdr))); + + shdr = (Elf_Shdr *)((char *)hdr + ehdr->e_shoff); + memset(shdr, 0, sizeof(*shdr)); + /* + * A special first section is used to hold large segment and + * section counts. This was proposed by Sun Microsystems in + * Solaris and has been adopted by Linux; the standard ELF + * tools are already familiar with the technique. + * + * See table 7-7 of the Solaris "Linker and Libraries Guide" + * (or 12-7 depending on the version of the document) for more + * details. + */ + shdr->sh_type = SHT_NULL; + shdr->sh_size = ehdr->e_shnum; + shdr->sh_link = ehdr->e_shstrndx; + shdr->sh_info = numsegs + 1; + } /* * Fill in the program header entries. */ + phdr = (Elf_Phdr *)((char *)hdr + ehdr->e_phoff); /* The note segement. */ phdr->p_type = PT_NOTE; From owner-svn-src-all@freebsd.org Wed Jul 20 17:19:48 2016 Return-Path: Delivered-To: svn-src-all@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 8046BB9F5A3; Wed, 20 Jul 2016 17:19:48 +0000 (UTC) (envelope-from andrew@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 5C6F9130A; Wed, 20 Jul 2016 17:19:48 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KHJle2018408; Wed, 20 Jul 2016 17:19:47 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KHJlRf018405; Wed, 20 Jul 2016 17:19:47 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201607201719.u6KHJlRf018405@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Wed, 20 Jul 2016 17:19:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303100 - head/sys/dev/uart X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 17:19:48 -0000 Author: andrew Date: Wed Jul 20 17:19:47 2016 New Revision: 303100 URL: https://svnweb.freebsd.org/changeset/base/303100 Log: We will be switching to a new arm64 uart cpu driver that handles both FDT and ACPI. As such pull out what will be the common parts of the FDT cpu detection to a new function that can be shared between them. Reviewed by: manu Obtained from: ABT Systems Ltd MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D7262 Modified: head/sys/dev/uart/uart_bus_fdt.c head/sys/dev/uart/uart_cpu_fdt.c head/sys/dev/uart/uart_cpu_fdt.h Modified: head/sys/dev/uart/uart_bus_fdt.c ============================================================================== --- head/sys/dev/uart/uart_bus_fdt.c Wed Jul 20 16:59:36 2016 (r303099) +++ head/sys/dev/uart/uart_bus_fdt.c Wed Jul 20 17:19:47 2016 (r303100) @@ -105,6 +105,129 @@ uart_fdt_find_device(device_t dev) } static int +phandle_chosen_propdev(phandle_t chosen, const char *name, phandle_t *node) +{ + char buf[64]; + + if (OF_getprop(chosen, name, buf, sizeof(buf)) <= 0) + return (ENXIO); + if ((*node = OF_finddevice(buf)) == -1) + return (ENXIO); + + return (0); +} + +static const struct ofw_compat_data * +uart_fdt_find_compatible(phandle_t node, const struct ofw_compat_data *cd) +{ + const struct ofw_compat_data *ocd; + + for (ocd = cd; ocd->ocd_str != NULL; ocd++) { + if (fdt_is_compatible(node, ocd->ocd_str)) + return (ocd); + } + return (NULL); +} + +static uintptr_t +uart_fdt_find_by_node(phandle_t node, int class_list) +{ + struct ofw_compat_data **cd; + const struct ofw_compat_data *ocd; + + if (class_list) { + SET_FOREACH(cd, uart_fdt_class_set) { + ocd = uart_fdt_find_compatible(node, *cd); + if ((ocd != NULL) && (ocd->ocd_data != 0)) + return (ocd->ocd_data); + } + } else { + SET_FOREACH(cd, uart_fdt_class_and_device_set) { + ocd = uart_fdt_find_compatible(node, *cd); + if ((ocd != NULL) && (ocd->ocd_data != 0)) + return (ocd->ocd_data); + } + } + + return (0); +} + +int +uart_cpu_fdt_probe(struct uart_class **classp, bus_space_tag_t *bst, + bus_space_handle_t *bsh, int *baud, u_int *rclk, u_int *shiftp) +{ + const char *propnames[] = {"stdout-path", "linux,stdout-path", "stdout", + "stdin-path", "stdin", NULL}; + const char **name; + struct uart_class *class; + phandle_t node, chosen; + pcell_t br, clk, shift; + char *cp; + int err; + + /* Has the user forced a specific device node? */ + cp = kern_getenv("hw.fdt.console"); + if (cp == NULL) { + /* + * Retrieve /chosen/std{in,out}. + */ + node = -1; + if ((chosen = OF_finddevice("/chosen")) != -1) { + for (name = propnames; *name != NULL; name++) { + if (phandle_chosen_propdev(chosen, *name, + &node) == 0) + break; + } + } + if (chosen == -1 || *name == NULL) + node = OF_finddevice("serial0"); /* Last ditch */ + } else { + node = OF_finddevice(cp); + } + + if (node == -1) + return (ENXIO); + + /* + * Check old style of UART definition first. Unfortunately, the common + * FDT processing is not possible if we have clock, power domains and + * pinmux stuff. + */ + class = (struct uart_class *)uart_fdt_find_by_node(node, 0); + if (class != NULL) { + if ((err = uart_fdt_get_clock(node, &clk)) != 0) + return (err); + } else { + /* Check class only linker set */ + class = + (struct uart_class *)uart_fdt_find_by_node(node, 1); + if (class == NULL) + return (ENXIO); + clk = 0; + } + + /* + * Retrieve serial attributes. + */ + if (uart_fdt_get_shift(node, &shift) != 0) + shift = uart_getregshift(class); + + if (OF_getencprop(node, "current-speed", &br, sizeof(br)) <= 0) + br = 0; + + err = OF_decode_addr(node, 0, bst, bsh, NULL); + if (err != 0) + return (err); + + *classp = class; + *baud = br; + *rclk = clk; + *shiftp = shift; + + return (0); +} + +static int uart_fdt_probe(device_t dev) { struct uart_softc *sc; Modified: head/sys/dev/uart/uart_cpu_fdt.c ============================================================================== --- head/sys/dev/uart/uart_cpu_fdt.c Wed Jul 20 16:59:36 2016 (r303099) +++ head/sys/dev/uart/uart_cpu_fdt.c Wed Jul 20 17:19:47 2016 (r303100) @@ -120,14 +120,11 @@ uart_fdt_find_by_node(phandle_t node, in int uart_cpu_getdev(int devtype, struct uart_devinfo *di) { - const char *propnames[] = {"stdout-path", "linux,stdout-path", "stdout", - "stdin-path", "stdin", NULL}; - const char **name; struct uart_class *class; - phandle_t node, chosen; - pcell_t shift, br, rclk; - char *cp; - int err; + bus_space_tag_t bst; + bus_space_handle_t bsh; + u_int shift, rclk; + int br, err; /* Allow overriding the FDT using the environment. */ class = &uart_ns8250_class; @@ -138,69 +135,24 @@ uart_cpu_getdev(int devtype, struct uart if (devtype != UART_DEV_CONSOLE) return (ENXIO); - /* Has the user forced a specific device node? */ - cp = kern_getenv("hw.fdt.console"); - if (cp == NULL) { - /* - * Retrieve /chosen/std{in,out}. - */ - node = -1; - if ((chosen = OF_finddevice("/chosen")) != -1) { - for (name = propnames; *name != NULL; name++) { - if (phandle_chosen_propdev(chosen, *name, - &node) == 0) - break; - } - } - if (chosen == -1 || *name == NULL) - node = OF_finddevice("serial0"); /* Last ditch */ - } else { - node = OF_finddevice(cp); - } - - if (node == -1) /* Can't find anything */ - return (ENXIO); - - /* - * Check old style of UART definition first. Unfortunately, the common - * FDT processing is not possible if we have clock, power domains and - * pinmux stuff. - */ - class = (struct uart_class *)uart_fdt_find_by_node(node, 0); - if (class != NULL) { - if ((err = uart_fdt_get_clock(node, &rclk)) != 0) - return (err); - } else { - /* Check class only linker set */ - class = - (struct uart_class *)uart_fdt_find_by_node(node, 1); - if (class == NULL) - return (ENXIO); - rclk = 0; - } - - /* - * Retrieve serial attributes. - */ - if (uart_fdt_get_shift(node, &shift) != 0) - shift = uart_getregshift(class); - - if (OF_getencprop(node, "current-speed", &br, sizeof(br)) <= 0) - br = 0; + err = uart_cpu_fdt_probe(&class, &bst, &bsh, &br, &rclk, &shift); + if (err != 0) + return (err); /* * Finalize configuration. */ di->bas.chan = 0; - di->bas.regshft = (u_int)shift; + di->bas.regshft = shift; di->baudrate = br; - di->bas.rclk = (u_int)rclk; + di->bas.rclk = rclk; di->ops = uart_getops(class); di->databits = 8; di->stopbits = 1; di->parity = UART_PARITY_NONE; + di->bas.bst = bst; + di->bas.bsh = bsh; - err = OF_decode_addr(node, 0, &di->bas.bst, &di->bas.bsh, NULL); uart_bus_space_mem = di->bas.bst; uart_bus_space_io = NULL; Modified: head/sys/dev/uart/uart_cpu_fdt.h ============================================================================== --- head/sys/dev/uart/uart_cpu_fdt.h Wed Jul 20 16:59:36 2016 (r303099) +++ head/sys/dev/uart/uart_cpu_fdt.h Wed Jul 20 17:19:47 2016 (r303100) @@ -50,6 +50,8 @@ SET_DECLARE(uart_fdt_class_set, struct o #define UART_FDT_CLASS(data) \ DATA_SET(uart_fdt_class_set, data) +int uart_cpu_fdt_probe(struct uart_class **, bus_space_tag_t *, + bus_space_handle_t *, int *, u_int *, u_int *); int uart_fdt_get_clock(phandle_t node, pcell_t *cell); int uart_fdt_get_shift(phandle_t node, pcell_t *cell); From owner-svn-src-all@freebsd.org Wed Jul 20 17:20:23 2016 Return-Path: Delivered-To: svn-src-all@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 86B6DB9F60A; Wed, 20 Jul 2016 17:20:23 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 59E4A14E5; Wed, 20 Jul 2016 17:20:23 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KHKMYh018496; Wed, 20 Jul 2016 17:20:22 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KHKMOZ018495; Wed, 20 Jul 2016 17:20:22 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201607201720.u6KHKMOZ018495@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Wed, 20 Jul 2016 17:20:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303101 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 17:20:23 -0000 Author: alc Date: Wed Jul 20 17:20:22 2016 New Revision: 303101 URL: https://svnweb.freebsd.org/changeset/base/303101 Log: Add a comment describing the 'fast path' that was introduced in r270011. Reviewed by: kib MFC after: 3 days Sponsored by: EMC / Isilon Storage Division Modified: head/sys/vm/vm_fault.c Modified: head/sys/vm/vm_fault.c ============================================================================== --- head/sys/vm/vm_fault.c Wed Jul 20 17:19:47 2016 (r303100) +++ head/sys/vm/vm_fault.c Wed Jul 20 17:20:22 2016 (r303101) @@ -354,6 +354,15 @@ RetryFault:; KASSERT((fault_flags & VM_FAULT_WIRE) == 0, ("!wired && VM_FAULT_WIRE")); + /* + * Try to avoid lock contention on the top-level object through + * special-case handling of some types of page faults, specifically, + * those that are both (1) mapping an existing page from the top- + * level object and (2) not having to mark that object as containing + * dirty pages. Under these conditions, a read lock on the top-level + * object suffices, allowing multiple page faults of a similar type to + * run in parallel on the same top-level object. + */ if (fs.vp == NULL /* avoid locked vnode leak */ && (fault_flags & (VM_FAULT_WIRE | VM_FAULT_DIRTY)) == 0 && /* avoid calling vm_object_set_writeable_dirty() */ From owner-svn-src-all@freebsd.org Wed Jul 20 17:32:41 2016 Return-Path: Delivered-To: svn-src-all@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 D6902B9F962; Wed, 20 Jul 2016 17:32:41 +0000 (UTC) (envelope-from ler@lerctr.org) Received: from thebighonker.lerctr.org (thebighonker.lerctr.org [IPv6:2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "thebighonker.lerctr.org", Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B4A5C1D52; Wed, 20 Jul 2016 17:32:41 +0000 (UTC) (envelope-from ler@lerctr.org) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lerctr.org; s=lerami; h=Message-ID:References:In-Reply-To:Subject:Cc:To:From:Date: Content-Transfer-Encoding:Content-Type:MIME-Version:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=rEBFzUDNlHooGft/Adlxc7XXBz1X3KPkQgmmJSXClIo=; b=t5e4o5d9DV3ETCTBI3JnGkgzHI KNbsNRMr5RInKFdotskxuwYQKUP0kzIzzCU2VWw2jlia2TgiGc0OKAk3ppuWhRIAgeCKbxudqokB3 1niXWbxt6HKmZSPRXQifcdaDPLnzt0CEu8/TBLYQlzbuRUdVGg/0376AndisGaFb2f/A=; Received: from thebighonker.lerctr.org ([2001:470:1f0f:3ad:223:7dff:fe9e:6e8a]:21318 helo=webmail.lerctr.org) by thebighonker.lerctr.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.87 (FreeBSD)) (envelope-from ) id 1bPvMP-000DLl-4a; Wed, 20 Jul 2016 12:32:41 -0500 Received: from proxy.na.alcatel-lucent.com ([135.245.48.75]) by webmail.lerctr.org with HTTP (HTTP/1.1 POST); Wed, 20 Jul 2016 12:32:41 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Wed, 20 Jul 2016 12:32:41 -0500 From: Larry Rosenman To: "Conrad E. Meyer" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, owner-svn-src-all@freebsd.org Subject: Re: svn commit: r303099 - head/sys/kern In-Reply-To: <201607201659.u6KGxaNs010929@repo.freebsd.org> References: <201607201659.u6KGxaNs010929@repo.freebsd.org> Message-ID: <7d98bc0deeedc54964b62911276c41cc@thebighonker.lerctr.org> X-Sender: ler@lerctr.org User-Agent: Roundcube Webmail/1.2.0 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 17:32:41 -0000 This broke my build: --- imgact_elf32.o --- In file included from /usr/src/sys/kern/imgact_elf32.c:31: /usr/src/sys/kern/imgact_elf.c:1663:8: error: format specifies type 'size_t' (aka 'unsigned long') but the argument has type 'Elf32_Off' (aka 'unsigned int') [-Werror,-Wformat] ehdr->e_shoff, hdrsize - sizeof(Elf_Shdr))); ^~~~~~~~~~~~~ /usr/src/sys/sys/systm.h:86:17: note: expanded from macro 'KASSERT' kassert_panic msg; \ ^~~ On 2016-07-20 11:59, Conrad E. Meyer wrote: > Author: cem > Date: Wed Jul 20 16:59:36 2016 > New Revision: 303099 > URL: https://svnweb.freebsd.org/changeset/base/303099 > > Log: > Extend ELF coredump to support more than 65535 segments > > The ELF e_phnum field is only 16 bits wide. To support more than > 65535 segments > (program headers), Sun's "Linker and Libraries Guide" table 7-7 (or > 12-7, > depending on document version) prescribes a special first section > header where > sh_info represents the real number of program headers. > > Test code to follow, when it is ready. > > Reference: http://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf > > Reviewed by: emaste, markj > Sponsored by: EMC / Isilon Storage Division > Differential Revision: https://reviews.freebsd.org/D7255 > > Modified: > head/sys/kern/imgact_elf.c > > Modified: head/sys/kern/imgact_elf.c > ============================================================================== > --- head/sys/kern/imgact_elf.c Wed Jul 20 16:48:25 2016 (r303098) > +++ head/sys/kern/imgact_elf.c Wed Jul 20 16:59:36 2016 (r303099) > @@ -1323,6 +1323,8 @@ __elfN(coredump)(struct thread *td, stru > * Collect info about the core file header area. > */ > hdrsize = sizeof(Elf_Ehdr) + sizeof(Elf_Phdr) * (1 + seginfo.count); > + if (seginfo.count + 1 >= PN_XNUM) > + hdrsize += sizeof(Elf_Shdr); > __elfN(prepare_notes)(td, ¬elst, ¬esz); > coresize = round_page(hdrsize + notesz) + seginfo.size; > > @@ -1618,10 +1620,10 @@ __elfN(puthdr)(struct thread *td, void * > { > Elf_Ehdr *ehdr; > Elf_Phdr *phdr; > + Elf_Shdr *shdr; > struct phdr_closure phc; > > ehdr = (Elf_Ehdr *)hdr; > - phdr = (Elf_Phdr *)((char *)hdr + sizeof(Elf_Ehdr)); > > ehdr->e_ident[EI_MAG0] = ELFMAG0; > ehdr->e_ident[EI_MAG1] = ELFMAG1; > @@ -1645,14 +1647,43 @@ __elfN(puthdr)(struct thread *td, void * > ehdr->e_flags = 0; > ehdr->e_ehsize = sizeof(Elf_Ehdr); > ehdr->e_phentsize = sizeof(Elf_Phdr); > - ehdr->e_phnum = numsegs + 1; > ehdr->e_shentsize = sizeof(Elf_Shdr); > - ehdr->e_shnum = 0; > ehdr->e_shstrndx = SHN_UNDEF; > + if (numsegs + 1 < PN_XNUM) { > + ehdr->e_phnum = numsegs + 1; > + ehdr->e_shnum = 0; > + } else { > + ehdr->e_phnum = PN_XNUM; > + ehdr->e_shnum = 1; > + > + ehdr->e_shoff = ehdr->e_phoff + > + (numsegs + 1) * ehdr->e_phentsize; > + KASSERT(ehdr->e_shoff == hdrsize - sizeof(Elf_Shdr), > + ("e_shoff: %zu, hdrsize - shdr: %zu", > + ehdr->e_shoff, hdrsize - sizeof(Elf_Shdr))); > + > + shdr = (Elf_Shdr *)((char *)hdr + ehdr->e_shoff); > + memset(shdr, 0, sizeof(*shdr)); > + /* > + * A special first section is used to hold large segment and > + * section counts. This was proposed by Sun Microsystems in > + * Solaris and has been adopted by Linux; the standard ELF > + * tools are already familiar with the technique. > + * > + * See table 7-7 of the Solaris "Linker and Libraries Guide" > + * (or 12-7 depending on the version of the document) for more > + * details. > + */ > + shdr->sh_type = SHT_NULL; > + shdr->sh_size = ehdr->e_shnum; > + shdr->sh_link = ehdr->e_shstrndx; > + shdr->sh_info = numsegs + 1; > + } > > /* > * Fill in the program header entries. > */ > + phdr = (Elf_Phdr *)((char *)hdr + ehdr->e_phoff); > > /* The note segement. */ > phdr->p_type = PT_NOTE; > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 E-Mail: ler@lerctr.org US Mail: 17716 Limpia Crk, Round Rock, TX 78664-7281 From owner-svn-src-all@freebsd.org Wed Jul 20 17:46:34 2016 Return-Path: Delivered-To: svn-src-all@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 52462B9FD04; Wed, 20 Jul 2016 17:46:34 +0000 (UTC) (envelope-from andrew@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 2527815FE; Wed, 20 Jul 2016 17:46:34 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KHkXYf029225; Wed, 20 Jul 2016 17:46:33 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KHkXoW029224; Wed, 20 Jul 2016 17:46:33 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201607201746.u6KHkXoW029224@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Wed, 20 Jul 2016 17:46:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303102 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 17:46:34 -0000 Author: andrew Date: Wed Jul 20 17:46:33 2016 New Revision: 303102 URL: https://svnweb.freebsd.org/changeset/base/303102 Log: Mark the Designware MMC and USB OTG drivers as FDT only. These are normally found on arm64 devices that use FDT. Obtained from: ABT Systems Ltd MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/sys/conf/files.arm64 Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Wed Jul 20 17:20:22 2016 (r303101) +++ head/sys/conf/files.arm64 Wed Jul 20 17:46:33 2016 (r303102) @@ -59,8 +59,8 @@ dev/acpica/acpi_if.m optional acpi dev/ahci/ahci_generic.c optional ahci fdt dev/hwpmc/hwpmc_arm64.c optional hwpmc dev/hwpmc/hwpmc_arm64_md.c optional hwpmc -dev/mmc/host/dwmmc.c optional dwmmc -dev/mmc/host/dwmmc_hisi.c optional dwmmc soc_hisi_hi6220 +dev/mmc/host/dwmmc.c optional dwmmc fdt +dev/mmc/host/dwmmc_hisi.c optional dwmmc fdt soc_hisi_hi6220 dev/ofw/ofw_cpu.c optional fdt dev/ofw/ofwpci.c optional fdt pci dev/pci/pci_host_generic.c optional pci fdt @@ -68,7 +68,7 @@ dev/psci/psci.c optional psci dev/psci/psci_arm64.S optional psci dev/uart/uart_cpu_fdt.c optional uart fdt dev/uart/uart_dev_pl011.c optional uart pl011 -dev/usb/controller/dwc_otg_hisi.c optional dwcotg soc_hisi_hi6220 +dev/usb/controller/dwc_otg_hisi.c optional dwcotg fdt soc_hisi_hi6220 dev/usb/controller/generic_ohci.c optional ohci fdt dev/usb/controller/generic_usb_if.m optional ohci fdt dev/vnic/mrml_bridge.c optional vnic fdt From owner-svn-src-all@freebsd.org Wed Jul 20 18:00:23 2016 Return-Path: Delivered-To: svn-src-all@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 E5806B9FFFE; Wed, 20 Jul 2016 18:00:23 +0000 (UTC) (envelope-from brooks@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 B6B531D70; Wed, 20 Jul 2016 18:00:23 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KI0MW9033104; Wed, 20 Jul 2016 18:00:22 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KI0MiW033103; Wed, 20 Jul 2016 18:00:22 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201607201800.u6KI0MiW033103@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Wed, 20 Jul 2016 18:00:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303103 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 18:00:24 -0000 Author: brooks Date: Wed Jul 20 18:00:22 2016 New Revision: 303103 URL: https://svnweb.freebsd.org/changeset/base/303103 Log: Minor wording improvements to the note about pipe(2) removal. MFC after: 5 days Sponsored by: DARPA, AFRL Modified: head/UPDATING Modified: head/UPDATING ============================================================================== --- head/UPDATING Wed Jul 20 17:46:33 2016 (r303102) +++ head/UPDATING Wed Jul 20 18:00:22 2016 (r303103) @@ -33,11 +33,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12 20160622: The libc stub for the pipe(2) system call has been replaced with - a wrapper which calls the pipe2(2) system call and the pipe(2) is now - only implemented by the kernels which include "options - COMPAT_FREEBSD10" in their config file (this is the default). - Users should ensure that this option is enabled in their kernel - or upgrade userspace to r302092 before upgrading their kernel. + a wrapper that calls the pipe2(2) system call and the pipe(2) + system call is now only implemented by the kernels that include + "options COMPAT_FREEBSD10" in their config file (this is the + default). Users should ensure that this option is enabled in + their kernel or upgrade userspace to r302092 before upgrading their + kernel. 20160527: CAM will now strip leading spaces from SCSI disks' serial numbers. From owner-svn-src-all@freebsd.org Wed Jul 20 18:02:09 2016 Return-Path: Delivered-To: svn-src-all@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 04FDAB9F153; Wed, 20 Jul 2016 18:02:09 +0000 (UTC) (envelope-from brooks@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 C60DD121D; Wed, 20 Jul 2016 18:02:08 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KI28sF036417; Wed, 20 Jul 2016 18:02:08 GMT (envelope-from brooks@FreeBSD.org) Received: (from brooks@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KI28eK036416; Wed, 20 Jul 2016 18:02:08 GMT (envelope-from brooks@FreeBSD.org) Message-Id: <201607201802.u6KI28eK036416@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brooks set sender to brooks@FreeBSD.org using -f From: Brooks Davis Date: Wed, 20 Jul 2016 18:02:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303104 - head/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 18:02:09 -0000 Author: brooks Date: Wed Jul 20 18:02:07 2016 New Revision: 303104 URL: https://svnweb.freebsd.org/changeset/base/303104 Log: Update to reflect the fact that pipe() is a wrapper around the pipe2() system call. Reviewed by: jhb, wblock MFC after: 5 days Sponsored by: DAPRA, AFRL Differential Revision: https://reviews.freebsd.org/D6948 Modified: head/lib/libc/sys/pipe.2 Modified: head/lib/libc/sys/pipe.2 ============================================================================== --- head/lib/libc/sys/pipe.2 Wed Jul 20 18:00:22 2016 (r303103) +++ head/lib/libc/sys/pipe.2 Wed Jul 20 18:02:07 2016 (r303104) @@ -28,7 +28,7 @@ .\" @(#)pipe.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd June 22, 2016 +.Dd July 20, 2016 .Dt PIPE 2 .Os .Sh NAME @@ -109,6 +109,18 @@ The bidirectional nature of this impleme portable to older systems, so it is recommended to use the convention for using the endpoints in the traditional manner when using a pipe in one direction. +.Sh IMPLEMENTATION NOTES +The +.Fn pipe +function calls the +.Fn pipe2 +system call. +As a result, system call traces such as those captured by +.Xr dtrace 1 +or +.Xr ktrace 1 +will show calls to +.Fn pipe2 . .Sh RETURN VALUES .Rv -std pipe .Sh ERRORS @@ -157,3 +169,10 @@ The .Fn pipe2 function appeared in .Fx 10.0 . +.Pp +The +.Fn pipe +function became a wrapper around +.Fn pipe2 +in +.Fx 11.0 . From owner-svn-src-all@freebsd.org Wed Jul 20 18:11:23 2016 Return-Path: Delivered-To: svn-src-all@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 8AD41B9F58B; Wed, 20 Jul 2016 18:11:23 +0000 (UTC) (envelope-from cem@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 57ED2170F; Wed, 20 Jul 2016 18:11:23 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KIBMhu039076; Wed, 20 Jul 2016 18:11:22 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KIBMQx039075; Wed, 20 Jul 2016 18:11:22 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201607201811.u6KIBMQx039075@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: "Conrad E. Meyer" Date: Wed, 20 Jul 2016 18:11:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303105 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 18:11:23 -0000 Author: cem Date: Wed Jul 20 18:11:22 2016 New Revision: 303105 URL: https://svnweb.freebsd.org/changeset/base/303105 Log: Fix DEBUG build on 64-bit arch after r303099 Reported by: Larry Rosenman Modified: head/sys/kern/imgact_elf.c Modified: head/sys/kern/imgact_elf.c ============================================================================== --- head/sys/kern/imgact_elf.c Wed Jul 20 18:02:07 2016 (r303104) +++ head/sys/kern/imgact_elf.c Wed Jul 20 18:11:22 2016 (r303105) @@ -1660,7 +1660,7 @@ __elfN(puthdr)(struct thread *td, void * (numsegs + 1) * ehdr->e_phentsize; KASSERT(ehdr->e_shoff == hdrsize - sizeof(Elf_Shdr), ("e_shoff: %zu, hdrsize - shdr: %zu", - ehdr->e_shoff, hdrsize - sizeof(Elf_Shdr))); + (size_t)ehdr->e_shoff, hdrsize - sizeof(Elf_Shdr))); shdr = (Elf_Shdr *)((char *)hdr + ehdr->e_shoff); memset(shdr, 0, sizeof(*shdr)); From owner-svn-src-all@freebsd.org Wed Jul 20 18:11:54 2016 Return-Path: Delivered-To: svn-src-all@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 5F20AB9F5D8; Wed, 20 Jul 2016 18:11:54 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io0-f178.google.com (mail-io0-f178.google.com [209.85.223.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 325421950; Wed, 20 Jul 2016 18:11:53 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io0-f178.google.com with SMTP id q83so54998472iod.1; Wed, 20 Jul 2016 11:11:53 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=sU+LeyheEcOYmnzSBWt+/6sMX6XFxPl3Wu41sTGesps=; b=eDq2Nx2/FGY4+7C8+doBLixjok4gLbM9ZkbOkAxI37pJ5SYwsjKHHOT8MtxEEOAOgB tJ/wIHHmDPyuZptdmYufRNW1ykJAowUU3mbra2yI/lahDOAsTGWuRlh3ctAW16+0yVqC pncS4jhBEkVJGWGhTN0GyF6hzxcaZWwOHn/t5QhZqhWJM0uSA/bMTIDpRQtCGofGCCFK E18Aqowu2JG/Kd7TWl91ZR3CKPzUOrJsQfy3by8a8LZBDUz47z/BU1JxJ7xGTMl0o9TJ sro1PGv1IalnBa5UkzlZfiLvalQz++cy2DoneF4h1I2PhexIM+fa3G1fh4RaWYFwBT7R p+Cg== X-Gm-Message-State: ALyK8tLeMoOmjPQcK3aMCOxlilTV9q8S8jMNLC7cI0JMVOSWCZVO+Rf7hkiZkTib+XsIwA== X-Received: by 10.107.166.135 with SMTP id p129mr45468463ioe.121.1469038312697; Wed, 20 Jul 2016 11:11:52 -0700 (PDT) Received: from mail-it0-f52.google.com (mail-it0-f52.google.com. [209.85.214.52]) by smtp.gmail.com with ESMTPSA id c40sm1941329iod.6.2016.07.20.11.11.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Jul 2016 11:11:52 -0700 (PDT) Received: by mail-it0-f52.google.com with SMTP id j124so57996485ith.1; Wed, 20 Jul 2016 11:11:52 -0700 (PDT) X-Received: by 10.36.212.132 with SMTP id x126mr46373814itg.34.1469038312181; Wed, 20 Jul 2016 11:11:52 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.36.233.67 with HTTP; Wed, 20 Jul 2016 11:11:51 -0700 (PDT) In-Reply-To: <7d98bc0deeedc54964b62911276c41cc@thebighonker.lerctr.org> References: <201607201659.u6KGxaNs010929@repo.freebsd.org> <7d98bc0deeedc54964b62911276c41cc@thebighonker.lerctr.org> From: Conrad Meyer Date: Wed, 20 Jul 2016 11:11:51 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r303099 - head/sys/kern To: Larry Rosenman Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org, owner-svn-src-all@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 18:11:54 -0000 Mea culpa. Thanks for the report. Fixed in r303105. Best, Conrad On Wed, Jul 20, 2016 at 10:32 AM, Larry Rosenman wrote: > This broke my build: > --- imgact_elf32.o --- > In file included from /usr/src/sys/kern/imgact_elf32.c:31: > /usr/src/sys/kern/imgact_elf.c:1663:8: error: format specifies type 'size_t' > (aka 'unsigned long') but the argument has type 'Elf32_Off' (aka 'unsigned > int') [-Werror,-Wformat] > ehdr->e_shoff, hdrsize - sizeof(Elf_Shdr))); > ^~~~~~~~~~~~~ > /usr/src/sys/sys/systm.h:86:17: note: expanded from macro 'KASSERT' > kassert_panic msg; \ > ^~~ > > > > > On 2016-07-20 11:59, Conrad E. Meyer wrote: >> >> Author: cem >> Date: Wed Jul 20 16:59:36 2016 >> New Revision: 303099 >> URL: https://svnweb.freebsd.org/changeset/base/303099 >> >> Log: >> Extend ELF coredump to support more than 65535 segments >> >> The ELF e_phnum field is only 16 bits wide. To support more than >> 65535 segments >> (program headers), Sun's "Linker and Libraries Guide" table 7-7 (or >> 12-7, >> depending on document version) prescribes a special first section header >> where >> sh_info represents the real number of program headers. >> >> Test code to follow, when it is ready. >> >> Reference: http://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf >> >> Reviewed by: emaste, markj >> Sponsored by: EMC / Isilon Storage Division >> Differential Revision: https://reviews.freebsd.org/D7255 >> >> Modified: >> head/sys/kern/imgact_elf.c >> >> Modified: head/sys/kern/imgact_elf.c >> >> ============================================================================== >> --- head/sys/kern/imgact_elf.c Wed Jul 20 16:48:25 2016 (r303098) >> +++ head/sys/kern/imgact_elf.c Wed Jul 20 16:59:36 2016 (r303099) >> @@ -1323,6 +1323,8 @@ __elfN(coredump)(struct thread *td, stru >> * Collect info about the core file header area. >> */ >> hdrsize = sizeof(Elf_Ehdr) + sizeof(Elf_Phdr) * (1 + >> seginfo.count); >> + if (seginfo.count + 1 >= PN_XNUM) >> + hdrsize += sizeof(Elf_Shdr); >> __elfN(prepare_notes)(td, ¬elst, ¬esz); >> coresize = round_page(hdrsize + notesz) + seginfo.size; >> >> @@ -1618,10 +1620,10 @@ __elfN(puthdr)(struct thread *td, void * >> { >> Elf_Ehdr *ehdr; >> Elf_Phdr *phdr; >> + Elf_Shdr *shdr; >> struct phdr_closure phc; >> >> ehdr = (Elf_Ehdr *)hdr; >> - phdr = (Elf_Phdr *)((char *)hdr + sizeof(Elf_Ehdr)); >> >> ehdr->e_ident[EI_MAG0] = ELFMAG0; >> ehdr->e_ident[EI_MAG1] = ELFMAG1; >> @@ -1645,14 +1647,43 @@ __elfN(puthdr)(struct thread *td, void * >> ehdr->e_flags = 0; >> ehdr->e_ehsize = sizeof(Elf_Ehdr); >> ehdr->e_phentsize = sizeof(Elf_Phdr); >> - ehdr->e_phnum = numsegs + 1; >> ehdr->e_shentsize = sizeof(Elf_Shdr); >> - ehdr->e_shnum = 0; >> ehdr->e_shstrndx = SHN_UNDEF; >> + if (numsegs + 1 < PN_XNUM) { >> + ehdr->e_phnum = numsegs + 1; >> + ehdr->e_shnum = 0; >> + } else { >> + ehdr->e_phnum = PN_XNUM; >> + ehdr->e_shnum = 1; >> + >> + ehdr->e_shoff = ehdr->e_phoff + >> + (numsegs + 1) * ehdr->e_phentsize; >> + KASSERT(ehdr->e_shoff == hdrsize - sizeof(Elf_Shdr), >> + ("e_shoff: %zu, hdrsize - shdr: %zu", >> + ehdr->e_shoff, hdrsize - sizeof(Elf_Shdr))); >> + >> + shdr = (Elf_Shdr *)((char *)hdr + ehdr->e_shoff); >> + memset(shdr, 0, sizeof(*shdr)); >> + /* >> + * A special first section is used to hold large segment >> and >> + * section counts. This was proposed by Sun Microsystems >> in >> + * Solaris and has been adopted by Linux; the standard ELF >> + * tools are already familiar with the technique. >> + * >> + * See table 7-7 of the Solaris "Linker and Libraries >> Guide" >> + * (or 12-7 depending on the version of the document) for >> more >> + * details. >> + */ >> + shdr->sh_type = SHT_NULL; >> + shdr->sh_size = ehdr->e_shnum; >> + shdr->sh_link = ehdr->e_shstrndx; >> + shdr->sh_info = numsegs + 1; >> + } >> >> /* >> * Fill in the program header entries. >> */ >> + phdr = (Elf_Phdr *)((char *)hdr + ehdr->e_phoff); >> >> /* The note segement. */ >> phdr->p_type = PT_NOTE; >> _______________________________________________ >> svn-src-all@freebsd.org mailing list >> https://lists.freebsd.org/mailman/listinfo/svn-src-all >> To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" > > > -- > Larry Rosenman http://www.lerctr.org/~ler > Phone: +1 214-642-9640 E-Mail: ler@lerctr.org > US Mail: 17716 Limpia Crk, Round Rock, TX 78664-7281 From owner-svn-src-all@freebsd.org Wed Jul 20 18:16:59 2016 Return-Path: Delivered-To: svn-src-all@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 915A6B9F6C5; Wed, 20 Jul 2016 18:16:59 +0000 (UTC) (envelope-from zeising@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 644B11D01; Wed, 20 Jul 2016 18:16:59 +0000 (UTC) (envelope-from zeising@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KIGwxn040593; Wed, 20 Jul 2016 18:16:58 GMT (envelope-from zeising@FreeBSD.org) Received: (from zeising@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KIGwRr040592; Wed, 20 Jul 2016 18:16:58 GMT (envelope-from zeising@FreeBSD.org) Message-Id: <201607201816.u6KIGwRr040592@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zeising set sender to zeising@FreeBSD.org using -f From: Niclas Zeising Date: Wed, 20 Jul 2016 18:16:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303106 - head/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 18:16:59 -0000 Author: zeising (doc,ports committer) Date: Wed Jul 20 18:16:58 2016 New Revision: 303106 URL: https://svnweb.freebsd.org/changeset/base/303106 Log: Change wording to use function rather than system call in the description as well. Reviewed by: brooks MFC after: 5 days Modified: head/lib/libc/sys/pipe.2 Modified: head/lib/libc/sys/pipe.2 ============================================================================== --- head/lib/libc/sys/pipe.2 Wed Jul 20 18:11:22 2016 (r303105) +++ head/lib/libc/sys/pipe.2 Wed Jul 20 18:16:58 2016 (r303106) @@ -46,7 +46,7 @@ .Sh DESCRIPTION The .Fn pipe -system call +function creates a .Em pipe , which is an object allowing From owner-svn-src-all@freebsd.org Wed Jul 20 18:26:50 2016 Return-Path: Delivered-To: svn-src-all@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 0DB37B9F951; Wed, 20 Jul 2016 18:26:50 +0000 (UTC) (envelope-from sbruno@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 C5A9013B9; Wed, 20 Jul 2016 18:26:49 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KIQn91044225; Wed, 20 Jul 2016 18:26:49 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KIQm2t044217; Wed, 20 Jul 2016 18:26:48 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607201826.u6KIQm2t044217@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Wed, 20 Jul 2016 18:26:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303107 - in stable/10/sys/dev: e1000 ixgb ixgbe ixl X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 18:26:50 -0000 Author: sbruno Date: Wed Jul 20 18:26:48 2016 New Revision: 303107 URL: https://svnweb.freebsd.org/changeset/base/303107 Log: MFC - r302384 to 10-STABLE Do not initialize the adapter on MTU change when adapter status is down. This fixes long-standing problems when changing settings of the adapter. Discussed in: https://lists.freebsd.org/pipermail/freebsd-net/2016-June/045509.html Differential Revision: https://reviews.freebsd.org/D7254 Modified: stable/10/sys/dev/e1000/if_em.c stable/10/sys/dev/e1000/if_igb.c stable/10/sys/dev/e1000/if_lem.c stable/10/sys/dev/ixgb/if_ixgb.c stable/10/sys/dev/ixgbe/if_ix.c stable/10/sys/dev/ixgbe/if_ixv.c stable/10/sys/dev/ixl/if_ixl.c stable/10/sys/dev/ixl/if_ixlv.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/e1000/if_em.c ============================================================================== --- stable/10/sys/dev/e1000/if_em.c Wed Jul 20 18:16:58 2016 (r303106) +++ stable/10/sys/dev/e1000/if_em.c Wed Jul 20 18:26:48 2016 (r303107) @@ -1220,7 +1220,8 @@ em_ioctl(struct ifnet *ifp, u_long comma ifp->if_mtu = ifr->ifr_mtu; adapter->hw.mac.max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; - em_init_locked(adapter); + if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) + em_init_locked(adapter); EM_CORE_UNLOCK(adapter); break; } Modified: stable/10/sys/dev/e1000/if_igb.c ============================================================================== --- stable/10/sys/dev/e1000/if_igb.c Wed Jul 20 18:16:58 2016 (r303106) +++ stable/10/sys/dev/e1000/if_igb.c Wed Jul 20 18:26:48 2016 (r303107) @@ -1090,7 +1090,8 @@ igb_ioctl(struct ifnet *ifp, u_long comm ifp->if_mtu = ifr->ifr_mtu; adapter->max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; - igb_init_locked(adapter); + if ((ifp->if_drv_flags & IFF_DRV_RUNNING)) + igb_init_locked(adapter); IGB_CORE_UNLOCK(adapter); break; } Modified: stable/10/sys/dev/e1000/if_lem.c ============================================================================== --- stable/10/sys/dev/e1000/if_lem.c Wed Jul 20 18:16:58 2016 (r303106) +++ stable/10/sys/dev/e1000/if_lem.c Wed Jul 20 18:26:48 2016 (r303107) @@ -1047,7 +1047,8 @@ lem_ioctl(struct ifnet *ifp, u_long comm ifp->if_mtu = ifr->ifr_mtu; adapter->max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; - lem_init_locked(adapter); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING)) + lem_init_locked(adapter); EM_CORE_UNLOCK(adapter); break; } Modified: stable/10/sys/dev/ixgb/if_ixgb.c ============================================================================== --- stable/10/sys/dev/ixgb/if_ixgb.c Wed Jul 20 18:16:58 2016 (r303106) +++ stable/10/sys/dev/ixgb/if_ixgb.c Wed Jul 20 18:26:48 2016 (r303107) @@ -538,7 +538,8 @@ ixgb_ioctl(struct ifnet * ifp, IOCTL_CMD adapter->hw.max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; - ixgb_init_locked(adapter); + if (ifp->if_drv_flags & IFF_DRV_RUNNING) + ixgb_init_locked(adapter); IXGB_UNLOCK(adapter); } break; Modified: stable/10/sys/dev/ixgbe/if_ix.c ============================================================================== --- stable/10/sys/dev/ixgbe/if_ix.c Wed Jul 20 18:16:58 2016 (r303106) +++ stable/10/sys/dev/ixgbe/if_ix.c Wed Jul 20 18:26:48 2016 (r303107) @@ -900,7 +900,8 @@ ixgbe_ioctl(struct ifnet * ifp, u_long c ifp->if_mtu = ifr->ifr_mtu; adapter->max_frame_size = ifp->if_mtu + IXGBE_MTU_HDR; - ixgbe_init_locked(adapter); + if (ifp->if_drv_flags & IFF_DRV_RUNNING) + ixgbe_init_locked(adapter); #ifdef PCI_IOV ixgbe_recalculate_max_frame(adapter); #endif Modified: stable/10/sys/dev/ixgbe/if_ixv.c ============================================================================== --- stable/10/sys/dev/ixgbe/if_ixv.c Wed Jul 20 18:16:58 2016 (r303106) +++ stable/10/sys/dev/ixgbe/if_ixv.c Wed Jul 20 18:26:48 2016 (r303107) @@ -587,7 +587,8 @@ ixv_ioctl(struct ifnet * ifp, u_long com ifp->if_mtu = ifr->ifr_mtu; adapter->max_frame_size = ifp->if_mtu + IXGBE_MTU_HDR; - ixv_init_locked(adapter); + if (ifp->if_drv_flags & IFF_DRV_RUNNING) + ixv_init_locked(adapter); IXGBE_CORE_UNLOCK(adapter); } break; Modified: stable/10/sys/dev/ixl/if_ixl.c ============================================================================== --- stable/10/sys/dev/ixl/if_ixl.c Wed Jul 20 18:16:58 2016 (r303106) +++ stable/10/sys/dev/ixl/if_ixl.c Wed Jul 20 18:26:48 2016 (r303107) @@ -1024,7 +1024,8 @@ ixl_ioctl(struct ifnet * ifp, u_long com vsi->max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN + ETHER_VLAN_ENCAP_LEN; - ixl_init_locked(pf); + if (ifp->if_drv_flags & IFF_DRV_RUNNING) + ixl_init_locked(pf); IXL_PF_UNLOCK(pf); } break; Modified: stable/10/sys/dev/ixl/if_ixlv.c ============================================================================== --- stable/10/sys/dev/ixl/if_ixlv.c Wed Jul 20 18:16:58 2016 (r303106) +++ stable/10/sys/dev/ixl/if_ixlv.c Wed Jul 20 18:26:48 2016 (r303107) @@ -675,7 +675,8 @@ ixlv_ioctl(struct ifnet *ifp, u_long com vsi->max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN + ETHER_VLAN_ENCAP_LEN; - ixlv_init_locked(sc); + if (ifp->if_drv_flags & IFF_DRV_RUNNING) + ixlv_init_locked(sc); } mtx_unlock(&sc->mtx); break; From owner-svn-src-all@freebsd.org Wed Jul 20 18:41:48 2016 Return-Path: Delivered-To: svn-src-all@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 8CABBB9FEA0; Wed, 20 Jul 2016 18:41:48 +0000 (UTC) (envelope-from jhb@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 4043011CB; Wed, 20 Jul 2016 18:41:48 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KIfl0r051469; Wed, 20 Jul 2016 18:41:47 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KIfleG051451; Wed, 20 Jul 2016 18:41:47 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607201841.u6KIfleG051451@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Wed, 20 Jul 2016 18:41:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303109 - head/usr.sbin/crashinfo X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 18:41:48 -0000 Author: jhb Date: Wed Jul 20 18:41:47 2016 New Revision: 303109 URL: https://svnweb.freebsd.org/changeset/base/303109 Log: Update crashinfo to work with newer gdb from ports. If gdb from ports is installed, use it instead of the base system gdb to extract variables from a kernel. Note that base gdb and ports gdb do not support the same options for invoking a single command in batch mode, so a wrapper shell function is used. In addition, prefer kgdb from ports when generating a backtrace if present. PR: 193335 Reviewed by: emaste MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D7218 Modified: head/usr.sbin/crashinfo/crashinfo.sh Modified: head/usr.sbin/crashinfo/crashinfo.sh ============================================================================== --- head/usr.sbin/crashinfo/crashinfo.sh Wed Jul 20 18:27:42 2016 (r303108) +++ head/usr.sbin/crashinfo/crashinfo.sh Wed Jul 20 18:41:47 2016 (r303109) @@ -35,6 +35,22 @@ usage() exit 1 } +# Run a single gdb command against a kernel file in batch mode. +# The kernel file is specified as the first argument and the command +# is given in the remaining arguments. +gdb_command() +{ + local k + + k=$1 ; shift + + if [ -x /usr/local/bin/gdb ]; then + /usr/local/bin/gdb -batch -ex "$@" $k + else + echo -e "$@" | /usr/bin/gdb -x /dev/stdin -batch $k + fi +} + find_kernel() { local ivers k kvers @@ -55,8 +71,8 @@ find_kernel() # Look for a matching kernel version. for k in `sysctl -n kern.bootfile` $(ls -t /boot/*/kernel); do - kvers=$(echo 'printf " Version String: %s", version' | \ - gdb -x /dev/stdin -batch $k 2>/dev/null) + kvers=$(gdb_command $k 'printf " Version String: %s", version' \ + 2>/dev/null) if [ "$ivers" = "$kvers" ]; then KERNEL=$k break @@ -151,11 +167,10 @@ echo "Writing crash summary to $FILE." umask 077 # Simulate uname -ostype=$(echo -e printf '"%s", ostype' | gdb -x /dev/stdin -batch $KERNEL) -osrelease=$(echo -e printf '"%s", osrelease' | gdb -x /dev/stdin -batch $KERNEL) -version=$(echo -e printf '"%s", version' | gdb -x /dev/stdin -batch $KERNEL | \ - tr '\t\n' ' ') -machine=$(echo -e printf '"%s", machine' | gdb -x /dev/stdin -batch $KERNEL) +ostype=$(gdb_command $KERNEL 'printf "%s", ostype') +osrelease=$(gdb_command $KERNEL 'printf "%s", osrelease') +version=$(gdb_command $KERNEL 'printf "%s", version' | tr '\t\n' ' ') +machine=$(gdb_command $KERNEL 'printf "%s", machine') exec > $FILE 2>&1 @@ -174,7 +189,11 @@ file=`mktemp /tmp/crashinfo.XXXXXX` if [ $? -eq 0 ]; then echo "bt" >> $file echo "quit" >> $file - kgdb $KERNEL $VMCORE < $file + if [ -x /usr/local/bin/kgdb ]; then + /usr/local/bin/kgdb $KERNEL $VMCORE < $file + else + kgdb $KERNEL $VMCORE < $file + fi rm -f $file echo fi From owner-svn-src-all@freebsd.org Wed Jul 20 19:07:43 2016 Return-Path: Delivered-To: svn-src-all@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 6112DB9F6EE; Wed, 20 Jul 2016 19:07:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 4ED771445; Wed, 20 Jul 2016 19:07:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id 455F1121C; Wed, 20 Jul 2016 19:07:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id E941565A6; Wed, 20 Jul 2016 19:07:42 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id wMWEYeTg4kmH; Wed, 20 Jul 2016 19:07:39 +0000 (UTC) Subject: Re: svn commit: r303043 - in head: share/man/man4 sys/dev/vt sys/dev/vt/hw/fb DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 35FC7659F To: cem@freebsd.org, koobs@freebsd.org References: <201607191920.u6JJKm7R026421@repo.freebsd.org> <1c485351-51f3-99f1-b7da-0745030dd1e6@FreeBSD.org> Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Bryan Drewery Organization: FreeBSD Message-ID: Date: Wed, 20 Jul 2016 12:07:37 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 19:07:43 -0000 On 7/20/16 8:20 AM, Conrad Meyer wrote: > On Wed, Jul 20, 2016 at 12:44 AM, Kubilay Kocak wrote: >> On 20/07/2016 5:20 AM, Conrad E. Meyer wrote: >>> Author: cem >>> Date: Tue Jul 19 19:20:47 2016 >>> New Revision: 303043 >>> URL: https://svnweb.freebsd.org/changeset/base/303043 >>> >>> Log: >>> Increase vt(4) framebuffer maximum size >>> >>> And rename "DEFAULT" constants to the more accurate "MAX." >>> >>> PR: 210382 >>> Submitted by: Felix >>> Reviewed by: wblock, cem >>> Tested by: Dave Cottlehuber >> >> Can MFC? >> >> There are high hopes for this coming out in 11.0 / next 10.x >> >> re is cc'd on the original bugzilla issue > > If you would like to do so, please go ahead. > > Best, > Conrad > I'll handle it after it's been in for a week. -- Regards, Bryan Drewery From owner-svn-src-all@freebsd.org Wed Jul 20 19:21:12 2016 Return-Path: Delivered-To: svn-src-all@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 F2479B9FFF1; Wed, 20 Jul 2016 19:21:12 +0000 (UTC) (envelope-from sbruno@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 BF48B12D4; Wed, 20 Jul 2016 19:21:12 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KJLBLe064306; Wed, 20 Jul 2016 19:21:11 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KJLBkW064304; Wed, 20 Jul 2016 19:21:11 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607201921.u6KJLBkW064304@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Wed, 20 Jul 2016 19:21:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303110 - head/sys/dev/e1000 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 19:21:13 -0000 Author: sbruno Date: Wed Jul 20 19:21:11 2016 New Revision: 303110 URL: https://svnweb.freebsd.org/changeset/base/303110 Log: Remove uneeded parens. MFC after: 1 day Modified: head/sys/dev/e1000/if_igb.c head/sys/dev/e1000/if_lem.c Modified: head/sys/dev/e1000/if_igb.c ============================================================================== --- head/sys/dev/e1000/if_igb.c Wed Jul 20 18:41:47 2016 (r303109) +++ head/sys/dev/e1000/if_igb.c Wed Jul 20 19:21:11 2016 (r303110) @@ -1106,7 +1106,7 @@ igb_ioctl(struct ifnet *ifp, u_long comm ifp->if_mtu = ifr->ifr_mtu; adapter->max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; - if ((ifp->if_drv_flags & IFF_DRV_RUNNING)) + if (ifp->if_drv_flags & IFF_DRV_RUNNING) igb_init_locked(adapter); IGB_CORE_UNLOCK(adapter); break; Modified: head/sys/dev/e1000/if_lem.c ============================================================================== --- head/sys/dev/e1000/if_lem.c Wed Jul 20 18:41:47 2016 (r303109) +++ head/sys/dev/e1000/if_lem.c Wed Jul 20 19:21:11 2016 (r303110) @@ -1053,7 +1053,7 @@ lem_ioctl(if_t ifp, u_long command, cadd if_setmtu(ifp, ifr->ifr_mtu); adapter->max_frame_size = if_getmtu(ifp) + ETHER_HDR_LEN + ETHER_CRC_LEN; - if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING)) + if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) lem_init_locked(adapter); EM_CORE_UNLOCK(adapter); break; From owner-svn-src-all@freebsd.org Wed Jul 20 19:33:36 2016 Return-Path: Delivered-To: svn-src-all@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 5FF88B9E51B; Wed, 20 Jul 2016 19:33:36 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 498951E69; Wed, 20 Jul 2016 19:33:36 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id 421D11E12; Wed, 20 Jul 2016 19:33:36 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 01D2B668D; Wed, 20 Jul 2016 19:33:36 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id oBvPd0_0xgjn; Wed, 20 Jul 2016 19:33:33 +0000 (UTC) Subject: Re: svn commit: r302350 - in head: share/man/man9 sys/kern sys/sys DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 15DA36687 To: Hans Petter Selasky , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , Gleb Smirnoff References: <201607051847.u65IlIYf000901@repo.freebsd.org> <20160713084947.a4nfb6obr475pah6@mac> <8ed4b78f-71d3-9051-d435-ad0f9f3af124@selasky.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Bryan Drewery Organization: FreeBSD Message-ID: <2026f486-d770-193d-34c1-8b93ec19b51e@FreeBSD.org> Date: Wed, 20 Jul 2016 12:33:33 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <8ed4b78f-71d3-9051-d435-ad0f9f3af124@selasky.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 19:33:36 -0000 On 7/13/16 3:11 AM, Hans Petter Selasky wrote: > Hi, > > Can we agree on the following return values for callout_stop() and > callout_reset() and their variants: > > If the callout was scheduled regardless of being serviced or not, > .Dv CALLOUT_RET_CANCELLED > is returned. > If the callout was stopped and is still being serviced > .Dv CALLOUT_RET_DRAINING > is returned. > If the callout was stopped and is no longer being serviced > .Dv CALLOUT_RET_STOPPED > is returned. > > --HPS > I won't comment on the specific cases, but I do think we should move to using enums or macros for these return values and other parts of the KPI. The callout API is getting very abused lately, since r290664, and there seems to be a lack of review or consensus around most changes. Even in the recent changes, the review brought up several points that were seemingly ignored, and more that are still being ignored. The constant churn and reverts on this API is not acceptable. -- Regards, Bryan Drewery From owner-svn-src-all@freebsd.org Wed Jul 20 20:10:38 2016 Return-Path: Delivered-To: svn-src-all@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 3FA02B9F1C0; Wed, 20 Jul 2016 20:10:38 +0000 (UTC) (envelope-from mav@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 10E0A18DC; Wed, 20 Jul 2016 20:10:37 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KKAbvB081938; Wed, 20 Jul 2016 20:10:37 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KKAb76081937; Wed, 20 Jul 2016 20:10:37 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607202010.u6KKAb76081937@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 20 Jul 2016 20:10:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303111 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 20:10:38 -0000 Author: mav Date: Wed Jul 20 20:10:37 2016 New Revision: 303111 URL: https://svnweb.freebsd.org/changeset/base/303111 Log: Document list of supported chipsets. Modified: head/share/man/man4/intpm.4 Modified: head/share/man/man4/intpm.4 ============================================================================== --- head/share/man/man4/intpm.4 Wed Jul 20 19:21:11 2016 (r303110) +++ head/share/man/man4/intpm.4 Wed Jul 20 20:10:37 2016 (r303111) @@ -24,25 +24,39 @@ .\" .\" $FreeBSD$ .\" -.Dd January 8, 1999 +.Dd July 20, 2016 .Dt INTPM 4 .Os .Sh NAME .Nm intpm .Nd Intel PIIX4 Power Management controller driver .Sh SYNOPSIS +.Cd device pci .Cd device smbus .Cd device smb .Cd device intpm .Sh DESCRIPTION -This driver provides access to -.Tn Intel PIIX4 PCI Controller function 3 , -Power management controller. -Currently, only smbus controller -function is implemented. -But it also have bus idle monitoring function. -It -will display mapped I/O address for bus monitoring function when attaching. +The +.Nm +driver provides access to +.Tn Intel PIIX4 +compatible Power Management controllers. +Currently, only +.Xr smbus 4 +controller function is implemented. +.Sh HARDWARE +The +.Nm +driver supports the following chipsets: +.Pp +.Bl -bullet -compact +.It +Intel 82371AB/82443MX +.It +ATI IXP400 +.It +AMD SB600/700/710/750 +.El .Sh SEE ALSO .Xr smb 4 , .Xr smbus 4 From owner-svn-src-all@freebsd.org Wed Jul 20 20:12:59 2016 Return-Path: Delivered-To: svn-src-all@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 611A9B9F31A; Wed, 20 Jul 2016 20:12:59 +0000 (UTC) (envelope-from bapt@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 310B71D0E; Wed, 20 Jul 2016 20:12:59 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KKCwue085292; Wed, 20 Jul 2016 20:12:58 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KKCwLV085291; Wed, 20 Jul 2016 20:12:58 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201607202012.u6KKCwLV085291@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Wed, 20 Jul 2016 20:12:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303112 - stable/11/lib/libc/locale X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 20:12:59 -0000 Author: bapt Date: Wed Jul 20 20:12:58 2016 New Revision: 303112 URL: https://svnweb.freebsd.org/changeset/base/303112 Log: MFC: r302916 Revert 302324 and properly fix the crash with ISO-8859-5 locales PR: 211135 Reported by: jkim Tested by: jkim Approved by: re (gjb) Modified: stable/11/lib/libc/locale/collate.c Modified: stable/11/lib/libc/locale/collate.c ============================================================================== --- stable/11/lib/libc/locale/collate.c Wed Jul 20 20:10:37 2016 (r303111) +++ stable/11/lib/libc/locale/collate.c Wed Jul 20 20:12:58 2016 (r303112) @@ -310,7 +310,7 @@ _collate_lookup(struct xlocale_collate * if ((sptr = *state) != NULL) { *pri = *sptr; sptr++; - if ((sptr == *state) || (*sptr == 0)) + if ((sptr == *state) || (sptr == NULL)) *state = NULL; else *state = sptr; @@ -451,6 +451,7 @@ _collate_wxfrm(struct xlocale_collate *t errno = EINVAL; goto fail; } + state = NULL; pri = COLLATE_MAX_PRIORITY; } if (room) { @@ -469,6 +470,7 @@ _collate_wxfrm(struct xlocale_collate *t errno = EINVAL; goto fail; } + state = NULL; continue; } if (room) { @@ -597,6 +599,7 @@ _collate_sxfrm(struct xlocale_collate *t errno = EINVAL; goto fail; } + state = NULL; pri = COLLATE_MAX_PRIORITY; } @@ -622,6 +625,7 @@ _collate_sxfrm(struct xlocale_collate *t errno = EINVAL; goto fail; } + state = NULL; continue; } From owner-svn-src-all@freebsd.org Wed Jul 20 20:18:54 2016 Return-Path: Delivered-To: svn-src-all@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 4BF55B9F486; Wed, 20 Jul 2016 20:18:54 +0000 (UTC) (envelope-from mav@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 F2F291166; Wed, 20 Jul 2016 20:18:53 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KKIrJQ085531; Wed, 20 Jul 2016 20:18:53 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KKIq15085526; Wed, 20 Jul 2016 20:18:52 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607202018.u6KKIq15085526@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 20 Jul 2016 20:18:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303113 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 20:18:54 -0000 Author: mav Date: Wed Jul 20 20:18:52 2016 New Revision: 303113 URL: https://svnweb.freebsd.org/changeset/base/303113 Log: Cross-link some SMBus controller drivers man pages. Some compatibility cases are not obvious. Modified: head/share/man/man4/amdpm.4 head/share/man/man4/amdsmb.4 head/share/man/man4/ichsmb.4 head/share/man/man4/intpm.4 head/share/man/man4/ismt.4 Modified: head/share/man/man4/amdpm.4 ============================================================================== --- head/share/man/man4/amdpm.4 Wed Jul 20 20:12:58 2016 (r303112) +++ head/share/man/man4/amdpm.4 Wed Jul 20 20:18:52 2016 (r303113) @@ -51,6 +51,7 @@ for writing user code to fetch voltages, monitoring chip of your mainboard. .Sh SEE ALSO .Xr amdsmb 4 , +.Xr intpm 4 , .Xr smb 4 , .Xr smbus 4 .Sh HISTORY Modified: head/share/man/man4/amdsmb.4 ============================================================================== --- head/share/man/man4/amdsmb.4 Wed Jul 20 20:12:58 2016 (r303112) +++ head/share/man/man4/amdsmb.4 Wed Jul 20 20:18:52 2016 (r303113) @@ -31,6 +31,7 @@ .Nm amdsmb .Nd "AMD-8111 SMBus 2.0 controller driver" .Sh SYNOPSIS +.Cd "device pci" .Cd "device smbus" .Cd "device smb" .Cd "device amdsmb" @@ -39,6 +40,8 @@ The .Nm driver provides access to the AMD-8111 SMBus 2.0 controller. .Sh SEE ALSO +.Xr amdpm 4 , +.Xr intpm 4 , .Xr smb 4 , .Xr smbus 4 .Sh HISTORY Modified: head/share/man/man4/ichsmb.4 ============================================================================== --- head/share/man/man4/ichsmb.4 Wed Jul 20 20:12:58 2016 (r303112) +++ head/share/man/man4/ichsmb.4 Wed Jul 20 20:18:52 2016 (r303113) @@ -53,6 +53,8 @@ driver provides support for the SMBus controller logical device contained in all Intel motherboard chipsets starting from 82801AA (ICH). .Sh SEE ALSO +.Xr intpm 4 , +.Xr ismt 4 , .Xr smb 4 , .Xr smbus 4 .Sh AUTHORS Modified: head/share/man/man4/intpm.4 ============================================================================== --- head/share/man/man4/intpm.4 Wed Jul 20 20:12:58 2016 (r303112) +++ head/share/man/man4/intpm.4 Wed Jul 20 20:18:52 2016 (r303113) @@ -58,6 +58,9 @@ ATI IXP400 AMD SB600/700/710/750 .El .Sh SEE ALSO +.Xr amdpm 4 , +.Xr amdsmb 4 , +.Xr ichsmb 4 , .Xr smb 4 , .Xr smbus 4 .Sh HISTORY Modified: head/share/man/man4/ismt.4 ============================================================================== --- head/share/man/man4/ismt.4 Wed Jul 20 20:12:58 2016 (r303112) +++ head/share/man/man4/ismt.4 Wed Jul 20 20:18:52 2016 (r303113) @@ -48,6 +48,7 @@ This driver provides access to the SMBus 2.0 controller device contained in the Intel Atom S1200 and C2000 CPUs. .Sh SEE ALSO +.Xr ichsmb 4 , .Xr smb 4 , .Xr smbus 4 .Sh HISTORY From owner-svn-src-all@freebsd.org Wed Jul 20 22:03:46 2016 Return-Path: Delivered-To: svn-src-all@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 B11F3B9FBF0; Wed, 20 Jul 2016 22:03:46 +0000 (UTC) (envelope-from cem@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 640F21BE2; Wed, 20 Jul 2016 22:03:46 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KM3j2c027655; Wed, 20 Jul 2016 22:03:45 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KM3jHZ027654; Wed, 20 Jul 2016 22:03:45 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201607202203.u6KM3jHZ027654@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: "Conrad E. Meyer" Date: Wed, 20 Jul 2016 22:03:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303114 - head/usr.bin/gcore X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 22:03:46 -0000 Author: cem Date: Wed Jul 20 22:03:45 2016 New Revision: 303114 URL: https://svnweb.freebsd.org/changeset/base/303114 Log: Add extended segment support to gcore A follow-up to r303099, D7255. Basically, apply the exact same change, with the exact same rationale, to gcore. gcore's elfcore.c is largely a clone of the kernel imgact_elf coredump facility. Reviewed by: emaste (earlier version, not substantially different) Requested by: jhb Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D7265 Modified: head/usr.bin/gcore/elfcore.c Modified: head/usr.bin/gcore/elfcore.c ============================================================================== --- head/usr.bin/gcore/elfcore.c Wed Jul 20 20:18:52 2016 (r303113) +++ head/usr.bin/gcore/elfcore.c Wed Jul 20 22:03:45 2016 (r303114) @@ -213,6 +213,8 @@ elf_coredump(int efd __unused, int fd, p */ sb = sbuf_new_auto(); hdrsize = sizeof(Elf_Ehdr) + sizeof(Elf_Phdr) * (1 + seginfo.count); + if (seginfo.count + 1 >= PN_XNUM) + hdrsize += sizeof(Elf_Shdr); /* Start header + notes section. */ sbuf_start_section(sb, NULL); /* Make empty header subsection. */ @@ -423,10 +425,10 @@ elf_puthdr(pid_t pid, vm_map_entry_t map { Elf_Ehdr *ehdr; Elf_Phdr *phdr; + Elf_Shdr *shdr; struct phdr_closure phc; ehdr = (Elf_Ehdr *)hdr; - phdr = (Elf_Phdr *)((char *)hdr + sizeof(Elf_Ehdr)); ehdr->e_ident[EI_MAG0] = ELFMAG0; ehdr->e_ident[EI_MAG1] = ELFMAG1; @@ -446,14 +448,40 @@ elf_puthdr(pid_t pid, vm_map_entry_t map ehdr->e_flags = 0; ehdr->e_ehsize = sizeof(Elf_Ehdr); ehdr->e_phentsize = sizeof(Elf_Phdr); - ehdr->e_phnum = numsegs + 1; ehdr->e_shentsize = sizeof(Elf_Shdr); - ehdr->e_shnum = 0; ehdr->e_shstrndx = SHN_UNDEF; + if (numsegs + 1 < PN_XNUM) { + ehdr->e_phnum = numsegs + 1; + ehdr->e_shnum = 0; + } else { + ehdr->e_phnum = PN_XNUM; + ehdr->e_shnum = 1; + + ehdr->e_shoff = ehdr->e_phoff + + (numsegs + 1) * ehdr->e_phentsize; + + shdr = (Elf_Shdr *)((char *)hdr + ehdr->e_shoff); + memset(shdr, 0, sizeof(*shdr)); + /* + * A special first section is used to hold large segment and + * section counts. This was proposed by Sun Microsystems in + * Solaris and has been adopted by Linux; the standard ELF + * tools are already familiar with the technique. + * + * See table 7-7 of the Solaris "Linker and Libraries Guide" + * (or 12-7 depending on the version of the document) for more + * details. + */ + shdr->sh_type = SHT_NULL; + shdr->sh_size = ehdr->e_shnum; + shdr->sh_link = ehdr->e_shstrndx; + shdr->sh_info = numsegs + 1; + } /* * Fill in the program header entries. */ + phdr = (Elf_Phdr *)((char *)hdr + ehdr->e_phoff); /* The note segement. */ phdr->p_type = PT_NOTE; From owner-svn-src-all@freebsd.org Wed Jul 20 22:05:46 2016 Return-Path: Delivered-To: svn-src-all@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 539ECB9FC8A; Wed, 20 Jul 2016 22:05:46 +0000 (UTC) (envelope-from avos@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 1D7CE1D93; Wed, 20 Jul 2016 22:05:46 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KM5j7c027765; Wed, 20 Jul 2016 22:05:45 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KM5jJB027763; Wed, 20 Jul 2016 22:05:45 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201607202205.u6KM5jJB027763@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Wed, 20 Jul 2016 22:05:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303115 - head/sys/dev/urtwn X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 22:05:46 -0000 Author: avos Date: Wed Jul 20 22:05:44 2016 New Revision: 303115 URL: https://svnweb.freebsd.org/changeset/base/303115 Log: urtwn: fix A-MSDU tx aggregation when encryption is used. Clear unused (undocumented) CAM bytes while setting a key; without that, hardware does weird things when A-MSDU bit in QoS header is set. Tested with RTL8188CUS (AP) -> RTL8188EU (STA) (A-MSDU transmit). Reported by: many Obtained from: https://github.com/s3erios/urtwm MFC after: 5 days Modified: head/sys/dev/urtwn/if_urtwn.c head/sys/dev/urtwn/if_urtwnreg.h Modified: head/sys/dev/urtwn/if_urtwn.c ============================================================================== --- head/sys/dev/urtwn/if_urtwn.c Wed Jul 20 22:03:45 2016 (r303114) +++ head/sys/dev/urtwn/if_urtwn.c Wed Jul 20 22:05:44 2016 (r303115) @@ -2318,6 +2318,10 @@ urtwn_key_set_cb(struct urtwn_softc *sc, k->wk_cipher->ic_cipher, algo, k->wk_flags, k->wk_keylen, ether_sprintf(k->wk_macaddr)); + /* Clear high bits. */ + urtwn_cam_write(sc, R92C_CAM_CTL6(k->wk_keyix), 0); + urtwn_cam_write(sc, R92C_CAM_CTL7(k->wk_keyix), 0); + /* Write key. */ for (i = 0; i < 4; i++) { error = urtwn_cam_write(sc, R92C_CAM_KEY(k->wk_keyix, i), Modified: head/sys/dev/urtwn/if_urtwnreg.h ============================================================================== --- head/sys/dev/urtwn/if_urtwnreg.h Wed Jul 20 22:03:45 2016 (r303114) +++ head/sys/dev/urtwn/if_urtwnreg.h Wed Jul 20 22:05:44 2016 (r303115) @@ -871,6 +871,8 @@ #define R92C_CAM_CTL0(entry) ((entry) * 8 + 0) #define R92C_CAM_CTL1(entry) ((entry) * 8 + 1) #define R92C_CAM_KEY(entry, i) ((entry) * 8 + 2 + (i)) +#define R92C_CAM_CTL6(entry) ((entry) * 8 + 6) +#define R92C_CAM_CTL7(entry) ((entry) * 8 + 7) /* Bits for R92C_CAM_CTL0(i). */ #define R92C_CAM_KEYID_M 0x00000003 From owner-svn-src-all@freebsd.org Wed Jul 20 22:28:27 2016 Return-Path: Delivered-To: svn-src-all@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 E9B1BBA00C3; Wed, 20 Jul 2016 22:28:27 +0000 (UTC) (envelope-from sbruno@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 B30D819B6; Wed, 20 Jul 2016 22:28:27 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KMSQub035314; Wed, 20 Jul 2016 22:28:26 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KMSQSW035313; Wed, 20 Jul 2016 22:28:26 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607202228.u6KMSQSW035313@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Wed, 20 Jul 2016 22:28:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303116 - stable/10/sys/dev/e1000 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 22:28:28 -0000 Author: sbruno Date: Wed Jul 20 22:28:26 2016 New Revision: 303116 URL: https://svnweb.freebsd.org/changeset/base/303116 Log: Fix em(4) build after r303107 Reported by: Jason Wolf Modified: stable/10/sys/dev/e1000/if_em.c Modified: stable/10/sys/dev/e1000/if_em.c ============================================================================== --- stable/10/sys/dev/e1000/if_em.c Wed Jul 20 22:05:44 2016 (r303115) +++ stable/10/sys/dev/e1000/if_em.c Wed Jul 20 22:28:26 2016 (r303116) @@ -1220,7 +1220,7 @@ em_ioctl(struct ifnet *ifp, u_long comma ifp->if_mtu = ifr->ifr_mtu; adapter->hw.mac.max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; - if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) + if (ifp->if_drv_flags & IFF_DRV_RUNNING) em_init_locked(adapter); EM_CORE_UNLOCK(adapter); break; From owner-svn-src-all@freebsd.org Wed Jul 20 22:32:20 2016 Return-Path: Delivered-To: svn-src-all@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 C6B91BA02D1; Wed, 20 Jul 2016 22:32:20 +0000 (UTC) (envelope-from sbruno@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 994AE1EFB; Wed, 20 Jul 2016 22:32:20 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KMWJKa038844; Wed, 20 Jul 2016 22:32:19 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KMWJc1038843; Wed, 20 Jul 2016 22:32:19 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607202232.u6KMWJc1038843@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Wed, 20 Jul 2016 22:32:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303117 - stable/10/sys/dev/e1000 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 22:32:20 -0000 Author: sbruno Date: Wed Jul 20 22:32:19 2016 New Revision: 303117 URL: https://svnweb.freebsd.org/changeset/base/303117 Log: Fix lem(4) build after r303107 Submitted by: Jason Wolfe Modified: stable/10/sys/dev/e1000/if_lem.c Modified: stable/10/sys/dev/e1000/if_lem.c ============================================================================== --- stable/10/sys/dev/e1000/if_lem.c Wed Jul 20 22:28:26 2016 (r303116) +++ stable/10/sys/dev/e1000/if_lem.c Wed Jul 20 22:32:19 2016 (r303117) @@ -1047,7 +1047,7 @@ lem_ioctl(struct ifnet *ifp, u_long comm ifp->if_mtu = ifr->ifr_mtu; adapter->max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; - if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING)) + if (ifp->if_drv_flags & IFF_DRV_RUNNING) lem_init_locked(adapter); EM_CORE_UNLOCK(adapter); break; From owner-svn-src-all@freebsd.org Wed Jul 20 22:46:57 2016 Return-Path: Delivered-To: svn-src-all@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 8DA02BA05EE; Wed, 20 Jul 2016 22:46:57 +0000 (UTC) (envelope-from cem@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 49CC016B4; Wed, 20 Jul 2016 22:46:57 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KMkuij042707; Wed, 20 Jul 2016 22:46:56 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KMkuvn042706; Wed, 20 Jul 2016 22:46:56 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201607202246.u6KMkuvn042706@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: "Conrad E. Meyer" Date: Wed, 20 Jul 2016 22:46:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303118 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 22:46:57 -0000 Author: cem Date: Wed Jul 20 22:46:56 2016 New Revision: 303118 URL: https://svnweb.freebsd.org/changeset/base/303118 Log: ANSI-fy imgact_elf.c Sponsored by: EMC / Isilon Storage Division Modified: head/sys/kern/imgact_elf.c Modified: head/sys/kern/imgact_elf.c ============================================================================== --- head/sys/kern/imgact_elf.c Wed Jul 20 22:32:19 2016 (r303117) +++ head/sys/kern/imgact_elf.c Wed Jul 20 22:46:56 2016 (r303118) @@ -1449,9 +1449,7 @@ cb_put_phdr(entry, closure) * the number of segments and their total size. */ static void -cb_size_segment(entry, closure) - vm_map_entry_t entry; - void *closure; +cb_size_segment(vm_map_entry_t entry, void *closure) { struct sseg_closure *ssc = (struct sseg_closure *)closure; @@ -1465,10 +1463,7 @@ cb_size_segment(entry, closure) * caller-supplied data. */ static void -each_writable_segment(td, func, closure) - struct thread *td; - segment_callback func; - void *closure; +each_writable_segment(struct thread *td, segment_callback func, void *closure) { struct proc *p = td->td_proc; vm_map_t map = &p->p_vmspace->vm_map; From owner-svn-src-all@freebsd.org Wed Jul 20 22:49:34 2016 Return-Path: Delivered-To: svn-src-all@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 D9D90BA06CA; Wed, 20 Jul 2016 22:49:34 +0000 (UTC) (envelope-from gjb@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 AD29B19AD; Wed, 20 Jul 2016 22:49:34 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KMnXPs042830; Wed, 20 Jul 2016 22:49:33 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KMnXL3042829; Wed, 20 Jul 2016 22:49:33 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201607202249.u6KMnXL3042829@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Wed, 20 Jul 2016 22:49:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303119 - head/release/tools X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 22:49:35 -0000 Author: gjb Date: Wed Jul 20 22:49:33 2016 New Revision: 303119 URL: https://svnweb.freebsd.org/changeset/base/303119 Log: Create a /usr/home -> /home symlink for the arm images to avoid /usr/home confusingly being created as a directory. Reported by: Russell Haley MFC after: 3 days Sponsored by: The FreeBSD Foundation Modified: head/release/tools/arm.subr Modified: head/release/tools/arm.subr ============================================================================== --- head/release/tools/arm.subr Wed Jul 20 22:46:56 2016 (r303118) +++ head/release/tools/arm.subr Wed Jul 20 22:49:33 2016 (r303119) @@ -88,6 +88,7 @@ arm_create_user() { -c 'FreeBSD User' -d '/home/freebsd' -s '/bin/csh' chroot ${CHROOTDIR} /usr/sbin/pw -R ${DESTDIR} \ usermod root -w yes + chroot ${CHROOTDIR} ln -s /home ${DESTDIR}/usr/home return 0 } From owner-svn-src-all@freebsd.org Wed Jul 20 22:51:34 2016 Return-Path: Delivered-To: svn-src-all@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 695B3BA093D; Wed, 20 Jul 2016 22:51:34 +0000 (UTC) (envelope-from cem@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 22C8F1D44; Wed, 20 Jul 2016 22:51:34 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6KMpXuK042961; Wed, 20 Jul 2016 22:51:33 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6KMpX73042960; Wed, 20 Jul 2016 22:51:33 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201607202251.u6KMpX73042960@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: "Conrad E. Meyer" Date: Wed, 20 Jul 2016 22:51:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303120 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 22:51:34 -0000 Author: cem Date: Wed Jul 20 22:51:33 2016 New Revision: 303120 URL: https://svnweb.freebsd.org/changeset/base/303120 Log: imgact_elf: Rename the segment iterator to match reality The each_writable_segment routine evaluates segments on a slightly little more nuanced metric than simply "writable" or not. Rename the function to more closely match its behavior (each_dumpable_segment). Suggested by: jhb Sponsored by: EMC / Isilon Storage Division Modified: head/sys/kern/imgact_elf.c Modified: head/sys/kern/imgact_elf.c ============================================================================== --- head/sys/kern/imgact_elf.c Wed Jul 20 22:49:33 2016 (r303119) +++ head/sys/kern/imgact_elf.c Wed Jul 20 22:51:33 2016 (r303120) @@ -1163,7 +1163,7 @@ static void cb_put_phdr(vm_map_entry_t, static void cb_size_segment(vm_map_entry_t, void *); static int core_write(struct coredump_params *, void *, size_t, off_t, enum uio_seg); -static void each_writable_segment(struct thread *, segment_callback, void *); +static void each_dumpable_segment(struct thread *, segment_callback, void *); static int __elfN(corehdr)(struct coredump_params *, int, void *, size_t, struct note_info_list *, size_t); static void __elfN(prepare_notes)(struct thread *, struct note_info_list *, @@ -1317,7 +1317,7 @@ __elfN(coredump)(struct thread *td, stru /* Size the program segments. */ seginfo.count = 0; seginfo.size = 0; - each_writable_segment(td, cb_size_segment, &seginfo); + each_dumpable_segment(td, cb_size_segment, &seginfo); /* * Collect info about the core file header area. @@ -1419,7 +1419,7 @@ done: } /* - * A callback for each_writable_segment() to write out the segment's + * A callback for each_dumpable_segment() to write out the segment's * program header entry. */ static void @@ -1445,7 +1445,7 @@ cb_put_phdr(entry, closure) } /* - * A callback for each_writable_segment() to gather information about + * A callback for each_dumpable_segment() to gather information about * the number of segments and their total size. */ static void @@ -1463,7 +1463,7 @@ cb_size_segment(vm_map_entry_t entry, vo * caller-supplied data. */ static void -each_writable_segment(struct thread *td, segment_callback func, void *closure) +each_dumpable_segment(struct thread *td, segment_callback func, void *closure) { struct proc *p = td->td_proc; vm_map_t map = &p->p_vmspace->vm_map; @@ -1694,7 +1694,7 @@ __elfN(puthdr)(struct thread *td, void * /* All the writable segments from the program. */ phc.phdr = phdr; phc.offset = round_page(hdrsize + notesz); - each_writable_segment(td, cb_put_phdr, &phc); + each_dumpable_segment(td, cb_put_phdr, &phc); } static size_t From owner-svn-src-all@freebsd.org Wed Jul 20 23:18:39 2016 Return-Path: Delivered-To: svn-src-all@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 DFA34BA0EC9; Wed, 20 Jul 2016 23:18:39 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C0AE21B8D; Wed, 20 Jul 2016 23:18:39 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id C5AD5B923; Wed, 20 Jul 2016 19:18:37 -0400 (EDT) From: John Baldwin To: "Conrad E. Meyer" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303120 - head/sys/kern Date: Wed, 20 Jul 2016 16:09:27 -0700 Message-ID: <2986227.mkPmo6E96P@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.3-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <201607202251.u6KMpX73042960@repo.freebsd.org> References: <201607202251.u6KMpX73042960@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 20 Jul 2016 19:18:37 -0400 (EDT) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 23:18:40 -0000 On Wednesday, July 20, 2016 10:51:33 PM Conrad E. Meyer wrote: > Author: cem > Date: Wed Jul 20 22:51:33 2016 > New Revision: 303120 > URL: https://svnweb.freebsd.org/changeset/base/303120 > > Log: > imgact_elf: Rename the segment iterator to match reality > > The each_writable_segment routine evaluates segments on a slightly little more > nuanced metric than simply "writable" or not. Rename the function to more > closely match its behavior (each_dumpable_segment). > > Suggested by: jhb > Sponsored by: EMC / Isilon Storage Division Please do the same rename in gcore's elfcore.c as well. -- John Baldwin From owner-svn-src-all@freebsd.org Thu Jul 21 00:42:11 2016 Return-Path: Delivered-To: svn-src-all@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 53D61B8372F; Thu, 21 Jul 2016 00:42:11 +0000 (UTC) (envelope-from koobs.freebsd@gmail.com) Received: from mail-pf0-x231.google.com (mail-pf0-x231.google.com [IPv6:2607:f8b0:400e:c00::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 20296132A; Thu, 21 Jul 2016 00:42:11 +0000 (UTC) (envelope-from koobs.freebsd@gmail.com) Received: by mail-pf0-x231.google.com with SMTP id h186so24062035pfg.3; Wed, 20 Jul 2016 17:42:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:reply-to:subject:references:to:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=hhNC90wkdhC5rH3Ty3JDf7iLIVyqYj42fG3rKe+0LxE=; b=OrspgZ/SIySz7lMzUhjpUX8rsMnS5h8yr5Zoa3rLsCpqqYYj1LtqO7EZlfwAgYtopb gQLXVsbJr9X/9PDLpBvjQkQjum+Qj+vAUTlFnLIpk/y1Nu48dClTCLdGPNxiq7Cm7VU6 JmDh3QJZmzQHCkMJU0+2fRIIQUyTQ+9k5oS969+9P8KBvoFdvvh51uc/1Vj1UA5G1qzj JwoyFKjaF0tvgbHMoRLJtgdjIBYYGjGFpXhXgX9+r7DK3DZkWjiiGgRL1v1cRVvnA3A9 nrAhQgsuqyYMZMz/h0InxzAl/2N1wOCC9TOoBw85J1qvWIg9lyYrU4OltSTOGAzYLPJi dVGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:reply-to:subject:references:to:cc:from :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding; bh=hhNC90wkdhC5rH3Ty3JDf7iLIVyqYj42fG3rKe+0LxE=; b=Oqdea78h2J3UlgpMubZu3e7VYCrXObh0Kc8OnoA61zPz2E+cCA6KaxdZutMWRoKXVA mycrkM2NLDuncOKB+To4LnsRnu41KErDapK9vlli+To6qkqyKuS8Z7u/ctQG8hAx7nBj JmnNqaQOJYeV8RhN8DuqPGDZKFWcUtaxkPPSHu0XMXOH4JthSzh1eqfBPG+AuTGWWxE2 3mqhED19xrIeRazyiMvM9lXo609ei0KXX+6Kj6D7GYEDlQCtopWfbIFRa79SBZPHlqhb BM6A4vw+vT38BNJTSWWBURQI0slzqk+NtPDjqPPsRQLptgoPf5YUH5BO990eIn/LXzRr WK0A== X-Gm-Message-State: ALyK8tIMbMj/tHNK5RORfvMex/Pqe+gtBd2H9SZnHkHksRAFaTf5fQXhbiM8BZL0V+MBBw== X-Received: by 10.98.32.81 with SMTP id g78mr68794536pfg.20.1469061730651; Wed, 20 Jul 2016 17:42:10 -0700 (PDT) Received: from ?IPv6:2001:44b8:31ae:7b01:f985:3c4b:2a0c:8bea? (2001-44b8-31ae-7b01-f985-3c4b-2a0c-8bea.static.ipv6.internode.on.net. [2001:44b8:31ae:7b01:f985:3c4b:2a0c:8bea]) by smtp.gmail.com with ESMTPSA id k78sm7163600pfa.78.2016.07.20.17.42.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Jul 2016 17:42:10 -0700 (PDT) Sender: Kubilay Kocak Reply-To: koobs@FreeBSD.org Subject: Re: svn commit: r303043 - in head: share/man/man4 sys/dev/vt sys/dev/vt/hw/fb References: <201607191920.u6JJKm7R026421@repo.freebsd.org> <1c485351-51f3-99f1-b7da-0745030dd1e6@FreeBSD.org> To: Bryan Drewery , cem@freebsd.org Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Kubilay Kocak Message-ID: <51c76ae7-d598-96df-8a1f-06f254ec9c90@FreeBSD.org> Date: Thu, 21 Jul 2016 10:42:03 +1000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Thunderbird/47.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 00:42:11 -0000 On 21/07/2016 5:07 AM, Bryan Drewery wrote: > On 7/20/16 8:20 AM, Conrad Meyer wrote: >> On Wed, Jul 20, 2016 at 12:44 AM, Kubilay Kocak wrote: >>> On 20/07/2016 5:20 AM, Conrad E. Meyer wrote: >>>> Author: cem >>>> Date: Tue Jul 19 19:20:47 2016 >>>> New Revision: 303043 >>>> URL: https://svnweb.freebsd.org/changeset/base/303043 >>>> >>>> Log: >>>> Increase vt(4) framebuffer maximum size >>>> >>>> And rename "DEFAULT" constants to the more accurate "MAX." >>>> >>>> PR: 210382 >>>> Submitted by: Felix >>>> Reviewed by: wblock, cem >>>> Tested by: Dave Cottlehuber >>> >>> Can MFC? >>> >>> There are high hopes for this coming out in 11.0 / next 10.x >>> >>> re is cc'd on the original bugzilla issue >> >> If you would like to do so, please go ahead. >> >> Best, >> Conrad >> > > I'll handle it after it's been in for a week. > Thank you Bryan ./koobs From owner-svn-src-all@freebsd.org Thu Jul 21 00:52:54 2016 Return-Path: Delivered-To: svn-src-all@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 98B68B83B4F; Thu, 21 Jul 2016 00:52:54 +0000 (UTC) (envelope-from gjb@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 6297F1A58; Thu, 21 Jul 2016 00:52:54 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L0qrjI090240; Thu, 21 Jul 2016 00:52:53 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L0qrot090239; Thu, 21 Jul 2016 00:52:53 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201607210052.u6L0qrot090239@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 21 Jul 2016 00:52:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303121 - stable/10/release X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 00:52:54 -0000 Author: gjb Date: Thu Jul 21 00:52:53 2016 New Revision: 303121 URL: https://svnweb.freebsd.org/changeset/base/303121 Log: MFC r303003: Make sure we clean up the rdoc and reldoc directories if NODOC is not set. Sponsored by: The FreeBSD Foundation Modified: stable/10/release/Makefile Directory Properties: stable/10/ (props changed) Modified: stable/10/release/Makefile ============================================================================== --- stable/10/release/Makefile Wed Jul 20 22:51:33 2016 (r303120) +++ stable/10/release/Makefile Thu Jul 21 00:52:53 2016 (r303121) @@ -137,6 +137,9 @@ CLEANFILES+= ${I}.xz CLEANFILES+= pkg-stage .endif CLEANDIRS= dist ftp disc1 bootonly dvd +.if !defined(NODOC) +CLEANDIRS+= reldoc rdoc +.endif beforeclean: chflags -R noschg . .include From owner-svn-src-all@freebsd.org Thu Jul 21 00:53:16 2016 Return-Path: Delivered-To: svn-src-all@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 26FBCB83BAF; Thu, 21 Jul 2016 00:53:16 +0000 (UTC) (envelope-from cem@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 D43951BCD; Thu, 21 Jul 2016 00:53:15 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L0rFeg090298; Thu, 21 Jul 2016 00:53:15 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L0rF70090297; Thu, 21 Jul 2016 00:53:15 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201607210053.u6L0rF70090297@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: "Conrad E. Meyer" Date: Thu, 21 Jul 2016 00:53:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303122 - head/usr.bin/gcore X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 00:53:16 -0000 Author: cem Date: Thu Jul 21 00:53:14 2016 New Revision: 303122 URL: https://svnweb.freebsd.org/changeset/base/303122 Log: Mirror r303120 to gcore Sponsored by: EMC / Isilon Storage Division Modified: head/usr.bin/gcore/elfcore.c Modified: head/usr.bin/gcore/elfcore.c ============================================================================== --- head/usr.bin/gcore/elfcore.c Thu Jul 21 00:52:53 2016 (r303121) +++ head/usr.bin/gcore/elfcore.c Thu Jul 21 00:53:14 2016 (r303122) @@ -95,7 +95,7 @@ typedef void* (*notefunc_t)(void *, size static void cb_put_phdr(vm_map_entry_t, void *); static void cb_size_segment(vm_map_entry_t, void *); -static void each_writable_segment(vm_map_entry_t, segment_callback, +static void each_dumpable_segment(vm_map_entry_t, segment_callback, void *closure); static void elf_detach(void); /* atexit() handler. */ static void *elf_note_fpregset(void *, size_t *); @@ -206,7 +206,7 @@ elf_coredump(int efd __unused, int fd, p /* Size the program segments. */ seginfo.count = 0; seginfo.size = 0; - each_writable_segment(map, cb_size_segment, &seginfo); + each_dumpable_segment(map, cb_size_segment, &seginfo); /* * Build the header and the notes using sbuf and write to the file. @@ -277,7 +277,7 @@ elf_coredump(int efd __unused, int fd, p } /* - * A callback for each_writable_segment() to write out the segment's + * A callback for each_dumpable_segment() to write out the segment's * program header entry. */ static void @@ -307,7 +307,7 @@ cb_put_phdr(vm_map_entry_t entry, void * } /* - * A callback for each_writable_segment() to gather information about + * A callback for each_dumpable_segment() to gather information about * the number of segments and their total size. */ static void @@ -325,7 +325,7 @@ cb_size_segment(vm_map_entry_t entry, vo * data. */ static void -each_writable_segment(vm_map_entry_t map, segment_callback func, void *closure) +each_dumpable_segment(vm_map_entry_t map, segment_callback func, void *closure) { vm_map_entry_t entry; @@ -497,7 +497,7 @@ elf_puthdr(pid_t pid, vm_map_entry_t map /* All the writable segments from the program. */ phc.phdr = phdr; phc.offset = segoff; - each_writable_segment(map, cb_put_phdr, &phc); + each_dumpable_segment(map, cb_put_phdr, &phc); } /* From owner-svn-src-all@freebsd.org Thu Jul 21 00:54:00 2016 Return-Path: Delivered-To: svn-src-all@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 18A6AB83C29; Thu, 21 Jul 2016 00:54:00 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-io0-f179.google.com (mail-io0-f179.google.com [209.85.223.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E099E1D41; Thu, 21 Jul 2016 00:53:59 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-io0-f179.google.com with SMTP id b62so62661813iod.3; Wed, 20 Jul 2016 17:53:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc:content-transfer-encoding; bh=QyUQdd7wSFu0pyBlej3yakkEwDCSnUTzzwt1BpgYfOk=; b=O0itaIXzuUmXbW1y03hfr7y6TvI3fQsbtP1KgWU0HZeAiq2g/ZpchXoPJw4VZkqH3C vbe7HMFvCkZJKoLOScWDsFu5dUphyJ7KuyFaLQoCMCExDDnXtFqLwPZjO4VIO4KMdGwJ Xc1tbCt4zPMeKHe2jjK+UgCscRqkmBw7ZnR2Qtm0MkXtKGHroGWIoq0sbJzcLNTa3iQL 3GFYQBzYUVXA7lNri56AYHrxKImaTCxsj6ZiPN252qe94ZXy1jeZhKcPIetDFqp22Dzh nd+FlvAabnjF3kr+u8FoMEHnPOu8oS4BbaGak9r6GuetnQJLFWyBN09fS0FwO7rFfBx/ fQkw== X-Gm-Message-State: ALyK8tJfpmsx0LneS4iLoFTZsEcdK8e7EO/+OWFp3C7JMcgtWJ0ZLbFyPIYRYeyRJItWhQ== X-Received: by 10.107.132.217 with SMTP id o86mr48067065ioi.18.1469062438757; Wed, 20 Jul 2016 17:53:58 -0700 (PDT) Received: from mail-it0-f46.google.com (mail-it0-f46.google.com. [209.85.214.46]) by smtp.gmail.com with ESMTPSA id w138sm326927itc.8.2016.07.20.17.53.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Jul 2016 17:53:58 -0700 (PDT) Received: by mail-it0-f46.google.com with SMTP id j124so3776148ith.1; Wed, 20 Jul 2016 17:53:58 -0700 (PDT) X-Received: by 10.36.192.9 with SMTP id u9mr5756615itf.86.1469062438330; Wed, 20 Jul 2016 17:53:58 -0700 (PDT) MIME-Version: 1.0 Reply-To: cem@freebsd.org Received: by 10.36.233.67 with HTTP; Wed, 20 Jul 2016 17:53:57 -0700 (PDT) In-Reply-To: <2986227.mkPmo6E96P@ralph.baldwin.cx> References: <201607202251.u6KMpX73042960@repo.freebsd.org> <2986227.mkPmo6E96P@ralph.baldwin.cx> From: Conrad Meyer Date: Wed, 20 Jul 2016 17:53:57 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r303120 - head/sys/kern To: John Baldwin Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 00:54:00 -0000 Sure =E2=80=94 r303122. Conrad On Wed, Jul 20, 2016 at 4:09 PM, John Baldwin wrote: > On Wednesday, July 20, 2016 10:51:33 PM Conrad E. Meyer wrote: >> Author: cem >> Date: Wed Jul 20 22:51:33 2016 >> New Revision: 303120 >> URL: https://svnweb.freebsd.org/changeset/base/303120 >> >> Log: >> imgact_elf: Rename the segment iterator to match reality >> >> The each_writable_segment routine evaluates segments on a slightly lit= tle more >> nuanced metric than simply "writable" or not. Rename the function to = more >> closely match its behavior (each_dumpable_segment). >> >> Suggested by: jhb >> Sponsored by: EMC / Isilon Storage Division > > Please do the same rename in gcore's elfcore.c as well. > > -- > John Baldwin From owner-svn-src-all@freebsd.org Thu Jul 21 02:24:26 2016 Return-Path: Delivered-To: svn-src-all@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 B8BC8B85BE0 for ; Thu, 21 Jul 2016 02:24:26 +0000 (UTC) (envelope-from healthn@healthn.magemojo.com) Received: from healthn.magemojo.com (healthn.magemojo.com [192.190.221.203]) (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 81FB015BA for ; Thu, 21 Jul 2016 02:24:26 +0000 (UTC) (envelope-from healthn@healthn.magemojo.com) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=healthn.magemojo.com; s=dkim; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Reply-To:From:Date:Subject:To; bh=rsfROUeVrCWlO8sgblBlfh7+b+k55EE4nBolrBSE+tg=; b=dAn4QFtgr0/XeltDXiAU3izJ+4pBp6a5F5aPIewI1WPE/co1Zl4MvqWqZoGpnEBs01f+00fr6qmIu1SI225s21FkSZ5zY7nkHGdyUr6hNWMR0bTuaUJvR5TpPozKFvrizr4aDe5Uocc86f2camEBBxS1fWWPCXLDoPCc67RKc1WkyUxnBXASVtn/7XIt5eKh6LvR9j4h/ad41Fa5qXkfUZdqjXVEh0BDf0ucbG9JoS8fxbjimj2/BHZpvIgY+PNQclVCqht51IlzYo6mPmAy2Wv+RFHWZRAREIY8c0GDA3kki6isfKUXsFO9asFSa544D/TutgcmUyqDJo9MBp7Qaw==; Received: from healthn by healthn.magemojo.com with local (Exim 4.84_2) (envelope-from ) id 1bQ3GZ-0001IQ-AR for svn-src-all@freebsd.org; Thu, 21 Jul 2016 01:59:11 +0000 To: svn-src-all@freebsd.org Subject: We could not deliver your parcel, #00000291726 Date: Thu, 21 Jul 2016 01:59:11 +0000 From: "FedEx Standard Overnight" Reply-To: "FedEx Standard Overnight" Message-ID: X-Priority: 3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 02:24:26 -0000 Dear Customer, We could not deliver your item. Shipment Label is attached to this email. Regards, Kenneth Odom, Sr. Station Agent. From owner-svn-src-all@freebsd.org Thu Jul 21 03:11:36 2016 Return-Path: Delivered-To: svn-src-all@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 96BECB9E886; Thu, 21 Jul 2016 03:11:36 +0000 (UTC) (envelope-from imp@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 5AE591AA2; Thu, 21 Jul 2016 03:11:36 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L3BZig041242; Thu, 21 Jul 2016 03:11:35 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L3BZH4041241; Thu, 21 Jul 2016 03:11:35 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201607210311.u6L3BZH4041241@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 21 Jul 2016 03:11:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303123 - head/sys/cam X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 03:11:36 -0000 Author: imp Date: Thu Jul 21 03:11:35 2016 New Revision: 303123 URL: https://svnweb.freebsd.org/changeset/base/303123 Log: Fix mismerge and include the nvme support. Also, print out the name of any CCB's functions that's not supported. MFC after: 1 week Modified: head/sys/cam/cam_xpt.c Modified: head/sys/cam/cam_xpt.c ============================================================================== --- head/sys/cam/cam_xpt.c Thu Jul 21 00:53:14 2016 (r303122) +++ head/sys/cam/cam_xpt.c Thu Jul 21 03:11:35 2016 (r303123) @@ -1033,6 +1033,8 @@ xpt_announce_periph(struct cam_periph *p else if (path->device->protocol == PROTO_SEMB) semb_print_ident( (struct sep_identify_data *)&path->device->ident_data); + else if (path->device->protocol == PROTO_NVME) + nvme_print_ident(path->device->nvme_cdata, path->device->nvme_data); else printf("Unknown protocol device\n"); if (path->device->serial_num_len > 0) { @@ -1086,6 +1088,8 @@ xpt_denounce_periph(struct cam_periph *p else if (path->device->protocol == PROTO_SEMB) semb_print_ident_short( (struct sep_identify_data *)&path->device->ident_data); + else if (path->device->protocol == PROTO_NVME) + nvme_print_ident(path->device->nvme_cdata, path->device->nvme_data); else printf("Unknown protocol device"); if (path->device->serial_num_len > 0) @@ -2516,6 +2520,10 @@ xpt_action_default(union ccb *start_ccb) if (start_ccb->ccb_h.func_code == XPT_ATA_IO) start_ccb->ataio.resid = 0; /* FALLTHROUGH */ + case XPT_NVME_IO: + if (start_ccb->ccb_h.func_code == XPT_NVME_IO) + start_ccb->nvmeio.resid = 0; + /* FALLTHROUGH */ case XPT_RESET_DEV: case XPT_ENG_EXEC: case XPT_SMP_IO: @@ -2655,6 +2663,8 @@ call_sim: cgd->inq_data = dev->inq_data; cgd->ident_data = dev->ident_data; cgd->inq_flags = dev->inq_flags; + cgd->nvme_data = dev->nvme_data; + cgd->nvme_cdata = dev->nvme_cdata; cgd->ccb_h.status = CAM_REQ_CMP; cgd->serial_num_len = dev->serial_num_len; if ((dev->serial_num_len > 0) @@ -3011,8 +3021,10 @@ call_sim: case XPT_TERM_IO: case XPT_ENG_INQ: /* XXX Implement */ - printf("%s: CCB type %#x not supported\n", __func__, - start_ccb->ccb_h.func_code); + xpt_print_path(start_ccb->ccb_h.path); + printf("%s: CCB type %#x %s not supported\n", __func__, + start_ccb->ccb_h.func_code, + xpt_action_name(start_ccb->ccb_h.func_code)); start_ccb->ccb_h.status = CAM_PROVIDE_FAIL; if (start_ccb->ccb_h.func_code & XPT_FC_DEV_QUEUED) { xpt_done(start_ccb); @@ -3315,6 +3327,13 @@ xpt_run_devq(struct cam_devq *devq) ata_cmd_string(&work_ccb->ataio.cmd, cdb_str, sizeof(cdb_str)))); break; + case XPT_NVME_IO: + CAM_DEBUG(work_ccb->ccb_h.path, + CAM_DEBUG_CDB,("%s. NCB: %s\n", + nvme_op_string(&work_ccb->nvmeio.cmd), + nvme_cmd_string(&work_ccb->nvmeio.cmd, + cdb_str, sizeof(cdb_str)))); + break; default: break; } @@ -3904,6 +3923,9 @@ xpt_bus_register(struct cam_sim *sim, de case XPORT_SATA: new_bus->xport = ata_get_xport(); break; + case XPORT_NVME: + new_bus->xport = nvme_get_xport(); + break; default: new_bus->xport = &xport_default; break; From owner-svn-src-all@freebsd.org Thu Jul 21 03:11:40 2016 Return-Path: Delivered-To: svn-src-all@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 78B8CB9E8B0; Thu, 21 Jul 2016 03:11:40 +0000 (UTC) (envelope-from imp@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 477851AED; Thu, 21 Jul 2016 03:11:40 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L3Bd0f041375; Thu, 21 Jul 2016 03:11:39 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L3BdUV041373; Thu, 21 Jul 2016 03:11:39 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201607210311.u6L3BdUV041373@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 21 Jul 2016 03:11:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303126 - head/sys/dev/nvme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 03:11:40 -0000 Author: imp Date: Thu Jul 21 03:11:39 2016 New Revision: 303126 URL: https://svnweb.freebsd.org/changeset/base/303126 Log: Actually import nvme_sim so the CAM attachment for NVME (nda) actually works. MFC after: 1 week Added: head/sys/dev/nvme/nvme_sim.c (contents, props changed) Modified: head/sys/dev/nvme/nvme_private.h Modified: head/sys/dev/nvme/nvme_private.h ============================================================================== --- head/sys/dev/nvme/nvme_private.h Thu Jul 21 03:11:37 2016 (r303125) +++ head/sys/dev/nvme/nvme_private.h Thu Jul 21 03:11:39 2016 (r303126) @@ -245,10 +245,6 @@ struct nvme_controller { struct mtx lock; - struct cam_sim *sim; - struct cam_path *path; - int cam_ref; - uint32_t ready_timeout_in_ms; bus_space_tag_t bus_tag; Added: head/sys/dev/nvme/nvme_sim.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/nvme/nvme_sim.c Thu Jul 21 03:11:39 2016 (r303126) @@ -0,0 +1,400 @@ +/*- + * Copyright (c) 2016 Netflix, Inc + * 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, + * without modification, immediately at the beginning of the file. + * 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 ``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 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 +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include // Yes, this is wrong. +#include + +#include "nvme_private.h" + +#define ccb_accb_ptr spriv_ptr0 +#define ccb_ctrlr_ptr spriv_ptr1 +static void nvme_sim_action(struct cam_sim *sim, union ccb *ccb); +static void nvme_sim_poll(struct cam_sim *sim); + +#define sim2softc(sim) ((struct nvme_sim_softc *)cam_sim_softc(sim)) +#define sim2ns(sim) (sim2softc(sim)->s_ns) +#define sim2ctrlr(sim) (sim2softc(sim)->s_ctrlr) + +struct nvme_sim_softc +{ + struct nvme_controller *s_ctrlr; + struct nvme_namespace *s_ns; + struct cam_sim *s_sim; + struct cam_path *s_path; +}; + +static void +nvme_sim_nvmeio_done(void *ccb_arg, const struct nvme_completion *cpl) +{ + union ccb *ccb = (union ccb *)ccb_arg; + + /* + * Let the periph know the completion, and let it sort out what + * it means. Make our best guess, though for the status code. + */ + memcpy(&ccb->nvmeio.cpl, cpl, sizeof(*cpl)); + if (nvme_completion_is_error(cpl)) + ccb->ccb_h.status = CAM_REQ_CMP_ERR; + else + ccb->ccb_h.status = CAM_REQ_CMP; + xpt_done(ccb); +} + +static void +nvme_sim_nvmeio(struct cam_sim *sim, union ccb *ccb) +{ + struct ccb_nvmeio *nvmeio = &ccb->nvmeio; + struct nvme_request *req; + void *payload; + uint32_t size; + struct nvme_controller *ctrlr; + + ctrlr = sim2ctrlr(sim); + payload = nvmeio->data_ptr; + size = nvmeio->dxfer_len; + /* SG LIST ??? */ + if ((nvmeio->ccb_h.flags & CAM_DATA_MASK) == CAM_DATA_BIO) + req = nvme_allocate_request_bio((struct bio *)payload, + nvme_sim_nvmeio_done, ccb); + else if (payload == NULL) + req = nvme_allocate_request_null(nvme_sim_nvmeio_done, ccb); + else + req = nvme_allocate_request_vaddr(payload, size, + nvme_sim_nvmeio_done, ccb); + + if (req == NULL) { + nvmeio->ccb_h.status = CAM_RESRC_UNAVAIL; + xpt_done(ccb); + return; + } + + memcpy(&req->cmd, &ccb->nvmeio.cmd, sizeof(ccb->nvmeio.cmd)); + + nvme_ctrlr_submit_io_request(ctrlr, req); + + ccb->ccb_h.status |= CAM_SIM_QUEUED; +} + +static void +nvme_sim_action(struct cam_sim *sim, union ccb *ccb) +{ + struct nvme_controller *ctrlr; + struct nvme_namespace *ns; + + CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, + ("nvme_sim_action: func= %#x\n", + ccb->ccb_h.func_code)); + + /* + * XXX when we support multiple namespaces in the base driver we'll need + * to revisit how all this gets stored and saved in the periph driver's + * reserved areas. Right now we store all three in the softc of the sim. + */ + ns = sim2ns(sim); + ctrlr = sim2ctrlr(sim); + + printf("Sim action: ctrlr %p ns %p\n", ctrlr, ns); + + mtx_assert(&ctrlr->lock, MA_OWNED); + + switch (ccb->ccb_h.func_code) { + case XPT_CALC_GEOMETRY: /* Calculate Geometry Totally nuts ? XXX */ + /* + * Only meaningful for old-school SCSI disks since only the SCSI + * da driver generates them. Reject all these that slip through. + */ + /*FALLTHROUGH*/ + case XPT_ABORT: /* Abort the specified CCB */ + case XPT_EN_LUN: /* Enable LUN as a target */ + case XPT_TARGET_IO: /* Execute target I/O request */ + case XPT_ACCEPT_TARGET_IO: /* Accept Host Target Mode CDB */ + case XPT_CONT_TARGET_IO: /* Continue Host Target I/O Connection*/ + /* + * Only target mode generates these, and only for SCSI. They are + * all invalid/unsupported for NVMe. + */ + ccb->ccb_h.status = CAM_REQ_INVALID; + break; + case XPT_SET_TRAN_SETTINGS: + /* + * NVMe doesn't really have different transfer settings, but + * other parts of CAM think failure here is a big deal. + */ + ccb->ccb_h.status = CAM_REQ_CMP; + break; + case XPT_PATH_INQ: /* Path routing inquiry */ + { + struct ccb_pathinq *cpi = &ccb->cpi; + + /* + * NVMe may have multiple LUNs on the same path. Current generation + * of NVMe devives support only a single name space. Multiple name + * space drives are coming, but it's unclear how we should report + * them up the stack. + */ + cpi->version_num = 1; + cpi->hba_inquiry = 0; + cpi->target_sprt = 0; + cpi->hba_misc = PIM_UNMAPPED /* | PIM_NOSCAN */; + cpi->hba_eng_cnt = 0; + cpi->max_target = 0; + cpi->max_lun = ctrlr->cdata.nn; + cpi->maxio = nvme_ns_get_max_io_xfer_size(ns); + cpi->initiator_id = 0; + cpi->bus_id = cam_sim_bus(sim); + cpi->base_transfer_speed = 4000000; /* 4 GB/s 4 lanes pcie 3 */ + strncpy(cpi->sim_vid, "FreeBSD", SIM_IDLEN); + strncpy(cpi->hba_vid, "NVMe", HBA_IDLEN); + strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN); + cpi->unit_number = cam_sim_unit(sim); + cpi->transport = XPORT_NVME; /* XXX XPORT_PCIE ? */ + cpi->transport_version = 1; /* XXX Get PCIe spec ? */ + cpi->protocol = PROTO_NVME; + cpi->protocol_version = NVME_REV_1; /* Groks all 1.x NVMe cards */ + cpi->xport_specific.nvme.nsid = ns->id; + cpi->ccb_h.status = CAM_REQ_CMP; + break; + } + case XPT_GET_TRAN_SETTINGS: /* Get transport settings */ + { + struct ccb_trans_settings *cts; + struct ccb_trans_settings_nvme *nvmep; + struct ccb_trans_settings_nvme *nvmex; + + cts = &ccb->cts; + nvmex = &cts->xport_specific.nvme; + nvmep = &cts->proto_specific.nvme; + + nvmex->valid = CTS_NVME_VALID_SPEC; + nvmex->spec_major = 1; /* XXX read from card */ + nvmex->spec_minor = 2; + nvmex->spec_tiny = 0; + + nvmep->valid = CTS_NVME_VALID_SPEC; + nvmep->spec_major = 1; /* XXX read from card */ + nvmep->spec_minor = 2; + nvmep->spec_tiny = 0; + cts->transport = XPORT_NVME; + cts->protocol = PROTO_NVME; + cts->ccb_h.status = CAM_REQ_CMP; + break; + } + case XPT_TERM_IO: /* Terminate the I/O process */ + /* + * every driver handles this, but nothing generates it. Assume + * it's OK to just say 'that worked'. + */ + /*FALLTHROUGH*/ + case XPT_RESET_DEV: /* Bus Device Reset the specified device */ + case XPT_RESET_BUS: /* Reset the specified bus */ + /* + * NVMe doesn't really support physically resetting the bus. It's part + * of the bus scanning dance, so return sucess to tell the process to + * proceed. + */ + ccb->ccb_h.status = CAM_REQ_CMP; + break; + case XPT_NVME_IO: /* Execute the requested I/O operation */ + nvme_sim_nvmeio(sim, ccb); + return; /* no done */ + default: + ccb->ccb_h.status = CAM_REQ_INVALID; + break; + } + xpt_done(ccb); +} + +static void +nvme_sim_poll(struct cam_sim *sim) +{ + + nvme_ctrlr_intx_handler(sim2ctrlr(sim)); +} + +static void * +nvme_sim_new_controller(struct nvme_controller *ctrlr) +{ + struct cam_devq *devq; + int max_trans; + int unit; + struct nvme_sim_softc *sc = NULL; + + max_trans = 256;/* XXX not so simple -- must match queues */ + unit = device_get_unit(ctrlr->dev); + devq = cam_simq_alloc(max_trans); + if (devq == NULL) + return NULL; + + sc = malloc(sizeof(*sc), M_NVME, M_ZERO | M_WAITOK); + + sc->s_ctrlr = ctrlr; + + sc->s_sim = cam_sim_alloc(nvme_sim_action, nvme_sim_poll, + "nvme", sc, unit, &ctrlr->lock, max_trans, max_trans, devq); + if (sc->s_sim == NULL) { + printf("Failed to allocate a sim\n"); + cam_simq_free(devq); + free(sc, M_NVME); + return NULL; + } + + return sc; +} + +static void +nvme_sim_rescan_target(struct nvme_controller *ctrlr, struct cam_path *path) +{ + union ccb *ccb; + + ccb = xpt_alloc_ccb_nowait(); + if (ccb == NULL) { + printf("unable to alloc CCB for rescan\n"); + return; + } + + if (xpt_clone_path(&ccb->ccb_h.path, path) != CAM_REQ_CMP) { + printf("unable to copy path for rescan\n"); + xpt_free_ccb(ccb); + return; + } + + xpt_rescan(ccb); +} + +static void * +nvme_sim_new_ns(struct nvme_namespace *ns, void *sc_arg) +{ + struct nvme_sim_softc *sc = sc_arg; + struct nvme_controller *ctrlr = sc->s_ctrlr; + int i; + + sc->s_ns = ns; + + printf("Our SIM's softc %p ctrlr %p ns %p\n", sc, ctrlr, ns); + + /* + * XXX this is creating one bus per ns, but it should be one + * XXX target per controller, and one LUN per namespace. + * XXX Current drives only support one NS, so there's time + * XXX to fix it later when new drives arrive. + * + * XXX I'm pretty sure the xpt_bus_register() call below is + * XXX like super lame and it really belongs in the sim_new_ctrlr + * XXX callback. Then the create_path below would be pretty close + * XXX to being right. Except we should be per-ns not per-ctrlr + * XXX data. + */ + + mtx_lock(&ctrlr->lock); +/* Create bus */ + + /* + * XXX do I need to lock ctrlr->lock ? + * XXX do I need to lock the path? + * ata and scsi seem to in their code, but their discovery is + * somewhat more asynchronous. We're only every called one at a + * time, and nothing is in parallel. + */ + + i = 0; + if (xpt_bus_register(sc->s_sim, ctrlr->dev, 0) != CAM_SUCCESS) + goto error; + i++; + if (xpt_create_path(&sc->s_path, /*periph*/NULL, cam_sim_path(sc->s_sim), + 1, ns->id) != CAM_REQ_CMP) + goto error; + i++; + + sc->s_path->device->nvme_data = nvme_ns_get_data(ns); + sc->s_path->device->nvme_cdata = nvme_ctrlr_get_data(ns->ctrlr); + +/* Scan bus */ + printf("Initiate rescan of the bus\n"); + nvme_sim_rescan_target(ctrlr, sc->s_path); + + mtx_unlock(&ctrlr->lock); + + return ns; + +error: + switch (i) { + case 2: + xpt_free_path(sc->s_path); + case 1: + xpt_bus_deregister(cam_sim_path(sc->s_sim)); + case 0: + cam_sim_free(sc->s_sim, /*free_devq*/TRUE); + } + mtx_unlock(&ctrlr->lock); + return NULL; +} + +static void +nvme_sim_controller_fail(void *ctrlr_arg) +{ + /* XXX cleanup XXX */ +} + +struct nvme_consumer *consumer_cookie; + +static void +nvme_sim_init(void) +{ + + consumer_cookie = nvme_register_consumer(nvme_sim_new_ns, + nvme_sim_new_controller, NULL, nvme_sim_controller_fail); +} + +SYSINIT(nvme_sim_register, SI_SUB_DRIVERS, SI_ORDER_ANY, + nvme_sim_init, NULL); + +static void +nvme_sim_uninit(void) +{ + /* XXX Cleanup */ + + nvme_unregister_consumer(consumer_cookie); +} + +SYSUNINIT(nvme_sim_unregister, SI_SUB_DRIVERS, SI_ORDER_ANY, + nvme_sim_uninit, NULL); From owner-svn-src-all@freebsd.org Thu Jul 21 03:11:38 2016 Return-Path: Delivered-To: svn-src-all@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 B037DB9E898; Thu, 21 Jul 2016 03:11:38 +0000 (UTC) (envelope-from imp@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 7D7251AAC; Thu, 21 Jul 2016 03:11:38 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L3BbQA041331; Thu, 21 Jul 2016 03:11:37 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L3Bbap041330; Thu, 21 Jul 2016 03:11:37 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201607210311.u6L3Bbap041330@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 21 Jul 2016 03:11:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303125 - head/sys/cam/nvme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 03:11:38 -0000 Author: imp Date: Thu Jul 21 03:11:37 2016 New Revision: 303125 URL: https://svnweb.freebsd.org/changeset/base/303125 Log: Remove some bogus comments and printfs. Also, we can't cam_periph_releaes_locked() at the end of nvme_probe_start because we hit an assertion which may be bogus. Instead, leak a periph until we sort it out. Since these devices don't arrive and depart often, so this is the lessor of two evils. MFC after: 1 week Modified: head/sys/cam/nvme/nvme_xpt.c Modified: head/sys/cam/nvme/nvme_xpt.c ============================================================================== --- head/sys/cam/nvme/nvme_xpt.c Thu Jul 21 03:11:36 2016 (r303124) +++ head/sys/cam/nvme/nvme_xpt.c Thu Jul 21 03:11:37 2016 (r303125) @@ -163,13 +163,14 @@ static struct xpt_xport nvme_xport = { struct xpt_xport * nvme_get_xport(void) { + return (&nvme_xport); } static void nvme_probe_periph_init() { - printf("nvme cam probe device init\n"); + } static cam_status @@ -297,18 +298,15 @@ nvme_probe_start(struct cam_periph *peri start_ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(start_ccb); } -// XXX not sure I need this -// XXX unlike other XPTs, we never freeze the queue since we have a super-simple -// XXX state machine - /* Drop freeze taken due to CAM_DEV_QFREEZE flag set. -- did we really do this? */ -// cam_release_devq(path, 0, 0, 0, FALSE); cam_periph_invalidate(periph); - cam_periph_release_locked(periph); + /* Can't release periph since we hit a (possibly bogus) assertion */ +// cam_periph_release_locked(periph); } static void nvme_probe_cleanup(struct cam_periph *periph) { + free(periph->softc, M_CAMXPT); } From owner-svn-src-all@freebsd.org Thu Jul 21 03:11:37 2016 Return-Path: Delivered-To: svn-src-all@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 8DD2CB9E88D; Thu, 21 Jul 2016 03:11:37 +0000 (UTC) (envelope-from imp@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 60F581AA6; Thu, 21 Jul 2016 03:11:37 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L3BaCm041286; Thu, 21 Jul 2016 03:11:36 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L3BadW041285; Thu, 21 Jul 2016 03:11:36 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201607210311.u6L3BadW041285@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 21 Jul 2016 03:11:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303124 - head/sys/cam X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 03:11:37 -0000 Author: imp Date: Thu Jul 21 03:11:36 2016 New Revision: 303124 URL: https://svnweb.freebsd.org/changeset/base/303124 Log: Fix mismerge and add NVME xport support to devstat (or rather, exclude it from SCSI). MFC after: 1 week Modified: head/sys/cam/cam_ccb.h Modified: head/sys/cam/cam_ccb.h ============================================================================== --- head/sys/cam/cam_ccb.h Thu Jul 21 03:11:35 2016 (r303123) +++ head/sys/cam/cam_ccb.h Thu Jul 21 03:11:36 2016 (r303124) @@ -285,10 +285,11 @@ typedef enum { XPORT_NVME, /* NVMe over PCIe */ } cam_xport; +#define XPORT_IS_NVME(t) ((t) == XPORT_NVME) #define XPORT_IS_ATA(t) ((t) == XPORT_ATA || (t) == XPORT_SATA) #define XPORT_IS_SCSI(t) ((t) != XPORT_UNKNOWN && \ (t) != XPORT_UNSPECIFIED && \ - !XPORT_IS_ATA(t)) + !XPORT_IS_ATA(t) && !XPORT_IS_NVME(t)) #define XPORT_DEVSTAT_TYPE(t) (XPORT_IS_ATA(t) ? DEVSTAT_TYPE_IF_IDE : \ XPORT_IS_SCSI(t) ? DEVSTAT_TYPE_IF_SCSI : \ DEVSTAT_TYPE_IF_OTHER) From owner-svn-src-all@freebsd.org Thu Jul 21 05:30:32 2016 Return-Path: Delivered-To: svn-src-all@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 89584B9F523; Thu, 21 Jul 2016 05:30:32 +0000 (UTC) (envelope-from sephe@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 45CFC1E78; Thu, 21 Jul 2016 05:30:32 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L5UVRt090511; Thu, 21 Jul 2016 05:30:31 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L5UV1l090509; Thu, 21 Jul 2016 05:30:31 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607210530.u6L5UV1l090509@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Thu, 21 Jul 2016 05:30:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303127 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 05:30:32 -0000 Author: sephe Date: Thu Jul 21 05:30:31 2016 New Revision: 303127 URL: https://svnweb.freebsd.org/changeset/base/303127 Log: hyperv/vmbus: Save event flag location and evet flag mask. This avoids unnecessary access to the vmbus_softc struct on sending path. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7257 Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chan.c Thu Jul 21 03:11:39 2016 (r303126) +++ head/sys/dev/hyperv/vmbus/vmbus_chan.c Thu Jul 21 05:30:31 2016 (r303127) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); #include #include -static void vmbus_chan_signal_tx(struct hv_vmbus_channel *chan); static void vmbus_chan_update_evtflagcnt(struct vmbus_softc *, const struct hv_vmbus_channel *); @@ -77,18 +76,13 @@ vmbus_chan_msgprocs[VMBUS_CHANMSG_TYPE_M VMBUS_CHANMSG_PROC_WAKEUP(GPADL_DISCONNRESP) }; -/** - * @brief Trigger an event notification on the specified channel +/* + * Notify host that there are data pending on our TX bufring. */ -static void -vmbus_chan_signal_tx(struct hv_vmbus_channel *chan) +static __inline void +vmbus_chan_signal_tx(const struct hv_vmbus_channel *chan) { - struct vmbus_softc *sc = chan->ch_vmbus; - uint32_t chanid = chan->ch_id; - - atomic_set_long(&sc->vmbus_tx_evtflags[chanid >> VMBUS_EVTFLAG_SHIFT], - 1UL << (chanid & VMBUS_EVTFLAG_MASK)); - + atomic_set_long(chan->ch_evtflag, chan->ch_evtflag_mask); if (chan->ch_flags & VMBUS_CHAN_FLAG_HASMNF) atomic_set_int(chan->ch_montrig, chan->ch_montrig_mask); else @@ -1120,6 +1114,13 @@ vmbus_chan_msgproc_choffer(struct vmbus_ 1 << (offer->chm_montrig % VMBUS_MONTRIG_LEN); } + /* + * Setup event flag. + */ + chan->ch_evtflag = + &sc->vmbus_tx_evtflags[chan->ch_id >> VMBUS_EVTFLAG_SHIFT]; + chan->ch_evtflag_mask = 1UL << (chan->ch_id & VMBUS_EVTFLAG_MASK); + /* Select default cpu for this channel. */ vmbus_chan_cpu_default(chan); Modified: head/sys/dev/hyperv/vmbus/vmbus_chanvar.h ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Thu Jul 21 03:11:39 2016 (r303126) +++ head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Thu Jul 21 05:30:31 2016 (r303127) @@ -77,13 +77,20 @@ typedef struct hv_vmbus_channel { uint32_t ch_id; /* channel id */ /* - * These are based on the offer_msg.monitor_id. + * These are based on the vmbus_chanmsg_choffer.chm_montrig. * Save it here for easy access. */ - volatile uint32_t *ch_montrig; /* MNF trigger */ + volatile uint32_t *ch_montrig; /* MNF trigger loc. */ uint32_t ch_montrig_mask;/* MNF trig mask */ /* + * These are based on the vmbus_chanmsg_choffer.chm_chanid. + * Save it here for easy access. + */ + volatile u_long *ch_evtflag; /* event flag loc. */ + u_long ch_evtflag_mask;/* event flag */ + + /* * TX bufring; at the beginning of ch_bufring. */ hv_vmbus_ring_buffer_info ch_txbr; From owner-svn-src-all@freebsd.org Thu Jul 21 05:38:07 2016 Return-Path: Delivered-To: svn-src-all@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 298EDB9FF4C; Thu, 21 Jul 2016 05:38:07 +0000 (UTC) (envelope-from sephe@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 E02591651; Thu, 21 Jul 2016 05:38:06 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L5c603094225; Thu, 21 Jul 2016 05:38:06 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L5c6WC094223; Thu, 21 Jul 2016 05:38:06 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607210538.u6L5c6WC094223@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Thu, 21 Jul 2016 05:38:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303128 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 05:38:07 -0000 Author: sephe Date: Thu Jul 21 05:38:05 2016 New Revision: 303128 URL: https://svnweb.freebsd.org/changeset/base/303128 Log: hyperv/vmbus: Reorder channel fields. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7258 Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chan.c Thu Jul 21 05:30:31 2016 (r303127) +++ head/sys/dev/hyperv/vmbus/vmbus_chan.c Thu Jul 21 05:38:05 2016 (r303128) @@ -83,7 +83,7 @@ static __inline void vmbus_chan_signal_tx(const struct hv_vmbus_channel *chan) { atomic_set_long(chan->ch_evtflag, chan->ch_evtflag_mask); - if (chan->ch_flags & VMBUS_CHAN_FLAG_HASMNF) + if (chan->ch_txflags & VMBUS_CHAN_TXF_HASMNF) atomic_set_int(chan->ch_montrig, chan->ch_montrig_mask); else hypercall_signal_event(chan->ch_monprm_dma.hv_paddr); @@ -95,7 +95,7 @@ vmbus_chan_sysctl_mnf(SYSCTL_HANDLER_ARG struct hv_vmbus_channel *chan = arg1; int mnf = 0; - if (chan->ch_flags & VMBUS_CHAN_FLAG_HASMNF) + if (chan->ch_txflags & VMBUS_CHAN_TXF_HASMNF) mnf = 1; return sysctl_handle_int(oidp, &mnf, 0, req); } @@ -1102,7 +1102,7 @@ vmbus_chan_msgproc_choffer(struct vmbus_ /* * Setup MNF stuffs. */ - chan->ch_flags |= VMBUS_CHAN_FLAG_HASMNF; + chan->ch_txflags |= VMBUS_CHAN_TXF_HASMNF; trig_idx = offer->chm_montrig / VMBUS_MONTRIG_LEN; if (trig_idx >= VMBUS_MONTRIGS_MAX) Modified: head/sys/dev/hyperv/vmbus/vmbus_chanvar.h ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Thu Jul 21 05:30:31 2016 (r303127) +++ head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Thu Jul 21 05:38:05 2016 (r303128) @@ -71,42 +71,63 @@ typedef struct { } hv_vmbus_ring_buffer_info; typedef struct hv_vmbus_channel { - device_t ch_dev; - struct vmbus_softc *ch_vmbus; + /* + * NOTE: + * Fields before ch_txbr are only accessed on this channel's + * target CPU. + */ uint32_t ch_flags; /* VMBUS_CHAN_FLAG_ */ - uint32_t ch_id; /* channel id */ + + /* + * RX bufring; immediately following ch_txbr. + */ + hv_vmbus_ring_buffer_info ch_rxbr; + + struct taskqueue *ch_tq; + struct task ch_task; + vmbus_chan_callback_t ch_cb; + void *ch_cbarg; + + /* + * TX bufring; at the beginning of ch_bufring. + * + * NOTE: + * Put TX bufring and the following MNF/evtflag to a new + * cacheline, since they will be accessed on all CPUs by + * locking ch_txbr first. + * + * XXX + * TX bufring and following MNF/evtflags do _not_ fit in + * one 64B cacheline. + */ + hv_vmbus_ring_buffer_info ch_txbr __aligned(CACHE_LINE_SIZE); + uint32_t ch_txflags; /* VMBUS_CHAN_TXF_ */ /* * These are based on the vmbus_chanmsg_choffer.chm_montrig. * Save it here for easy access. */ - volatile uint32_t *ch_montrig; /* MNF trigger loc. */ uint32_t ch_montrig_mask;/* MNF trig mask */ + volatile uint32_t *ch_montrig; /* MNF trigger loc. */ /* * These are based on the vmbus_chanmsg_choffer.chm_chanid. * Save it here for easy access. */ - volatile u_long *ch_evtflag; /* event flag loc. */ u_long ch_evtflag_mask;/* event flag */ + volatile u_long *ch_evtflag; /* event flag loc. */ /* - * TX bufring; at the beginning of ch_bufring. - */ - hv_vmbus_ring_buffer_info ch_txbr; - /* - * RX bufring; immediately following ch_txbr. + * Rarely used fields. */ - hv_vmbus_ring_buffer_info ch_rxbr; - - struct taskqueue *ch_tq; - struct task ch_task; - vmbus_chan_callback_t ch_cb; - void *ch_cbarg; struct hyperv_mon_param *ch_monprm; struct hyperv_dma ch_monprm_dma; + uint32_t ch_id; /* channel id */ + device_t ch_dev; + struct vmbus_softc *ch_vmbus; + int ch_cpuid; /* owner cpu */ /* * Virtual cpuid for ch_cpuid; it is used to communicate cpuid @@ -141,11 +162,10 @@ typedef struct hv_vmbus_channel { struct hyperv_guid ch_guid_inst; struct sysctl_ctx_list ch_sysctl_ctx; -} hv_vmbus_channel; +} hv_vmbus_channel __aligned(CACHE_LINE_SIZE); #define VMBUS_CHAN_ISPRIMARY(chan) ((chan)->ch_subidx == 0) -#define VMBUS_CHAN_FLAG_HASMNF 0x0001 /* * If this flag is set, this channel's interrupt will be masked in ISR, * and the RX bufring will be drained before this channel's interrupt is @@ -156,6 +176,8 @@ typedef struct hv_vmbus_channel { */ #define VMBUS_CHAN_FLAG_BATCHREAD 0x0002 +#define VMBUS_CHAN_TXF_HASMNF 0x0001 + #define VMBUS_CHAN_ST_OPENED_SHIFT 0 #define VMBUS_CHAN_ST_OPENED (1 << VMBUS_CHAN_ST_OPENED_SHIFT) From owner-svn-src-all@freebsd.org Thu Jul 21 05:46:28 2016 Return-Path: Delivered-To: svn-src-all@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 3ED6BB9D400; Thu, 21 Jul 2016 05:46:28 +0000 (UTC) (envelope-from sephe@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 011781BB4; Thu, 21 Jul 2016 05:46:27 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L5kR2S097773; Thu, 21 Jul 2016 05:46:27 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L5kQ5N097769; Thu, 21 Jul 2016 05:46:26 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607210546.u6L5kQ5N097769@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Thu, 21 Jul 2016 05:46:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303129 - in head/sys/dev/hyperv: include vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 05:46:28 -0000 Author: sephe Date: Thu Jul 21 05:46:26 2016 New Revision: 303129 URL: https://svnweb.freebsd.org/changeset/base/303129 Log: hyperv/vmbus: Shuffle function declaration and macro definition. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7259 Modified: head/sys/dev/hyperv/include/hyperv.h head/sys/dev/hyperv/include/vmbus.h head/sys/dev/hyperv/vmbus/vmbus_chanvar.h head/sys/dev/hyperv/vmbus/vmbus_var.h Modified: head/sys/dev/hyperv/include/hyperv.h ============================================================================== --- head/sys/dev/hyperv/include/hyperv.h Thu Jul 21 05:38:05 2016 (r303128) +++ head/sys/dev/hyperv/include/hyperv.h Thu Jul 21 05:46:26 2016 (r303129) @@ -58,23 +58,6 @@ #include #include -/* - * VMBUS version is 32 bit, upper 16 bit for major_number and lower - * 16 bit for minor_number. - * - * 0.13 -- Windows Server 2008 - * 1.1 -- Windows 7 - * 2.4 -- Windows 8 - * 3.0 -- Windows 8.1 - */ -#define VMBUS_VERSION_WS2008 ((0 << 16) | (13)) -#define VMBUS_VERSION_WIN7 ((1 << 16) | (1)) -#define VMBUS_VERSION_WIN8 ((2 << 16) | (4)) -#define VMBUS_VERSION_WIN8_1 ((3 << 16) | (0)) - -#define VMBUS_VERSION_MAJOR(ver) (((uint32_t)(ver)) >> 16) -#define VMBUS_VERSION_MINOR(ver) (((uint32_t)(ver)) & 0xffff) - struct hyperv_guid { uint8_t hv_guid[16]; } __packed; @@ -83,8 +66,6 @@ struct hyperv_guid { int hyperv_guid2str(const struct hyperv_guid *, char *, size_t); -struct hv_vmbus_channel; - /** * @brief Get physical address from virtual */ @@ -96,10 +77,4 @@ hv_get_phys_addr(void *virt) return (ret); } -static __inline struct hv_vmbus_channel * -vmbus_get_channel(device_t dev) -{ - return device_get_ivars(dev); -} - #endif /* __HYPERV_H__ */ Modified: head/sys/dev/hyperv/include/vmbus.h ============================================================================== --- head/sys/dev/hyperv/include/vmbus.h Thu Jul 21 05:38:05 2016 (r303128) +++ head/sys/dev/hyperv/include/vmbus.h Thu Jul 21 05:46:26 2016 (r303129) @@ -32,6 +32,23 @@ #include /* + * VMBUS version is 32 bit, upper 16 bit for major_number and lower + * 16 bit for minor_number. + * + * 0.13 -- Windows Server 2008 + * 1.1 -- Windows 7 + * 2.4 -- Windows 8 + * 3.0 -- Windows 8.1 + */ +#define VMBUS_VERSION_WS2008 ((0 << 16) | (13)) +#define VMBUS_VERSION_WIN7 ((1 << 16) | (1)) +#define VMBUS_VERSION_WIN8 ((2 << 16) | (4)) +#define VMBUS_VERSION_WIN8_1 ((3 << 16) | (0)) + +#define VMBUS_VERSION_MAJOR(ver) (((uint32_t)(ver)) >> 16) +#define VMBUS_VERSION_MINOR(ver) (((uint32_t)(ver)) & 0xffff) + +/* * GPA stuffs. */ struct vmbus_gpa_range { @@ -92,6 +109,12 @@ struct hyperv_guid; typedef void (*vmbus_chan_callback_t)(struct hv_vmbus_channel *, void *); +static __inline struct hv_vmbus_channel * +vmbus_get_channel(device_t dev) +{ + return device_get_ivars(dev); +} + int vmbus_chan_open(struct hv_vmbus_channel *chan, int txbr_size, int rxbr_size, const void *udata, int udlen, vmbus_chan_callback_t cb, void *cbarg); Modified: head/sys/dev/hyperv/vmbus/vmbus_chanvar.h ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Thu Jul 21 05:38:05 2016 (r303128) +++ head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Thu Jul 21 05:46:26 2016 (r303129) @@ -181,4 +181,12 @@ typedef struct hv_vmbus_channel { #define VMBUS_CHAN_ST_OPENED_SHIFT 0 #define VMBUS_CHAN_ST_OPENED (1 << VMBUS_CHAN_ST_OPENED_SHIFT) +struct vmbus_softc; +struct vmbus_message; + +void vmbus_event_proc(struct vmbus_softc *, int); +void vmbus_event_proc_compat(struct vmbus_softc *, int); +void vmbus_chan_msgproc(struct vmbus_softc *, const struct vmbus_message *); +void vmbus_chan_destroy_all(struct vmbus_softc *); + #endif /* !_VMBUS_CHANVAR_H_ */ Modified: head/sys/dev/hyperv/vmbus/vmbus_var.h ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_var.h Thu Jul 21 05:38:05 2016 (r303128) +++ head/sys/dev/hyperv/vmbus/vmbus_var.h Thu Jul 21 05:46:26 2016 (r303129) @@ -143,16 +143,11 @@ struct trapframe; struct vmbus_message; struct vmbus_msghc; -void vmbus_event_proc(struct vmbus_softc *, int); -void vmbus_event_proc_compat(struct vmbus_softc *, int); void vmbus_handle_intr(struct trapframe *); int vmbus_add_child(struct hv_vmbus_channel *); int vmbus_delete_child(struct hv_vmbus_channel *); - void vmbus_et_intr(struct trapframe *); - -void vmbus_chan_msgproc(struct vmbus_softc *, const struct vmbus_message *); -void vmbus_chan_destroy_all(struct vmbus_softc *); +uint32_t vmbus_gpadl_alloc(struct vmbus_softc *); struct vmbus_msghc *vmbus_msghc_get(struct vmbus_softc *, size_t); void vmbus_msghc_put(struct vmbus_softc *, struct vmbus_msghc *); @@ -164,6 +159,4 @@ const struct vmbus_message *vmbus_msghc_ void vmbus_msghc_wakeup(struct vmbus_softc *, const struct vmbus_message *); void vmbus_msghc_reset(struct vmbus_msghc *, size_t); -uint32_t vmbus_gpadl_alloc(struct vmbus_softc *); - #endif /* !_VMBUS_VAR_H_ */ From owner-svn-src-all@freebsd.org Thu Jul 21 06:06:12 2016 Return-Path: Delivered-To: svn-src-all@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 B07DDB9D9CB; Thu, 21 Jul 2016 06:06:12 +0000 (UTC) (envelope-from bdrewery@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 6964E1731; Thu, 21 Jul 2016 06:06:12 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L66BHD005437; Thu, 21 Jul 2016 06:06:11 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L66BFx005435; Thu, 21 Jul 2016 06:06:11 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201607210606.u6L66BFx005435@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 21 Jul 2016 06:06:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303130 - in head: . share/man/man7 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 06:06:12 -0000 Author: bdrewery Date: Thu Jul 21 06:06:11 2016 New Revision: 303130 URL: https://svnweb.freebsd.org/changeset/base/303130 Log: Add LOCAL_XTOOL_DIRS to add into cross-tools. Sponsored by: EMC / Isilon Storage Division Modified: head/Makefile.inc1 head/share/man/man7/build.7 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Thu Jul 21 05:46:26 2016 (r303129) +++ head/Makefile.inc1 Thu Jul 21 06:06:11 2016 (r303130) @@ -22,6 +22,8 @@ # to be created before files are installed # LOCAL_TOOL_DIRS="list of dirs" to add additional dirs to the build-tools # list +# LOCAL_XTOOL_DIRS="list of dirs" to add additional dirs to the +# cross-tools target # METALOG="path to metadata log" to write permission and ownership # when NO_ROOT is set. (default: ${DESTDIR}/METALOG) # TARGET="machine" to crossbuild world for a different machine type @@ -1815,6 +1817,7 @@ _usb_tools= sys/boot/usb/tools cross-tools: .MAKE .PHONY .for _tool in \ + ${LOCAL_XTOOL_DIRS} \ ${_clang_libs} \ ${_clang} \ ${_binutils} \ Modified: head/share/man/man7/build.7 ============================================================================== --- head/share/man/man7/build.7 Thu Jul 21 05:46:26 2016 (r303129) +++ head/share/man/man7/build.7 Thu Jul 21 06:06:11 2016 (r303130) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 28, 2016 +.Dd July 20, 2016 .Dt BUILD 7 .Os .Sh NAME @@ -462,6 +462,11 @@ If set, this variable supplies a list of the root of the source tree to build as part of the .Cm build-tools target. +.It Va LOCAL_XTOOL_DIRS +If set, this variable supplies a list of additional directories relative to +the root of the source tree to build as part of the +.Cm cross-tools +target. .It Va PORTS_MODULES A list of ports with kernel modules that should be built and installed as part of the From owner-svn-src-all@freebsd.org Thu Jul 21 06:09:50 2016 Return-Path: Delivered-To: svn-src-all@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 2895CB9DA59; Thu, 21 Jul 2016 06:09:50 +0000 (UTC) (envelope-from sephe@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 E9F2318E7; Thu, 21 Jul 2016 06:09:49 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L69na9005600; Thu, 21 Jul 2016 06:09:49 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L69lYK005582; Thu, 21 Jul 2016 06:09:47 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607210609.u6L69lYK005582@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Thu, 21 Jul 2016 06:09:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303131 - in head/sys/dev/hyperv: include netvsc storvsc utilities vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 06:09:50 -0000 Author: sephe Date: Thu Jul 21 06:09:47 2016 New Revision: 303131 URL: https://svnweb.freebsd.org/changeset/base/303131 Log: hyperv: hv_vmbus_channel -> vmbus_channel MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7260 Modified: head/sys/dev/hyperv/include/vmbus.h head/sys/dev/hyperv/netvsc/hv_net_vsc.c head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c head/sys/dev/hyperv/netvsc/hv_rndis.h head/sys/dev/hyperv/netvsc/hv_rndis_filter.c head/sys/dev/hyperv/netvsc/hv_rndis_filter.h head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c head/sys/dev/hyperv/utilities/hv_heartbeat.c head/sys/dev/hyperv/utilities/hv_kvp.c head/sys/dev/hyperv/utilities/hv_shutdown.c head/sys/dev/hyperv/utilities/hv_timesync.c head/sys/dev/hyperv/utilities/hv_util.c head/sys/dev/hyperv/utilities/hv_util.h head/sys/dev/hyperv/vmbus/vmbus.c head/sys/dev/hyperv/vmbus/vmbus_chan.c head/sys/dev/hyperv/vmbus/vmbus_chanvar.h head/sys/dev/hyperv/vmbus/vmbus_var.h Modified: head/sys/dev/hyperv/include/vmbus.h ============================================================================== --- head/sys/dev/hyperv/include/vmbus.h Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/include/vmbus.h Thu Jul 21 06:09:47 2016 (r303131) @@ -104,56 +104,56 @@ struct vmbus_chanpkt_rxbuf { #define VMBUS_CHAN_SGLIST_MAX 32 #define VMBUS_CHAN_PRPLIST_MAX 32 -struct hv_vmbus_channel; +struct vmbus_channel; struct hyperv_guid; -typedef void (*vmbus_chan_callback_t)(struct hv_vmbus_channel *, void *); +typedef void (*vmbus_chan_callback_t)(struct vmbus_channel *, void *); -static __inline struct hv_vmbus_channel * +static __inline struct vmbus_channel * vmbus_get_channel(device_t dev) { return device_get_ivars(dev); } -int vmbus_chan_open(struct hv_vmbus_channel *chan, +int vmbus_chan_open(struct vmbus_channel *chan, int txbr_size, int rxbr_size, const void *udata, int udlen, vmbus_chan_callback_t cb, void *cbarg); -void vmbus_chan_close(struct hv_vmbus_channel *chan); +void vmbus_chan_close(struct vmbus_channel *chan); -int vmbus_chan_gpadl_connect(struct hv_vmbus_channel *chan, +int vmbus_chan_gpadl_connect(struct vmbus_channel *chan, bus_addr_t paddr, int size, uint32_t *gpadl); -int vmbus_chan_gpadl_disconnect(struct hv_vmbus_channel *chan, +int vmbus_chan_gpadl_disconnect(struct vmbus_channel *chan, uint32_t gpadl); -void vmbus_chan_cpu_set(struct hv_vmbus_channel *chan, int cpu); -void vmbus_chan_cpu_rr(struct hv_vmbus_channel *chan); -struct hv_vmbus_channel * - vmbus_chan_cpu2chan(struct hv_vmbus_channel *chan, int cpu); -void vmbus_chan_set_readbatch(struct hv_vmbus_channel *chan, bool on); - -struct hv_vmbus_channel ** - vmbus_subchan_get(struct hv_vmbus_channel *pri_chan, int subchan_cnt); -void vmbus_subchan_rel(struct hv_vmbus_channel **subchan, int subchan_cnt); -void vmbus_subchan_drain(struct hv_vmbus_channel *pri_chan); +void vmbus_chan_cpu_set(struct vmbus_channel *chan, int cpu); +void vmbus_chan_cpu_rr(struct vmbus_channel *chan); +struct vmbus_channel * + vmbus_chan_cpu2chan(struct vmbus_channel *chan, int cpu); +void vmbus_chan_set_readbatch(struct vmbus_channel *chan, bool on); + +struct vmbus_channel ** + vmbus_subchan_get(struct vmbus_channel *pri_chan, int subchan_cnt); +void vmbus_subchan_rel(struct vmbus_channel **subchan, int subchan_cnt); +void vmbus_subchan_drain(struct vmbus_channel *pri_chan); -int vmbus_chan_recv(struct hv_vmbus_channel *chan, void *data, int *dlen, +int vmbus_chan_recv(struct vmbus_channel *chan, void *data, int *dlen, uint64_t *xactid); -int vmbus_chan_recv_pkt(struct hv_vmbus_channel *chan, +int vmbus_chan_recv_pkt(struct vmbus_channel *chan, struct vmbus_chanpkt_hdr *pkt, int *pktlen); -int vmbus_chan_send(struct hv_vmbus_channel *chan, uint16_t type, +int vmbus_chan_send(struct vmbus_channel *chan, uint16_t type, uint16_t flags, void *data, int dlen, uint64_t xactid); -int vmbus_chan_send_sglist(struct hv_vmbus_channel *chan, +int vmbus_chan_send_sglist(struct vmbus_channel *chan, struct vmbus_gpa sg[], int sglen, void *data, int dlen, uint64_t xactid); -int vmbus_chan_send_prplist(struct hv_vmbus_channel *chan, +int vmbus_chan_send_prplist(struct vmbus_channel *chan, struct vmbus_gpa_range *prp, int prp_cnt, void *data, int dlen, uint64_t xactid); -uint32_t vmbus_chan_id(const struct hv_vmbus_channel *chan); -uint32_t vmbus_chan_subidx(const struct hv_vmbus_channel *chan); -bool vmbus_chan_is_primary(const struct hv_vmbus_channel *chan); +uint32_t vmbus_chan_id(const struct vmbus_channel *chan); +uint32_t vmbus_chan_subidx(const struct vmbus_channel *chan); +bool vmbus_chan_is_primary(const struct vmbus_channel *chan); const struct hyperv_guid * - vmbus_chan_guid_inst(const struct hv_vmbus_channel *chan); + vmbus_chan_guid_inst(const struct vmbus_channel *chan); #endif /* !_VMBUS_H_ */ Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Thu Jul 21 06:09:47 2016 (r303131) @@ -54,7 +54,7 @@ MALLOC_DEFINE(M_NETVSC, "netvsc", "Hyper /* * Forward declarations */ -static void hv_nv_on_channel_callback(struct hv_vmbus_channel *chan, +static void hv_nv_on_channel_callback(struct vmbus_channel *chan, void *xrxr); static int hv_nv_init_send_buffer_with_net_vsp(struct hn_softc *sc); static int hv_nv_init_rx_buffer_with_net_vsp(struct hn_softc *); @@ -62,11 +62,11 @@ static int hv_nv_destroy_send_buffer(ne static int hv_nv_destroy_rx_buffer(netvsc_dev *net_dev); static int hv_nv_connect_to_vsp(struct hn_softc *sc); static void hv_nv_on_send_completion(netvsc_dev *net_dev, - struct hv_vmbus_channel *, const struct vmbus_chanpkt_hdr *pkt); -static void hv_nv_on_receive_completion(struct hv_vmbus_channel *chan, + struct vmbus_channel *, const struct vmbus_chanpkt_hdr *pkt); +static void hv_nv_on_receive_completion(struct vmbus_channel *chan, uint64_t tid, uint32_t status); static void hv_nv_on_receive(netvsc_dev *net_dev, - struct hn_rx_ring *rxr, struct hv_vmbus_channel *chan, + struct hn_rx_ring *rxr, struct vmbus_channel *chan, const struct vmbus_chanpkt_hdr *pkt); /* @@ -639,7 +639,7 @@ hv_nv_disconnect_from_vsp(netvsc_dev *ne } void -hv_nv_subchan_attach(struct hv_vmbus_channel *chan, struct hn_rx_ring *rxr) +hv_nv_subchan_attach(struct vmbus_channel *chan, struct hn_rx_ring *rxr) { KASSERT(rxr->hn_rx_idx == vmbus_chan_subidx(chan), ("chan%u subidx %u, rxr%d mismatch", @@ -658,7 +658,7 @@ netvsc_dev * hv_nv_on_device_add(struct hn_softc *sc, void *additional_info, struct hn_rx_ring *rxr) { - struct hv_vmbus_channel *chan = sc->hn_prichan; + struct vmbus_channel *chan = sc->hn_prichan; netvsc_dev *net_dev; int ret = 0; @@ -735,7 +735,7 @@ hv_nv_on_device_remove(struct hn_softc * * Net VSC on send completion */ static void -hv_nv_on_send_completion(netvsc_dev *net_dev, struct hv_vmbus_channel *chan, +hv_nv_on_send_completion(netvsc_dev *net_dev, struct vmbus_channel *chan, const struct vmbus_chanpkt_hdr *pkt) { const nvsp_msg *nvsp_msg_pkt; @@ -799,7 +799,7 @@ hv_nv_on_send_completion(netvsc_dev *net * Returns 0 on success, non-zero on failure. */ int -hv_nv_on_send(struct hv_vmbus_channel *chan, netvsc_packet *pkt) +hv_nv_on_send(struct vmbus_channel *chan, netvsc_packet *pkt) { nvsp_msg send_msg; int ret; @@ -838,7 +838,7 @@ hv_nv_on_send(struct hv_vmbus_channel *c */ static void hv_nv_on_receive(netvsc_dev *net_dev, struct hn_rx_ring *rxr, - struct hv_vmbus_channel *chan, const struct vmbus_chanpkt_hdr *pkthdr) + struct vmbus_channel *chan, const struct vmbus_chanpkt_hdr *pkthdr) { const struct vmbus_chanpkt_rxbuf *pkt; const nvsp_msg *nvsp_msg_pkt; @@ -894,7 +894,7 @@ hv_nv_on_receive(netvsc_dev *net_dev, st * Send a receive completion packet to RNDIS device (ie NetVsp) */ static void -hv_nv_on_receive_completion(struct hv_vmbus_channel *chan, uint64_t tid, +hv_nv_on_receive_completion(struct vmbus_channel *chan, uint64_t tid, uint32_t status) { nvsp_msg rx_comp_msg; @@ -969,7 +969,7 @@ hv_nv_send_table(struct hn_softc *sc, co * Net VSC on channel callback */ static void -hv_nv_on_channel_callback(struct hv_vmbus_channel *chan, void *xrxr) +hv_nv_on_channel_callback(struct vmbus_channel *chan, void *xrxr) { struct hn_rx_ring *rxr = xrxr; struct hn_softc *sc = rxr->hn_ifp->if_softc; Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Thu Jul 21 06:09:47 2016 (r303131) @@ -1082,9 +1082,9 @@ typedef struct netvsc_dev_ { uint32_t vrss_send_table[VRSS_SEND_TABLE_SIZE]; } netvsc_dev; -struct hv_vmbus_channel; +struct vmbus_channel; -typedef void (*pfn_on_send_rx_completion)(struct hv_vmbus_channel *, void *); +typedef void (*pfn_on_send_rx_completion)(struct vmbus_channel *, void *); #define NETVSC_DEVICE_RING_BUFFER_SIZE (128 * PAGE_SIZE) @@ -1207,7 +1207,7 @@ struct hn_tx_ring { struct mtx hn_tx_lock; struct hn_softc *hn_sc; - struct hv_vmbus_channel *hn_chan; + struct vmbus_channel *hn_chan; int hn_direct_tx_size; int hn_tx_chimney_size; @@ -1246,7 +1246,7 @@ typedef struct hn_softc { /* See hv_netvsc_drv_freebsd.c for rules on how to use */ int temp_unusable; netvsc_dev *net_dev; - struct hv_vmbus_channel *hn_prichan; + struct vmbus_channel *hn_prichan; int hn_rx_ring_cnt; int hn_rx_ring_inuse; @@ -1273,9 +1273,9 @@ netvsc_dev *hv_nv_on_device_add(struct h void *additional_info, struct hn_rx_ring *rxr); int hv_nv_on_device_remove(struct hn_softc *sc, boolean_t destroy_channel); -int hv_nv_on_send(struct hv_vmbus_channel *chan, netvsc_packet *pkt); +int hv_nv_on_send(struct vmbus_channel *chan, netvsc_packet *pkt); int hv_nv_get_next_send_section(netvsc_dev *net_dev); -void hv_nv_subchan_attach(struct hv_vmbus_channel *chan, +void hv_nv_subchan_attach(struct vmbus_channel *chan, struct hn_rx_ring *rxr); #endif /* __HV_NET_VSC_H__ */ Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Thu Jul 21 06:09:47 2016 (r303131) @@ -340,8 +340,8 @@ static int hn_encap(struct hn_tx_ring *, static void hn_create_rx_data(struct hn_softc *sc, int); static void hn_destroy_rx_data(struct hn_softc *sc); static void hn_set_tx_chimney_size(struct hn_softc *, int); -static void hn_channel_attach(struct hn_softc *, struct hv_vmbus_channel *); -static void hn_subchan_attach(struct hn_softc *, struct hv_vmbus_channel *); +static void hn_channel_attach(struct hn_softc *, struct vmbus_channel *); +static void hn_subchan_attach(struct hn_softc *, struct vmbus_channel *); static void hn_subchan_setup(struct hn_softc *); static int hn_transmit(struct ifnet *, struct mbuf *); @@ -780,7 +780,7 @@ hn_txeof(struct hn_tx_ring *txr) } static void -hn_tx_done(struct hv_vmbus_channel *chan, void *xpkt) +hn_tx_done(struct vmbus_channel *chan, void *xpkt) { netvsc_packet *packet = xpkt; struct hn_txdesc *txd; @@ -2911,7 +2911,7 @@ hn_xmit_txeof_taskfunc(void *xtxr, int p } static void -hn_channel_attach(struct hn_softc *sc, struct hv_vmbus_channel *chan) +hn_channel_attach(struct hn_softc *sc, struct vmbus_channel *chan) { struct hn_rx_ring *rxr; int idx; @@ -2950,7 +2950,7 @@ hn_channel_attach(struct hn_softc *sc, s } static void -hn_subchan_attach(struct hn_softc *sc, struct hv_vmbus_channel *chan) +hn_subchan_attach(struct hn_softc *sc, struct vmbus_channel *chan) { KASSERT(!vmbus_chan_is_primary(chan), @@ -2961,7 +2961,7 @@ hn_subchan_attach(struct hn_softc *sc, s static void hn_subchan_setup(struct hn_softc *sc) { - struct hv_vmbus_channel **subchans; + struct vmbus_channel **subchans; int subchan_cnt = sc->net_dev->num_channel - 1; int i; @@ -2970,7 +2970,7 @@ hn_subchan_setup(struct hn_softc *sc) /* Attach the sub-channels. */ for (i = 0; i < subchan_cnt; ++i) { - struct hv_vmbus_channel *subchan = subchans[i]; + struct vmbus_channel *subchan = subchans[i]; /* NOTE: Calling order is critical. */ hn_subchan_attach(sc, subchan); Modified: head/sys/dev/hyperv/netvsc/hv_rndis.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis.h Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/netvsc/hv_rndis.h Thu Jul 21 06:09:47 2016 (r303131) @@ -1082,7 +1082,6 @@ typedef struct rndismp_rx_bufs_info_ { /* * Externs */ -struct hv_vmbus_channel; struct hn_rx_ring; struct hn_tx_ring; Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.c ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.c Thu Jul 21 06:09:47 2016 (r303131) @@ -86,8 +86,8 @@ static int hv_rf_set_packet_filter(rndi static int hv_rf_init_device(rndis_device *device); static int hv_rf_open_device(rndis_device *device); static int hv_rf_close_device(rndis_device *device); -static void hv_rf_on_send_request_completion(struct hv_vmbus_channel *, void *context); -static void hv_rf_on_send_request_halt_completion(struct hv_vmbus_channel *, void *context); +static void hv_rf_on_send_request_completion(struct vmbus_channel *, void *context); +static void hv_rf_on_send_request_halt_completion(struct vmbus_channel *, void *context); int hv_rf_send_offload_request(struct hn_softc *sc, rndis_offload_params *offloads); @@ -1243,7 +1243,7 @@ hv_rf_on_close(struct hn_softc *sc) * RNDIS filter on send request completion callback */ static void -hv_rf_on_send_request_completion(struct hv_vmbus_channel *chan __unused, +hv_rf_on_send_request_completion(struct vmbus_channel *chan __unused, void *context __unused) { } @@ -1252,7 +1252,7 @@ hv_rf_on_send_request_completion(struct * RNDIS filter on send request (halt only) completion callback */ static void -hv_rf_on_send_request_halt_completion(struct hv_vmbus_channel *chan __unused, +hv_rf_on_send_request_halt_completion(struct vmbus_channel *chan __unused, void *context) { rndis_request *request = context; Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.h ============================================================================== --- head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.h Thu Jul 21 06:09:47 2016 (r303131) @@ -111,7 +111,6 @@ typedef struct rndis_device_ { /* * Externs */ -struct hv_vmbus_channel; struct hn_softc; struct hn_rx_ring; Modified: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Thu Jul 21 06:09:47 2016 (r303131) @@ -132,7 +132,7 @@ struct hv_storvsc_request { }; struct storvsc_softc { - struct hv_vmbus_channel *hs_chan; + struct vmbus_channel *hs_chan; LIST_HEAD(, hv_storvsc_request) hs_free_list; struct mtx hs_lock; struct storvsc_driver_props *hs_drv_props; @@ -148,7 +148,7 @@ struct storvsc_softc { struct hv_storvsc_request hs_reset_req; device_t hs_dev; - struct hv_vmbus_channel *hs_cpu2chan[MAXCPU]; + struct vmbus_channel *hs_cpu2chan[MAXCPU]; }; @@ -274,7 +274,7 @@ static int create_storvsc_request(union static void storvsc_free_request(struct storvsc_softc *sc, struct hv_storvsc_request *reqp); static enum hv_storage_type storvsc_get_storage_type(device_t dev); static void hv_storvsc_rescan_target(struct storvsc_softc *sc); -static void hv_storvsc_on_channel_callback(struct hv_vmbus_channel *chan, void *xsc); +static void hv_storvsc_on_channel_callback(struct vmbus_channel *chan, void *xsc); static void hv_storvsc_on_iocompletion( struct storvsc_softc *sc, struct vstor_packet *vstor_packet, struct hv_storvsc_request *request); @@ -309,7 +309,7 @@ MODULE_DEPEND(storvsc, vmbus, 1, 1, 1); static void storvsc_subchan_attach(struct storvsc_softc *sc, - struct hv_vmbus_channel *new_channel) + struct vmbus_channel *new_channel) { struct vmstor_chan_props props; int ret = 0; @@ -334,7 +334,7 @@ storvsc_subchan_attach(struct storvsc_so static void storvsc_send_multichannel_request(struct storvsc_softc *sc, int max_chans) { - struct hv_vmbus_channel **subchan; + struct vmbus_channel **subchan; struct hv_storvsc_request *request; struct vstor_packet *vstor_packet; int request_channels_cnt = 0; @@ -648,7 +648,7 @@ hv_storvsc_io_request(struct storvsc_sof struct hv_storvsc_request *request) { struct vstor_packet *vstor_packet = &request->vstor_packet; - struct hv_vmbus_channel* outgoing_channel = NULL; + struct vmbus_channel* outgoing_channel = NULL; int ret = 0; vstor_packet->flags |= REQUEST_COMPLETION_FLAG; @@ -765,7 +765,7 @@ hv_storvsc_rescan_target(struct storvsc_ } static void -hv_storvsc_on_channel_callback(struct hv_vmbus_channel *channel, void *xsc) +hv_storvsc_on_channel_callback(struct vmbus_channel *channel, void *xsc) { int ret = 0; struct storvsc_softc *sc = xsc; Modified: head/sys/dev/hyperv/utilities/hv_heartbeat.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_heartbeat.c Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/utilities/hv_heartbeat.c Thu Jul 21 06:09:47 2016 (r303131) @@ -49,7 +49,7 @@ static const struct hyperv_guid service_ * Process heartbeat message */ static void -hv_heartbeat_cb(struct hv_vmbus_channel *channel, void *context) +hv_heartbeat_cb(struct vmbus_channel *channel, void *context) { uint8_t* buf; int recvlen; Modified: head/sys/dev/hyperv/utilities/hv_kvp.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_kvp.c Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/utilities/hv_kvp.c Thu Jul 21 06:09:47 2016 (r303131) @@ -334,7 +334,7 @@ hv_kvp_convert_utf16_ipinfo_to_utf8(stru /* XXX access other driver's softc? are you kidding? */ device_t dev = devs[devcnt]; struct hn_softc *sc = device_get_softc(dev); - struct hv_vmbus_channel *chan; + struct vmbus_channel *chan; char buf[HYPERV_GUID_STRLEN]; /* @@ -616,7 +616,7 @@ static void hv_kvp_process_request(void *context, int pending) { uint8_t *kvp_buf; - struct hv_vmbus_channel *channel; + struct vmbus_channel *channel; uint32_t recvlen = 0; uint64_t requestid; struct hv_vmbus_icmsg_hdr *icmsghdrp; @@ -711,7 +711,7 @@ hv_kvp_process_request(void *context, in * Callback routine that gets called whenever there is a message from host */ static void -hv_kvp_callback(struct hv_vmbus_channel *chan __unused, void *context) +hv_kvp_callback(struct vmbus_channel *chan __unused, void *context) { hv_kvp_sc *sc = (hv_kvp_sc*)context; /* Modified: head/sys/dev/hyperv/utilities/hv_shutdown.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_shutdown.c Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/utilities/hv_shutdown.c Thu Jul 21 06:09:47 2016 (r303131) @@ -53,7 +53,7 @@ static const struct hyperv_guid service_ * Shutdown */ static void -hv_shutdown_cb(struct hv_vmbus_channel *channel, void *context) +hv_shutdown_cb(struct vmbus_channel *channel, void *context) { uint8_t* buf; uint8_t execute_shutdown = 0; Modified: head/sys/dev/hyperv/utilities/hv_timesync.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_timesync.c Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/utilities/hv_timesync.c Thu Jul 21 06:09:47 2016 (r303131) @@ -130,7 +130,7 @@ void hv_adj_guesttime(hv_timesync_sc *sc * Time Sync Channel message handler */ static void -hv_timesync_cb(struct hv_vmbus_channel *channel, void *context) +hv_timesync_cb(struct vmbus_channel *channel, void *context) { hv_vmbus_icmsg_hdr* icmsghdrp; uint32_t recvlen; Modified: head/sys/dev/hyperv/utilities/hv_util.c ============================================================================== --- head/sys/dev/hyperv/utilities/hv_util.c Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/utilities/hv_util.c Thu Jul 21 06:09:47 2016 (r303131) @@ -77,7 +77,7 @@ int hv_util_attach(device_t dev) { struct hv_util_sc* softc; - struct hv_vmbus_channel *chan; + struct vmbus_channel *chan; int ret; softc = device_get_softc(dev); Modified: head/sys/dev/hyperv/utilities/hv_util.h ============================================================================== --- head/sys/dev/hyperv/utilities/hv_util.h Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/utilities/hv_util.h Thu Jul 21 06:09:47 2016 (r303131) @@ -39,7 +39,7 @@ typedef struct hv_util_sc { /* * function to process Hyper-V messages */ - void (*callback)(struct hv_vmbus_channel *, void *); + void (*callback)(struct vmbus_channel *, void *); uint8_t *receive_buffer; } hv_util_sc; Modified: head/sys/dev/hyperv/vmbus/vmbus.c ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus.c Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/vmbus/vmbus.c Thu Jul 21 06:09:47 2016 (r303131) @@ -992,7 +992,7 @@ vmbus_read_ivar(device_t dev, device_t c static int vmbus_child_pnpinfo_str(device_t dev, device_t child, char *buf, size_t buflen) { - const struct hv_vmbus_channel *chan; + const struct vmbus_channel *chan; char guidbuf[HYPERV_GUID_STRLEN]; chan = vmbus_get_channel(child); @@ -1013,7 +1013,7 @@ vmbus_child_pnpinfo_str(device_t dev, de } int -vmbus_add_child(struct hv_vmbus_channel *chan) +vmbus_add_child(struct vmbus_channel *chan) { struct vmbus_softc *sc = chan->ch_vmbus; device_t parent = sc->vmbus_dev; @@ -1038,7 +1038,7 @@ done: } int -vmbus_delete_child(struct hv_vmbus_channel *chan) +vmbus_delete_child(struct vmbus_channel *chan) { int error; @@ -1082,7 +1082,7 @@ static int vmbus_probe_guid_method(device_t bus, device_t dev, const struct hyperv_guid *guid) { - const struct hv_vmbus_channel *chan = vmbus_get_channel(dev); + const struct vmbus_channel *chan = vmbus_get_channel(dev); if (memcmp(&chan->ch_guid_type, guid, sizeof(struct hyperv_guid)) == 0) return 0; @@ -1132,7 +1132,7 @@ vmbus_doattach(struct vmbus_softc *sc) mtx_init(&sc->vmbus_prichan_lock, "vmbus prichan", NULL, MTX_DEF); TAILQ_INIT(&sc->vmbus_prichans); sc->vmbus_chmap = malloc( - sizeof(struct hv_vmbus_channel *) * VMBUS_CHAN_MAX, M_DEVBUF, + sizeof(struct vmbus_channel *) * VMBUS_CHAN_MAX, M_DEVBUF, M_WAITOK | M_ZERO); /* Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chan.c Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/vmbus/vmbus_chan.c Thu Jul 21 06:09:47 2016 (r303131) @@ -52,7 +52,7 @@ __FBSDID("$FreeBSD$"); #include static void vmbus_chan_update_evtflagcnt(struct vmbus_softc *, - const struct hv_vmbus_channel *); + const struct vmbus_channel *); static void vmbus_chan_task(void *, int); static void vmbus_chan_task_nobatch(void *, int); @@ -80,7 +80,7 @@ vmbus_chan_msgprocs[VMBUS_CHANMSG_TYPE_M * Notify host that there are data pending on our TX bufring. */ static __inline void -vmbus_chan_signal_tx(const struct hv_vmbus_channel *chan) +vmbus_chan_signal_tx(const struct vmbus_channel *chan) { atomic_set_long(chan->ch_evtflag, chan->ch_evtflag_mask); if (chan->ch_txflags & VMBUS_CHAN_TXF_HASMNF) @@ -92,7 +92,7 @@ vmbus_chan_signal_tx(const struct hv_vmb static int vmbus_chan_sysctl_mnf(SYSCTL_HANDLER_ARGS) { - struct hv_vmbus_channel *chan = arg1; + struct vmbus_channel *chan = arg1; int mnf = 0; if (chan->ch_txflags & VMBUS_CHAN_TXF_HASMNF) @@ -101,7 +101,7 @@ vmbus_chan_sysctl_mnf(SYSCTL_HANDLER_ARG } static void -vmbus_chan_sysctl_create(struct hv_vmbus_channel *chan) +vmbus_chan_sysctl_create(struct vmbus_channel *chan) { struct sysctl_oid *ch_tree, *chid_tree, *br_tree; struct sysctl_ctx_list *ctx; @@ -193,7 +193,7 @@ vmbus_chan_sysctl_create(struct hv_vmbus } int -vmbus_chan_open(struct hv_vmbus_channel *chan, int txbr_size, int rxbr_size, +vmbus_chan_open(struct vmbus_channel *chan, int txbr_size, int rxbr_size, const void *udata, int udlen, vmbus_chan_callback_t cb, void *cbarg) { struct vmbus_softc *sc = chan->ch_vmbus; @@ -325,7 +325,7 @@ failed: } int -vmbus_chan_gpadl_connect(struct hv_vmbus_channel *chan, bus_addr_t paddr, +vmbus_chan_gpadl_connect(struct vmbus_channel *chan, bus_addr_t paddr, int size, uint32_t *gpadl0) { struct vmbus_softc *sc = chan->ch_vmbus; @@ -455,7 +455,7 @@ vmbus_chan_gpadl_connect(struct hv_vmbus * Disconnect the GPA from the target channel */ int -vmbus_chan_gpadl_disconnect(struct hv_vmbus_channel *chan, uint32_t gpadl) +vmbus_chan_gpadl_disconnect(struct vmbus_channel *chan, uint32_t gpadl) { struct vmbus_softc *sc = chan->ch_vmbus; struct vmbus_msghc *mh; @@ -492,7 +492,7 @@ vmbus_chan_gpadl_disconnect(struct hv_vm } static void -vmbus_chan_close_internal(struct hv_vmbus_channel *chan) +vmbus_chan_close_internal(struct vmbus_channel *chan) { struct vmbus_softc *sc = chan->ch_vmbus; struct vmbus_msghc *mh; @@ -569,7 +569,7 @@ vmbus_chan_close_internal(struct hv_vmbu * are not being opened. */ void -vmbus_chan_close(struct hv_vmbus_channel *chan) +vmbus_chan_close(struct vmbus_channel *chan) { int subchan_cnt; @@ -586,7 +586,7 @@ vmbus_chan_close(struct hv_vmbus_channel */ subchan_cnt = chan->ch_subchan_cnt; if (subchan_cnt > 0) { - struct hv_vmbus_channel **subchan; + struct vmbus_channel **subchan; int i; subchan = vmbus_subchan_get(chan, subchan_cnt); @@ -600,7 +600,7 @@ vmbus_chan_close(struct hv_vmbus_channel } int -vmbus_chan_send(struct hv_vmbus_channel *chan, uint16_t type, uint16_t flags, +vmbus_chan_send(struct vmbus_channel *chan, uint16_t type, uint16_t flags, void *data, int dlen, uint64_t xactid) { struct vmbus_chanpkt pkt; @@ -633,7 +633,7 @@ vmbus_chan_send(struct hv_vmbus_channel } int -vmbus_chan_send_sglist(struct hv_vmbus_channel *chan, +vmbus_chan_send_sglist(struct vmbus_channel *chan, struct vmbus_gpa sg[], int sglen, void *data, int dlen, uint64_t xactid) { struct vmbus_chanpkt_sglist pkt; @@ -673,7 +673,7 @@ vmbus_chan_send_sglist(struct hv_vmbus_c } int -vmbus_chan_send_prplist(struct hv_vmbus_channel *chan, +vmbus_chan_send_prplist(struct vmbus_channel *chan, struct vmbus_gpa_range *prp, int prp_cnt, void *data, int dlen, uint64_t xactid) { @@ -715,7 +715,7 @@ vmbus_chan_send_prplist(struct hv_vmbus_ } int -vmbus_chan_recv(struct hv_vmbus_channel *chan, void *data, int *dlen0, +vmbus_chan_recv(struct vmbus_channel *chan, void *data, int *dlen0, uint64_t *xactid) { struct vmbus_chanpkt_hdr pkt; @@ -745,7 +745,7 @@ vmbus_chan_recv(struct hv_vmbus_channel } int -vmbus_chan_recv_pkt(struct hv_vmbus_channel *chan, +vmbus_chan_recv_pkt(struct vmbus_channel *chan, struct vmbus_chanpkt_hdr *pkt0, int *pktlen0) { struct vmbus_chanpkt_hdr pkt; @@ -773,7 +773,7 @@ vmbus_chan_recv_pkt(struct hv_vmbus_chan static void vmbus_chan_task(void *xchan, int pending __unused) { - struct hv_vmbus_channel *chan = xchan; + struct vmbus_channel *chan = xchan; vmbus_chan_callback_t cb = chan->ch_cb; void *cbarg = chan->ch_cbarg; @@ -806,7 +806,7 @@ vmbus_chan_task(void *xchan, int pending static void vmbus_chan_task_nobatch(void *xchan, int pending __unused) { - struct hv_vmbus_channel *chan = xchan; + struct vmbus_channel *chan = xchan; chan->ch_cb(chan, chan->ch_cbarg); } @@ -829,7 +829,7 @@ vmbus_event_flags_proc(struct vmbus_soft chid_base = f << VMBUS_EVTFLAG_SHIFT; while ((chid_ofs = ffsl(flags)) != 0) { - struct hv_vmbus_channel *chan; + struct vmbus_channel *chan; --chid_ofs; /* NOTE: ffsl is 1-based */ flags &= ~(1UL << chid_ofs); @@ -875,7 +875,7 @@ vmbus_event_proc_compat(struct vmbus_sof static void vmbus_chan_update_evtflagcnt(struct vmbus_softc *sc, - const struct hv_vmbus_channel *chan) + const struct vmbus_channel *chan) { volatile int *flag_cnt_ptr; int flag_cnt; @@ -900,10 +900,10 @@ vmbus_chan_update_evtflagcnt(struct vmbu } } -static struct hv_vmbus_channel * +static struct vmbus_channel * vmbus_chan_alloc(struct vmbus_softc *sc) { - struct hv_vmbus_channel *chan; + struct vmbus_channel *chan; chan = malloc(sizeof(*chan), M_DEVBUF, M_WAITOK | M_ZERO); @@ -925,7 +925,7 @@ vmbus_chan_alloc(struct vmbus_softc *sc) } static void -vmbus_chan_free(struct hv_vmbus_channel *chan) +vmbus_chan_free(struct vmbus_channel *chan) { /* TODO: assert sub-channel list is empty */ /* TODO: asset no longer on the primary channel's sub-channel list */ @@ -936,10 +936,10 @@ vmbus_chan_free(struct hv_vmbus_channel } static int -vmbus_chan_add(struct hv_vmbus_channel *newchan) +vmbus_chan_add(struct vmbus_channel *newchan) { struct vmbus_softc *sc = newchan->ch_vmbus; - struct hv_vmbus_channel *prichan; + struct vmbus_channel *prichan; if (newchan->ch_id == 0) { /* @@ -1027,7 +1027,7 @@ vmbus_chan_add(struct hv_vmbus_channel * } void -vmbus_chan_cpu_set(struct hv_vmbus_channel *chan, int cpu) +vmbus_chan_cpu_set(struct vmbus_channel *chan, int cpu) { KASSERT(cpu >= 0 && cpu < mp_ncpus, ("invalid cpu %d", cpu)); @@ -1047,7 +1047,7 @@ vmbus_chan_cpu_set(struct hv_vmbus_chann } void -vmbus_chan_cpu_rr(struct hv_vmbus_channel *chan) +vmbus_chan_cpu_rr(struct vmbus_channel *chan) { static uint32_t vmbus_chan_nextcpu; int cpu; @@ -1057,7 +1057,7 @@ vmbus_chan_cpu_rr(struct hv_vmbus_channe } static void -vmbus_chan_cpu_default(struct hv_vmbus_channel *chan) +vmbus_chan_cpu_default(struct vmbus_channel *chan) { /* * By default, pin the channel to cpu0. Devices having @@ -1072,7 +1072,7 @@ vmbus_chan_msgproc_choffer(struct vmbus_ const struct vmbus_message *msg) { const struct vmbus_chanmsg_choffer *offer; - struct hv_vmbus_channel *chan; + struct vmbus_channel *chan; int error; offer = (const struct vmbus_chanmsg_choffer *)msg->msg_data; @@ -1152,7 +1152,7 @@ vmbus_chan_msgproc_chrescind(struct vmbu const struct vmbus_message *msg) { const struct vmbus_chanmsg_chrescind *note; - struct hv_vmbus_channel *chan; + struct vmbus_channel *chan; note = (const struct vmbus_chanmsg_chrescind *)msg->msg_data; if (note->chm_chanid > VMBUS_CHAN_MAX) { @@ -1177,7 +1177,7 @@ vmbus_chan_msgproc_chrescind(struct vmbu static void vmbus_chan_detach_task(void *xchan, int pending __unused) { - struct hv_vmbus_channel *chan = xchan; + struct vmbus_channel *chan = xchan; if (VMBUS_CHAN_ISPRIMARY(chan)) { /* Only primary channel owns the device */ @@ -1185,7 +1185,7 @@ vmbus_chan_detach_task(void *xchan, int /* NOTE: DO NOT free primary channel for now */ } else { struct vmbus_softc *sc = chan->ch_vmbus; - struct hv_vmbus_channel *pri_chan = chan->ch_prichan; + struct vmbus_channel *pri_chan = chan->ch_prichan; struct vmbus_chanmsg_chfree *req; struct vmbus_msghc *mh; int error; @@ -1235,7 +1235,7 @@ remove: void vmbus_chan_destroy_all(struct vmbus_softc *sc) { - struct hv_vmbus_channel *chan; + struct vmbus_channel *chan; mtx_lock(&sc->vmbus_prichan_lock); while ((chan = TAILQ_FIRST(&sc->vmbus_prichans)) != NULL) { @@ -1249,7 +1249,7 @@ vmbus_chan_destroy_all(struct vmbus_soft mtx_lock(&sc->vmbus_prichan_lock); } bzero(sc->vmbus_chmap, - sizeof(struct hv_vmbus_channel *) * VMBUS_CHAN_MAX); + sizeof(struct vmbus_channel *) * VMBUS_CHAN_MAX); mtx_unlock(&sc->vmbus_prichan_lock); } @@ -1258,10 +1258,10 @@ vmbus_chan_destroy_all(struct vmbus_soft * be selected. * If no multi-channel, always select primary channel. */ -struct hv_vmbus_channel * -vmbus_chan_cpu2chan(struct hv_vmbus_channel *prichan, int cpu) +struct vmbus_channel * +vmbus_chan_cpu2chan(struct vmbus_channel *prichan, int cpu) { - struct hv_vmbus_channel *sel, *chan; + struct vmbus_channel *sel, *chan; uint32_t vcpu, sel_dist; KASSERT(cpu >= 0 && cpu < mp_ncpus, ("invalid cpuid %d", cpu)); @@ -1312,13 +1312,13 @@ do { \ return sel; } -struct hv_vmbus_channel ** -vmbus_subchan_get(struct hv_vmbus_channel *pri_chan, int subchan_cnt) +struct vmbus_channel ** +vmbus_subchan_get(struct vmbus_channel *pri_chan, int subchan_cnt) { - struct hv_vmbus_channel **ret, *chan; + struct vmbus_channel **ret, *chan; int i; - ret = malloc(subchan_cnt * sizeof(struct hv_vmbus_channel *), M_TEMP, + ret = malloc(subchan_cnt * sizeof(struct vmbus_channel *), M_TEMP, M_WAITOK); mtx_lock(&pri_chan->ch_subchan_lock); @@ -1344,14 +1344,14 @@ vmbus_subchan_get(struct hv_vmbus_channe } void -vmbus_subchan_rel(struct hv_vmbus_channel **subchan, int subchan_cnt __unused) +vmbus_subchan_rel(struct vmbus_channel **subchan, int subchan_cnt __unused) { free(subchan, M_TEMP); } void -vmbus_subchan_drain(struct hv_vmbus_channel *pri_chan) +vmbus_subchan_drain(struct vmbus_channel *pri_chan) { mtx_lock(&pri_chan->ch_subchan_lock); while (pri_chan->ch_subchan_cnt > 0) @@ -1375,7 +1375,7 @@ vmbus_chan_msgproc(struct vmbus_softc *s } void -vmbus_chan_set_readbatch(struct hv_vmbus_channel *chan, bool on) +vmbus_chan_set_readbatch(struct vmbus_channel *chan, bool on) { if (!on) chan->ch_flags &= ~VMBUS_CHAN_FLAG_BATCHREAD; @@ -1384,19 +1384,19 @@ vmbus_chan_set_readbatch(struct hv_vmbus } uint32_t -vmbus_chan_id(const struct hv_vmbus_channel *chan) +vmbus_chan_id(const struct vmbus_channel *chan) { return chan->ch_id; } uint32_t -vmbus_chan_subidx(const struct hv_vmbus_channel *chan) +vmbus_chan_subidx(const struct vmbus_channel *chan) { return chan->ch_subidx; } bool -vmbus_chan_is_primary(const struct hv_vmbus_channel *chan) +vmbus_chan_is_primary(const struct vmbus_channel *chan) { if (VMBUS_CHAN_ISPRIMARY(chan)) return true; @@ -1405,7 +1405,7 @@ vmbus_chan_is_primary(const struct hv_vm } const struct hyperv_guid * -vmbus_chan_guid_inst(const struct hv_vmbus_channel *chan) +vmbus_chan_guid_inst(const struct vmbus_channel *chan) { return &chan->ch_guid_inst; } Modified: head/sys/dev/hyperv/vmbus/vmbus_chanvar.h ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Thu Jul 21 06:09:47 2016 (r303131) @@ -70,7 +70,7 @@ typedef struct { uint32_t ring_data_size; /* ring_size */ } hv_vmbus_ring_buffer_info; -typedef struct hv_vmbus_channel { +struct vmbus_channel { /* * NOTE: * Fields before ch_txbr are only accessed on this channel's @@ -142,19 +142,19 @@ typedef struct hv_vmbus_channel { * channel. */ struct mtx ch_subchan_lock; - TAILQ_HEAD(, hv_vmbus_channel) ch_subchans; + TAILQ_HEAD(, vmbus_channel) ch_subchans; int ch_subchan_cnt; /* If this is a sub-channel */ - TAILQ_ENTRY(hv_vmbus_channel) ch_sublink; /* sub-channel link */ - struct hv_vmbus_channel *ch_prichan; /* owner primary chan */ + TAILQ_ENTRY(vmbus_channel) ch_sublink; /* sub-channel link */ + struct vmbus_channel *ch_prichan; /* owner primary chan */ void *ch_bufring; /* TX+RX bufrings */ struct hyperv_dma ch_bufring_dma; uint32_t ch_bufring_gpadl; struct task ch_detach_task; - TAILQ_ENTRY(hv_vmbus_channel) ch_prilink; /* primary chan link */ + TAILQ_ENTRY(vmbus_channel) ch_prilink; /* primary chan link */ uint32_t ch_subidx; /* subchan index */ volatile uint32_t ch_stflags; /* atomic-op */ /* VMBUS_CHAN_ST_ */ @@ -162,7 +162,7 @@ typedef struct hv_vmbus_channel { struct hyperv_guid ch_guid_inst; struct sysctl_ctx_list ch_sysctl_ctx; -} hv_vmbus_channel __aligned(CACHE_LINE_SIZE); +} __aligned(CACHE_LINE_SIZE); #define VMBUS_CHAN_ISPRIMARY(chan) ((chan)->ch_subidx == 0) Modified: head/sys/dev/hyperv/vmbus/vmbus_var.h ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_var.h Thu Jul 21 06:06:11 2016 (r303130) +++ head/sys/dev/hyperv/vmbus/vmbus_var.h Thu Jul 21 06:09:47 2016 (r303131) @@ -86,7 +86,7 @@ struct vmbus_softc { u_long *vmbus_rx_evtflags; /* compat evtflgs from host */ - struct hv_vmbus_channel **vmbus_chmap; + struct vmbus_channel **vmbus_chmap; struct vmbus_msghc_ctx *vmbus_msg_hc; struct vmbus_pcpu_data vmbus_pcpu[MAXCPU]; @@ -115,7 +115,7 @@ struct vmbus_softc { /* Primary channels */ struct mtx vmbus_prichan_lock; - TAILQ_HEAD(, hv_vmbus_channel) vmbus_prichans; + TAILQ_HEAD(, vmbus_channel) vmbus_prichans; }; #define VMBUS_FLAG_ATTACHED 0x0001 /* vmbus was attached */ @@ -138,14 +138,14 @@ vmbus_get_device(void) #define VMBUS_PCPU_GET(sc, field, cpu) (sc)->vmbus_pcpu[(cpu)].field #define VMBUS_PCPU_PTR(sc, field, cpu) &(sc)->vmbus_pcpu[(cpu)].field -struct hv_vmbus_channel; +struct vmbus_channel; struct trapframe; struct vmbus_message; struct vmbus_msghc; void vmbus_handle_intr(struct trapframe *); -int vmbus_add_child(struct hv_vmbus_channel *); -int vmbus_delete_child(struct hv_vmbus_channel *); +int vmbus_add_child(struct vmbus_channel *); +int vmbus_delete_child(struct vmbus_channel *); void vmbus_et_intr(struct trapframe *); uint32_t vmbus_gpadl_alloc(struct vmbus_softc *); From owner-svn-src-all@freebsd.org Thu Jul 21 07:34:43 2016 Return-Path: Delivered-To: svn-src-all@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 24288BA00AE; Thu, 21 Jul 2016 07:34:43 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mail.miracle.cz (mail.miracle.cz [193.84.128.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.miracle.cz", Issuer "Miracle Group Root CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 8B6FE147F; Thu, 21 Jul 2016 07:34:42 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from [193.84.128.50] (meloun.ad.miracle.cz [193.84.128.50]) by mail.miracle.cz (Postfix) with ESMTPSA id 95A523AC9B; Thu, 21 Jul 2016 09:34:39 +0200 (CEST) Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Nathan Whitehorn , Svatopluk Kraus , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578E0B5D.3070105@FreeBSD.org> <578F6075.7010500@FreeBSD.org> <05a80ac6-4285-ec9d-36e9-2f92c609f746@freebsd.org> From: Michal Meloun X-Enigmail-Draft-Status: N1110 Message-ID: <57907B0F.9070204@FreeBSD.org> Date: Thu, 21 Jul 2016 09:34:39 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <05a80ac6-4285-ec9d-36e9-2f92c609f746@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.miracle.cz); Thu, 21 Jul 2016 09:34:39 +0200 (CEST) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 07:34:43 -0000 Dne 20.07.2016 v 17:45 Nathan Whitehorn napsal(a): > > > On 07/20/16 04:28, Michal Meloun wrote: >> Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): >>> >>> >>> On 07/19/16 04:13, Michal Meloun wrote: >>>> Dne 19.07.2016 v 2:11 Nathan Whitehorn napsal(a): >>>> Hi Nathan, >>>> I’m afraid that skra is on vacation, for next 2 weeks (at minimum), so >>>> please don’t expect quick response. >>>> >>>>> Could you please describe what this change is in more detail? >>>> Short description is appended. >>>> >>>>> It breaks a lot of encapsulations we have worked very hard to >>>>> maintain, >>>>> moves ARM code into MI parts of the kernel, and the OFW parts violate >>>>> IEEE 1275 (the Open Firmware standard). In particular, there is no >>>>> guarantee that the interrupts for a newbus (or OF) device are >>>>> encoded in >>>>> a property called "interrupts" (or, indeed, in any property at >>>>> all) on >>>>> that node and there are many, many device trees where that is not the >>>>> case (e.g. ones with interrupt maps, as well as Apple hardware). By >>>>> putting that knowledge into the OF root bus device, which we have >>>>> tried >>>>> to keep it out of, this enforces a standard that doesn't actually >>>>> exist. >>>> Imho, this patch doesn’t change anything in this area. Only >>>> handling of >>>> “interrupts†property is changed, all other cases are unchanged (I >>>> hope). Also, INTRNG code is currently shared by ARM, ARM64 and MIPS. >>> >>> But "interrupts" isn't a generic part of OF. This makes it one, >>> incorrectly. >> How? Can you be little more exact ? > > Because it puts knowledge into ofwbus that expects that children at > arbitrary levels of nesting have interrupts defined by an "interrupts" > property. You could patch this through on sub-devices, of course, but > that's already done correctly by the existing ofw_bus_map_intr() code > in a much more robust way that doesn't involve trying to guess how > sub-buses and devices have chosen to allocate resources. Why reinvent > the wheel all the way through the bus hierarchy? Nope, the code only expect that „interrupts" property is default way hot to get interrupt description. Any device or bus in the hierarchy can fill appropriate resource list, or terminate call at any level. > >>> >>>> >>>>> I'm hesitant to ask for reversion on something that landed 6 weeks >>>>> ago >>>>> without me noticing, but this needs a lot more architectural work >>>>> before >>>>> any parts of the kernel should use it. >>>>> -Nathan >>>> I think that it’s too late. This patch series consist of r301451 >>>> (https://reviews.freebsd.org/D6632), >>>> r301453, r301539 and 301543. And new GPIO interrupts are currently >>>> used >>>> (by in tree drivers or in development trees). >>> >>> Well, then we need in-place rearchitecture. >>> >>>> >>>> >>>> The root of problem is that standard way of delivering interrupt >>>> resource to consumer driver doesn’t works in OFW world. >>>> >>>> So we have some fact: >>>> - the format of interrupt property is dependent of interrupt >>>> controller and only interrupt controller can parse it. >>>> - the interrupt property can have more data than just interrupt >>>> number. >>>> - single interrupt controller must be able to handle multiple >>>> format of interrupt description. >>>> >>>> In pre-patchset era, simplebus enumerates children and attempts to set >>>> memory and interrupts to resource list for them. But the interrupt >>>> controllers are not yet populated so nobody can parse interrupt >>>> property. Moreover, in all cases (parsed or not), we cannot store >>>> complete interrupt description into resource list. >>> >>> We have done this for many years on PowerPC and sparc64 with delayed >>> configuration of interrupts and a look-up table. This handles >>> complicated bus configurations better than this code and requires no >>> changes outside of a few MD files. That is why the (now partially >>> duplicated) OFW_BUS_MAP_INTR() function exists. That one also has >>> the benefit of still working when used in conjunction with, e.g., >>> devices with an interrupt-map-mask property. >>> >>>> >>>> The patch simply postpones reading of interrupt property to >>>> bus_alloc_resource() (called by consumer driver) time. >>>> >>>> Due to this, we can: >>>> - parse interrupt property. The interrupt driver must exist >>>> at this time. >>> >>> This only works with some types of interrupt properties, not all, >>> and breaks if the interrupt driver hasn't attached yet (which it >>> can't be guaranteed to -- some PPC systems have interrupt drivers >>> that live on the PCI bus, for example). >> How you can allocate (and reserve it in rman) interrupt if is not >> mapped (so you have not real IRQ number for it). Just for notice - >> multiple virtual IRQs can be mapped into single real IRQ. > > The core idea is to think of the full interrupt specifier -- the > interrupt parent and the full byte string in the device tree -- as the > IRQ rather than the interrupt pin on some chip (which is usually, but > not always, the first word in that byte string). The "virtual" IRQ > number is just a compression of that longer piece of data, which > usually can't fit in an rman resource. I understand. While this approach can works (and actually works) for single sourced OFW world, it immediately fails if you must be able to parse data from different sources (which uses different encoding) (OFW, UEFI / ACPI, GPIO...) within one system. By this, one byte string in OFW encoding can describe one IRQ and exactly same string in UEFI encoding can describe different IRQ. Or, in reverse, OFW and UEFI can describe same (and compatible) IRQ by two different strings. This is exact reason, why we discards virtual IRQ idea and I think that this fact is root issue of this clash. Probably it doesn't make sense to talk about others, unless we can find consensus on this. > There is no need to actually activate those interrupts before > interrupts are enabled, so you can just cache them in a table until > the end of device probing, which lets you break circular dependency > loops between bus and interrupt topology. > > So long as you keep track of your mapping and the same (parent, > interrupt specifier) parent always gives the same virtual IRQ, there > is no way in this system to map multiple active IRQs onto a single > interrupt pin on the PIC unless your device tree is broken and > specifies two devices with incompatible modes (active high and edge > downgoing or something) on the same pin. In this case, nothing you can > do will save you -- unless your PIC supports interrupts for different > kinds of events, in which case this system will work perfectly by > treating them as different interrupts to the kernel for which the fact > they are on the same pin is immaterial. > > I should note that ARM and MIPS have an almost complete implementation > of this already: maybe some more intr_machdep.c logic is needed for > some cases, but all the rest of the plumbing is there. > >> >>> >>>> - bus_alloc_resource() returns resource, so we can attach parsed >>>> interrupt data to it. By this, the resource itself can be used >>>> for delivering configuration data to subsequent call to >>>> bus_setup_intr() (or to all related bus_() calls). >>>> >>>> >>>> The patched code still accepts delivering of interrupts in resource >>>> list. >>>> >>>> Michal >>>> >>> >>> Given that other code depends on this, fixing it will likely require >>> some complex work. I wish I had known about it when it went in. >>> >>> There are three main problems: >>> 1. It doesn't work for interrupts defined by other mechanisms (e.g. >>> interrupt-map properties) >> I aggree, but missing ' interrupt-map' functioanlity is not caused by >> this patch. > > It is in that the standard system already implements it completely. Really? https://svnweb.freebsd.org/base/head/sys/dev/ofw/ofw_bus_subr.c?revision=301453&view=markup#l521 and https://svnweb.freebsd.org/base/head/sys/arm/arm/nexus.c?revision=301453&view=markup#l411 > >> >>> 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), >>> but is both problematically more general and less flexible (it has >>> requirements on timing of PIC attachment vs. driver resource >>> allocation) >> OFW_BUS_MAP_INTR() can parse only OFW based data and expect that >> parsed data are magicaly stored within the call. >> The new method, bus_map_intr(), can parse data from multiple >> sources (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). It >> also returns parsed data back to caller. > > That is not true. It works as long as you can specify the interrupt > state as a 32-bit key of some kind for the PIC and a string of > arbitrary data, which works with all of those. You could even make the > interrupt data be a pointer to exactly the structs you have chosen to > define here. Nope, in heterogeneous world, same string can describe two different IRQs and/or two different strings can describe single IRQ in compatible manner. > >> And no, it doesn't add any additional timing requirements . > > As far as I can tell, it requires the interrupt controller to be > attached before you can allocate interrupts. Is that not true? Yes, sure. And the patch doesn't change this. Before: https://svnweb.freebsd.org/base/head/sys/kern/subr_intr.c?view=markup&pathrev=301263#l1103 After: https://svnweb.freebsd.org/base/head/sys/kern/subr_intr.c?view=markup&pathrev=301543#l928 > >> >>> 3. It is not fully transparent to end code. Since it happens at >>> bus_alloc_resource() time, it is complicated to get the appropriate >>> values for IRQs constructed by composite techniques (interrupt-map >>> vs. interrupts vs. hand allocation vs. PCI routing, for example). >> I don't see any limitation - can you be more exact? Why is not >> transparent? Why is more complicated ? > > Suppose that a PCI device adds more IRQs to its resource list or > modifies the ordering. How is whatever bus layer supposed to do > something sensible at allocation time? It requires that RID numbers > mean something to the parent bus after assignment, which is not > guaranteed by anything and is, in more than handful of cases I think > of, not true in practice. Sure. And since the new code allows delivering resources in RL, so I don't see any limitation here. > >>> It is much easier to do this correctly at bus attach time when the >>> resource lists are made (how PPC does it). >>> >> I don't agree. I don't agree. Making this at bus attach time leads >> into complicated 'virtual' IRQ infrastructure, with many unresolved >> corner cases. > > Which unresolved corner cases? This has been working correctly on a > number of platforms in both FreeBSD and Linux for many years. Nope, it doesn't work for ARM yet (for GPIO interrupts for example) and Linux uses EPROBE_DEFER mechanism for a long time. See: http://lxr.free-electrons.com/source/drivers/base/platform.c#L87 > >> >>> (1) is easy to fix without API changes, but (2) and (3) are >>> fundamental architectural problems that will bite us immediately >>> down the road and cause a permanent schism between OF support on >>> different platforms. >>> >>> Let me describe how this is handled on PowerPC (Linux on PPC solves >>> the problem the same way). When constructing a resource list, bus >>> drivers that construct them from OF properties call >>> ofw_bus_map_intr() with the interrupt parent phandle and the array >>> of cells corresponding to the interrupt. This thunks immediately to >>> nexus, which connects to code in intr_machdep.c. Code there assigns >>> a unique made-up virtual IRQ and returns it, caching the interrupt >>> parent ID and opaque interrupt data (if the same string of data >>> reappears later, you get back the same virtual IRQ of course). >>> >>> When PIC drivers attach and register themselves with the interrupt >>> handling layer, all the interrupts for that PIC are passed to it >>> along with the virtual IRQ. The PIC driver is supposed to know what >>> its interrupt data mean, which can be safely guaranteed, and it >>> presents the assigned virtual IRQ number to the kernel when >>> dispatching interrupts. (IRQs configured after PIC attachment are >>> passed through immediately). >>> >>> This accomplishes the following things: >>> 1. Parsing interrupt data is moved to the PIC driver, which is the >>> only place it can be done safely. >> I don't see anything different comparing with INTRNG. > > What I am advocating *is* INTRNG, at least as originally conceived and > implemented. > >>> 2. There is no ordering requirement on PIC attachment vs. the >>> attachment of anything else. >> I think thats is not a true - PIC must exist before >> bus_alloc_resource() / bus_setup_intr() is called. > > It does not with the IRQ mapping infrastructure. Interrupts are set up > at PIC attachment, whenever that occurs. > Assuming that bus_alloc_resource and bus_setup_intr() are close thorougher and in linear piece of code, can i assume that you can call bus_setup_intr() without PIC attached ? >> >>> 3. Changes are extremely minimal relative to the "standard" >>> interrupt flow: you only have to patch code that is already directly >>> dealing with OF interrupts. >> I don't see anything different comparing with INTRNG. > > Again, this was the original INTRNG architecture and is already > implemented. As such, there are *no* changes required on ARM to get > it. bus_map_intr() adds a bunch of new code, in parallel with the old > code that also solves the problem, to no purpose. So, on PPC, how i can get interrupt for GPIO pin described by this property: https://svnweb.freebsd.org/base/head/sys/gnu/dts/arm/tegra124-jetson-tk1.dts?revision=295436&view=markup#l1691 > >>> 4. It happens at bus enumeration time, when results can be >>> guaranteed self-consistent. >> Where do you see any potential source of inconsistency in INTRNG? > > See the example above about modified interrupt lists. There is also no > obvious way for a child device to construct an interrupt not assigned > to it by the parent device from device tree properties without knowing > in some detail what kind of interrupt needs to be built. > >> >>> 5. It combines naturally with ofw_bus_lookup_imap() and friends in >>> the interrupt-map case (e.g. for PCI). >> Again, I don't see anything different. Proper parsing of interrupt >> property is not a problem of INTRNG (but must be fixed, of course). > > But it is *already* fixed by the standard code that already exists. > You are introducing a less-functional parallel code path here. NO, its not fixed, at least not for ARM. > >>> >>> I'm not sure what the right path forward is, but this code needs to >>> be fixed. The PowerPC code is fully MI, and was the template for the >>> original INTRNG, so it shouldn't be too bad to replace. >>> -Nathan >>> >> >> So, new INTRNG: >> - Introduces new more general bus method that can parse interrupt >> configuration >> data from any source. Is this step backward? > > Yes, since it is more general in some sense, while simultaneously > handling fewer cases than code that already exists and is implemented. > >> >> - Old INTRNG and PPC code stores unparsed and/or parsed interrupt data in >> INTRNG and each consumer must query for them. This data sharing >> also causes >> significant locking issues. New INTRNG stores interrupt >> configuration data into >> given resource, so each relevant bus method can access it immediately. >> Is this step backward? > > Which locking issues? And yes, it is. > >> >> - New INTRNG is not OFW centric, it can works with virtually >> unlimited number >> of configuration data sources. Is this step backward? > > Also yes, because it makes the interrupt handles less opaque, which > makes the infrastructure less flexible. > >> - New INTRNG correctly uses standard system infrastructure. Real IRQ >> number >> is reserved in rman within bus_alloc_resource() call, interrupt HW is >> configured (only!) within bus_setup_intr() call. Is this step >> backward? > > The "real" IRQ number is not well defined always, so requiring that is > a step backwards, yes. > >> - New INTRNG completely eliminates huge and not always working virtual >> IRQ concept. > > When does it "not always work"? It seems to, in fact, always work on > multiple platforms and have for a long time in the face of all kinds > of totally bizarre topologies and system architectures. > >> >> >> Don’t take me bad, I’m open to any change. But no, at this time, I’m >> not ready to completely revert someone else's work – although I am a >> co-author. > > I would urge, in the strongest possible terms, that this be backed out > from stable/11 at least. We can add the new API back for 11.1 if we > want it, but we totally lose the ability to change it later in the > stable/11 cycle if it stays in now. > -Nathan > The API is part of still unstable, experimental INTRNG, so its not fixed we we can change it at any time, I think. But yes, we forget to wrap new bus_map_intr() method (and associated code) by #ifdef INTRNG. Is this sufficient for you? Michal From owner-svn-src-all@freebsd.org Thu Jul 21 08:08:05 2016 Return-Path: Delivered-To: svn-src-all@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 6FE72BA0DB0; Thu, 21 Jul 2016 08:08:05 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (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 3994418DB; Thu, 21 Jul 2016 08:08:04 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 580811FE024; Thu, 21 Jul 2016 10:08:00 +0200 (CEST) Subject: Re: svn commit: r303096 - head/sys/kern To: Gleb Smirnoff , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201607201644.u6KGiM3e007023@repo.freebsd.org> From: Hans Petter Selasky Message-ID: <6162a195-05ae-0095-cf9e-115df497e577@selasky.org> Date: Thu, 21 Jul 2016 10:12:02 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: <201607201644.u6KGiM3e007023@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 08:08:05 -0000 On 07/20/16 18:44, Gleb Smirnoff wrote: > Author: glebius > Date: Wed Jul 20 16:44:22 2016 > New Revision: 303096 > URL: https://svnweb.freebsd.org/changeset/base/303096 > > Log: > Revert r303037. It re-introduces the panic with TCP timers. > > Agreed by: rrs, re (gjb) > > Modified: > head/sys/kern/kern_timeout.c > Hi, The panic with TCP timers can also be fixes calling callout_stop() twice instead of once. First time out call it it will return 1,0,-1. Second time only 0 or -1. --HPS From owner-svn-src-all@freebsd.org Thu Jul 21 08:11:59 2016 Return-Path: Delivered-To: svn-src-all@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 9C5B6BA0F75; Thu, 21 Jul 2016 08:11:59 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (heidi.turbocat.net [88.198.202.214]) (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 645CA1DE5; Thu, 21 Jul 2016 08:11:59 +0000 (UTC) (envelope-from hps@selasky.org) Received: from laptop015.home.selasky.org (unknown [62.141.129.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 096321FE024; Thu, 21 Jul 2016 10:11:56 +0200 (CEST) Subject: Re: svn commit: r303096 - head/sys/kern To: Gleb Smirnoff , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201607201644.u6KGiM3e007023@repo.freebsd.org> <6162a195-05ae-0095-cf9e-115df497e577@selasky.org> From: Hans Petter Selasky Message-ID: <900304a4-aec9-2404-fbfc-4183997fe4ce@selasky.org> Date: Thu, 21 Jul 2016 10:15:59 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: <6162a195-05ae-0095-cf9e-115df497e577@selasky.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 08:11:59 -0000 On 07/21/16 10:12, Hans Petter Selasky wrote: > On 07/20/16 18:44, Gleb Smirnoff wrote: >> Author: glebius >> Date: Wed Jul 20 16:44:22 2016 >> New Revision: 303096 >> URL: https://svnweb.freebsd.org/changeset/base/303096 >> >> Log: >> Revert r303037. It re-introduces the panic with TCP timers. >> >> Agreed by: rrs, re (gjb) >> >> Modified: >> head/sys/kern/kern_timeout.c >> > > Hi, > > The panic with TCP timers can also be fixes calling callout_stop() twice > instead of once. s/fixes/fixed > > First time out call it it will return 1,0,-1. Second time only 0 or -1. First call will return 1,0,-1 and second time it will return 0 or -1, which is what you are looking for. --HPS From owner-svn-src-all@freebsd.org Thu Jul 21 08:22:26 2016 Return-Path: Delivered-To: svn-src-all@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 DEE59B9F470; Thu, 21 Jul 2016 08:22:26 +0000 (UTC) (envelope-from trasz@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 BD02816E8; Thu, 21 Jul 2016 08:22:26 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L8MQTo056938; Thu, 21 Jul 2016 08:22:26 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L8MPkU056936; Thu, 21 Jul 2016 08:22:25 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <201607210822.u6L8MPkU056936@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Thu, 21 Jul 2016 08:22:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303132 - head/usr.sbin/ctld X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 08:22:27 -0000 Author: trasz Date: Thu Jul 21 08:22:25 2016 New Revision: 303132 URL: https://svnweb.freebsd.org/changeset/base/303132 Log: Add documentation for "ctld -u", the UCL configuration file format. Submitted by: jceel@ Reviewed by: wblock@ MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D7222 Modified: head/usr.sbin/ctld/ctl.conf.5 head/usr.sbin/ctld/ctld.8 Modified: head/usr.sbin/ctld/ctl.conf.5 ============================================================================== --- head/usr.sbin/ctld/ctl.conf.5 Thu Jul 21 06:09:47 2016 (r303131) +++ head/usr.sbin/ctld/ctl.conf.5 Thu Jul 21 08:22:25 2016 (r303132) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 9, 2015 +.Dd July 21, 2016 .Dt CTL.CONF 5 .Os .Sh NAME @@ -481,6 +481,97 @@ target naa.50015178f369f092 { lun 0 example_1 } .Ed +.Pp +An equivalent configuration in UCL format, for use with +.Fl u : +.Bd -literal +auth-group { + ag0 { + chap-mutual = [ + { + user = "user" + secret = "secretsecret" + mutual-user = "mutualuser" + mutual-secret = "mutualsecret" + }, + { + user = "user2" + secret = "secret2secret2" + mutual-user = "mutualuser" + mutual-secret = "mutualsecret" + } + ] + } + + ag1 { + auth-type = none + initiator-name = [ + "iqn.2012-06.com.example:initiatorhost1", + "iqn.2012-06.com.example:initiatorhost2" + ] + initiator-portal = [192.168.1.1/24, "[2001:db8::de:ef]"] + } +} + +portal-group { + pg0 { + discovery-auth-group = no-authentication + listen = [ + 0.0.0.0:3260, + "[::]:3260", + "[fe80::be:ef]:3261" + ] + } +} + +lun { + example_0 { + path = /dev/zvol/tank/example_0 + blocksize = 4096 + size = "4G" + } + + example_1 { + path = /dev/zvol/tank/example_1 + options { + naa = "0x50015178f369f093" + } + } + + example_2 { + path = /dev/zvol/tank/example_2 + options { + vendor = "FreeBSD" + } + } +} + +target { + "iqn.2012-06.com.example:target0" { + alias = "Example target" + auth-group = no-authentication + lun = [ + { number = 0, name = example_0 }, + ] + } + + "iqn.2012-06.com.example:target1" { + auth-group = ag0 + portal-group { name = pg0 } + lun = [ + { number = 0, name = example_1 }, + { number = 1, name = example_2 } + ] + } + + naa.50015178f369f092 { + port = isp0 + lun = [ + { number = 0, name = example_1 } + ] + } +} +.Ed .Sh SEE ALSO .Xr ctl 4 , .Xr ctladm 8 , Modified: head/usr.sbin/ctld/ctld.8 ============================================================================== --- head/usr.sbin/ctld/ctld.8 Thu Jul 21 06:09:47 2016 (r303131) +++ head/usr.sbin/ctld/ctld.8 Thu Jul 21 08:22:25 2016 (r303132) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 22, 2015 +.Dd July 21, 2016 .Dt CTLD 8 .Os .Sh NAME @@ -37,6 +37,7 @@ .Nm .Op Fl d .Op Fl f Ar config-file +.Op Fl u .Sh DESCRIPTION The .Nm @@ -84,6 +85,8 @@ The daemon sends verbose debug output to put itself in the background. The daemon will also not fork and will exit after processing one connection. This option is only intended for debugging the target. +.It Fl u +Use UCL configuration file format instead of the traditional non-UCL format. .El .Sh FILES .Bl -tag -width ".Pa /var/run/ctld.pid" -compact From owner-svn-src-all@freebsd.org Thu Jul 21 09:24:06 2016 Return-Path: Delivered-To: svn-src-all@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 127CFB9F1DC; Thu, 21 Jul 2016 09:24:06 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from kif.fubar.geek.nz (kif.fubar.geek.nz [178.62.119.249]) by mx1.freebsd.org (Postfix) with ESMTP id D7E471E10; Thu, 21 Jul 2016 09:24:05 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from zapp (host81-149-102-120.in-addr.btopenworld.com [81.149.102.120]) by kif.fubar.geek.nz (Postfix) with ESMTPSA id C5785D78FE; Thu, 21 Jul 2016 09:23:34 +0000 (UTC) Date: Thu, 21 Jul 2016 10:23:30 +0100 From: Andrew Turner To: Warner Losh Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303123 - head/sys/cam Message-ID: <20160721102330.34a848a2@zapp> In-Reply-To: <201607210311.u6L3BZH4041241@repo.freebsd.org> References: <201607210311.u6L3BZH4041241@repo.freebsd.org> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 09:24:06 -0000 On Thu, 21 Jul 2016 03:11:35 +0000 (UTC) Warner Losh wrote: > Author: imp > Date: Thu Jul 21 03:11:35 2016 > New Revision: 303123 > URL: https://svnweb.freebsd.org/changeset/base/303123 > > Log: > Fix mismerge and include the nvme support. > Also, print out the name of any CCB's functions that's not > supported. > MFC after: 1 week > > Modified: > head/sys/cam/cam_xpt.c > > Modified: head/sys/cam/cam_xpt.c > ============================================================================== > --- head/sys/cam/cam_xpt.c Thu Jul 21 00:53:14 2016 > (r303122) +++ head/sys/cam/cam_xpt.c Thu Jul 21 03:11:35 > 2016 (r303123) @@ -1033,6 +1033,8 @@ > xpt_announce_periph(struct cam_periph *p else if > (path->device->protocol == PROTO_SEMB) semb_print_ident( > (struct sep_identify_data > *)&path->device->ident_data); > + else if (path->device->protocol == PROTO_NVME) > + nvme_print_ident(path->device->nvme_cdata, > path->device->nvme_data); This breaks kernel configs with scbus but not nvme. This seems to be most of the non-x86 configs. linking kernel.full cam_xpt.o: In function `xpt_announce_periph': /usr/home/andrew/freebsd/repo/head-svn/sys/cam/cam_xpt.c:1037: undefined reference to `nvme_print_ident' cam_xpt.o: In function `xpt_denounce_periph': /usr/home/andrew/freebsd/repo/head-svn/sys/cam/cam_xpt.c:1092: undefined reference to `nvme_print_ident' cam_xpt.o: In function `xpt_run_devq': /usr/home/andrew/freebsd/repo/head-svn/sys/cam/cam_xpt.c:3331: undefined reference to `nvme_op_string' /usr/home/andrew/freebsd/repo/head-svn/sys/cam/cam_xpt.c:3331: undefined reference to `nvme_cmd_string' cam_xpt.o: In function `xpt_bus_register': /usr/home/andrew/freebsd/repo/head-svn/sys/cam/cam_xpt.c:3927: undefined reference to `nvme_get_xport' --- kernel.full --- *** [kernel.full] Error code 1 Andrew From owner-svn-src-all@freebsd.org Thu Jul 21 09:32:57 2016 Return-Path: Delivered-To: svn-src-all@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 65403B9F496; Thu, 21 Jul 2016 09:32:57 +0000 (UTC) (envelope-from andrew@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 327C414B4; Thu, 21 Jul 2016 09:32:57 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L9Wuqc082131; Thu, 21 Jul 2016 09:32:56 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L9WuPh082127; Thu, 21 Jul 2016 09:32:56 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201607210932.u6L9WuPh082127@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Thu, 21 Jul 2016 09:32:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303133 - head/sys/dev/uart X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 09:32:57 -0000 Author: andrew Date: Thu Jul 21 09:32:55 2016 New Revision: 303133 URL: https://svnweb.freebsd.org/changeset/base/303133 Log: Add support for arm64 to uart_dev_acpi by using the _HID property to find the uart class to use in a similar way as the fdt driver. Obtained from: ABT Systems Ltd MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D7248 Added: head/sys/dev/uart/uart_cpu_acpi.h (contents, props changed) Modified: head/sys/dev/uart/uart_bus_acpi.c head/sys/dev/uart/uart_dev_pl011.c Modified: head/sys/dev/uart/uart_bus_acpi.c ============================================================================== --- head/sys/dev/uart/uart_bus_acpi.c Thu Jul 21 08:22:25 2016 (r303132) +++ head/sys/dev/uart/uart_bus_acpi.c Thu Jul 21 09:32:55 2016 (r303133) @@ -39,6 +39,11 @@ __FBSDID("$FreeBSD$"); #include #include +#include + +#include +#include +#include static int uart_acpi_probe(device_t dev); @@ -57,6 +62,7 @@ static driver_t uart_acpi_driver = { sizeof(struct uart_softc), }; +#if defined(__i386__) || defined(__amd64__) static struct isa_pnp_id acpi_ns8250_ids[] = { {0x0005d041, "Standard PC COM port"}, /* PNP0500 */ {0x0105d041, "16550A-compatible COM port"}, /* PNP0501 */ @@ -67,6 +73,27 @@ static struct isa_pnp_id acpi_ns8250_ids {0xe502aa1a, "Wacom Tablet at FuS Lifebook T"}, /* FUJ02E5 */ {0} }; +#endif + +#ifdef __aarch64__ +static struct uart_class * +uart_acpi_find_device(device_t dev) +{ + struct acpi_uart_compat_data **cd; + ACPI_HANDLE h; + + if ((h = acpi_get_handle(dev)) == NULL) + return (NULL); + + SET_FOREACH(cd, uart_acpi_class_and_device_set) { + if (acpi_MatchHid(h, (*cd)->hid)) { + return ((*cd)->clas); + } + } + + return (NULL); +} +#endif static int uart_acpi_probe(device_t dev) @@ -77,12 +104,18 @@ uart_acpi_probe(device_t dev) parent = device_get_parent(dev); sc = device_get_softc(dev); +#if defined(__i386__) || defined(__amd64__) if (!ISA_PNP_PROBE(parent, dev, acpi_ns8250_ids)) { sc->sc_class = &uart_ns8250_class; return (uart_bus_probe(dev, 0, 0, 0, 0)); } /* Add checks for non-ns8250 IDs here. */ +#elif defined(__aarch64__) + if ((sc->sc_class = uart_acpi_find_device(dev)) != NULL) + return (uart_bus_probe(dev, 2, 0, 0, 0)); +#endif + return (ENXIO); } Added: head/sys/dev/uart/uart_cpu_acpi.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/uart/uart_cpu_acpi.h Thu Jul 21 09:32:55 2016 (r303133) @@ -0,0 +1,62 @@ +/*- + * Copyright (c) 2015 Michal Meloun + * Copyright (c) 2016 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Andrew Turner 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. + * + * $FreeBSD$ + */ + +#ifndef _DEV_UART_CPU_ACPI_H_ +#define _DEV_UART_CPU_ACPI_H_ + +#include + +struct uart_class; + +struct acpi_uart_compat_data { + const char *hid; + struct uart_class *clas; +}; + +/* + * If your UART driver implements only uart_class and uses uart_cpu_acpi.c + * for device instantiation, then use UART_ACPI_CLASS_AND_DEVICE for its + * declaration + */ +SET_DECLARE(uart_acpi_class_and_device_set, struct acpi_uart_compat_data); +#define UART_ACPI_CLASS_AND_DEVICE(data) \ + DATA_SET(uart_acpi_class_and_device_set, data) + +/* + * If your UART driver implements uart_class and custom device layer, + * then use UART_ACPI_CLASS for its declaration + */ +SET_DECLARE(uart_acpi_class_set, struct acpi_uart_compat_data); +#define UART_ACPI_CLASS(data) \ + DATA_SET(uart_acpi_class_set, data) + +#endif /* _DEV_UART_CPU_ACPI_H_ */ Modified: head/sys/dev/uart/uart_dev_pl011.c ============================================================================== --- head/sys/dev/uart/uart_dev_pl011.c Thu Jul 21 08:22:25 2016 (r303132) +++ head/sys/dev/uart/uart_dev_pl011.c Thu Jul 21 09:32:55 2016 (r303133) @@ -24,6 +24,9 @@ * SUCH DAMAGE. */ +#include "opt_acpi.h" +#include "opt_platform.h" + #include __FBSDID("$FreeBSD$"); @@ -35,7 +38,12 @@ __FBSDID("$FreeBSD$"); #include #include +#ifdef DEV_ACPI +#include +#endif +#ifdef FDT #include +#endif #include #include "uart_if.h" @@ -277,11 +285,22 @@ static struct uart_class uart_pl011_clas .uc_rshift = 2 }; + +#ifdef FDT static struct ofw_compat_data compat_data[] = { {"arm,pl011", (uintptr_t)&uart_pl011_class}, {NULL, (uintptr_t)NULL}, }; UART_FDT_CLASS_AND_DEVICE(compat_data); +#endif + +#ifdef DEV_ACPI +static struct acpi_uart_compat_data acpi_compat_data[] = { + {"ARMH0011", &uart_pl011_class}, + {NULL, NULL}, +}; +UART_ACPI_CLASS_AND_DEVICE(acpi_compat_data); +#endif static int uart_pl011_bus_attach(struct uart_softc *sc) From owner-svn-src-all@freebsd.org Thu Jul 21 09:37:18 2016 Return-Path: Delivered-To: svn-src-all@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 80958B9F619; Thu, 21 Jul 2016 09:37:18 +0000 (UTC) (envelope-from kib@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 3D39516CE; Thu, 21 Jul 2016 09:37:18 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6L9bHpu082360; Thu, 21 Jul 2016 09:37:17 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6L9bHsw082359; Thu, 21 Jul 2016 09:37:17 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607210937.u6L9bHsw082359@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 21 Jul 2016 09:37:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303134 - head/share/man/man7 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 09:37:18 -0000 Author: kib Date: Thu Jul 21 09:37:17 2016 New Revision: 303134 URL: https://svnweb.freebsd.org/changeset/base/303134 Log: Improve typesetting. Reviewed by: bapt No objections from: emaste Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D7261 Modified: head/share/man/man7/arch.7 Modified: head/share/man/man7/arch.7 ============================================================================== --- head/share/man/man7/arch.7 Thu Jul 21 09:32:55 2016 (r303133) +++ head/share/man/man7/arch.7 Thu Jul 21 09:37:17 2016 (r303134) @@ -47,7 +47,7 @@ On all supported architectures, .It float Ta 4 .It double Ta 8 .El -.Bl -column -offset indent ".Sy Architecture" ".Sy sizeof(void *)" ".Sy "sizeof(long double)" +.Bl -column -offset indent "Sy Architecture" "Sy sizeof(void *)" "Sy "sizeof(long double)" .It Sy Architecture Ta Sy sizeof(void *) Ta Sy sizeof(long double) .It amd64 Ta 8 Ta 16 .It arm Ta 4 Ta 8 @@ -66,7 +66,7 @@ On all supported architectures, .It sparc64 Ta 8 Ta 16 .El .Ss Endianness and Char Signedness -.Bl -column -offset indent ".Sy Architecture" ".Sy Endianness" ".Sy "char Signedness" +.Bl -column -offset indent "Sy Architecture" "Sy Endianness" "Sy "char Signedness" .It Sy Architecture Ta Sy Endianness Ta Sy char Signedness .It amd64 Ta little Ta signed .It arm Ta little Ta unsigned @@ -85,7 +85,7 @@ On all supported architectures, .It sparc64 Ta big Ta signed .El .Ss Page Size -.Bl -column -offset indent ".Sy Architecture" ".Sy Page Sizes" +.Bl -column -offset indent "Sy Architecture" "Sy Page Sizes" .It Sy Architecture Ta Sy Page Sizes .It amd64 Ta 4K, 2M, 1G .It arm Ta 4K @@ -104,7 +104,7 @@ On all supported architectures, .It sparc64 Ta 8K .El .Ss Floating Point -.Bl -column -offset indent ".Sy Architecture" ".Sy float, double" ".Sy long double" +.Bl -column -offset indent "Sy Architecture" "Sy float, double" "Sy long double" .It Sy Architecture Ta Sy float, double Ta Sy long double .It amd64 Ta hard Ta hard, 80 bit .It arm Ta soft Ta soft, double precision @@ -134,16 +134,18 @@ cc -x c -Dm -E /dev/null .Ed .Pp Common type size and endianness macros: -.Bl -column -offset indent "BYTE_ORDER" ".Sy Meaning" +.Bl -column -offset indent "BYTE_ORDER" "Sy Meaning" .It Sy Macro Ta Sy Meaning .It Dv __LP64__ Ta 64-bit (8-byte) long and pointer, 32-bit (4-byte) int .It Dv __ILP32__ Ta 32-bit (4-byte) int, long and pointer .It Dv BYTE_ORDER Ta Either Dv BIG_ENDIAN or Dv LITTLE_ENDIAN . -.Dv PDP11_ENDIAN is not used on FreeBSD. +.Dv PDP11_ENDIAN +is not used on +.Fx . .El .Pp Architecture-specific macros: -.Bl -column -offset indent ".Sy Architecture" ".Sy Predefined macros" +.Bl -column -offset indent "Sy Architecture" "Sy Predefined macros" .It Sy Architecture Ta Sy Predefined macros .It amd64 Ta Dv __amd64__, Dv __x86_64__ .It arm Ta Dv __arm__ From owner-svn-src-all@freebsd.org Thu Jul 21 09:45:47 2016 Return-Path: Delivered-To: svn-src-all@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 217B6B9FB4C; Thu, 21 Jul 2016 09:45:47 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from kif.fubar.geek.nz (kif.fubar.geek.nz [178.62.119.249]) by mx1.freebsd.org (Postfix) with ESMTP id E72D01DBA; Thu, 21 Jul 2016 09:45:46 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from zapp (host81-149-102-120.in-addr.btopenworld.com [81.149.102.120]) by kif.fubar.geek.nz (Postfix) with ESMTPSA id 42F04D78FE; Thu, 21 Jul 2016 09:45:16 +0000 (UTC) Date: Thu, 21 Jul 2016 10:45:14 +0100 From: Andrew Turner Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303133 - head/sys/dev/uart Message-ID: <20160721104514.67c1dc57@zapp> In-Reply-To: <201607210932.u6L9WuPh082127@repo.freebsd.org> References: <201607210932.u6L9WuPh082127@repo.freebsd.org> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 09:45:47 -0000 On Thu, 21 Jul 2016 09:32:56 +0000 (UTC) Andrew Turner wrote: > Author: andrew > Date: Thu Jul 21 09:32:55 2016 > New Revision: 303133 > URL: https://svnweb.freebsd.org/changeset/base/303133 > > Log: > Add support for arm64 to uart_dev_acpi by using the _HID property > to find the uart class to use in a similar way as the fdt driver. > Reviewed by: jhb > Obtained from: ABT Systems Ltd > MFC after: 1 month > Sponsored by: The FreeBSD Foundation > Differential Revision: https://reviews.freebsd.org/D7248 Andrew From owner-svn-src-all@freebsd.org Thu Jul 21 10:44:27 2016 Return-Path: Delivered-To: svn-src-all@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 E9FA0BA0B42; Thu, 21 Jul 2016 10:44:27 +0000 (UTC) (envelope-from gjb@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 B629F1C29; Thu, 21 Jul 2016 10:44:27 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LAiQjs008342; Thu, 21 Jul 2016 10:44:26 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LAiQLc008341; Thu, 21 Jul 2016 10:44:26 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201607211044.u6LAiQLc008341@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 21 Jul 2016 10:44:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303135 - stable/11/release X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 10:44:28 -0000 Author: gjb Date: Thu Jul 21 10:44:26 2016 New Revision: 303135 URL: https://svnweb.freebsd.org/changeset/base/303135 Log: MFC r303003: Make sure we clean up the rdoc and reldoc directories if NODOC is not set. Approved by: re (kib) Sponsored by: The FreeBSD Foundation Modified: stable/11/release/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/release/Makefile ============================================================================== --- stable/11/release/Makefile Thu Jul 21 09:37:17 2016 (r303134) +++ stable/11/release/Makefile Thu Jul 21 10:44:26 2016 (r303135) @@ -119,6 +119,9 @@ CLEANFILES+= ${I}.xz CLEANFILES+= pkg-stage .endif CLEANDIRS= dist ftp disc1 bootonly dvd +.if !defined(NODOC) +CLEANDIRS+= reldoc rdoc +.endif beforeclean: chflags -R noschg . .include From owner-svn-src-all@freebsd.org Thu Jul 21 11:39:44 2016 Return-Path: Delivered-To: svn-src-all@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 64098BA0BBB; Thu, 21 Jul 2016 11:39:44 +0000 (UTC) (envelope-from mav@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 17385167B; Thu, 21 Jul 2016 11:39:44 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LBdhtV026930; Thu, 21 Jul 2016 11:39:43 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LBdhFK026929; Thu, 21 Jul 2016 11:39:43 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607211139.u6LBdhFK026929@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 21 Jul 2016 11:39:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303136 - stable/11/sys/dev/vmware/vmxnet3 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 11:39:44 -0000 Author: mav Date: Thu Jul 21 11:39:43 2016 New Revision: 303136 URL: https://svnweb.freebsd.org/changeset/base/303136 Log: Update if_hwassist when interface options are changed. In particular for me this fixes checksum problem when if_bridge attached to the interface requests TXCSUM to be disabled, but effectively ignored. Approved by: re (kib) Modified: stable/11/sys/dev/vmware/vmxnet3/if_vmx.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/vmware/vmxnet3/if_vmx.c ============================================================================== --- stable/11/sys/dev/vmware/vmxnet3/if_vmx.c Thu Jul 21 10:44:26 2016 (r303135) +++ stable/11/sys/dev/vmware/vmxnet3/if_vmx.c Thu Jul 21 11:39:43 2016 (r303136) @@ -130,6 +130,7 @@ static int vmxnet3_alloc_queue_data(stru static void vmxnet3_free_queue_data(struct vmxnet3_softc *); static int vmxnet3_alloc_mcast_table(struct vmxnet3_softc *); static void vmxnet3_init_shared_data(struct vmxnet3_softc *); +static void vmxnet3_init_hwassist(struct vmxnet3_softc *); static void vmxnet3_reinit_interface(struct vmxnet3_softc *); static void vmxnet3_reinit_rss_shared_data(struct vmxnet3_softc *); static void vmxnet3_reinit_shared_data(struct vmxnet3_softc *); @@ -1583,6 +1584,24 @@ vmxnet3_init_shared_data(struct vmxnet3_ } static void +vmxnet3_init_hwassist(struct vmxnet3_softc *sc) +{ + struct ifnet *ifp = sc->vmx_ifp; + uint64_t hwassist; + + hwassist = 0; + if (ifp->if_capenable & IFCAP_TXCSUM) + hwassist |= VMXNET3_CSUM_OFFLOAD; + if (ifp->if_capenable & IFCAP_TXCSUM_IPV6) + hwassist |= VMXNET3_CSUM_OFFLOAD_IPV6; + if (ifp->if_capenable & IFCAP_TSO4) + hwassist |= CSUM_IP_TSO; + if (ifp->if_capenable & IFCAP_TSO6) + hwassist |= CSUM_IP6_TSO; + ifp->if_hwassist = hwassist; +} + +static void vmxnet3_reinit_interface(struct vmxnet3_softc *sc) { struct ifnet *ifp; @@ -1593,15 +1612,7 @@ vmxnet3_reinit_interface(struct vmxnet3_ bcopy(IF_LLADDR(sc->vmx_ifp), sc->vmx_lladdr, ETHER_ADDR_LEN); vmxnet3_set_lladdr(sc); - ifp->if_hwassist = 0; - if (ifp->if_capenable & IFCAP_TXCSUM) - ifp->if_hwassist |= VMXNET3_CSUM_OFFLOAD; - if (ifp->if_capenable & IFCAP_TXCSUM_IPV6) - ifp->if_hwassist |= VMXNET3_CSUM_OFFLOAD_IPV6; - if (ifp->if_capenable & IFCAP_TSO4) - ifp->if_hwassist |= CSUM_IP_TSO; - if (ifp->if_capenable & IFCAP_TSO6) - ifp->if_hwassist |= CSUM_IP6_TSO; + vmxnet3_init_hwassist(sc); } static void @@ -3284,6 +3295,8 @@ vmxnet3_ioctl(struct ifnet *ifp, u_long if (reinit && (ifp->if_drv_flags & IFF_DRV_RUNNING)) { ifp->if_drv_flags &= ~IFF_DRV_RUNNING; vmxnet3_init_locked(sc); + } else { + vmxnet3_init_hwassist(sc); } VMXNET3_CORE_UNLOCK(sc); From owner-svn-src-all@freebsd.org Thu Jul 21 11:41:28 2016 Return-Path: Delivered-To: svn-src-all@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 EFF96BA0D3C; Thu, 21 Jul 2016 11:41:28 +0000 (UTC) (envelope-from mav@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 A2DF21987; Thu, 21 Jul 2016 11:41:28 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LBfRFE027715; Thu, 21 Jul 2016 11:41:27 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LBfRtL027714; Thu, 21 Jul 2016 11:41:27 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607211141.u6LBfRtL027714@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 21 Jul 2016 11:41:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303137 - stable/10/sys/dev/vmware/vmxnet3 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 11:41:29 -0000 Author: mav Date: Thu Jul 21 11:41:27 2016 New Revision: 303137 URL: https://svnweb.freebsd.org/changeset/base/303137 Log: MFC r303000: Update if_hwassist when interface options are changed. In particular for me this fixes checksum problem when if_bridge attached to the interface requests TXCSUM to be disabled, but effectively ignored. Modified: stable/10/sys/dev/vmware/vmxnet3/if_vmx.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/vmware/vmxnet3/if_vmx.c ============================================================================== --- stable/10/sys/dev/vmware/vmxnet3/if_vmx.c Thu Jul 21 11:39:43 2016 (r303136) +++ stable/10/sys/dev/vmware/vmxnet3/if_vmx.c Thu Jul 21 11:41:27 2016 (r303137) @@ -128,6 +128,7 @@ static int vmxnet3_alloc_queue_data(stru static void vmxnet3_free_queue_data(struct vmxnet3_softc *); static int vmxnet3_alloc_mcast_table(struct vmxnet3_softc *); static void vmxnet3_init_shared_data(struct vmxnet3_softc *); +static void vmxnet3_init_hwassist(struct vmxnet3_softc *); static void vmxnet3_reinit_interface(struct vmxnet3_softc *); static void vmxnet3_reinit_rss_shared_data(struct vmxnet3_softc *); static void vmxnet3_reinit_shared_data(struct vmxnet3_softc *); @@ -1584,6 +1585,24 @@ vmxnet3_init_shared_data(struct vmxnet3_ } static void +vmxnet3_init_hwassist(struct vmxnet3_softc *sc) +{ + struct ifnet *ifp = sc->vmx_ifp; + uint64_t hwassist; + + hwassist = 0; + if (ifp->if_capenable & IFCAP_TXCSUM) + hwassist |= VMXNET3_CSUM_OFFLOAD; + if (ifp->if_capenable & IFCAP_TXCSUM_IPV6) + hwassist |= VMXNET3_CSUM_OFFLOAD_IPV6; + if (ifp->if_capenable & IFCAP_TSO4) + hwassist |= CSUM_IP_TSO; + if (ifp->if_capenable & IFCAP_TSO6) + hwassist |= CSUM_IP6_TSO; + ifp->if_hwassist = hwassist; +} + +static void vmxnet3_reinit_interface(struct vmxnet3_softc *sc) { struct ifnet *ifp; @@ -1594,15 +1613,7 @@ vmxnet3_reinit_interface(struct vmxnet3_ bcopy(IF_LLADDR(sc->vmx_ifp), sc->vmx_lladdr, ETHER_ADDR_LEN); vmxnet3_set_lladdr(sc); - ifp->if_hwassist = 0; - if (ifp->if_capenable & IFCAP_TXCSUM) - ifp->if_hwassist |= VMXNET3_CSUM_OFFLOAD; - if (ifp->if_capenable & IFCAP_TXCSUM_IPV6) - ifp->if_hwassist |= VMXNET3_CSUM_OFFLOAD_IPV6; - if (ifp->if_capenable & IFCAP_TSO4) - ifp->if_hwassist |= CSUM_IP_TSO; - if (ifp->if_capenable & IFCAP_TSO6) - ifp->if_hwassist |= CSUM_IP6_TSO; + vmxnet3_init_hwassist(sc); } static void @@ -3284,6 +3295,8 @@ vmxnet3_ioctl(struct ifnet *ifp, u_long if (reinit && (ifp->if_drv_flags & IFF_DRV_RUNNING)) { ifp->if_drv_flags &= ~IFF_DRV_RUNNING; vmxnet3_init_locked(sc); + } else { + vmxnet3_init_hwassist(sc); } VMXNET3_CORE_UNLOCK(sc); From owner-svn-src-all@freebsd.org Thu Jul 21 11:57:42 2016 Return-Path: Delivered-To: svn-src-all@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 A94C7BA0F4F; Thu, 21 Jul 2016 11:57:42 +0000 (UTC) (envelope-from mav@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 7BA5F1F75; Thu, 21 Jul 2016 11:57:42 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LBvfLA034405; Thu, 21 Jul 2016 11:57:41 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LBvfaQ034404; Thu, 21 Jul 2016 11:57:41 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607211157.u6LBvfaQ034404@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 21 Jul 2016 11:57:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303138 - stable/11/usr.sbin/bhyve X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 11:57:42 -0000 Author: mav Date: Thu Jul 21 11:57:41 2016 New Revision: 303138 URL: https://svnweb.freebsd.org/changeset/base/303138 Log: MFC r302957: Fix NCQ TRIM emulation. When this code was written, there was no guests using it to test. Approved by: re (kib) Modified: stable/11/usr.sbin/bhyve/pci_ahci.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/bhyve/pci_ahci.c ============================================================================== --- stable/11/usr.sbin/bhyve/pci_ahci.c Thu Jul 21 11:41:27 2016 (r303137) +++ stable/11/usr.sbin/bhyve/pci_ahci.c Thu Jul 21 11:57:41 2016 (r303138) @@ -784,7 +784,15 @@ next: done += 8; if (elen == 0) { if (done >= len) { - ahci_write_fis_d2h(p, slot, cfis, ATA_S_READY | ATA_S_DSC); + if (ncq) { + if (first) + ahci_write_fis_d2h_ncq(p, slot); + ahci_write_fis_sdb(p, slot, cfis, + ATA_S_READY | ATA_S_DSC); + } else { + ahci_write_fis_d2h(p, slot, cfis, + ATA_S_READY | ATA_S_DSC); + } p->pending &= ~(1 << slot); ahci_check_stopped(p); if (!first) @@ -1665,7 +1673,7 @@ ahci_handle_cmd(struct ahci_port *p, int case ATA_SEND_FPDMA_QUEUED: if ((cfis[13] & 0x1f) == ATA_SFPDMA_DSM && cfis[17] == 0 && cfis[16] == ATA_DSM_TRIM && - cfis[11] == 0 && cfis[13] == 1) { + cfis[11] == 0 && cfis[3] == 1) { ahci_handle_dsm_trim(p, slot, cfis, 0); break; } From owner-svn-src-all@freebsd.org Thu Jul 21 11:58:48 2016 Return-Path: Delivered-To: svn-src-all@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 DCB00BA0FDD; Thu, 21 Jul 2016 11:58:48 +0000 (UTC) (envelope-from mav@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 AF3311314; Thu, 21 Jul 2016 11:58:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LBwlta034532; Thu, 21 Jul 2016 11:58:47 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LBwlsr034531; Thu, 21 Jul 2016 11:58:47 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607211158.u6LBwlsr034531@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 21 Jul 2016 11:58:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303139 - stable/10/usr.sbin/bhyve X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 11:58:49 -0000 Author: mav Date: Thu Jul 21 11:58:47 2016 New Revision: 303139 URL: https://svnweb.freebsd.org/changeset/base/303139 Log: MFC r302957: Fix NCQ TRIM emulation. When this code was written, there was no guests using it to test. Modified: stable/10/usr.sbin/bhyve/pci_ahci.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/bhyve/pci_ahci.c ============================================================================== --- stable/10/usr.sbin/bhyve/pci_ahci.c Thu Jul 21 11:57:41 2016 (r303138) +++ stable/10/usr.sbin/bhyve/pci_ahci.c Thu Jul 21 11:58:47 2016 (r303139) @@ -788,7 +788,15 @@ next: done += 8; if (elen == 0) { if (done >= len) { - ahci_write_fis_d2h(p, slot, cfis, ATA_S_READY | ATA_S_DSC); + if (ncq) { + if (first) + ahci_write_fis_d2h_ncq(p, slot); + ahci_write_fis_sdb(p, slot, cfis, + ATA_S_READY | ATA_S_DSC); + } else { + ahci_write_fis_d2h(p, slot, cfis, + ATA_S_READY | ATA_S_DSC); + } p->pending &= ~(1 << slot); ahci_check_stopped(p); if (!first) @@ -1672,7 +1680,7 @@ ahci_handle_cmd(struct ahci_port *p, int case ATA_SEND_FPDMA_QUEUED: if ((cfis[13] & 0x1f) == ATA_SFPDMA_DSM && cfis[17] == 0 && cfis[16] == ATA_DSM_TRIM && - cfis[11] == 0 && cfis[13] == 1) { + cfis[11] == 0 && cfis[3] == 1) { ahci_handle_dsm_trim(p, slot, cfis, 0); break; } From owner-svn-src-all@freebsd.org Thu Jul 21 12:15:06 2016 Return-Path: Delivered-To: svn-src-all@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 082CCBA0C1A; Thu, 21 Jul 2016 12:15:06 +0000 (UTC) (envelope-from mav@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 CE1411FCB; Thu, 21 Jul 2016 12:15:05 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LCF5KT041710; Thu, 21 Jul 2016 12:15:05 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LCF5mM041709; Thu, 21 Jul 2016 12:15:05 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201607211215.u6LCF5mM041709@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 21 Jul 2016 12:15:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303140 - stable/11/sys/cam/ata X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 12:15:06 -0000 Author: mav Date: Thu Jul 21 12:15:04 2016 New Revision: 303140 URL: https://svnweb.freebsd.org/changeset/base/303140 Log: MFC r302960: Restore PIM_ATA_EXT flag handling, lost at r300207. This re-enables NCQ TRIM usage on capable hardware (bhyve). Approved by: re (kib) Modified: stable/11/sys/cam/ata/ata_da.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/cam/ata/ata_da.c ============================================================================== --- stable/11/sys/cam/ata/ata_da.c Thu Jul 21 11:58:47 2016 (r303139) +++ stable/11/sys/cam/ata/ata_da.c Thu Jul 21 12:15:04 2016 (r303140) @@ -1774,6 +1774,8 @@ adaregister(struct cam_periph *periph, v softc->disk->d_flags |= DISKFLAG_UNMAPPED_BIO; softc->unmappedio = 1; } + if (cpi.hba_misc & PIM_ATA_EXT) + softc->flags |= ADA_FLAG_PIM_ATA_EXT; strlcpy(softc->disk->d_descr, cgd->ident_data.model, MIN(sizeof(softc->disk->d_descr), sizeof(cgd->ident_data.model))); strlcpy(softc->disk->d_ident, cgd->ident_data.serial, From owner-svn-src-all@freebsd.org Thu Jul 21 12:38:14 2016 Return-Path: Delivered-To: svn-src-all@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 EC6A2B9E50F; Thu, 21 Jul 2016 12:38:14 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from kif.fubar.geek.nz (kif.fubar.geek.nz [178.62.119.249]) by mx1.freebsd.org (Postfix) with ESMTP id BA2521DD1; Thu, 21 Jul 2016 12:38:14 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from zapp (global-5-143.nat-2.net.cam.ac.uk [131.111.5.143]) by kif.fubar.geek.nz (Postfix) with ESMTPSA id B7FBAD8320; Thu, 21 Jul 2016 12:37:43 +0000 (UTC) Date: Thu, 21 Jul 2016 13:37:42 +0100 From: Andrew Turner To: Michal Meloun Cc: Nathan Whitehorn , Svatopluk Kraus , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys Message-ID: <20160721133742.05f0e045@zapp> In-Reply-To: <578F6075.7010500@FreeBSD.org> References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578E0B5D.3070105@FreeBSD.org> <578F6075.7010500@FreeBSD.org> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 12:38:15 -0000 On Wed, 20 Jul 2016 13:28:53 +0200 Michal Meloun wrote: > Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): > > 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), > > but is both problematically more general and less flexible (it has > > requirements on timing of PIC attachment vs. driver resource > > allocation) > OFW_BUS_MAP_INTR() can parse only OFW based data and expect that > parsed data are magicaly stored within the call. > The new method, bus_map_intr(), can parse data from multiple sources > (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). It also > returns parsed data back to caller. > And no, it doesn't add any additional timing requirements . I've been looking at ACPI on arm64. So far I have not found the need for this with ACPI as we don't need to send the data to the interrupt controller driver to be parsed in the way OFW/FDT needs to. Andrew From owner-svn-src-all@freebsd.org Thu Jul 21 12:50:24 2016 Return-Path: Delivered-To: svn-src-all@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 8F16BB9E87D; Thu, 21 Jul 2016 12:50:24 +0000 (UTC) (envelope-from kib@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 583161578; Thu, 21 Jul 2016 12:50:24 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LCoNIG052792; Thu, 21 Jul 2016 12:50:23 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LCoN8Y052791; Thu, 21 Jul 2016 12:50:23 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607211250.u6LCoN8Y052791@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 21 Jul 2016 12:50:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303141 - stable/11/sys/kern X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 12:50:24 -0000 Author: kib Date: Thu Jul 21 12:50:23 2016 New Revision: 303141 URL: https://svnweb.freebsd.org/changeset/base/303141 Log: MFC r302981: Fix another bug after r302350. Approved by: re (gjb) Modified: stable/11/sys/kern/kern_exit.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/kern_exit.c ============================================================================== --- stable/11/sys/kern/kern_exit.c Thu Jul 21 12:15:04 2016 (r303140) +++ stable/11/sys/kern/kern_exit.c Thu Jul 21 12:50:23 2016 (r303141) @@ -344,7 +344,7 @@ exit1(struct thread *td, int rval, int s * executing, prevent it from rearming itself and let it finish. */ if (timevalisset(&p->p_realtimer.it_value) && - callout_stop(&p->p_itcallout) == 0) { + _callout_stop_safe(&p->p_itcallout, CS_EXECUTING, NULL) == 0) { timevalclear(&p->p_realtimer.it_interval); msleep(&p->p_itcallout, &p->p_mtx, PWAIT, "ritwait", 0); KASSERT(!timevalisset(&p->p_realtimer.it_value), From owner-svn-src-all@freebsd.org Thu Jul 21 12:53:38 2016 Return-Path: Delivered-To: svn-src-all@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 11D7BB9EA40; Thu, 21 Jul 2016 12:53:38 +0000 (UTC) (envelope-from ache@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 C109B1984; Thu, 21 Jul 2016 12:53:37 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LCra6T056147; Thu, 21 Jul 2016 12:53:36 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LCrauU056146; Thu, 21 Jul 2016 12:53:36 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607211253.u6LCrauU056146@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Thu, 21 Jul 2016 12:53:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303142 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 12:53:38 -0000 Author: ache Date: Thu Jul 21 12:53:36 2016 New Revision: 303142 URL: https://svnweb.freebsd.org/changeset/base/303142 Log: 1) GLOB_BRACE was somewhat broken. First it repeatedly calls glob0() in globexp1() recursive calls, but glob0() was not supposed to be called repeatedly in the original code. It finalize results by possible adding original pattern for no match case, may return GLOB_NOMATCH error and by sorting all things. Original pattern adding or GLOB_NOMATCH error can happens each time glob0() called repeatedly, and sorting happens for one item only, all things are never sorted. Second, f.e. "a{a" pattern does not match "a{a" file but match "a" file instead (just one example, there are many). Third, some errors (f.e. for limits or overflow) can be ignored by GLOB_BRACE code because it forces return (0). Add non-finalizing flag to glob0() and make globexp0() wrapper around recursively called globexp1() to finalize things like glob0() does. Reorganize braces code to work correctly. 2) Don't allow MB_CUR_MAX * strlen overallocation hits GLOB_LIMIT_STRING (ARG_MAX) limit, use final string length, not malloced space for it. 3) Revive DEBUG-ifdefed section. Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Thu Jul 21 12:50:23 2016 (r303141) +++ head/lib/libc/gen/glob.c Thu Jul 21 12:53:36 2016 (r303142) @@ -128,8 +128,6 @@ struct glob_limit { #define RBRACE L'}' #define COMMA L',' -#ifndef DEBUG - #define M_QUOTE 0x8000000000ULL #define M_PROTECT 0x4000000000ULL #define M_MASK 0xffffffffffULL @@ -137,18 +135,6 @@ struct glob_limit { typedef uint_fast64_t Char; -#else - -#define M_QUOTE 0x80 -#define M_PROTECT 0x40 -#define M_MASK 0xff -#define M_CHAR 0x7f - -typedef char Char; - -#endif - - #define CHAR(c) ((Char)((c)&M_CHAR)) #define META(c) ((Char)((c)|M_QUOTE)) #define UNPROT(c) ((c) & ~M_PROTECT) @@ -171,7 +157,7 @@ static const Char *g_strchr(const Char * static Char *g_strcat(Char *, const Char *); #endif static int g_stat(Char *, struct stat *, glob_t *); -static int glob0(const Char *, glob_t *, struct glob_limit *); +static int glob0(const Char *, glob_t *, struct glob_limit *, int); static int glob1(Char *, glob_t *, struct glob_limit *); static int glob2(Char *, Char *, Char *, Char *, glob_t *, struct glob_limit *); @@ -180,8 +166,9 @@ static int glob3(Char *, Char *, Char * static int globextend(const Char *, glob_t *, struct glob_limit *, int); static const Char * globtilde(const Char *, Char *, size_t, glob_t *); +static int globexp0(const Char *, glob_t *, struct glob_limit *); static int globexp1(const Char *, glob_t *, struct glob_limit *); -static int globexp2(const Char *, const Char *, glob_t *, int *, +static int globexp2(const Char *, const Char *, glob_t *, struct glob_limit *); static int match(Char *, Char *, Char *); #ifdef DEBUG @@ -260,9 +247,49 @@ glob(const char * __restrict pattern, in *bufnext = EOS; if (flags & GLOB_BRACE) - return (globexp1(patbuf, pglob, &limit)); + return (globexp0(patbuf, pglob, &limit)); else - return (glob0(patbuf, pglob, &limit)); + return (glob0(patbuf, pglob, &limit, 1)); +} + +static int +globexp0(const Char *pattern, glob_t *pglob, struct glob_limit *limit) +{ + int rv; + size_t oldpathc; + + /* Protect a single {}, for find(1), like csh */ + if (pattern[0] == LBRACE && pattern[1] == RBRACE && pattern[2] == EOS) { + if ((pglob->gl_flags & GLOB_LIMIT) && + limit->l_brace_cnt++ >= GLOB_LIMIT_BRACE) { + errno = 0; + return (GLOB_NOSPACE); + } + return (glob0(pattern, pglob, limit, 1)); + } + + oldpathc = pglob->gl_pathc; + + if ((rv = globexp1(pattern, pglob, limit)) != 0) + return rv; + /* + * If there was no match we are going to append the pattern + * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was specified + * and the pattern did not contain any magic characters + * GLOB_NOMAGIC is there just for compatibility with csh. + */ + if (pglob->gl_pathc == oldpathc) { + if (((pglob->gl_flags & GLOB_NOCHECK) || + ((pglob->gl_flags & GLOB_NOMAGIC) && + !(pglob->gl_flags & GLOB_MAGCHAR)))) + return (globextend(pattern, pglob, limit, 1)); + else + return (GLOB_NOMATCH); + } + if (!(pglob->gl_flags & GLOB_NOSORT)) + qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, + pglob->gl_pathc - oldpathc, sizeof(char *), compare); + return (0); } /* @@ -273,24 +300,18 @@ glob(const char * __restrict pattern, in static int globexp1(const Char *pattern, glob_t *pglob, struct glob_limit *limit) { - const Char* ptr = pattern; - int rv; + const Char* ptr; - if ((pglob->gl_flags & GLOB_LIMIT) && - limit->l_brace_cnt++ >= GLOB_LIMIT_BRACE) { - errno = 0; - return (GLOB_NOSPACE); + if ((ptr = g_strchr(pattern, LBRACE)) != NULL) { + if ((pglob->gl_flags & GLOB_LIMIT) && + limit->l_brace_cnt++ >= GLOB_LIMIT_BRACE) { + errno = 0; + return (GLOB_NOSPACE); + } + return (globexp2(ptr, pattern, pglob, limit)); } - /* Protect a single {}, for find(1), like csh */ - if (pattern[0] == LBRACE && pattern[1] == RBRACE && pattern[2] == EOS) - return glob0(pattern, pglob, limit); - - while ((ptr = g_strchr(ptr, LBRACE)) != NULL) - if (!globexp2(ptr, pattern, pglob, &rv, limit)) - return rv; - - return glob0(pattern, pglob, limit); + return (glob0(pattern, pglob, limit, 0)); } @@ -300,10 +321,10 @@ globexp1(const Char *pattern, glob_t *pg * If it fails then it tries to glob the rest of the pattern and returns. */ static int -globexp2(const Char *ptr, const Char *pattern, glob_t *pglob, int *rv, +globexp2(const Char *ptr, const Char *pattern, glob_t *pglob, struct glob_limit *limit) { - int i; + int i, rv; Char *lm, *ls; const Char *pe, *pm, *pm1, *pl; Char patbuf[MAXPATHLEN]; @@ -315,7 +336,7 @@ globexp2(const Char *ptr, const Char *pa ls = lm; /* Find the balanced brace */ - for (i = 0, pe = ++ptr; *pe; pe++) + for (i = 0, pe = ++ptr; *pe != EOS; pe++) if (*pe == LBRACKET) { /* Ignore everything between [] */ for (pm = pe++; *pe != RBRACKET && *pe != EOS; pe++) @@ -337,10 +358,8 @@ globexp2(const Char *ptr, const Char *pa } /* Non matching braces; just glob the pattern */ - if (i != 0 || *pe == EOS) { - *rv = glob0(patbuf, pglob, limit); - return (0); - } + if (i != 0 || *pe == EOS) + return (glob0(pattern, pglob, limit, 0)); for (i = 0, pl = pm = ptr; pm <= pe; pm++) switch (*pm) { @@ -385,7 +404,9 @@ globexp2(const Char *ptr, const Char *pa #ifdef DEBUG qprintf("globexp2:", patbuf); #endif - *rv = globexp1(patbuf, pglob, limit); + rv = globexp1(patbuf, pglob, limit); + if (rv) + return (rv); /* move after the comma, to the next string */ pl = pm + 1; @@ -395,7 +416,6 @@ globexp2(const Char *ptr, const Char *pa default: break; } - *rv = 0; return (0); } @@ -517,7 +537,8 @@ globtilde(const Char *pattern, Char *pat * if things went well, nonzero if errors occurred. */ static int -glob0(const Char *pattern, glob_t *pglob, struct glob_limit *limit) +glob0(const Char *pattern, glob_t *pglob, struct glob_limit *limit, + int final) { const Char *qpatnext; int err; @@ -587,23 +608,25 @@ glob0(const Char *pattern, glob_t *pglob if ((err = glob1(patbuf, pglob, limit)) != 0) return(err); - /* - * If there was no match we are going to append the pattern - * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was specified - * and the pattern did not contain any magic characters - * GLOB_NOMAGIC is there just for compatibility with csh. - */ - if (pglob->gl_pathc == oldpathc) { - if (((pglob->gl_flags & GLOB_NOCHECK) || - ((pglob->gl_flags & GLOB_NOMAGIC) && - !(pglob->gl_flags & GLOB_MAGCHAR)))) - return (globextend(pattern, pglob, limit, 1)); - else - return (GLOB_NOMATCH); + if (final) { + /* + * If there was no match we are going to append the pattern + * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was specified + * and the pattern did not contain any magic characters + * GLOB_NOMAGIC is there just for compatibility with csh. + */ + if (pglob->gl_pathc == oldpathc) { + if (((pglob->gl_flags & GLOB_NOCHECK) || + ((pglob->gl_flags & GLOB_NOMAGIC) && + !(pglob->gl_flags & GLOB_MAGCHAR)))) + return (globextend(pattern, pglob, limit, 1)); + else + return (GLOB_NOMATCH); + } + if (!(pglob->gl_flags & GLOB_NOSORT)) + qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, + pglob->gl_pathc - oldpathc, sizeof(char *), compare); } - if (!(pglob->gl_flags & GLOB_NOSORT)) - qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, - pglob->gl_pathc - oldpathc, sizeof(char *), compare); return (0); } @@ -856,18 +879,19 @@ globextend(const Char *path, glob_t *pgl len = MB_CUR_MAX * (size_t)(p - path); /* XXX overallocation */ if (prot) len += (size_t)(p - path) - 1; - limit->l_string_cnt += len; - if ((pglob->gl_flags & GLOB_LIMIT) && - limit->l_string_cnt >= GLOB_LIMIT_STRING) { - errno = 0; - return (GLOB_NOSPACE); - } if ((copy = malloc(len)) != NULL) { if (g_Ctoc(path, copy, len, prot)) { free(copy); errno = 0; return (GLOB_NOSPACE); } + limit->l_string_cnt += strlen(copy) + 1; + if ((pglob->gl_flags & GLOB_LIMIT) && + limit->l_string_cnt >= GLOB_LIMIT_STRING) { + free(copy); + errno = 0; + return (GLOB_NOSPACE); + } pathv[pglob->gl_offs + pglob->gl_pathc++] = copy; } pathv[pglob->gl_offs + pglob->gl_pathc] = NULL; @@ -1046,15 +1070,17 @@ qprintf(const char *str, Char *s) { Char *p; - (void)printf("%s:\n", str); - for (p = s; *p; p++) - (void)printf("%c", CHAR(*p)); - (void)printf("\n"); - for (p = s; *p; p++) - (void)printf("%c", *p & M_PROTECT ? '"' : ' '); - (void)printf("\n"); - for (p = s; *p; p++) - (void)printf("%c", ismeta(*p) ? '_' : ' '); - (void)printf("\n"); + (void)printf("%s\n", str); + if (s != NULL) { + for (p = s; *p != EOS; p++) + (void)printf("%c", (char)CHAR(*p)); + (void)printf("\n"); + for (p = s; *p != EOS; p++) + (void)printf("%c", (isprot(*p) ? '\\' : ' ')); + (void)printf("\n"); + for (p = s; *p != EOS; p++) + (void)printf("%c", (ismeta(*p) ? '_' : ' ')); + (void)printf("\n"); + } } #endif From owner-svn-src-all@freebsd.org Thu Jul 21 13:01:37 2016 Return-Path: Delivered-To: svn-src-all@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 046B4B9EC5B; Thu, 21 Jul 2016 13:01:37 +0000 (UTC) (envelope-from andrew@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 C22351E47; Thu, 21 Jul 2016 13:01:36 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LD1ZhI057723; Thu, 21 Jul 2016 13:01:35 GMT (envelope-from andrew@FreeBSD.org) Received: (from andrew@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LD1ZJv057721; Thu, 21 Jul 2016 13:01:35 GMT (envelope-from andrew@FreeBSD.org) Message-Id: <201607211301.u6LD1ZJv057721@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: andrew set sender to andrew@FreeBSD.org using -f From: Andrew Turner Date: Thu, 21 Jul 2016 13:01:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303143 - in head/sys: dev/uart modules/uart X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 13:01:37 -0000 Author: andrew Date: Thu Jul 21 13:01:35 2016 New Revision: 303143 URL: https://svnweb.freebsd.org/changeset/base/303143 Log: Fix the build: * Add acpi_if.h to the SRC list in the uart module * Only include new acpi headers when they are needed Obtained from: ABT Systems Ltd MFC after: 1 month Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/uart/uart_bus_acpi.c head/sys/modules/uart/Makefile Modified: head/sys/dev/uart/uart_bus_acpi.c ============================================================================== --- head/sys/dev/uart/uart_bus_acpi.c Thu Jul 21 12:53:36 2016 (r303142) +++ head/sys/dev/uart/uart_bus_acpi.c Thu Jul 21 13:01:35 2016 (r303143) @@ -41,9 +41,11 @@ __FBSDID("$FreeBSD$"); #include #include +#ifdef __aarch64__ #include #include #include +#endif static int uart_acpi_probe(device_t dev); Modified: head/sys/modules/uart/Makefile ============================================================================== --- head/sys/modules/uart/Makefile Thu Jul 21 12:53:36 2016 (r303142) +++ head/sys/modules/uart/Makefile Thu Jul 21 13:01:35 2016 (r303143) @@ -32,7 +32,8 @@ SRCS= uart_bus_acpi.c ${uart_bus_ebus} u uart_dev_z8530.c \ uart_if.c uart_if.h uart_subr.c uart_tty.c -SRCS+= bus_if.h card_if.h device_if.h isa_if.h ${ofw_bus_if} pci_if.h \ +SRCS+= acpi_if.h bus_if.h card_if.h device_if.h isa_if.h ${ofw_bus_if} \ + pci_if.h \ power_if.h pccarddevs.h serdev_if.h SRCS+= opt_platform.h opt_uart.h From owner-svn-src-all@freebsd.org Thu Jul 21 13:26:40 2016 Return-Path: Delivered-To: svn-src-all@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 59A09B9F56B; Thu, 21 Jul 2016 13:26:40 +0000 (UTC) (envelope-from manu@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 191091EB4; Thu, 21 Jul 2016 13:26:40 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LDQdrG067452; Thu, 21 Jul 2016 13:26:39 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LDQdhR067451; Thu, 21 Jul 2016 13:26:39 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201607211326.u6LDQdhR067451@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 21 Jul 2016 13:26:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303144 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 13:26:40 -0000 Author: manu Date: Thu Jul 21 13:26:39 2016 New Revision: 303144 URL: https://svnweb.freebsd.org/changeset/base/303144 Log: We need the GIC to be attached so attach later at BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE Reviewed by: andrew MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D7080 Modified: head/sys/arm/allwinner/a10_gpio.c Modified: head/sys/arm/allwinner/a10_gpio.c ============================================================================== --- head/sys/arm/allwinner/a10_gpio.c Thu Jul 21 13:01:35 2016 (r303143) +++ head/sys/arm/allwinner/a10_gpio.c Thu Jul 21 13:26:39 2016 (r303144) @@ -743,4 +743,4 @@ static driver_t a10_gpio_driver = { }; EARLY_DRIVER_MODULE(a10_gpio, simplebus, a10_gpio_driver, a10_gpio_devclass, 0, 0, - BUS_PASS_INTERRUPT + BUS_PASS_ORDER_MIDDLE); + BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); From owner-svn-src-all@freebsd.org Thu Jul 21 13:28:08 2016 Return-Path: Delivered-To: svn-src-all@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 C9C6BB9F612; Thu, 21 Jul 2016 13:28:08 +0000 (UTC) (envelope-from manu@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 9831611BF; Thu, 21 Jul 2016 13:28:08 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LDS7tO067545; Thu, 21 Jul 2016 13:28:07 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LDS7i7067544; Thu, 21 Jul 2016 13:28:07 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201607211328.u6LDS7i7067544@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 21 Jul 2016 13:28:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303145 - head/sys/arm/allwinner X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 13:28:08 -0000 Author: manu Date: Thu Jul 21 13:28:07 2016 New Revision: 303145 URL: https://svnweb.freebsd.org/changeset/base/303145 Log: axp209 needs aw_nmi so attach a bit earlier Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D7081 Modified: head/sys/arm/allwinner/aw_nmi.c Modified: head/sys/arm/allwinner/aw_nmi.c ============================================================================== --- head/sys/arm/allwinner/aw_nmi.c Thu Jul 21 13:26:39 2016 (r303144) +++ head/sys/arm/allwinner/aw_nmi.c Thu Jul 21 13:28:07 2016 (r303145) @@ -401,4 +401,4 @@ static driver_t aw_nmi_driver = { static devclass_t aw_nmi_devclass; EARLY_DRIVER_MODULE(aw_nmi, simplebus, aw_nmi_driver, - aw_nmi_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LAST); + aw_nmi_devclass, 0, 0, BUS_PASS_INTERRUPT + BUS_PASS_ORDER_LATE); From owner-svn-src-all@freebsd.org Thu Jul 21 13:47:01 2016 Return-Path: Delivered-To: svn-src-all@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 BEEEDB9FE7B; Thu, 21 Jul 2016 13:47:01 +0000 (UTC) (envelope-from jtl@freebsd.org) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0113.outbound.protection.outlook.com [104.47.36.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "Microsoft IT SSL SHA2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 29E531DBE; Thu, 21 Jul 2016 13:47:00 +0000 (UTC) (envelope-from jtl@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=junipernetworks.onmicrosoft.com; s=selector1-junipernetworks-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=i/ApUMeSpyWwVEa735nb1UEmFiQP+/phq540W0dHKQA=; b=GbAtkuVhB8j+qAeRGAIxIgGk82Wj8EtAZA6SqLw7+qzmP9ljV0yjyzXpHfzJ3X0BTh0HBfNSyyVeo21mUDefSZEGko7aj4gjLUZ4GgBV8u5Thurgxjc7ibmwITTbJdAi6knV2Q0lsXm4lA1ytC78SlnwmlNDRulERCg1MMpg3VY= Received: from SN1PR05CA0013.namprd05.prod.outlook.com (10.163.68.151) by BY2PR05MB2344.namprd05.prod.outlook.com (10.166.113.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.549.5; Thu, 21 Jul 2016 13:12:08 +0000 Received: from BN1BFFO11FD025.protection.gbl (2a01:111:f400:7c10::1:108) by SN1PR05CA0013.outlook.office365.com (2a01:111:e400:5197::23) with Microsoft SMTP Server (TLS) id 15.1.539.14 via Frontend Transport; Thu, 21 Jul 2016 13:12:08 +0000 Authentication-Results: spf=softfail (sender IP is 66.129.239.19) smtp.mailfrom=freebsd.org; freebsd.org; dkim=none (message not signed) header.d=none;freebsd.org; dmarc=none action=none header.from=freebsd.org; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning freebsd.org discourages use of 66.129.239.19 as permitted sender) Received: from P-EMFE01C-SAC.jnpr.net (66.129.239.19) by BN1BFFO11FD025.mail.protection.outlook.com (10.58.144.88) with Microsoft SMTP Server (TLS) id 15.1.534.7 via Frontend Transport; Thu, 21 Jul 2016 13:12:07 +0000 Received: from magenta.juniper.net (172.17.27.123) by P-EMFE01C-SAC.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.123.3; Thu, 21 Jul 2016 06:12:05 -0700 Received: from [172.29.35.141] ([172.29.35.141]) by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id u6LDC4x99091; Thu, 21 Jul 2016 06:12:04 -0700 (PDT) (envelope-from jtl@freebsd.org) User-Agent: Microsoft-MacOutlook/f.18.0.160709 Date: Thu, 21 Jul 2016 09:12:05 -0400 Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys From: "Jonathan T. Looney" Sender: Jonathan Looney To: Michal Meloun , Nathan Whitehorn , Svatopluk Kraus , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Message-ID: <6B1523CF-0456-45C7-AB09-057DBCEA2427@juniper.net> Thread-Topic: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578E0B5D.3070105@FreeBSD.org> <578F6075.7010500@FreeBSD.org> <05a80ac6-4285-ec9d-36e9-2f92c609f746@freebsd.org> <57907B0F.9070204@FreeBSD.org> In-Reply-To: <57907B0F.9070204@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.129.239.19; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(7916002)(2980300002)(199003)(24454002)(189002)(377454003)(2906002)(586003)(356003)(76176999)(83506001)(2950100001)(5820100001)(105596002)(106466001)(2501003)(305945005)(54356999)(50986999)(8676002)(77096005)(87936001)(69596002)(47776003)(92566002)(230700001)(93886004)(19580405001)(33656002)(86362001)(450100001)(81166006)(81156014)(8936002)(9686002)(2201001)(107886002)(83716003)(50466002)(16796002)(97736004)(5001770100001)(68736007)(189998001)(82746002)(36756003)(4001350100001)(11100500001)(6806005)(23676002)(19580395003)(104396002)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR05MB2344; H:P-EMFE01C-SAC.jnpr.net; FPR:; SPF:SoftFail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD025; 1:2d3tA0cY1xpAt0Mz0Ci9UzxusmBdabA8gpNpQ2ptXyvqd0ozqAXxBhC64mX+ifRc9572d6wOjSK7Ok8VYxxElxGllI1ZW0nfwHUpkvPBR5CFYx0mphYYTbQ0Bbd7CL6wgkEYqNlqs278YGcKbwyCiHacoNGarFZAQF8RrlOpuUFB/0brcf5pET4v3WFkGhrUR1ykFhaTFdhMKRKC/w3lwVJeoZNYK1FmGGVzrnmn1Vb7mNKRmQAu0cgf5IWyBZS+QI+OOrecbNFqeoRyg5cvcqVXkDClvg39/rN+9Jk5RF7AMb0vURxQ/Ah/0aifTYFRWxTmCrqhslbSjda0XLltrw3YDFaBw44uD2M0eFYr0VUfw0g5KxhLlXZl/2mdJnLwSFofAKyGQMhkXTqUGzjmMBXALd+dEoc9hPaSwjQHmLPR70HH8NQESEiRVDD7C/A9oVciEs33foRoYdc57W7r6NXrXS+Sk/dQXeR5Q6WprYMmpLiBFC9CCyOwjnd8DycDXMjbo4hw115uneoFb9lbh3VlsEgmzN2/5ttVdQks320G4nQMYM/Cqawrn482BZOSVJBfAt7AdSaQbf/QqJfjlQ== X-MS-Office365-Filtering-Correlation-Id: 6258b3f7-3c3f-4ec0-331f-08d3b1689f11 X-Microsoft-Exchange-Diagnostics: 1; BY2PR05MB2344; 2:FaBrIwYy2ZhoFpDq5G4DY5iWmWM/m2CZLpwASN+bz0qVWPfdQSnEs3+12zkyYr0dYv8rux6QA8yjfApeSR4lcuAbXImRFqmMW2YCRePrcziZmZkA62VTmX+Eisume66vjem6ASBEsPQcC3cskWQV3Ngh1s/XKNG86Dky96XrzHwcjW2D31PGurgbmIjLEZAt; 3:5SAPIVdivEfU7OmTbth6eZVrLRnERDzEvp5N5RoMCCLR34cJT4rBvuguP38hE/CznWDBAPtFDej92dXB1bb8oxySOMWU8EzxbFpFMfPtJRizJJgCGr7Seuj6A1MOdH14d5zkHJJQ1u1OKG5MqcYq5etCQV5dNXW0hBFk+ICJ7CjovhUoBUQfPZoKMT6KA56/IXDBaLKptNVj+vlOQYnImn6rMcYR4w16eigytAMtMiM= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR05MB2344; X-Microsoft-Exchange-Diagnostics: 1; BY2PR05MB2344; 25:P/ToFk7diKh3ALxA6ywEtAlwEWyxtHDRqkDpnnR2S7rcBVfyIabKkI/UD38gdAo4VmFSgj0C2xlNltPQcA81imYClAJROh0zgItEaD9QVfNgyknvE/G52fUAjj+Y7gGc8bmbnLvXshv0lpVtCcO3XkBXbxJ7TbtV349G7OdOTnZ7G674ZzokxtxRTck3STw2rxclS62+fEvRsekdbxQhZ2dysD7GYKm4QEkyDKvWNbcWvb/D5DaThUnOiWm5hWyzIkmJYxaeobs/+1VeYdeYF4cW9K516IBebACwNnasxJDNPj8pbw1LcQFxQ8/3g3I1TViqO0mdTyd3fAFdY02lojzVpCREX9n1mSUREsJckLNrqWsWFQkEb351i5v3+CJ6VF+xSSUZhV12rZ57XhphWfjlzAm93f3yggIzqxxRjPsHvBeioJ5R5Gbipc/9vuRdwJs7DblK6YJa/Lr/hSIwRLPcmoYsFLx/drDdPlLIuQ4hoazh2CpZemJeDGWQ3CHARZqBdV0iF9ogmGTXEl5J0Wqair9A9dAQb3mqEGCaXf4Qc8zp7NcVxB247PI3wCneYbz1Sg5F+MrzMD/oWt40S0zGfs9AhDBGCFhoBQ+HISDKKyU/iNPYrX0lnyGvaLGOcYMQvIP3pdnQjRHsPLvsN7o4CsyJcXl1p8tgJ/u3MmYrXTK0Og/WHE7m7kjbZjA1DGKZcnAS/W3OTzddA8txNjnc220BFJowR6ebBoxunNA=; 31:M+BfFUgvp0vXr1IZjOdlWcVIrPmkBXyG0dwD44a3KqJsA709ntET3A/ulGJK6K7zXxVuY8vjEZbJhlzS344DYMQolP7q9XtN2yna4d3HeaKqS81SpvnfyqegvFNF69E4e4JpA/gNUnRkTc3anDhQYdYrotbLDTLK4+ptlOUQddnlsn5ATDqcFZ8d/3j8ZeO+k+vtnoAYJqTVIp7cfgkH9A== X-JNPR-Received-From: outside X-Microsoft-Exchange-Diagnostics: 1; BY2PR05MB2344; 20:L3xFGDFvUuqnmI1N7Fz2ZobI/9zmC7SPpzb8fS6UTIcb28oZB/GuQ2/UeteC9LmPXDEZyBjMPygbjjW2fkFA1xyWbSB5yGO1orUjYDiEr09FbOl+kMhr0rNFa4Lkh1eUwcWCxEfMhoHmiEJdzI7m6PpQx9iFxHWA1CyKUUXEqrFe28zZW7UtRHgcFyQNTpQ/hoh1MKygxeJwtCd5BHAIGvnBHlyGvP6pDvEBJo+JNXZSKxnu5OJ8UaYSJaWtwGMltl4DyEMUGS7E78bDBr3xwmRZM9+blLbVqvBtB33486FWF3qIaJGv5SvuYN0MQb8eVPNL/n8tdXWA/vYscaK93v/eY2D7gzwxID7wZfzEfJThE4K3WHiZAMxnHZm8R6D/74ZNE/QFEaT1C2+rfM/rOpJXuB4rQQ9brynqnXSap7qzPOiiwPKQ70fmYqNv7YGy0gufOWBNEbCNqX0220JeO0QJcDJq9VfLmUyksRsdlLuwlI78rTHkTh3PCzkRRDBk X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13018025)(13024025)(13023025)(13017025)(13015025)(8121501046)(5005006)(10201501046)(3002001)(6055026); SRVR:BY2PR05MB2344; BCL:0; PCL:0; RULEID:; SRVR:BY2PR05MB2344; X-Microsoft-Exchange-Diagnostics: 1; BY2PR05MB2344; 4:w4d5S72ugtR5HnVlEPEh4qKjzi70xksFKFwkoRnxrygZ1ssMKjta3rRqR9YkqM/xj9sFVn/6y/c4/k7dkC9MKXEQMaGGBlplgpbJFYtdn9OZ918LDM/swshMuiiXajm6pHXRxU3do4zfRINrQN59hmeNLuNggXssBPBRm8V3QClXDBh0jrq0uw5+l3G1mVuXIQU4KyUDlRD/xanXRMXRDz5NV2kndooFk/dlpVc8P5zuk3nc4Sqn6UFHheBUCIUYgIWh4Cv63c+iaXafYzM2BgBMv62w1h+k89DwLX2bn7cjZ/hLu/3QOnFA7BlEfLW5tj2MHxd0r2AajXtwMVIoIf7B7J/Cm4phQe8iY3aB+jKfwdrg6+RaF0xwXHTDiWzkDo1tYnZTa5q5OsnOlrGc9B3hfQGJTahT4a+48Y2+f3YsoAt6TSCvG9/7lu5rZZ8hhtgVGqP3JYTWgd/LMZDTGfxXP3QRqX293rDOeHSuUrY= X-Forefront-PRVS: 0010D93EFE X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJQUjA1TUIyMzQ0OzIzOnBSeEVyUGRWWTNzc3NjUnJURDVjWlVXRzhK?= =?utf-8?B?R3pucXUwbWFhOTh0V0NwRkpCbDQ3Vy9oS1VIaWdyQytMZ3c2V1N1QTZWTVl2?= =?utf-8?B?L2IrSVhiQ2lzcGZHMGVtTmNqZG92MjYxRXA5M2hML05yUncvSnJPZk1HUTFu?= =?utf-8?B?ODMzT2d0VCtZejRvMUVkRkJyV1pTK3JpZGJqRnVoTWdNcUEvUzdOTlNJVGg5?= =?utf-8?B?enpPNDhrbUhIZ3Q1cUZiZmp4SGp4MWZRd3BOc2dPQ051UVVGTWQyTFNTL3o1?= =?utf-8?B?QUlRdllGTUlKeFNxQ0ZobnBsMTc4c0xRTkFrVmNCSE5ieU9DK1FGdzJQZ2Fz?= =?utf-8?B?TjhtNzJPZnViSW1LTDJXZWNiL1IvSVcrb0o5ZEFCRmhSaHZFcmZ5TkdsRnQ1?= =?utf-8?B?c2N6WENteENTY3NDVTc0U29jckd6ZnNncDUrSW5pNk9rdVNoRWNUWGJXNXdm?= =?utf-8?B?UXNDZE8xcjU3NjFIZThCaDBieTEwZTBSQkNOV0VyMS82Tk5RRWVCSklmMUNJ?= =?utf-8?B?bnNNSTBXZ25LWXM0dHdRS1Ira3Jqd0dXNmpmdDBjeGU1SHEvMGpPYXlyRGpO?= =?utf-8?B?N1UxLzd1eHpieWhXUG5LQkhRcW5NaEQ2OXRLcVRJVEhpVjVWbU85QTQ0WWRh?= =?utf-8?B?VXR4Uldna29wZmhOOE4zU2wrQ2xwalJWVlg4TlM2VWl0VUtMd1F4TGJPTlVn?= =?utf-8?B?am1kOXRlWU1JL25mVVhNTFdyQzU2U3BxZ3Btd0toSW9CaGFHTUt1WGZtd1ZP?= =?utf-8?B?SGtVckJqOGNmOGtGRmRoZnFHQ3FFa1E1Y3BCYjVXS1lpSmdJR2JFSStSYlQw?= =?utf-8?B?T3NFUW1SaEJHSUJnMjVjTm5pZ3gyZm42Uk10SE0rQi9abTNMN1N3QU1KSDVE?= =?utf-8?B?OTE4SEdLWWsvelJXWHdteGtZdklIb3o1WnRNYStvNzNTOGtiRXFuejJhUHht?= =?utf-8?B?R3RCL3lRMGZkdXNuS1RhSUlOWFpZak5tTDNUdTdQTU0xQkYxSGxwNmtWRTBU?= =?utf-8?B?dnpQd1ZJYzl5YlNWN1Jha3BINEw3ZkpXQnNGWUhTcEpNcG9SSDRIQkpKMmlo?= =?utf-8?B?QmFzZXNwNGtpaEZQc051cHNkMXhweitPRUtmL3dWVXZ4WlJNc0ZjZG4zU0VO?= =?utf-8?B?YWVJNmlzV25OY2tCVE0zVHJGQ1UwU0hYZ3dDMHlYMW5oeEs2TjVreEF5L3BN?= =?utf-8?B?R1NtczRBWEt2cjI2NWZMTmJROXpTSGZwSnU4UlRldElCTllRZkM5ZFBvbWNB?= =?utf-8?B?MmZDUCtHeUczSTZqdWNWV0JXTEdoMDNDMmwyamdrdXNmQ1gxalI2eGlJWHVi?= =?utf-8?B?VmMvb0pMaW5uN012WXhWaDRoMG1wUXpjV2oydmREU0hrY3g3Q0VjYzIxN2FK?= =?utf-8?B?cTVCMVhGMjhMM1AxR0xtU2cvTWJwZWlZbmJZMDc2SE13TEdSSDlIVXhkOUJW?= =?utf-8?B?NzAyM2psQ1dYUTBMN2xGUVRBSGJGdFFlV1NiZWVxU1BZa3JNZnpIdHZUTko0?= =?utf-8?B?b3ZZYW81R21obG9pclc2SlQ5U3ZqVkxYY29Ta2I3cUlTRW5YRlVpUkplM25M?= =?utf-8?B?cmk2Q1FpZGhEdE16RkE4Qkp4NGE4eFc1VWM4Y2JWdFVhWFNiUGJEWkFaTTF0?= =?utf-8?B?c1lXYTFOa3g1bDJlODkvRGdwd0d6L0oxa2Rod2FnUVFZcTY3SEw0bW9UMjJh?= =?utf-8?B?MmhCUkhBOXBxeG11bEZ3Ym02WmFraFcra2NRcG9OdXQ4eGNwc1YyVDh3NEk3?= =?utf-8?B?ODdYVmZuditrSk5KTWN4REdKVlIrWC9FZktPNGVkRUdxWWwvblM2dHVYWi9v?= =?utf-8?B?M0YyaiszOWlsc0ZZK1lnM3dKbVpBZ1BJYUdDU3cwNXpuWFE9PQ==?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR05MB2344; 6:zwn9BcTY/zJGYkrT1xth9gdBSVnaBdvg+uxL45Ham4VSSJevms9UNwRF+kV4QOLQljnTw01we/EOIZANJUFzYhMo7HaH8wWcaqO3GpN81aWaz69QnjdHOLQP1/NpDVxt1ESwwQvTgGoICsJ14G7zU/qOtfoRPTs3oRebVM8GPqAmUrq2/lkByGBoBRLo0sKaPRiX4UTN6bx8cOQ6yHdsTuD4wPokgkHVpr2+F6DS4YWe2faNnC95e33fnSc3sGDoLkzmcT5Vh3iFj2RJkczujhxhylaelny/WBXVzYDftBurwbNmEdcDhnTJiA6Xi0PaBKPsOV3Q+0YL4bM1Jb0VkQ==; 5:PMICBmYHuEYgLgvpC0zVOTpcnoTw9PAb3XWNFMKmbo/Y8onlphDc+dPjCpo4Nm1r8R4KZ9bJT4gqd/ZbLfFKKVfo7HnMDSfaYqI4A0R4V3vTbC4UwRk5DAFt7DWO5HEnQ3wonwapq5sA3NleVldrSw==; 24:cvj5oUBj6ey1/n0MZmbPvkWezCSxmgI1H0nxfoIFWVefDEAgCUpnZqbgWojOe63/6wvdcFC9fJ3VxjbLuWpGIHe1DePo/8hvEbTqnUy3bGQ=; 7:5Hzd8U7WfmoZGSqDpUGG0oi9IzbM1Zy5DICGsb+GKCR6h+vUIb0n6oSNE/8NeYgJwMsvsD6KHzJnlm4xfDEe53yL2EtBxtI32+yYr05yQlSef8eMh3rWHhngCtTKVX4+1oq6t7sdoGHU9xTtTLw5VEtfqs70u020QF0IJcfJA4dLrsvpj1SyTKruZMBCOlE24fqBKay7pPM8h87D3PFQaJIVDHLg8Qf6lxjs4t6HMvB+dhaIguM3iY0r1mrMzfz3 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2016 13:12:07.4851 (UTC) X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.19]; Helo=[P-EMFE01C-SAC.jnpr.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR05MB2344 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 13:47:01 -0000 On 7/21/16, 3:34 AM, "owner-src-committers@freebsd.org on behalf of Michal Meloun" wrote: > The API is part of still unstable, experimental INTRNG, so its not fixed we we can > change it at any time, I think. If INTRNG is unstable and experimental, why is it in the GENERIC kernel for arm64? Or, is the entire arm64 architecture considered unstable and experimental in 11.0? (I'm not trying to take sides; these are honest questions.) Jonathan From owner-svn-src-all@freebsd.org Thu Jul 21 14:17:37 2016 Return-Path: Delivered-To: svn-src-all@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 CA8AABA08BA; Thu, 21 Jul 2016 14:17:37 +0000 (UTC) (envelope-from pfg@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 99DDA1310; Thu, 21 Jul 2016 14:17:37 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LEHabB086379; Thu, 21 Jul 2016 14:17:36 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LEHaPR086378; Thu, 21 Jul 2016 14:17:36 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607211417.u6LEHaPR086378@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 21 Jul 2016 14:17:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303146 - head/usr.bin/sed X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 14:17:37 -0000 Author: pfg Date: Thu Jul 21 14:17:36 2016 New Revision: 303146 URL: https://svnweb.freebsd.org/changeset/base/303146 Log: sed(1): Appease older GCC. Modified: head/usr.bin/sed/process.c Modified: head/usr.bin/sed/process.c ============================================================================== --- head/usr.bin/sed/process.c Thu Jul 21 13:28:07 2016 (r303145) +++ head/usr.bin/sed/process.c Thu Jul 21 14:17:36 2016 (r303146) @@ -97,11 +97,12 @@ process(void) { struct s_command *cp; SPACE tspace; - size_t oldpsl = 0; + size_t oldpsl; char *p; int oldpsanl; p = NULL; + oldpsanl = oldpsl = 0; for (linenum = 0; mf_fgets(&PS, REPLACE);) { pd = 0; From owner-svn-src-all@freebsd.org Thu Jul 21 14:57:25 2016 Return-Path: Delivered-To: svn-src-all@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 18E0EB9F363; Thu, 21 Jul 2016 14:57:25 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.blih.net", Issuer "mail.blih.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 226D61BF7; Thu, 21 Jul 2016 14:57:23 +0000 (UTC) (envelope-from manu@bidouilliste.com) Received: from mail.blih.net (mail.blih.net [212.83.177.182]) by mail.blih.net (OpenSMTPD) with ESMTP id d0a51cb3; Thu, 21 Jul 2016 16:57:14 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=mail; bh=aIFHvmer/zc58Q2XMCM50XEJbIo=; b=ZPfJXMCtu1sF1HDOFj+sgQ/u8bTQ JYGfR8nEve6iZr9G01XFV0bB4/VEHYEyf9vX9XTsxsaw2r70gx/6MeaF0YkgvN80 dm2W+zfbwG1VYuwAHER8EwLg5jeiGIlf4KChALy1olztJArptb/0ivtnrHFA7SK+ 3ZeiTRTqqI4CyOw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=bidouilliste.com; h=date :from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; q=dns; s= mail; b=DBuznjkTtVDPW+lnV5saEaLcD+PxVfGfxBfmP9VegpDDXp7w3f0XKnin bRBtuxkihiJuPgfMnJyqLyCYzsNLFqSyncfu4ba7HOyH5lyOQ/K5BdQjimN2RxL/ acxKHhw091Ja6Gan44ZhuCXr6vDa6G9to/xuXRBLZ3ezqbG3SZM= Received: from knuckles.blih.net (ip-54.net-82-216-203.roubaix.rev.numericable.fr [82.216.203.54]) by mail.blih.net (OpenSMTPD) with ESMTPSA id 9d494247 TLS version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO; Thu, 21 Jul 2016 16:57:14 +0200 (CEST) Date: Thu, 21 Jul 2016 16:57:14 +0200 From: Emmanuel Vadot To: Warner Losh Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303123 - head/sys/cam Message-Id: <20160721165714.e3281bc2b89e9f5e7ec1bd02@bidouilliste.com> In-Reply-To: <201607210311.u6L3BZH4041241@repo.freebsd.org> References: <201607210311.u6L3BZH4041241@repo.freebsd.org> X-Mailer: Sylpheed 3.5.0 (GTK+ 2.24.29; amd64-portbld-freebsd12.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 14:57:25 -0000 Hello Warner, This break every kernel build that don't have nvme(4). On Thu, 21 Jul 2016 03:11:35 +0000 (UTC) Warner Losh wrote: > Author: imp > Date: Thu Jul 21 03:11:35 2016 > New Revision: 303123 > URL: https://svnweb.freebsd.org/changeset/base/303123 > > Log: > Fix mismerge and include the nvme support. > Also, print out the name of any CCB's functions that's not supported. > > MFC after: 1 week > > Modified: > head/sys/cam/cam_xpt.c > > Modified: head/sys/cam/cam_xpt.c > ============================================================================== > --- head/sys/cam/cam_xpt.c Thu Jul 21 00:53:14 2016 (r303122) > +++ head/sys/cam/cam_xpt.c Thu Jul 21 03:11:35 2016 (r303123) > @@ -1033,6 +1033,8 @@ xpt_announce_periph(struct cam_periph *p > else if (path->device->protocol == PROTO_SEMB) > semb_print_ident( > (struct sep_identify_data *)&path->device->ident_data); > + else if (path->device->protocol == PROTO_NVME) > + nvme_print_ident(path->device->nvme_cdata, path->device->nvme_data); > else > printf("Unknown protocol device\n"); > if (path->device->serial_num_len > 0) { > @@ -1086,6 +1088,8 @@ xpt_denounce_periph(struct cam_periph *p > else if (path->device->protocol == PROTO_SEMB) > semb_print_ident_short( > (struct sep_identify_data *)&path->device->ident_data); > + else if (path->device->protocol == PROTO_NVME) > + nvme_print_ident(path->device->nvme_cdata, path->device->nvme_data); > else > printf("Unknown protocol device"); > if (path->device->serial_num_len > 0) > @@ -2516,6 +2520,10 @@ xpt_action_default(union ccb *start_ccb) > if (start_ccb->ccb_h.func_code == XPT_ATA_IO) > start_ccb->ataio.resid = 0; > /* FALLTHROUGH */ > + case XPT_NVME_IO: > + if (start_ccb->ccb_h.func_code == XPT_NVME_IO) > + start_ccb->nvmeio.resid = 0; > + /* FALLTHROUGH */ > case XPT_RESET_DEV: > case XPT_ENG_EXEC: > case XPT_SMP_IO: > @@ -2655,6 +2663,8 @@ call_sim: > cgd->inq_data = dev->inq_data; > cgd->ident_data = dev->ident_data; > cgd->inq_flags = dev->inq_flags; > + cgd->nvme_data = dev->nvme_data; > + cgd->nvme_cdata = dev->nvme_cdata; > cgd->ccb_h.status = CAM_REQ_CMP; > cgd->serial_num_len = dev->serial_num_len; > if ((dev->serial_num_len > 0) > @@ -3011,8 +3021,10 @@ call_sim: > case XPT_TERM_IO: > case XPT_ENG_INQ: > /* XXX Implement */ > - printf("%s: CCB type %#x not supported\n", __func__, > - start_ccb->ccb_h.func_code); > + xpt_print_path(start_ccb->ccb_h.path); > + printf("%s: CCB type %#x %s not supported\n", __func__, > + start_ccb->ccb_h.func_code, > + xpt_action_name(start_ccb->ccb_h.func_code)); > start_ccb->ccb_h.status = CAM_PROVIDE_FAIL; > if (start_ccb->ccb_h.func_code & XPT_FC_DEV_QUEUED) { > xpt_done(start_ccb); > @@ -3315,6 +3327,13 @@ xpt_run_devq(struct cam_devq *devq) > ata_cmd_string(&work_ccb->ataio.cmd, > cdb_str, sizeof(cdb_str)))); > break; > + case XPT_NVME_IO: > + CAM_DEBUG(work_ccb->ccb_h.path, > + CAM_DEBUG_CDB,("%s. NCB: %s\n", > + nvme_op_string(&work_ccb->nvmeio.cmd), > + nvme_cmd_string(&work_ccb->nvmeio.cmd, > + cdb_str, sizeof(cdb_str)))); > + break; > default: > break; > } > @@ -3904,6 +3923,9 @@ xpt_bus_register(struct cam_sim *sim, de > case XPORT_SATA: > new_bus->xport = ata_get_xport(); > break; > + case XPORT_NVME: > + new_bus->xport = nvme_get_xport(); > + break; > default: > new_bus->xport = &xport_default; > break; -- Emmanuel Vadot From owner-svn-src-all@freebsd.org Thu Jul 21 15:26:22 2016 Return-Path: Delivered-To: svn-src-all@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 65BDCB9FAA6; Thu, 21 Jul 2016 15:26:22 +0000 (UTC) (envelope-from pfg@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 36E9F1C00; Thu, 21 Jul 2016 15:26:22 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LFQLCx012189; Thu, 21 Jul 2016 15:26:21 GMT (envelope-from pfg@FreeBSD.org) Received: (from pfg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LFQLkB012188; Thu, 21 Jul 2016 15:26:21 GMT (envelope-from pfg@FreeBSD.org) Message-Id: <201607211526.u6LFQLkB012188@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pfg set sender to pfg@FreeBSD.org using -f From: "Pedro F. Giffuni" Date: Thu, 21 Jul 2016 15:26:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303147 - head/contrib/binutils/bfd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 15:26:22 -0000 Author: pfg Date: Thu Jul 21 15:26:21 2016 New Revision: 303147 URL: https://svnweb.freebsd.org/changeset/base/303147 Log: binutils: fix "Bad value" error in bfd for MIPS when using -Bsymbolic. From OpenBSD's log: Inspired by https://sourceware.org/ml/binutils/2010-08/msg00333.html, but expressed differently so there are no GPLv3 issues. Obtained from: OpenBSD (CVS rev. 1.7) MFC after: 1 month Modified: head/contrib/binutils/bfd/elfxx-mips.c Modified: head/contrib/binutils/bfd/elfxx-mips.c ============================================================================== --- head/contrib/binutils/bfd/elfxx-mips.c Thu Jul 21 14:17:36 2016 (r303146) +++ head/contrib/binutils/bfd/elfxx-mips.c Thu Jul 21 15:26:21 2016 (r303147) @@ -4801,7 +4801,7 @@ mips_elf_create_dynamic_relocation (bfd /* We must now calculate the dynamic symbol table index to use in the relocation. */ if (h != NULL - && (!h->root.def_regular + && (sec == NULL || !h->root.def_regular || (info->shared && !info->symbolic && !h->root.forced_local))) { indx = h->root.dynindx; From owner-svn-src-all@freebsd.org Thu Jul 21 15:28:09 2016 Return-Path: Delivered-To: svn-src-all@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 B2EFEB9FB60; Thu, 21 Jul 2016 15:28:09 +0000 (UTC) (envelope-from adrian@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 853041D9F; Thu, 21 Jul 2016 15:28:09 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LFS8Pt012296; Thu, 21 Jul 2016 15:28:08 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LFS86X012294; Thu, 21 Jul 2016 15:28:08 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201607211528.u6LFS86X012294@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Thu, 21 Jul 2016 15:28:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r303148 - svnadmin/conf X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 15:28:09 -0000 Author: adrian Date: Thu Jul 21 15:28:08 2016 New Revision: 303148 URL: https://svnweb.freebsd.org/changeset/base/303148 Log: Welcome Michael Zhilin to the fold. Approved by: core (implicit) Modified: svnadmin/conf/access svnadmin/conf/mentors Modified: svnadmin/conf/access ============================================================================== --- svnadmin/conf/access Thu Jul 21 15:26:21 2016 (r303147) +++ svnadmin/conf/access Thu Jul 21 15:28:08 2016 (r303148) @@ -162,6 +162,7 @@ maxim mckay mckusick melifaro +mizhka mjg mm mmel Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Thu Jul 21 15:26:21 2016 (r303147) +++ svnadmin/conf/mentors Thu Jul 21 15:28:08 2016 (r303148) @@ -27,6 +27,7 @@ karels gnn landonf adrian mahrens mckusick miwi rwatson +mizhka adrian Co-mentor: cognet monthadar adrian peterj jhb Co-mentor: grog phil theraven Co-mentor: sjg From owner-svn-src-all@freebsd.org Thu Jul 21 15:42:20 2016 Return-Path: Delivered-To: svn-src-all@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 9C5C4B9FF3B; Thu, 21 Jul 2016 15:42:20 +0000 (UTC) (envelope-from adrian@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 6C4E116D9; Thu, 21 Jul 2016 15:42:20 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LFgJIG018947; Thu, 21 Jul 2016 15:42:19 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LFgJOr018945; Thu, 21 Jul 2016 15:42:19 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201607211542.u6LFgJOr018945@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Thu, 21 Jul 2016 15:42:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r303149 - svnadmin/conf X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 15:42:20 -0000 Author: adrian Date: Thu Jul 21 15:42:19 2016 New Revision: 303149 URL: https://svnweb.freebsd.org/changeset/base/303149 Log: Add Imre Vadasz to the fold. Approved by: core (implicit) Modified: svnadmin/conf/access svnadmin/conf/mentors Modified: svnadmin/conf/access ============================================================================== --- svnadmin/conf/access Thu Jul 21 15:28:08 2016 (r303148) +++ svnadmin/conf/access Thu Jul 21 15:42:19 2016 (r303149) @@ -107,6 +107,7 @@ hrs hselasky ian imp +imre ivoras iwasaki jah Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Thu Jul 21 15:28:08 2016 (r303148) +++ svnadmin/conf/mentors Thu Jul 21 15:42:19 2016 (r303149) @@ -18,6 +18,7 @@ benl philip Co-mentor: simon carl jimharris cherry gibbs eri gnn Co-mentor: thompsa +imre adrian Co-mentor: cognet jceel trasz jkh rwatson jonathan rwatson From owner-svn-src-all@freebsd.org Thu Jul 21 15:48:42 2016 Return-Path: Delivered-To: svn-src-all@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 A795FBA008F; Thu, 21 Jul 2016 15:48:42 +0000 (UTC) (envelope-from adrian@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 78B541A6A; Thu, 21 Jul 2016 15:48:42 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LFmfgF019942; Thu, 21 Jul 2016 15:48:41 GMT (envelope-from adrian@FreeBSD.org) Received: (from adrian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LFmf6A019941; Thu, 21 Jul 2016 15:48:41 GMT (envelope-from adrian@FreeBSD.org) Message-Id: <201607211548.u6LFmf6A019941@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adrian set sender to adrian@FreeBSD.org using -f From: Adrian Chadd Date: Thu, 21 Jul 2016 15:48:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303150 - head/sys/dev/flash X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 15:48:42 -0000 Author: adrian Date: Thu Jul 21 15:48:41 2016 New Revision: 303150 URL: https://svnweb.freebsd.org/changeset/base/303150 Log: [mx25l] add new device id. Tested: * (submitter) TP-Link TL-WR1043nd v3 Submitted by: tj@enoti.me Modified: head/sys/dev/flash/mx25l.c Modified: head/sys/dev/flash/mx25l.c ============================================================================== --- head/sys/dev/flash/mx25l.c Thu Jul 21 15:42:19 2016 (r303149) +++ head/sys/dev/flash/mx25l.c Thu Jul 21 15:48:41 2016 (r303150) @@ -133,6 +133,9 @@ struct mx25l_flash_ident flash_devices[] /* Atmel */ { "at25df641", 0x1f, 0x4800, 64 * 1024, 128, FL_ERASE_4K }, + + /* GigaDevice */ + { "gd25q64", 0xc8, 0x4017, 64 * 1024, 128, FL_ERASE_4K }, }; static uint8_t From owner-svn-src-all@freebsd.org Thu Jul 21 15:53:34 2016 Return-Path: Delivered-To: svn-src-all@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 E2760BA04EB; Thu, 21 Jul 2016 15:53:34 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from d.mail.sonic.net (d.mail.sonic.net [64.142.111.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CAC361F31; Thu, 21 Jul 2016 15:53:34 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from zeppelin.tachypleus.net (75-101-50-44.static.sonic.net [75.101.50.44]) (authenticated bits=0) by d.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6LFrNbB016797 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 21 Jul 2016 08:53:23 -0700 Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Michal Meloun , Svatopluk Kraus , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578E0B5D.3070105@FreeBSD.org> <578F6075.7010500@FreeBSD.org> <05a80ac6-4285-ec9d-36e9-2f92c609f746@freebsd.org> <57907B0F.9070204@FreeBSD.org> From: Nathan Whitehorn Message-ID: <9d2a224c-b787-2875-5984-a7a2354e8695@freebsd.org> Date: Thu, 21 Jul 2016 08:53:22 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <57907B0F.9070204@FreeBSD.org> X-Sonic-CAuth: UmFuZG9tSVb6ZE44LhKfM/K/JviZPOde+Mx5I1V+ghtay/kcsr7tKK0P0toLGDMSw5ESLTSGTEEPFe/GBcfnTLSbVu2PBGo7SgfJinv5Kz0= X-Sonic-ID: C;AgfiQFtP5hG+J5NwxPCmMQ== M;Sm8xQVtP5hG+J5NwxPCmMQ== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 15:53:35 -0000 On 07/21/16 00:34, Michal Meloun wrote: > Dne 20.07.2016 v 17:45 Nathan Whitehorn napsal(a): >> >> >> On 07/20/16 04:28, Michal Meloun wrote: >>> Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): >>>> >>>> >>>> On 07/19/16 04:13, Michal Meloun wrote: >>>>> Dne 19.07.2016 v 2:11 Nathan Whitehorn napsal(a): >>>>> Hi Nathan, >>>>> I’m afraid that skra is on vacation, for next 2 weeks (at >>>>> minimum), so >>>>> please don’t expect quick response. >>>>> >>>>>> Could you please describe what this change is in more detail? >>>>> Short description is appended. >>>>> >>>>>> It breaks a lot of encapsulations we have worked very hard to >>>>>> maintain, >>>>>> moves ARM code into MI parts of the kernel, and the OFW parts >>>>>> violate >>>>>> IEEE 1275 (the Open Firmware standard). In particular, there is no >>>>>> guarantee that the interrupts for a newbus (or OF) device are >>>>>> encoded in >>>>>> a property called "interrupts" (or, indeed, in any property at >>>>>> all) on >>>>>> that node and there are many, many device trees where that is not >>>>>> the >>>>>> case (e.g. ones with interrupt maps, as well as Apple hardware). By >>>>>> putting that knowledge into the OF root bus device, which we have >>>>>> tried >>>>>> to keep it out of, this enforces a standard that doesn't actually >>>>>> exist. >>>>> Imho, this patch doesn’t change anything in this area. Only >>>>> handling of >>>>> “interrupts†property is changed, all other cases are unchanged (I >>>>> hope). Also, INTRNG code is currently shared by ARM, ARM64 and MIPS. >>>> >>>> But "interrupts" isn't a generic part of OF. This makes it one, >>>> incorrectly. >>> How? Can you be little more exact ? >> >> Because it puts knowledge into ofwbus that expects that children at >> arbitrary levels of nesting have interrupts defined by an >> "interrupts" property. You could patch this through on sub-devices, >> of course, but that's already done correctly by the existing >> ofw_bus_map_intr() code in a much more robust way that doesn't >> involve trying to guess how sub-buses and devices have chosen to >> allocate resources. Why reinvent the wheel all the way through the >> bus hierarchy? > Nope, the code only expect that „interrupts" property is default way > hot to get interrupt description. Any device or bus in the hierarchy > can fill appropriate resource list, or terminate call at any level. "interrupts" should not be the default -- it's part of the OF bindings for the bus and is used (notably) by simplebus. The issue of cross-correlating RIDs is a much larger problem, however. [snip] >> >>>>> >>>>> The patch simply postpones reading of interrupt property to >>>>> bus_alloc_resource() (called by consumer driver) time. >>>>> >>>>> Due to this, we can: >>>>> - parse interrupt property. The interrupt driver must exist >>>>> at this time. >>>> >>>> This only works with some types of interrupt properties, not all, >>>> and breaks if the interrupt driver hasn't attached yet (which it >>>> can't be guaranteed to -- some PPC systems have interrupt drivers >>>> that live on the PCI bus, for example). >>> How you can allocate (and reserve it in rman) interrupt if is not >>> mapped (so you have not real IRQ number for it). Just for notice - >>> multiple virtual IRQs can be mapped into single real IRQ. >> >> The core idea is to think of the full interrupt specifier -- the >> interrupt parent and the full byte string in the device tree -- as >> the IRQ rather than the interrupt pin on some chip (which is usually, >> but not always, the first word in that byte string). The "virtual" >> IRQ number is just a compression of that longer piece of data, which >> usually can't fit in an rman resource. > I understand. While this approach can works (and actually works) for > single sourced OFW world, it immediately fails if you must be able to > parse data from different sources (which uses different encoding) > (OFW, UEFI / ACPI, GPIO...) within one system. On PowerPC, GENERIC64 supports FDT systems (some IBM hardware), OFW systems (Macs, some IBM hardware), systems with no device trees at all (old-style PS3), and systems with a mixture of device tree and no device tree (new-style PS3). On these, there is a mixture of "real" interrupts and GPIO-type interrupts. There is no limitation that this be used only for device-tree-type systems. The system requires two things: an interrupt domain key and an arbitrary unique byte string describing the interrupt. When running with a device tree, these are set to the phandle of the interrupt-parent and the contents of the device tree interrupt specifier, respectively, and the system was of course developed with that in mind. But they don't need to be, and often aren't. You could make the domain an element of an enum (where "ACPI" is a choice, for instance -- this is what PS3 does), or set it to a pointer to a device_t, or really anything you like. Similarly, the interrupt specifier is totally free-form. You could, for instance, set it to one of the structures introduced in r301453 if you wanted to. I would have zero problems with changing the prototype of the existing dev/ofw function to something more generic in name, like: bus_map_intr(device_t dev, uintptr_t iparent, size_t intrlen, void *intr) instead of the existing equivalent: ofw_bus_map_intr(device_t dev, phandle_t iparent, int icells, pcell_t *intr) > By this, one byte string in OFW encoding can describe one IRQ and > exactly same string in UEFI encoding can describe different IRQ. Or, > in reverse, OFW and UEFI can describe same (and compatible) IRQ by two > different strings. > This is exact reason, why we discards virtual IRQ idea and I think > that this fact is root issue of this clash. > Probably it doesn't make sense to talk about others, unless we can > find consensus on this. You have the larger problem if you end up in this situation that you are enumerating the hardware by two different and incompatible techniques. There simply is no way to solve this unless you either (a) segregate the system into an ACPI-enumerated domain and an OF-enumerated domain, in which case the problem vanishes, (b) discard one enumeration, which is what arm64 does and will always do, according to Andrew in another post, or (c) make some incredibly complex merging code that would naturally handle interrupts with everything else. So I don't think this is an actual, real problem. In circumstances where you have a nested, non-device-tree hierarchy (e.g. OPAL on PowerNV or GPIOs or what-have-you), this kind of problem is easily solved by inventing an extra interrupt domain. > >> There is no need to actually activate those interrupts before >> interrupts are enabled, so you can just cache them in a table until >> the end of device probing, which lets you break circular dependency >> loops between bus and interrupt topology. >> >> So long as you keep track of your mapping and the same (parent, >> interrupt specifier) parent always gives the same virtual IRQ, there >> is no way in this system to map multiple active IRQs onto a single >> interrupt pin on the PIC unless your device tree is broken and >> specifies two devices with incompatible modes (active high and edge >> downgoing or something) on the same pin. In this case, nothing you >> can do will save you -- unless your PIC supports interrupts for >> different kinds of events, in which case this system will work >> perfectly by treating them as different interrupts to the kernel for >> which the fact they are on the same pin is immaterial. >> >> I should note that ARM and MIPS have an almost complete >> implementation of this already: maybe some more intr_machdep.c logic >> is needed for some cases, but all the rest of the plumbing is there. >> >>> >>>> >>>>> - bus_alloc_resource() returns resource, so we can attach parsed >>>>> interrupt data to it. By this, the resource itself can be used >>>>> for delivering configuration data to subsequent call to >>>>> bus_setup_intr() (or to all related bus_() calls). >>>>> >>>>> >>>>> The patched code still accepts delivering of interrupts in >>>>> resource list. >>>>> >>>>> Michal >>>>> >>>> >>>> Given that other code depends on this, fixing it will likely >>>> require some complex work. I wish I had known about it when it went >>>> in. >>>> >>>> There are three main problems: >>>> 1. It doesn't work for interrupts defined by other mechanisms (e.g. >>>> interrupt-map properties) >>> I aggree, but missing ' interrupt-map' functioanlity is not caused >>> by this patch. >> >> It is in that the standard system already implements it completely. > Really? > https://svnweb.freebsd.org/base/head/sys/dev/ofw/ofw_bus_subr.c?revision=301453&view=markup#l521 > and > https://svnweb.freebsd.org/base/head/sys/arm/arm/nexus.c?revision=301453&view=markup#l411 That function is questionable and I objected to it at the time; it is meant only as a convenience for simplebus. More complicated cases, like ofwpci.c, use interrupt-map and have for a very long time. Simplebus allows interrupt-map but support has never been added, which is a bug. One of the major problems I have with this patch is that adding it would now require parsing all of that in two places, and cross-correlating them with questionable chance of success, rather than in just one. FreeBSD/PowerPC systems have relied on interrupt-map for ten years now. It's not especially exotic. >> >>> >>>> 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), >>>> but is both problematically more general and less flexible (it has >>>> requirements on timing of PIC attachment vs. driver resource >>>> allocation) >>> OFW_BUS_MAP_INTR() can parse only OFW based data and expect that >>> parsed data are magicaly stored within the call. >>> The new method, bus_map_intr(), can parse data from multiple >>> sources (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). >>> It also returns parsed data back to caller. >> >> That is not true. It works as long as you can specify the interrupt >> state as a 32-bit key of some kind for the PIC and a string of >> arbitrary data, which works with all of those. You could even make >> the interrupt data be a pointer to exactly the structs you have >> chosen to define here. > Nope, in heterogeneous world, same string can describe two different > IRQs and/or two different strings can describe single IRQ in > compatible manner. Can you give *any* concrete example of this that doesn't involve mixed ACPI/FDT enumeration of a single system where devices appear in both trees, which doesn't actually ever happen? And even in those cases, there is no problem, since the PIC driver can just dispatch both (or more) vectors corresponding to the interrupt pin when the configured interrupt fires. It would have to have special logic to handle decoding unrelated types of interrupt specifiers; adding that would be about 3 lines of code. > >> >>> And no, it doesn't add any additional timing requirements . >> >> As far as I can tell, it requires the interrupt controller to be >> attached before you can allocate interrupts. Is that not true? > Yes, sure. And the patch doesn't change this. > Before: > https://svnweb.freebsd.org/base/head/sys/kern/subr_intr.c?view=markup&pathrev=301263#l1103 > After: > https://svnweb.freebsd.org/base/head/sys/kern/subr_intr.c?view=markup&pathrev=301543#l928 On PowerPC, we don't require this and never have. The VIRQ stuff is meant explicitly to not require this. >> >>> >>>> 3. It is not fully transparent to end code. Since it happens at >>>> bus_alloc_resource() time, it is complicated to get the appropriate >>>> values for IRQs constructed by composite techniques (interrupt-map >>>> vs. interrupts vs. hand allocation vs. PCI routing, for example). >>> I don't see any limitation - can you be more exact? Why is not >>> transparent? Why is more complicated ? >> >> Suppose that a PCI device adds more IRQs to its resource list or >> modifies the ordering. How is whatever bus layer supposed to do >> something sensible at allocation time? It requires that RID numbers >> mean something to the parent bus after assignment, which is not >> guaranteed by anything and is, in more than handful of cases I think >> of, not true in practice. > Sure. And since the new code allows delivering resources in RL, so I > don't see any limitation here. It indexed mapping by RID and then searches interrupt lists by that to get the interrupt-parent. This is fundamentally a broken design if the child needs to, say, add a second interrupt to its RL on a different interrupt-parent. > >> >>>> It is much easier to do this correctly at bus attach time when the >>>> resource lists are made (how PPC does it). >>>> >>> I don't agree. I don't agree. Making this at bus attach time leads >>> into complicated 'virtual' IRQ infrastructure, with many unresolved >>> corner cases. >> >> Which unresolved corner cases? This has been working correctly on a >> number of platforms in both FreeBSD and Linux for many years. > Nope, it doesn't work for ARM yet (for GPIO interrupts for example) > and Linux uses EPROBE_DEFER mechanism for a long time. > See: http://lxr.free-electrons.com/source/drivers/base/platform.c#L87 There is some missing code on ARM (probably about 30 minutes of work to make it match PowerPC) to make it work in an ideal case, sure, but there is no reason you could not go out right now, with the existing code, and implement GPIO interrupts by declaring the GPIO driver as an interrupt controller. Can you give any concrete case of something that doesn't work? > >> >>> >>>> (1) is easy to fix without API changes, but (2) and (3) are >>>> fundamental architectural problems that will bite us immediately >>>> down the road and cause a permanent schism between OF support on >>>> different platforms. >>>> >>>> Let me describe how this is handled on PowerPC (Linux on PPC solves >>>> the problem the same way). When constructing a resource list, bus >>>> drivers that construct them from OF properties call >>>> ofw_bus_map_intr() with the interrupt parent phandle and the array >>>> of cells corresponding to the interrupt. This thunks immediately to >>>> nexus, which connects to code in intr_machdep.c. Code there assigns >>>> a unique made-up virtual IRQ and returns it, caching the interrupt >>>> parent ID and opaque interrupt data (if the same string of data >>>> reappears later, you get back the same virtual IRQ of course). >>>> >>>> When PIC drivers attach and register themselves with the interrupt >>>> handling layer, all the interrupts for that PIC are passed to it >>>> along with the virtual IRQ. The PIC driver is supposed to know what >>>> its interrupt data mean, which can be safely guaranteed, and it >>>> presents the assigned virtual IRQ number to the kernel when >>>> dispatching interrupts. (IRQs configured after PIC attachment are >>>> passed through immediately). >>>> >>>> This accomplishes the following things: >>>> 1. Parsing interrupt data is moved to the PIC driver, which is the >>>> only place it can be done safely. >>> I don't see anything different comparing with INTRNG. >> >> What I am advocating *is* INTRNG, at least as originally conceived >> and implemented. >> >>>> 2. There is no ordering requirement on PIC attachment vs. the >>>> attachment of anything else. >>> I think thats is not a true - PIC must exist before >>> bus_alloc_resource() / bus_setup_intr() is called. >> >> It does not with the IRQ mapping infrastructure. Interrupts are set >> up at PIC attachment, whenever that occurs. >> > Assuming that bus_alloc_resource and bus_setup_intr() are close > thorougher and in linear piece of code, can i assume that you can call > bus_setup_intr() > without PIC attached ? Yes. >>> >>>> 3. Changes are extremely minimal relative to the "standard" >>>> interrupt flow: you only have to patch code that is already >>>> directly dealing with OF interrupts. >>> I don't see anything different comparing with INTRNG. >> >> Again, this was the original INTRNG architecture and is already >> implemented. As such, there are *no* changes required on ARM to get >> it. bus_map_intr() adds a bunch of new code, in parallel with the old >> code that also solves the problem, to no purpose. > So, on PPC, how i can get interrupt for GPIO pin described by this > property: > https://svnweb.freebsd.org/base/head/sys/gnu/dts/arm/tegra124-jetson-tk1.dts?revision=295436&view=markup#l1691 > The GPIO controller registers itself as an interrupt domain and decodes those strings as IRQ specifiers. When interrupts are configured, it does whatever it needs to do to configure them appropriately and dispatches them to the kernel when they occur. It's a pretty trivial cascaded interrupt configuration. And, since the VIRQ code does not need the interrupt controller attached in advance, you don't need to worry about attach order of wherever &gpio points and the SDHCI driver. >> >>>> 4. It happens at bus enumeration time, when results can be >>>> guaranteed self-consistent. >>> Where do you see any potential source of inconsistency in INTRNG? >> >> See the example above about modified interrupt lists. There is also >> no obvious way for a child device to construct an interrupt not >> assigned to it by the parent device from device tree properties >> without knowing in some detail what kind of interrupt needs to be built. >> >>> >>>> 5. It combines naturally with ofw_bus_lookup_imap() and friends in >>>> the interrupt-map case (e.g. for PCI). >>> Again, I don't see anything different. Proper parsing of interrupt >>> property is not a problem of INTRNG (but must be fixed, of course). >> >> But it is *already* fixed by the standard code that already exists. >> You are introducing a less-functional parallel code path here. > NO, its not fixed, at least not for ARM. Why not, concretely? I'm happy to write whatever code is missing if there's a bug. It can't be more than a few tens of lines in arm/intr.c. >> >>>> >>>> I'm not sure what the right path forward is, but this code needs to >>>> be fixed. The PowerPC code is fully MI, and was the template for >>>> the original INTRNG, so it shouldn't be too bad to replace. >>>> -Nathan >>>> >>> >>> So, new INTRNG: >>> - Introduces new more general bus method that can parse interrupt >>> configuration >>> data from any source. Is this step backward? >> >> Yes, since it is more general in some sense, while simultaneously >> handling fewer cases than code that already exists and is implemented. >> >>> >>> - Old INTRNG and PPC code stores unparsed and/or parsed interrupt >>> data in >>> INTRNG and each consumer must query for them. This data sharing >>> also causes >>> significant locking issues. New INTRNG stores interrupt >>> configuration data into >>> given resource, so each relevant bus method can access it immediately. >>> Is this step backward? >> >> Which locking issues? And yes, it is. >> >>> >>> - New INTRNG is not OFW centric, it can works with virtually >>> unlimited number >>> of configuration data sources. Is this step backward? >> >> Also yes, because it makes the interrupt handles less opaque, which >> makes the infrastructure less flexible. >> >>> - New INTRNG correctly uses standard system infrastructure. Real IRQ >>> number >>> is reserved in rman within bus_alloc_resource() call, interrupt HW is >>> configured (only!) within bus_setup_intr() call. Is this step >>> backward? >> >> The "real" IRQ number is not well defined always, so requiring that >> is a step backwards, yes. >> >>> - New INTRNG completely eliminates huge and not always working virtual >>> IRQ concept. >> >> When does it "not always work"? It seems to, in fact, always work on >> multiple platforms and have for a long time in the face of all kinds >> of totally bizarre topologies and system architectures. >> >>> >>> >>> Don’t take me bad, I’m open to any change. But no, at this time, >>> I’m not ready to completely revert someone else's work – although I >>> am a co-author. >> >> I would urge, in the strongest possible terms, that this be backed >> out from stable/11 at least. We can add the new API back for 11.1 if >> we want it, but we totally lose the ability to change it later in the >> stable/11 cycle if it stays in now. >> -Nathan >> > The API is part of still unstable, experimental INTRNG, so its not > fixed we we can change it at any time, I think. > But yes, we forget to wrap new bus_map_intr() method (and associated > code) by #ifdef INTRNG. Is this sufficient for you? For HEAD, yes. I would like it out of stable/11 entirely until this discussion converges. -Nathan From owner-svn-src-all@freebsd.org Thu Jul 21 16:34:58 2016 Return-Path: Delivered-To: svn-src-all@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 5FAD0BA0E46; Thu, 21 Jul 2016 16:34:58 +0000 (UTC) (envelope-from kib@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 13A5C1898; Thu, 21 Jul 2016 16:34:58 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LGYvhn038342; Thu, 21 Jul 2016 16:34:57 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LGYvIH038339; Thu, 21 Jul 2016 16:34:57 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607211634.u6LGYvIH038339@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 21 Jul 2016 16:34:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303151 - in head/sys: dev/pty kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 16:34:58 -0000 Author: kib Date: Thu Jul 21 16:34:56 2016 New Revision: 303151 URL: https://svnweb.freebsd.org/changeset/base/303151 Log: Provide counter_warning(9) KPI which allows to issue limited number of warnings for some kernel events, mostly intended for the use of obsoleted or otherwise undersired interfaces. This is an abstracted and race-expelled code from compat pty driver. Requested and reviewed by: jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D7270 Modified: head/sys/dev/pty/pty.c head/sys/kern/subr_prf.c head/sys/sys/systm.h Modified: head/sys/dev/pty/pty.c ============================================================================== --- head/sys/dev/pty/pty.c Thu Jul 21 15:48:41 2016 (r303150) +++ head/sys/dev/pty/pty.c Thu Jul 21 16:34:56 2016 (r303151) @@ -52,10 +52,10 @@ __FBSDID("$FreeBSD$"); * binary emulation. */ -static unsigned int pty_warningcnt = 1; +static unsigned pty_warningcnt = 1; SYSCTL_UINT(_kern, OID_AUTO, tty_pty_warningcnt, CTLFLAG_RW, - &pty_warningcnt, 0, - "Warnings that will be triggered upon legacy PTY allocation"); + &pty_warningcnt, 0, + "Warnings that will be triggered upon legacy PTY allocation"); static int ptydev_fdopen(struct cdev *dev, int fflags, struct thread *td, struct file *fp) @@ -77,12 +77,7 @@ ptydev_fdopen(struct cdev *dev, int ffla } /* Raise a warning when a legacy PTY has been allocated. */ - if (pty_warningcnt > 0) { - pty_warningcnt--; - log(LOG_INFO, "pid %d (%s) is using legacy pty devices%s\n", - td->td_proc->p_pid, td->td_name, - pty_warningcnt ? "" : " - not logging anymore"); - } + counted_warning(&pty_warningcnt, "is using legacy pty devices"); return (0); } Modified: head/sys/kern/subr_prf.c ============================================================================== --- head/sys/kern/subr_prf.c Thu Jul 21 15:48:41 2016 (r303150) +++ head/sys/kern/subr_prf.c Thu Jul 21 16:34:56 2016 (r303151) @@ -1196,3 +1196,22 @@ sbuf_hexdump(struct sbuf *sb, const void } } +void +counted_warning(unsigned *counter, const char *msg) +{ + struct thread *td; + unsigned c; + + for (;;) { + c = *counter; + if (c == 0) + break; + if (atomic_cmpset_int(counter, c, c - 1)) { + td = curthread; + log(LOG_INFO, "pid %d (%s) %s%s\n", + td->td_proc->p_pid, td->td_name, msg, + c > 1 ? "" : " - not logging anymore"); + break; + } + } +} Modified: head/sys/sys/systm.h ============================================================================== --- head/sys/sys/systm.h Thu Jul 21 15:48:41 2016 (r303150) +++ head/sys/sys/systm.h Thu Jul 21 16:34:56 2016 (r303151) @@ -447,4 +447,6 @@ void intr_prof_stack_use(struct thread * extern void (*softdep_ast_cleanup)(void); +void counted_warning(unsigned *counter, const char *msg); + #endif /* !_SYS_SYSTM_H_ */ From owner-svn-src-all@freebsd.org Thu Jul 21 16:58:54 2016 Return-Path: Delivered-To: svn-src-all@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 D1640BA0553; Thu, 21 Jul 2016 16:58:54 +0000 (UTC) (envelope-from kib@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 96D1A18BE; Thu, 21 Jul 2016 16:58:54 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LGwrnI045854; Thu, 21 Jul 2016 16:58:53 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LGwrDC045853; Thu, 21 Jul 2016 16:58:53 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607211658.u6LGwrDC045853@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 21 Jul 2016 16:58:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303153 - head/share/man/man7 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 16:58:54 -0000 Author: kib Date: Thu Jul 21 16:58:53 2016 New Revision: 303153 URL: https://svnweb.freebsd.org/changeset/base/303153 Log: Remove spurious but harmless double-quote. Noted by: jhb Modified: head/share/man/man7/arch.7 Modified: head/share/man/man7/arch.7 ============================================================================== --- head/share/man/man7/arch.7 Thu Jul 21 16:56:04 2016 (r303152) +++ head/share/man/man7/arch.7 Thu Jul 21 16:58:53 2016 (r303153) @@ -47,7 +47,7 @@ On all supported architectures, .It float Ta 4 .It double Ta 8 .El -.Bl -column -offset indent "Sy Architecture" "Sy sizeof(void *)" "Sy "sizeof(long double)" +.Bl -column -offset indent "Sy Architecture" "Sy sizeof(void *)" "Sy sizeof(long double)" .It Sy Architecture Ta Sy sizeof(void *) Ta Sy sizeof(long double) .It amd64 Ta 8 Ta 16 .It arm Ta 4 Ta 8 @@ -66,7 +66,7 @@ On all supported architectures, .It sparc64 Ta 8 Ta 16 .El .Ss Endianness and Char Signedness -.Bl -column -offset indent "Sy Architecture" "Sy Endianness" "Sy "char Signedness" +.Bl -column -offset indent "Sy Architecture" "Sy Endianness" "Sy char Signedness" .It Sy Architecture Ta Sy Endianness Ta Sy char Signedness .It amd64 Ta little Ta signed .It arm Ta little Ta unsigned From owner-svn-src-all@freebsd.org Thu Jul 21 17:07:08 2016 Return-Path: Delivered-To: svn-src-all@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 13560BA0A29; Thu, 21 Jul 2016 17:07:08 +0000 (UTC) (envelope-from kib@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 D1A7A1F0C; Thu, 21 Jul 2016 17:07:07 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LH76gv049438; Thu, 21 Jul 2016 17:07:06 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LH76Mt049437; Thu, 21 Jul 2016 17:07:06 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607211707.u6LH76Mt049437@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 21 Jul 2016 17:07:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303154 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 17:07:08 -0000 Author: kib Date: Thu Jul 21 17:07:06 2016 New Revision: 303154 URL: https://svnweb.freebsd.org/changeset/base/303154 Log: Declare aio requests on files from local filesystems safe. Two notes: - I allow AIO on reclaimed vnodes, since it is deterministically terminated fast. - devfs mounts are marked as MNT_LOCAL, but device vnodes have type VCHR, so the slow device io is not allowed. Reviewed by: jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D7273 Modified: head/sys/kern/vfs_aio.c Modified: head/sys/kern/vfs_aio.c ============================================================================== --- head/sys/kern/vfs_aio.c Thu Jul 21 16:58:53 2016 (r303153) +++ head/sys/kern/vfs_aio.c Thu Jul 21 17:07:06 2016 (r303154) @@ -1664,7 +1664,10 @@ aio_queue_file(struct file *fp, struct k struct aioliojob *lj; struct kaioinfo *ki; struct kaiocb *job2; + struct vnode *vp; + struct mount *mp; int error, opcode; + bool safe; lj = job->lio; ki = job->userproc->p_aioinfo; @@ -1685,7 +1688,16 @@ aio_queue_file(struct file *fp, struct k goto done; #endif queueit: - if (!enable_aio_unsafe) + safe = false; + if (fp->f_type == DTYPE_VNODE) { + vp = fp->f_vnode; + if (vp->v_type == VREG || vp->v_type == VDIR) { + mp = fp->f_vnode->v_mount; + if (mp == NULL || (mp->mnt_flag & MNT_LOCAL) != 0) + safe = true; + } + } + if (!(safe || enable_aio_unsafe)) return (EOPNOTSUPP); if (opcode == LIO_SYNC) { From owner-svn-src-all@freebsd.org Thu Jul 21 17:54:15 2016 Return-Path: Delivered-To: svn-src-all@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 8A767BA14A6; Thu, 21 Jul 2016 17:54:15 +0000 (UTC) (envelope-from rb743@hermes.cam.ac.uk) Received: from ppsw-40.csi.cam.ac.uk (ppsw-40.csi.cam.ac.uk [131.111.8.140]) (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 5780B1CFF; Thu, 21 Jul 2016 17:54:14 +0000 (UTC) (envelope-from rb743@hermes.cam.ac.uk) X-Cam-AntiVirus: no malware found X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/ Received: from xc1.bsdpad.com ([195.154.136.64]:31941) by ppsw-40.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.158]:587) with esmtpsa (LOGIN:rb743) (TLSv1:ECDHE-RSA-AES256-SHA:256) id 1bQIAm-000dqG-jg (Exim 4.86_36-e07b163) (return-path ); Thu, 21 Jul 2016 18:54:12 +0100 Date: Thu, 21 Jul 2016 18:52:25 +0100 From: Ruslan Bukin To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303151 - in head/sys: dev/pty kern sys Message-ID: <20160721175225.GA84153@bsdpad.com> References: <201607211634.u6LGYvIH038339@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <201607211634.u6LGYvIH038339@repo.freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: "R. Bukin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 17:54:15 -0000 Hi, I get the issues below with GCC 6.1 [...] =3D=3D=3D> lib/libsbuf (obj,all,install) /home/rb743/opt/new17/bin/riscv64-unknown-freebsd11.0-gcc -isystem /home/rb= 743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp/usr/include -L/home= /rb743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp/usr/lib --sysroo= t=3D/home/rb743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp -B/home= /rb743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp/usr/bin -O2 -pi= pe -msoft-float -MD -MF.depend.subr_prf.o -MTsubr_prf.o -std=3Dgnu99 -fs= tack-protector-strong -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wn= o-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith= -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-param= eter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-d= ecls -Wold-style-definition -Wno-pointer-sign -Wno-error=3Dunused-function = -Wno-error=3Denum-compare -Wno-error=3Dlogical-not-parentheses -Wno-error= =3Dbool-compare -Wno-error=3Duninitialized -Wno-error=3Darray-bounds -Wno-e= rror=3Dclobbered -Wno-error=3Dcast-align -Wno-error=3Dextra -Wno-error=3Dat= tributes -Wno-error=3Dinline -Wno-error=3Dunused-but-set-variable -Wno-erro= r=3Dunused-value -Wno-error=3Dstrict-aliasing -Wno-error=3Daddress -Wno-err= or=3Dunused-const-variable=3D -Wno-error=3Dnonnull-compare -Wno-error=3Dshi= ft-negative-value -Wno-error=3Dmisleading-indentation -Wno-error=3Dtautolog= ical-compare -c /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/ker= n/subr_prf.c -o subr_prf.o /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1200:1:= error: no previous prototype for 'counted_warning' [-Werror=3Dmissing-prot= otypes] counted_warning(unsigned *counter, const char *msg) ^~~~~~~~~~~~~~~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c: In fun= ction 'counted_warning': /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1209:7:= error: implicit declaration of function 'atomic_cmpset_int' [-Werror=3Dimp= licit-function-declaration] if (atomic_cmpset_int(counter, c, c - 1)) { ^~~~~~~~~~~~~~~~~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1209:3:= error: nested extern declaration of 'atomic_cmpset_int' [-Werror=3Dnested-= externs] if (atomic_cmpset_int(counter, c, c - 1)) { ^~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1210:9:= error: 'curthread' undeclared (first use in this function) td =3D curthread; ^~~~~~~~~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1210:9:= note: each undeclared identifier is reported only once for each function i= t appears in /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:4:= error: implicit declaration of function 'log' [-Werror=3Dimplicit-function= -declaration] log(LOG_INFO, "pid %d (%s) %s%s\n", ^~~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:4:= error: incompatible implicit declaration of built-in function 'log' [-Werr= or] /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:4:= note: include '' or provide a declaration of 'log' /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:8:= error: 'LOG_INFO' undeclared (first use in this function) log(LOG_INFO, "pid %d (%s) %s%s\n", ^~~~~~~~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1212:10= : error: dereferencing pointer to incomplete type 'struct thread' td->td_proc->p_pid, td->td_name, msg, ^~ /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:4:= error: too many arguments to function 'log' log(LOG_INFO, "pid %d (%s) %s%s\n", ^~~ cc1: all warnings being treated as errors *** [subr_prf.o] Error code 1 bmake[4]: stopped in /home/rb743/dev/freebsd-riscv/lib/libsbuf 1 error bmake[4]: stopped in /home/rb743/dev/freebsd-riscv/lib/libsbuf *** [lib/libsbuf__L] Error code 2 bmake[3]: stopped in /home/rb743/dev/freebsd-riscv 1 error bmake[3]: stopped in /home/rb743/dev/freebsd-riscv *** [libraries] Error code 2 bmake[2]: stopped in /home/rb743/dev/freebsd-riscv 1 error bmake[2]: stopped in /home/rb743/dev/freebsd-riscv *** [_libraries] Error code 2 bmake[1]: stopped in /home/rb743/dev/freebsd-riscv 1 error bmake[1]: stopped in /home/rb743/dev/freebsd-riscv *** [buildworld] Error code 2 make: stopped in /home/rb743/dev/freebsd-riscv make: stopped in /home/rb743/dev/freebsd-riscv 0 vica:/home/rb743/dev/freebsd-riscv > On Thu, Jul 21, 2016 at 04:34:57PM +0000, Konstantin Belousov wrote: > Author: kib > Date: Thu Jul 21 16:34:56 2016 > New Revision: 303151 > URL: https://svnweb.freebsd.org/changeset/base/303151 >=20 > Log: > Provide counter_warning(9) KPI which allows to issue limited number of > warnings for some kernel events, mostly intended for the use of > obsoleted or otherwise undersired interfaces. > =20 > This is an abstracted and race-expelled code from compat pty driver. > =20 > Requested and reviewed by: jhb > Sponsored by: The FreeBSD Foundation > MFC after: 1 week > Differential revision: https://reviews.freebsd.org/D7270 >=20 > Modified: > head/sys/dev/pty/pty.c > head/sys/kern/subr_prf.c > head/sys/sys/systm.h >=20 > Modified: head/sys/dev/pty/pty.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/dev/pty/pty.c Thu Jul 21 15:48:41 2016 (r303150) > +++ head/sys/dev/pty/pty.c Thu Jul 21 16:34:56 2016 (r303151) > @@ -52,10 +52,10 @@ __FBSDID("$FreeBSD$"); > * binary emulation. > */ > =20 > -static unsigned int pty_warningcnt =3D 1; > +static unsigned pty_warningcnt =3D 1; > SYSCTL_UINT(_kern, OID_AUTO, tty_pty_warningcnt, CTLFLAG_RW, > - &pty_warningcnt, 0, > - "Warnings that will be triggered upon legacy PTY allocation"); > + &pty_warningcnt, 0, > + "Warnings that will be triggered upon legacy PTY allocation"); > =20 > static int > ptydev_fdopen(struct cdev *dev, int fflags, struct thread *td, struct fi= le *fp) > @@ -77,12 +77,7 @@ ptydev_fdopen(struct cdev *dev, int ffla > } > =20 > /* Raise a warning when a legacy PTY has been allocated. */ > - if (pty_warningcnt > 0) { > - pty_warningcnt--; > - log(LOG_INFO, "pid %d (%s) is using legacy pty devices%s\n", > - td->td_proc->p_pid, td->td_name, > - pty_warningcnt ? "" : " - not logging anymore"); > - } > + counted_warning(&pty_warningcnt, "is using legacy pty devices"); > =20 > return (0); > } >=20 > Modified: head/sys/kern/subr_prf.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/kern/subr_prf.c Thu Jul 21 15:48:41 2016 (r303150) > +++ head/sys/kern/subr_prf.c Thu Jul 21 16:34:56 2016 (r303151) > @@ -1196,3 +1196,22 @@ sbuf_hexdump(struct sbuf *sb, const void > } > } > =20 > +void > +counted_warning(unsigned *counter, const char *msg) > +{ > + struct thread *td; > + unsigned c; > + > + for (;;) { > + c =3D *counter; > + if (c =3D=3D 0) > + break; > + if (atomic_cmpset_int(counter, c, c - 1)) { > + td =3D curthread; > + log(LOG_INFO, "pid %d (%s) %s%s\n", > + td->td_proc->p_pid, td->td_name, msg, > + c > 1 ? "" : " - not logging anymore"); > + break; > + } > + } > +} >=20 > Modified: head/sys/sys/systm.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/sys/systm.h Thu Jul 21 15:48:41 2016 (r303150) > +++ head/sys/sys/systm.h Thu Jul 21 16:34:56 2016 (r303151) > @@ -447,4 +447,6 @@ void intr_prof_stack_use(struct thread * > =20 > extern void (*softdep_ast_cleanup)(void); > =20 > +void counted_warning(unsigned *counter, const char *msg); > + > #endif /* !_SYS_SYSTM_H_ */ >=20 From owner-svn-src-all@freebsd.org Thu Jul 21 17:59:31 2016 Return-Path: Delivered-To: svn-src-all@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 B5168BA15D3; Thu, 21 Jul 2016 17:59:31 +0000 (UTC) (envelope-from kib@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 7F1D71003; Thu, 21 Jul 2016 17:59:31 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LHxUWc068446; Thu, 21 Jul 2016 17:59:30 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LHxU8W068445; Thu, 21 Jul 2016 17:59:30 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607211759.u6LHxU8W068445@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 21 Jul 2016 17:59:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303155 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 17:59:31 -0000 Author: kib Date: Thu Jul 21 17:59:30 2016 New Revision: 303155 URL: https://svnweb.freebsd.org/changeset/base/303155 Log: Hide counted_warning(9) under #ifdef _KERNEL braces, to allow building subr_prf.c in userspace for libsbuf. Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/kern/subr_prf.c Modified: head/sys/kern/subr_prf.c ============================================================================== --- head/sys/kern/subr_prf.c Thu Jul 21 17:07:06 2016 (r303154) +++ head/sys/kern/subr_prf.c Thu Jul 21 17:59:30 2016 (r303155) @@ -1196,6 +1196,7 @@ sbuf_hexdump(struct sbuf *sb, const void } } +#ifdef _KERNEL void counted_warning(unsigned *counter, const char *msg) { @@ -1215,3 +1216,4 @@ counted_warning(unsigned *counter, const } } } +#endif From owner-svn-src-all@freebsd.org Thu Jul 21 18:01:21 2016 Return-Path: Delivered-To: svn-src-all@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 E7114BA1652; Thu, 21 Jul 2016 18:01:21 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9110B1373; Thu, 21 Jul 2016 18:01:21 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id u6LI1BCN031870 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Thu, 21 Jul 2016 21:01:11 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua u6LI1BCN031870 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id u6LI1BIs031869; Thu, 21 Jul 2016 21:01:11 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 21 Jul 2016 21:01:11 +0300 From: Konstantin Belousov To: Ruslan Bukin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303151 - in head/sys: dev/pty kern sys Message-ID: <20160721180111.GH38613@kib.kiev.ua> References: <201607211634.u6LGYvIH038339@repo.freebsd.org> <20160721175225.GA84153@bsdpad.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20160721175225.GA84153@bsdpad.com> User-Agent: Mutt/1.6.1 (2016-04-27) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 18:01:22 -0000 On Thu, Jul 21, 2016 at 06:52:25PM +0100, Ruslan Bukin wrote: > Hi, >=20 > I get the issues below with GCC 6.1 >=20 > [...] > =3D=3D=3D> lib/libsbuf (obj,all,install) > /home/rb743/opt/new17/bin/riscv64-unknown-freebsd11.0-gcc -isystem /home/= rb743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp/usr/include -L/ho= me/rb743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp/usr/lib --sysr= oot=3D/home/rb743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp -B/ho= me/rb743/obj//riscv.riscv64/home/rb743/dev/freebsd-riscv/tmp/usr/bin -O2 -= pipe -msoft-float -MD -MF.depend.subr_prf.o -MTsubr_prf.o -std=3Dgnu99 -= fstack-protector-strong -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -= Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-ari= th -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-par= ameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant= -decls -Wold-style-definition -Wno-pointer-sign -Wno-error=3Dunused-functio= n -Wno-error=3Denum-compare -Wno-error=3Dlogical-not-parentheses -Wno-error= =3Dbool-compare -Wno-error=3Duninitialized -Wno-error=3Darray-bounds -Wno-e= rror=3Dclobbered -Wno-error=3Dcast-align -Wno-error=3Dextra -Wno-error=3Dat= tributes -Wno-error=3Dinline -Wno-error=3Dunused-but-set-variable -Wno-erro= r=3Dunused-value -Wno-error=3Dstrict-aliasing -Wno-error=3Daddress -Wno-err= or=3Dunused-const-variable=3D -Wno-error=3Dnonnull-compare -Wno-error=3Dshi= ft-negative-value -Wno-error=3Dmisleading-indentation -Wno-error=3Dtautolog= ical-compare -c /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/ker= n/subr_prf.c -o subr_prf.o > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1200:= 1: error: no previous prototype for 'counted_warning' [-Werror=3Dmissing-pr= ototypes] > counted_warning(unsigned *counter, const char *msg) > ^~~~~~~~~~~~~~~ > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c: In f= unction 'counted_warning': > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1209:= 7: error: implicit declaration of function 'atomic_cmpset_int' [-Werror=3Di= mplicit-function-declaration] > if (atomic_cmpset_int(counter, c, c - 1)) { > ^~~~~~~~~~~~~~~~~ > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1209:= 3: error: nested extern declaration of 'atomic_cmpset_int' [-Werror=3Dneste= d-externs] > if (atomic_cmpset_int(counter, c, c - 1)) { > ^~ > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1210:= 9: error: 'curthread' undeclared (first use in this function) > td =3D curthread; > ^~~~~~~~~ > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1210:= 9: note: each undeclared identifier is reported only once for each function= it appears in > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:= 4: error: implicit declaration of function 'log' [-Werror=3Dimplicit-functi= on-declaration] > log(LOG_INFO, "pid %d (%s) %s%s\n", > ^~~ > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:= 4: error: incompatible implicit declaration of built-in function 'log' [-We= rror] > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:= 4: note: include '' or provide a declaration of 'log' > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:= 8: error: 'LOG_INFO' undeclared (first use in this function) > log(LOG_INFO, "pid %d (%s) %s%s\n", > ^~~~~~~~ > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1212:= 10: error: dereferencing pointer to incomplete type 'struct thread' > td->td_proc->p_pid, td->td_name, msg, > ^~ > /home/rb743/dev/freebsd-riscv/lib/libsbuf/../../sys/kern/subr_prf.c:1211:= 4: error: too many arguments to function 'log' > log(LOG_INFO, "pid %d (%s) %s%s\n", > ^~~ > cc1: all warnings being treated as errors > *** [subr_prf.o] Error code 1 >=20 > bmake[4]: stopped in /home/rb743/dev/freebsd-riscv/lib/libsbuf > 1 error >=20 > bmake[4]: stopped in /home/rb743/dev/freebsd-riscv/lib/libsbuf > *** [lib/libsbuf__L] Error code 2 >=20 > bmake[3]: stopped in /home/rb743/dev/freebsd-riscv > 1 error >=20 > bmake[3]: stopped in /home/rb743/dev/freebsd-riscv > *** [libraries] Error code 2 >=20 > bmake[2]: stopped in /home/rb743/dev/freebsd-riscv > 1 error >=20 > bmake[2]: stopped in /home/rb743/dev/freebsd-riscv > *** [_libraries] Error code 2 >=20 > bmake[1]: stopped in /home/rb743/dev/freebsd-riscv > 1 error >=20 > bmake[1]: stopped in /home/rb743/dev/freebsd-riscv > *** [buildworld] Error code 2 >=20 > make: stopped in /home/rb743/dev/freebsd-riscv >=20 > make: stopped in /home/rb743/dev/freebsd-riscv This should be fixed with r303155. From owner-svn-src-all@freebsd.org Thu Jul 21 18:12:40 2016 Return-Path: Delivered-To: svn-src-all@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 4FAD8BA1AB5; Thu, 21 Jul 2016 18:12:40 +0000 (UTC) (envelope-from emaste@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 1C4481F38; Thu, 21 Jul 2016 18:12:40 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LICd3h075815; Thu, 21 Jul 2016 18:12:39 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LICdOP075814; Thu, 21 Jul 2016 18:12:39 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607211812.u6LICdOP075814@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 21 Jul 2016 18:12:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303156 - head/crypto/heimdal/lib/roken X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 18:12:40 -0000 Author: emaste Date: Thu Jul 21 18:12:39 2016 New Revision: 303156 URL: https://svnweb.freebsd.org/changeset/base/303156 Log: Remove duplicate symbols from libroken version-script.map Upstream commit r24759 (efed563) prefixed some symbols with rk_, but introduced 6 duplicate symbols in the version script (because the rk_-prefixed versions of the symbols were already present). Modified: head/crypto/heimdal/lib/roken/version-script.map Modified: head/crypto/heimdal/lib/roken/version-script.map ============================================================================== --- head/crypto/heimdal/lib/roken/version-script.map Thu Jul 21 17:59:30 2016 (r303155) +++ head/crypto/heimdal/lib/roken/version-script.map Thu Jul 21 18:12:39 2016 (r303156) @@ -123,17 +123,12 @@ HEIMDAL_ROKEN_1.0 { rk_strptime; rk_strsep_copy; rk_strsvis; - rk_strsvis; rk_strsvisx; rk_strunvis; - rk_strunvis; rk_strunvisx; rk_strupr; rk_strvis; - rk_strvis; rk_strvisx; - rk_strvisx; - rk_svis; rk_svis; rk_timegm; rk_timevaladd; @@ -148,7 +143,6 @@ HEIMDAL_ROKEN_1.0 { rk_vasnprintf; rk_vasprintf; rk_vis; - rk_vis; rk_vsnprintf; rk_vstrcollect; rk_wait_for_process; From owner-svn-src-all@freebsd.org Thu Jul 21 18:20:37 2016 Return-Path: Delivered-To: svn-src-all@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 2585FBA1C45; Thu, 21 Jul 2016 18:20:37 +0000 (UTC) (envelope-from emaste@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 DC2E3178A; Thu, 21 Jul 2016 18:20:36 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LIKaEN076262; Thu, 21 Jul 2016 18:20:36 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LIKagq076261; Thu, 21 Jul 2016 18:20:36 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607211820.u6LIKagq076261@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 21 Jul 2016 18:20:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303157 - head/contrib/libcxxrt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 18:20:37 -0000 Author: emaste Date: Thu Jul 21 18:20:35 2016 New Revision: 303157 URL: https://svnweb.freebsd.org/changeset/base/303157 Log: libcxxrt: add padding in __cxa_allocate_* to fix alignment The addition of the referenceCount to __cxa_allocate_exception put the unwindHeader at offset 0x58 in __cxa_exception, but it requires 16-byte alignment. In order to avoid changing the current __cxa_exception ABI (and thus breaking its consumers), add explicit padding in the allocation routines (and account for it when freeing). This is intended as a lower-risk change for FreeBSD 11. A "more correct" fix should be prepared for upstream and -CURRENT. Reviewed by: dim MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D7271 Modified: head/contrib/libcxxrt/exception.cc Modified: head/contrib/libcxxrt/exception.cc ============================================================================== --- head/contrib/libcxxrt/exception.cc Thu Jul 21 18:12:39 2016 (r303156) +++ head/contrib/libcxxrt/exception.cc Thu Jul 21 18:20:35 2016 (r303157) @@ -572,6 +572,19 @@ static void free_exception(char *e) } } +#ifdef __LP64__ +/** + * There's an ABI bug in __cxa_exception: unwindHeader requires 16-byte + * alignment but it was broken by the addition of the referenceCount. + * The unwindHeader is at offset 0x58 in __cxa_exception. In order to keep + * compatibility with consumers of the broken __cxa_exception, explicitly add + * padding on allocation (and account for it on free). + */ +static const int exception_alignment_padding = 8; +#else +static const int exception_alignment_padding = 0; +#endif + /** * Allocates an exception structure. Returns a pointer to the space that can * be used to store an object of thrown_size bytes. This function will use an @@ -580,16 +593,19 @@ static void free_exception(char *e) */ extern "C" void *__cxa_allocate_exception(size_t thrown_size) { - size_t size = thrown_size + sizeof(__cxa_exception); + size_t size = exception_alignment_padding + sizeof(__cxa_exception) + + thrown_size; char *buffer = alloc_or_die(size); - return buffer+sizeof(__cxa_exception); + return buffer + exception_alignment_padding + sizeof(__cxa_exception); } extern "C" void *__cxa_allocate_dependent_exception(void) { - size_t size = sizeof(__cxa_dependent_exception); + size_t size = exception_alignment_padding + + sizeof(__cxa_dependent_exception); char *buffer = alloc_or_die(size); - return buffer+sizeof(__cxa_dependent_exception); + return buffer + exception_alignment_padding + + sizeof(__cxa_dependent_exception); } /** @@ -617,7 +633,8 @@ extern "C" void __cxa_free_exception(voi } } - free_exception(reinterpret_cast(ex)); + free_exception(reinterpret_cast(ex) - + exception_alignment_padding); } static void releaseException(__cxa_exception *exception) @@ -644,7 +661,8 @@ void __cxa_free_dependent_exception(void { releaseException(realExceptionFromException(reinterpret_cast<__cxa_exception*>(ex))); } - free_exception(reinterpret_cast(ex)); + free_exception(reinterpret_cast(ex) - + exception_alignment_padding); } /** From owner-svn-src-all@freebsd.org Thu Jul 21 18:47:52 2016 Return-Path: Delivered-To: svn-src-all@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 49DA6BA0266; Thu, 21 Jul 2016 18:47:52 +0000 (UTC) (envelope-from emaste@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 1CCDA1859; Thu, 21 Jul 2016 18:47:52 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LIlpOn087469; Thu, 21 Jul 2016 18:47:51 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LIlpQw087468; Thu, 21 Jul 2016 18:47:51 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607211847.u6LIlpQw087468@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 21 Jul 2016 18:47:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303158 - head/lib/libmd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 18:47:52 -0000 Author: emaste Date: Thu Jul 21 18:47:51 2016 New Revision: 303158 URL: https://svnweb.freebsd.org/changeset/base/303158 Log: libmd: strip local absolute symbols (to link with lld) Old versions of gas produce an invalid section index. That is ignored by old versions of ld, but prevents a link with lld. Submitted by: Rafael Ãvila de Espíndola (earlier version) Reviewed by: allanjude Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D6789 Modified: head/lib/libmd/Makefile Modified: head/lib/libmd/Makefile ============================================================================== --- head/lib/libmd/Makefile Thu Jul 21 18:20:35 2016 (r303157) +++ head/lib/libmd/Makefile Thu Jul 21 18:47:51 2016 (r303158) @@ -93,6 +93,7 @@ SRCS+= rmd160.S CFLAGS+= -DRMD160_ASM .endif .if exists(${MACHINE_ARCH}/skein_block_asm.s) +AFLAGS += --strip-local-absolute SRCS+= skein_block_asm.s CFLAGS+= -DSKEIN_ASM -DSKEIN_USE_ASM=1792 # list of block functions to replace with assembly: 256+512+1024 = 1792 .endif From owner-svn-src-all@freebsd.org Thu Jul 21 19:01:45 2016 Return-Path: Delivered-To: svn-src-all@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 40006BA070D; Thu, 21 Jul 2016 19:01:45 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 238AD12AA; Thu, 21 Jul 2016 19:01:45 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id 1CAA516C5; Thu, 21 Jul 2016 19:01:45 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id B97681A0B9; Thu, 21 Jul 2016 19:01:44 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id cDiFbYoMVMSm; Thu, 21 Jul 2016 19:01:37 +0000 (UTC) Subject: Re: svn commit: r303151 - in head/sys: dev/pty kern sys DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 809331A0B4 To: Konstantin Belousov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201607211634.u6LGYvIH038339@repo.freebsd.org> From: Bryan Drewery Openpgp: id=F9173CB2C3AAEA7A5C8A1F0935D771BB6E4697CF; url=http://www.shatow.net/bryan/bryan2.asc Organization: FreeBSD Message-ID: <78df720f-e94e-7980-d9c4-82b410ecb130@FreeBSD.org> Date: Thu, 21 Jul 2016 12:01:28 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <201607211634.u6LGYvIH038339@repo.freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="WdbjkbOl3CA5vlxSdg9tAUtiChqSVhHX3" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 19:01:45 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --WdbjkbOl3CA5vlxSdg9tAUtiChqSVhHX3 Content-Type: multipart/mixed; boundary="gEkD1pDtAiCI3nIv7nJK5FuRuukIPW4xR" From: Bryan Drewery To: Konstantin Belousov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <78df720f-e94e-7980-d9c4-82b410ecb130@FreeBSD.org> Subject: Re: svn commit: r303151 - in head/sys: dev/pty kern sys References: <201607211634.u6LGYvIH038339@repo.freebsd.org> In-Reply-To: <201607211634.u6LGYvIH038339@repo.freebsd.org> --gEkD1pDtAiCI3nIv7nJK5FuRuukIPW4xR Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 7/21/2016 9:34 AM, Konstantin Belousov wrote: > Author: kib > Date: Thu Jul 21 16:34:56 2016 > New Revision: 303151 > URL: https://svnweb.freebsd.org/changeset/base/303151 >=20 > Log: > Provide counter_warning(9) KPI which allows to issue limited number o= f > warnings for some kernel events, mostly intended for the use of > obsoleted or otherwise undersired interfaces. > =20 > This is an abstracted and race-expelled code from compat pty driver. This is great. Thanks for this. --=20 Regards, Bryan Drewery --gEkD1pDtAiCI3nIv7nJK5FuRuukIPW4xR-- --WdbjkbOl3CA5vlxSdg9tAUtiChqSVhHX3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBAgAGBQJXkRwSAAoJEDXXcbtuRpfPbq4IALeGrvaf10NTGgphSvKF1n2F V+ZTfnuzZNyoQ2M1N/I5KrCj8R334C6alcKiSAeeGrKXuaPzt0zVbYaSraODAxew j7m3uFLMBKMbWDQ54s0KAu8f0AQ+4IfoRCvIhfAbusiVZPeb09smciT97HBMb4EW zZyzlvq63Xyz2SDD4Uj5ejtB6dzun7bMQ7MqNfXIR867lKjhCuu7FsNEiXdGFQJm y8qRzBSOfFdHLCQZtlkYgVSP72mnOJ2kxwmuhng3mFIQhmcLSD62bXvCMDG6+0YF rQiAd2TUMAX66aeQJBiOVyhIUnx9WghWWhS8UX4iPX2nulNF0evh01Z748RO4SQ= =9kxX -----END PGP SIGNATURE----- --WdbjkbOl3CA5vlxSdg9tAUtiChqSVhHX3-- From owner-svn-src-all@freebsd.org Thu Jul 21 19:18:50 2016 Return-Path: Delivered-To: svn-src-all@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 51953BA0B92; Thu, 21 Jul 2016 19:18:50 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 20F5E1D81; Thu, 21 Jul 2016 19:18:50 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LJInpr099014; Thu, 21 Jul 2016 19:18:49 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LJInI7099013; Thu, 21 Jul 2016 19:18:49 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201607211918.u6LJInI7099013@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Thu, 21 Jul 2016 19:18:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303159 - stable/11/sys/kern X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 19:18:50 -0000 Author: glebius Date: Thu Jul 21 19:18:49 2016 New Revision: 303159 URL: https://svnweb.freebsd.org/changeset/base/303159 Log: Merge r302894, r303098: fix regression caused by r302350. Stopping a not scheduled not running callout should return (-1). PR: 210884 Approved by: re (gjb) Modified: stable/11/sys/kern/kern_timeout.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/kern_timeout.c ============================================================================== --- stable/11/sys/kern/kern_timeout.c Thu Jul 21 18:47:51 2016 (r303158) +++ stable/11/sys/kern/kern_timeout.c Thu Jul 21 19:18:49 2016 (r303159) @@ -1380,6 +1380,12 @@ again: if ((c->c_iflags & CALLOUT_PENDING) == 0) { CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", c, c->c_func, c->c_arg); + /* + * For not scheduled and not executing callout return + * negative value. + */ + if (cc_exec_curr(cc, direct) != c) + cancelled = -1; CC_UNLOCK(cc); return (cancelled); } From owner-svn-src-all@freebsd.org Thu Jul 21 19:27:05 2016 Return-Path: Delivered-To: svn-src-all@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 CC32EBA107F; Thu, 21 Jul 2016 19:27:05 +0000 (UTC) (envelope-from cy@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 8553016B3; Thu, 21 Jul 2016 19:27:05 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LJR4Ic003142; Thu, 21 Jul 2016 19:27:04 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LJR4eL003141; Thu, 21 Jul 2016 19:27:04 GMT (envelope-from cy@FreeBSD.org) Message-Id: <201607211927.u6LJR4eL003141@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Thu, 21 Jul 2016 19:27:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303160 - head/etc/ntp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 19:27:05 -0000 Author: cy Date: Thu Jul 21 19:27:04 2016 New Revision: 303160 URL: https://svnweb.freebsd.org/changeset/base/303160 Log: Update leap-seconds to leap-seconds.3676752000. As per https://datacenter.iers.org/web/guest/eop/-/somos/5Rgv/latest/16: UTC TIME STEP on the 1st of January 2017 A positive leap second will be introduced at the end of December 2016. The sequence of dates of the UTC second markers will be: 2016 December 31, 23h 59m 59s 2016 December 31, 23h 59m 60s 2017 January 1, 0h 0m 0s The difference between UTC and the International Atomic Time TAI is: from 2015 July 1, 0h UTC, to 2017 January 1 0h UTC : UTC-TAI = - 36s from 2017 January 1, 0h UTC, until further notice : UTC-TAI = - 37s Obtained from: ftp://tycho.usno.navy.mil/pub/ntp/leap-seconds.3676752000 See also: https://www.iers.org/SharedDocs/News/EN/BulletinC.html https://datacenter.iers.org/web/guest/eop/-/somos/5Rgv/latest/16 MFC after: 1 week Relnotes: yes Modified: head/etc/ntp/leap-seconds Modified: head/etc/ntp/leap-seconds ============================================================================== --- head/etc/ntp/leap-seconds Thu Jul 21 19:18:49 2016 (r303159) +++ head/etc/ntp/leap-seconds Thu Jul 21 19:27:04 2016 (r303160) @@ -130,7 +130,7 @@ # Washington, DC # jeffrey.prillaman@usno.navy.mil # -# Last Update of leap second values: 11 Jan 2016 +# Last Update of leap second values: 6 Jul 2016 # # The following line shows this last update date in NTP timestamp # format. This is the date on which the most recent change to @@ -138,7 +138,7 @@ # be identified by the unique pair of characters in the first two # columns as shown below. # -#$ 3661459200 +#$ 3676752000 # # The data in this file will be updated periodically as new leap # seconds are announced. In addition to being entered on the line @@ -170,10 +170,10 @@ # current -- the update time stamp, the data and the name of the file # will not change. # -# Updated through IERS Bulletin C 51 -# File expires on: 1 Dec 2016 +# Updated through IERS Bulletin C 52 +# File expires on: 1 Jun 2017 # -#@ 3689539200 +#@ 3705264000 # 2272060800 10 # 1 Jan 1972 2287785600 11 # 1 Jul 1972 @@ -202,6 +202,7 @@ 3439756800 34 # 1 Jan 2009 3550089600 35 # 1 Jul 2012 3644697600 36 # 1 Jul 2015 +3692217600 37 # 1 Jan 2017 # # the following special comment contains the # hash value of the data in this file computed @@ -217,5 +218,5 @@ # the hash line is also ignored in the # computation. # -#h 63b4df04 0907d94f 2dadb7a1 684f7767 2a372421 +#h 63f8fea8 587c099d abcf130a ad525eae 3e105052 # From owner-svn-src-all@freebsd.org Thu Jul 21 20:11:45 2016 Return-Path: Delivered-To: svn-src-all@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 0F396BA19C2; Thu, 21 Jul 2016 20:11:45 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D842C11A7; Thu, 21 Jul 2016 20:11:44 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LKBisq019893; Thu, 21 Jul 2016 20:11:44 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LKBinI019892; Thu, 21 Jul 2016 20:11:44 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201607212011.u6LKBinI019892@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Thu, 21 Jul 2016 20:11:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303161 - stable/11/sys/vm X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 20:11:45 -0000 Author: alc Date: Thu Jul 21 20:11:43 2016 New Revision: 303161 URL: https://svnweb.freebsd.org/changeset/base/303161 Log: MFC r302980 Break up vm_fault()'s implementation of the read-ahead and delete-behind optimizations into two distinct pieces. The first piece consists of the code that should only be performed once per page fault and requires the map to be locked. The second piece consists of the code that should be performed each time a pager is called on an object in the shadow chain. (This second piece expects the map to be unlocked.) Previously, the entire implementation could be executed multiple times. Moreover, the second and subsequent executions would occur with the map unlocked. Usually, the ensuing unsynchronized accesses to the map were harmless because the map was not changing. Nonetheless, it was possible for a use-after-free error to occur, where vm_fault() wrote to a freed map entry. This change corrects that problem. Approved by: re (gjb) Modified: stable/11/sys/vm/vm_fault.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/vm/vm_fault.c ============================================================================== --- stable/11/sys/vm/vm_fault.c Thu Jul 21 19:27:04 2016 (r303160) +++ stable/11/sys/vm/vm_fault.c Thu Jul 21 20:11:43 2016 (r303161) @@ -291,14 +291,17 @@ vm_fault_hold(vm_map_t map, vm_offset_t int hardfault; struct faultstate fs; struct vnode *vp; + vm_offset_t e_end, e_start; vm_page_t m; - int ahead, behind, cluster_offset, error, locked; + int ahead, behind, cluster_offset, error, locked, rv; + u_char behavior; hardfault = 0; growstack = TRUE; PCPU_INC(cnt.v_vm_faults); fs.vp = NULL; faultcount = 0; + nera = -1; RetryFault:; @@ -549,29 +552,25 @@ fast_failed: readrest: /* - * We have either allocated a new page or found an existing - * page that is only partially valid. - * - * Attempt to fault-in the page if there is a chance that the - * pager has it, and potentially fault in additional pages - * at the same time. + * If the pager for the current object might have the page, + * then determine the number of additional pages to read and + * potentially reprioritize previously read pages for earlier + * reclamation. These operations should only be performed + * once per page fault. Even if the current pager doesn't + * have the page, the number of additional pages to read will + * apply to subsequent objects in the shadow chain. */ - if (fs.object->type != OBJT_DEFAULT) { - int rv; - u_char behavior = vm_map_entry_behavior(fs.entry); - + if (fs.object->type != OBJT_DEFAULT && nera == -1 && + !P_KILLED(curproc)) { + KASSERT(fs.lookup_still_valid, ("map unlocked")); era = fs.entry->read_ahead; - if (behavior == MAP_ENTRY_BEHAV_RANDOM || - P_KILLED(curproc)) { - behind = 0; + behavior = vm_map_entry_behavior(fs.entry); + if (behavior == MAP_ENTRY_BEHAV_RANDOM) { nera = 0; - ahead = 0; } else if (behavior == MAP_ENTRY_BEHAV_SEQUENTIAL) { - behind = 0; nera = VM_FAULT_READ_AHEAD_MAX; - ahead = nera; if (vaddr == fs.entry->next_read) - vm_fault_dontneed(&fs, vaddr, ahead); + vm_fault_dontneed(&fs, vaddr, nera); } else if (vaddr == fs.entry->next_read) { /* * This is a sequential fault. Arithmetically @@ -580,42 +579,51 @@ readrest: * number of pages is "# of sequential faults * x (read ahead min + 1) + read ahead min" */ - behind = 0; nera = VM_FAULT_READ_AHEAD_MIN; if (era > 0) { nera += era + 1; if (nera > VM_FAULT_READ_AHEAD_MAX) nera = VM_FAULT_READ_AHEAD_MAX; } - ahead = nera; if (era == VM_FAULT_READ_AHEAD_MAX) - vm_fault_dontneed(&fs, vaddr, ahead); + vm_fault_dontneed(&fs, vaddr, nera); } else { /* - * This is a non-sequential fault. Request a - * cluster of pages that is aligned to a - * VM_FAULT_READ_DEFAULT page offset boundary - * within the object. Alignment to a page - * offset boundary is more likely to coincide - * with the underlying file system block than - * alignment to a virtual address boundary. + * This is a non-sequential fault. */ - cluster_offset = fs.pindex % - VM_FAULT_READ_DEFAULT; - behind = ulmin(cluster_offset, - atop(vaddr - fs.entry->start)); nera = 0; - ahead = VM_FAULT_READ_DEFAULT - 1 - - cluster_offset; } - ahead = ulmin(ahead, atop(fs.entry->end - vaddr) - 1); - if (era != nera) + if (era != nera) { + /* + * A read lock on the map suffices to update + * the read ahead count safely. + */ fs.entry->read_ahead = nera; + } /* - * Call the pager to retrieve the data, if any, after - * releasing the lock on the map. We hold a ref on - * fs.object and the pages are exclusive busied. + * Prepare for unlocking the map. Save the map + * entry's start and end addresses, which are used to + * optimize the size of the pager operation below. + * Even if the map entry's addresses change after + * unlocking the map, using the saved addresses is + * safe. + */ + e_start = fs.entry->start; + e_end = fs.entry->end; + } + + /* + * Call the pager to retrieve the page if there is a chance + * that the pager has it, and potentially retrieve additional + * pages at the same time. + */ + if (fs.object->type != OBJT_DEFAULT) { + /* + * We have either allocated a new page or found an + * existing page that is only partially valid. We + * hold a reference on fs.object and the page is + * exclusive busied. */ unlock_map(&fs); @@ -656,6 +664,35 @@ vnode_locked: * Page in the requested page and hint the pager, * that it may bring up surrounding pages. */ + if (nera == -1 || behavior == MAP_ENTRY_BEHAV_RANDOM || + P_KILLED(curproc)) { + behind = 0; + ahead = 0; + } else { + /* Is this a sequential fault? */ + if (nera > 0) { + behind = 0; + ahead = nera; + } else { + /* + * Request a cluster of pages that is + * aligned to a VM_FAULT_READ_DEFAULT + * page offset boundary within the + * object. Alignment to a page offset + * boundary is more likely to coincide + * with the underlying file system + * block than alignment to a virtual + * address boundary. + */ + cluster_offset = fs.pindex % + VM_FAULT_READ_DEFAULT; + behind = ulmin(cluster_offset, + atop(vaddr - e_start)); + ahead = VM_FAULT_READ_DEFAULT - 1 - + cluster_offset; + } + ahead = ulmin(ahead, atop(e_end - vaddr) - 1); + } rv = vm_pager_get_pages(fs.object, &fs.m, 1, &behind, &ahead); if (rv == VM_PAGER_OK) { From owner-svn-src-all@freebsd.org Thu Jul 21 21:14:58 2016 Return-Path: Delivered-To: svn-src-all@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 6DAF7BA0BF3; Thu, 21 Jul 2016 21:14:58 +0000 (UTC) (envelope-from ian@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 281C3181F; Thu, 21 Jul 2016 21:14:58 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LLEvR3043398; Thu, 21 Jul 2016 21:14:57 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LLEvvP043397; Thu, 21 Jul 2016 21:14:57 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201607212114.u6LLEvvP043397@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Thu, 21 Jul 2016 21:14:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303162 - stable/11 X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 21:14:58 -0000 Author: ian Date: Thu Jul 21 21:14:57 2016 New Revision: 303162 URL: https://svnweb.freebsd.org/changeset/base/303162 Log: Add correct mergeinfo for r302915. It looks like I did the commit from the sys subdir and missed the mergeinfo in the original commit. Approved by: re (gjb, as part of r302915) Modified: Directory Properties: stable/11/ (props changed) From owner-svn-src-all@freebsd.org Thu Jul 21 21:39:50 2016 Return-Path: Delivered-To: svn-src-all@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 01F53BA102D; Thu, 21 Jul 2016 21:39:50 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D177A14AD; Thu, 21 Jul 2016 21:39:49 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 5ACC5B94A; Thu, 21 Jul 2016 17:39:48 -0400 (EDT) From: John Baldwin To: Andrew Turner Cc: Michal Meloun , Nathan Whitehorn , Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys Date: Thu, 21 Jul 2016 14:35:48 -0700 Message-ID: <13301107.Hm25rxUxW2@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.3-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <20160721133742.05f0e045@zapp> References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578F6075.7010500@FreeBSD.org> <20160721133742.05f0e045@zapp> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Thu, 21 Jul 2016 17:39:48 -0400 (EDT) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 21:39:50 -0000 On Thursday, July 21, 2016 01:37:42 PM Andrew Turner wrote: > On Wed, 20 Jul 2016 13:28:53 +0200 > Michal Meloun wrote: > > Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): > > > 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), > > > but is both problematically more general and less flexible (it has > > > requirements on timing of PIC attachment vs. driver resource > > > allocation) > > OFW_BUS_MAP_INTR() can parse only OFW based data and expect that > > parsed data are magicaly stored within the call. > > The new method, bus_map_intr(), can parse data from multiple sources > > (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). It also > > returns parsed data back to caller. > > And no, it doesn't add any additional timing requirements . > > I've been looking at ACPI on arm64. So far I have not found the need > for this with ACPI as we don't need to send the data to the interrupt > controller driver to be parsed in the way OFW/FDT needs to. ACPI though has a gross hack where we call BUS_CONFIG_INTR on the IRQ in bus_alloc_resource(). What I had advocated in the discussions leading up to this was to have some sort of opaque structure containing a set of properties (the sort of thing bus_map_resource and make_dev_s use) that was passed up at bus_setup_intr() time. I think it should now be passed up at bus_alloc_resource() time instead, but it would allow bus drivers to "decorate" a SYS_RES_IRQ request as it goes up the device tree with properties that the interrupt controller can then associate with the IRQ cookie it allocates in its own code. I would let the particular structure have different layouts for different resource types. On x86 we would replace bus_config_intr by passing the level and trigger-mode in this structure. However, I could also see allowing the memattr to be set for a SYS_RES_MEMORY resource so you could have a much shorter way than an explicit bus_map_resource to map an entire BAR as WC for example: struct alloc_resource_args { size_t len; union { struct { enum intr_trigger trigger; enum intr_polarity polarity; } irq; struct { vm_memattr_t memattr; } memory; } } ... union alloc_resource_args args; init_alloc_resource_args(&args, sizeof(args)); args.memattr = VM_MEMATTR_WRITE_COMBINING; /* Uses WC for the implicit mapping. */ res = bus_alloc_resource(...., &args); ... foobus_alloc_resource(..., union alloc_resource_args *args) { union alloc_resource_args args2; switch (type) { case SYS_RES_IRQ: if (args == NULL) { init_alloc_resource_args(&args2, sizeof(args2)); args = &args2; } /* Replace call to BUS_CONFIG_INTR on ACPI: */ if (args->irq.polarity == INTR_POLARITY_CONFORMING && device_has_polarity_from_CRS) args->irq.polarity = polarity_from_CRS; ... } However, you could associate arbitrary data with a resource request by adding more members to the approriate struct in the union. -- John Baldwin From owner-svn-src-all@freebsd.org Thu Jul 21 21:39:50 2016 Return-Path: Delivered-To: svn-src-all@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 B2CB3BA1032; Thu, 21 Jul 2016 21:39:50 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 932ED14B2; Thu, 21 Jul 2016 21:39:50 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id A1F50B953; Thu, 21 Jul 2016 17:39:49 -0400 (EDT) From: John Baldwin To: cem@freebsd.org Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303120 - head/sys/kern Date: Thu, 21 Jul 2016 14:23:53 -0700 Message-ID: <2625109.2GfWm3lyWr@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.3-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: References: <201607202251.u6KMpX73042960@repo.freebsd.org> <2986227.mkPmo6E96P@ralph.baldwin.cx> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Thu, 21 Jul 2016 17:39:49 -0400 (EDT) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 21:39:50 -0000 Thanks! On Wednesday, July 20, 2016 05:53:57 PM Conrad Meyer wrote: > Sure =E2=80=94 r303122. >=20 > Conrad >=20 > On Wed, Jul 20, 2016 at 4:09 PM, John Baldwin wrote= : > > On Wednesday, July 20, 2016 10:51:33 PM Conrad E. Meyer wrote: > >> Author: cem > >> Date: Wed Jul 20 22:51:33 2016 > >> New Revision: 303120 > >> URL: https://svnweb.freebsd.org/changeset/base/303120 > >> > >> Log: > >> imgact_elf: Rename the segment iterator to match reality > >> > >> The each_writable_segment routine evaluates segments on a slight= ly little more > >> nuanced metric than simply "writable" or not. Rename the functi= on to more > >> closely match its behavior (each_dumpable_segment). > >> > >> Suggested by: jhb > >> Sponsored by: EMC / Isilon Storage Division > > > > Please do the same rename in gcore's elfcore.c as well. > > > > -- > > John Baldwin >=20 --=20 John Baldwin From owner-svn-src-all@freebsd.org Thu Jul 21 22:13:41 2016 Return-Path: Delivered-To: svn-src-all@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 72619BA185A; Thu, 21 Jul 2016 22:13:41 +0000 (UTC) (envelope-from ian@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 3394A1877; Thu, 21 Jul 2016 22:13:41 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LMDeDC065358; Thu, 21 Jul 2016 22:13:40 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LMDeo5065355; Thu, 21 Jul 2016 22:13:40 GMT (envelope-from ian@FreeBSD.org) Message-Id: <201607212213.u6LMDeo5065355@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Thu, 21 Jul 2016 22:13:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303163 - stable/11/sys/arm/conf X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 22:13:41 -0000 Author: ian Date: Thu Jul 21 22:13:40 2016 New Revision: 303163 URL: https://svnweb.freebsd.org/changeset/base/303163 Log: Disable debugging options in arm configurations. Approved by: re (gjb) Modified: stable/11/sys/arm/conf/std.arm stable/11/sys/arm/conf/std.armv6 Modified: stable/11/sys/arm/conf/std.arm ============================================================================== --- stable/11/sys/arm/conf/std.arm Thu Jul 21 21:14:57 2016 (r303162) +++ stable/11/sys/arm/conf/std.arm Thu Jul 21 22:13:40 2016 (r303163) @@ -9,28 +9,3 @@ makeoptions DEBUG=-g # Build kernel wit options KDB # Enable kernel debugger support. options KDB_TRACE # Print a stack trace for a panic. -# For full debugger support use (turn off in stable branch): -options DDB # Support DDB -#options DEADLKRES # Enable the deadlock resolver -options INVARIANTS # Enable calls of extra sanity checking -options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS -options WITNESS # Enable checks to detect deadlocks and cycles -options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed -#options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones -options ALT_BREAK_TO_DEBUGGER # Enter debugger on keyboard escape sequence -options USB_DEBUG # Enable usb debug support code - -# Optional extras, never enabled by default: -#options BOOTVERBOSE -#options DEBUG # May result in extreme spewage -#options KTR -#options KTR_COMPILE=KTR_ALL -#options KTR_ENTRIES=16384 -#options KTR_MASK=(KTR_SPARE2) -#options KTR_VERBOSE=0 -#options USB_REQ_DEBUG -#options USB_VERBOSE -#options VERBOSE_SYSINIT # Enable verbose sysinit messages - - - Modified: stable/11/sys/arm/conf/std.armv6 ============================================================================== --- stable/11/sys/arm/conf/std.armv6 Thu Jul 21 21:14:57 2016 (r303162) +++ stable/11/sys/arm/conf/std.armv6 Thu Jul 21 22:13:40 2016 (r303163) @@ -52,26 +52,3 @@ makeoptions DEBUG=-g # Build kernel wit options KDB # Enable kernel debugger support. options KDB_TRACE # Print a stack trace for a panic. -# For full debugger support use (turn off in stable branch): -options DDB # Support DDB -#options DEADLKRES # Enable the deadlock resolver -options INVARIANTS # Enable calls of extra sanity checking -options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS -options WITNESS # Enable checks to detect deadlocks and cycles -options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed -options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones -options ALT_BREAK_TO_DEBUGGER # Enter debugger on keyboard escape sequence -options USB_DEBUG # Enable usb debug support code - -# Optional extras, never enabled by default: -#options BOOTVERBOSE -#options DEBUG # May result in extreme spewage -#options KTR -#options KTR_COMPILE=KTR_ALL -#options KTR_ENTRIES=16384 -#options KTR_MASK=(KTR_SPARE2) -#options KTR_VERBOSE=0 -#options USB_REQ_DEBUG -#options USB_VERBOSE -#options VERBOSE_SYSINIT # Enable verbose sysinit messages - From owner-svn-src-all@freebsd.org Thu Jul 21 22:49:49 2016 Return-Path: Delivered-To: svn-src-all@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 7E017BA1ED7; Thu, 21 Jul 2016 22:49:49 +0000 (UTC) (envelope-from jhb@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 401F318E4; Thu, 21 Jul 2016 22:49:49 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LMnmnp076657; Thu, 21 Jul 2016 22:49:48 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LMnlEJ076651; Thu, 21 Jul 2016 22:49:47 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607212249.u6LMnlEJ076651@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Thu, 21 Jul 2016 22:49:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303164 - in head: lib/libc/sys share/man/man4 sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 22:49:49 -0000 Author: jhb Date: Thu Jul 21 22:49:47 2016 New Revision: 303164 URL: https://svnweb.freebsd.org/changeset/base/303164 Log: Add more documentation regarding unsafe AIO requests. The asynchronous I/O changes made previously result in different behavior out of the box. Previously all AIO requests failed with ENOSYS / SIGSYS unless aio.ko was explicitly loaded. Now, some AIO requests complete and others ("unsafe" requests) fail with EOPNOTSUPP. Reword the introductory paragraph in aio(4) to add a general description of AIO before describing the vfs.aio.enable_unsafe sysctl. Remove the ENOSYS error description from aio_fsync(2), aio_read(2), and aio_write(2) and replace it with a description of EOPNOTSUPP. Remove the ENOSYS error description from aio_mlock(2). Log a message to the system log the first time a process requests an "unsafe" AIO request that fails with EOPNOTSUPP. This is modeled on the log message used for processes using the legacy pty devices. Reviewed by: kib (earlier version) MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D7151 Modified: head/lib/libc/sys/aio_fsync.2 head/lib/libc/sys/aio_mlock.2 head/lib/libc/sys/aio_read.2 head/lib/libc/sys/aio_write.2 head/share/man/man4/aio.4 head/sys/kern/vfs_aio.c Modified: head/lib/libc/sys/aio_fsync.2 ============================================================================== --- head/lib/libc/sys/aio_fsync.2 Thu Jul 21 22:13:40 2016 (r303163) +++ head/lib/libc/sys/aio_fsync.2 Thu Jul 21 22:49:47 2016 (r303164) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 15, 2016 +.Dd July 21, 2016 .Dt AIO_FSYNC 2 .Os .Sh NAME @@ -107,10 +107,10 @@ The request was not queued because of sy The asynchronous notification method in .Fa iocb->aio_sigevent.sigev_notify is invalid or not supported. -.It Bq Er ENOSYS -The -.Fn aio_fsync -system call is not supported. +.It Bq Er EOPNOTSUPP +Asynchronous file synchronization operations on the file descriptor +.Fa iocb->aio_fildes +are unsafe and unsafe asynchronous I/O operations are disabled. .It Bq Er EINVAL A value of the .Fa op Modified: head/lib/libc/sys/aio_mlock.2 ============================================================================== --- head/lib/libc/sys/aio_mlock.2 Thu Jul 21 22:13:40 2016 (r303163) +++ head/lib/libc/sys/aio_mlock.2 Thu Jul 21 22:49:47 2016 (r303164) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 15, 2016 +.Dd July 21, 2016 .Dt AIO_MLOCK 2 .Os .Sh NAME @@ -102,10 +102,6 @@ The request was not queued because of sy The asynchronous notification method in .Fa iocb->aio_sigevent.sigev_notify is invalid or not supported. -.It Bq Er ENOSYS -The -.Fn aio_mlock -system call is not supported. .El .Pp If the request is successfully enqueued, but subsequently cancelled Modified: head/lib/libc/sys/aio_read.2 ============================================================================== --- head/lib/libc/sys/aio_read.2 Thu Jul 21 22:13:40 2016 (r303163) +++ head/lib/libc/sys/aio_read.2 Thu Jul 21 22:49:47 2016 (r303164) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 15, 2016 +.Dd July 21, 2016 .Dt AIO_READ 2 .Os .Sh NAME @@ -125,10 +125,10 @@ The request was not queued because of sy The asynchronous notification method in .Fa iocb->aio_sigevent.sigev_notify is invalid or not supported. -.It Bq Er ENOSYS -The -.Fn aio_read -system call is not supported. +.It Bq Er EOPNOTSUPP +Asynchronous read operations on the file descriptor +.Fa iocb->aio_fildes +are unsafe and unsafe asynchronous I/O operations are disabled. .El .Pp The following conditions may be synchronously detected when the Modified: head/lib/libc/sys/aio_write.2 ============================================================================== --- head/lib/libc/sys/aio_write.2 Thu Jul 21 22:13:40 2016 (r303163) +++ head/lib/libc/sys/aio_write.2 Thu Jul 21 22:49:47 2016 (r303164) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 15, 2016 +.Dd July 21, 2016 .Dt AIO_WRITE 2 .Os .Sh NAME @@ -129,10 +129,10 @@ The request was not queued because of sy The asynchronous notification method in .Fa iocb->aio_sigevent.sigev_notify is invalid or not supported. -.It Bq Er ENOSYS -The -.Fn aio_write -system call is not supported. +.It Bq Er EOPNOTSUPP +Asynchronous write operations on the file descriptor +.Fa iocb->aio_fildes +are unsafe and unsafe asynchronous I/O operations are disabled. .El .Pp The following conditions may be synchronously detected when the Modified: head/share/man/man4/aio.4 ============================================================================== --- head/share/man/man4/aio.4 Thu Jul 21 22:13:40 2016 (r303163) +++ head/share/man/man4/aio.4 Thu Jul 21 22:49:47 2016 (r303164) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 15, 2016 +.Dd July 21, 2016 .Dt AIO 4 .Os .Sh NAME @@ -37,17 +37,25 @@ The .Nm facility provides system calls for asynchronous I/O. -However, asynchronous I/O operations are only enabled for certain file -types by default. -Asynchronous I/O operations for other file types may block an AIO daemon -indefinitely resulting in process and/or system hangs. -Asynchronous I/O operations can be enabled for all file types by setting +Asynchronous I/O operations are not completed synchronously by the +calling thread. +Instead, the calling thread invokes one system call to request an +asynchronous I/O operation. +The status of a completed request is retrieved later via a separate +system call. +.Pp +Asynchronous I/O operations on some file descriptor types may block an +AIO daemon indefinitely resulting in process and/or system hangs. +Operations on these file descriptor types are considered +.Dq unsafe +and disabled by default. +They can be enabled by setting the .Va vfs.aio.enable_unsafe sysctl node to a non-zero value. .Pp Asynchronous I/O operations on sockets and raw disk devices do not block -indefinitely and are enabled by default. +indefinitely and are always enabled. .Pp The .Nm Modified: head/sys/kern/vfs_aio.c ============================================================================== --- head/sys/kern/vfs_aio.c Thu Jul 21 22:13:40 2016 (r303163) +++ head/sys/kern/vfs_aio.c Thu Jul 21 22:49:47 2016 (r303164) @@ -53,6 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -110,6 +111,11 @@ static int enable_aio_unsafe = 0; SYSCTL_INT(_vfs_aio, OID_AUTO, enable_unsafe, CTLFLAG_RW, &enable_aio_unsafe, 0, "Permit asynchronous IO on all file types, not just known-safe types"); +static unsigned int unsafe_warningcnt = 1; +SYSCTL_UINT(_vfs_aio, OID_AUTO, unsafe_warningcnt, CTLFLAG_RW, + &unsafe_warningcnt, 0, + "Warnings that will be triggered upon failed IO requests on unsafe files"); + static int max_aio_procs = MAX_AIO_PROCS; SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_procs, CTLFLAG_RW, &max_aio_procs, 0, "Maximum number of kernel processes to use for handling async IO "); @@ -1697,8 +1703,11 @@ queueit: safe = true; } } - if (!(safe || enable_aio_unsafe)) + if (!(safe || enable_aio_unsafe)) { + counted_warning(&unsafe_warningcnt, + "is attempting to use unsafe AIO requests"); return (EOPNOTSUPP); + } if (opcode == LIO_SYNC) { AIO_LOCK(ki); From owner-svn-src-all@freebsd.org Thu Jul 21 23:29:15 2016 Return-Path: Delivered-To: svn-src-all@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 0283AB9F5EC; Thu, 21 Jul 2016 23:29:14 +0000 (UTC) (envelope-from imp@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 B2EC017D0; Thu, 21 Jul 2016 23:29:14 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LNTD1t091359; Thu, 21 Jul 2016 23:29:13 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LNTDOH091358; Thu, 21 Jul 2016 23:29:13 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201607212329.u6LNTDOH091358@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 21 Jul 2016 23:29:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303165 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 23:29:15 -0000 Author: imp Date: Thu Jul 21 23:29:13 2016 New Revision: 303165 URL: https://svnweb.freebsd.org/changeset/base/303165 Log: Fix cam builds w/o nvme. This is a stop-gap fix until the real fix of dynamically loading XPTs is done and tested. MFC After: 1 week Modified: head/sys/conf/files Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Thu Jul 21 22:49:47 2016 (r303164) +++ head/sys/conf/files Thu Jul 21 23:29:13 2016 (r303165) @@ -86,9 +86,9 @@ cam/cam_xpt.c optional scbus cam/ata/ata_all.c optional scbus cam/ata/ata_xpt.c optional scbus cam/ata/ata_pmp.c optional scbus -cam/nvme/nvme_all.c optional scbus nvme +cam/nvme/nvme_all.c optional scbus cam/nvme/nvme_da.c optional scbus nvme da !nvd -cam/nvme/nvme_xpt.c optional scbus nvme +cam/nvme/nvme_xpt.c optional scbus cam/scsi/scsi_xpt.c optional scbus cam/scsi/scsi_all.c optional scbus cam/scsi/scsi_cd.c optional cd From owner-svn-src-all@freebsd.org Thu Jul 21 23:29:17 2016 Return-Path: Delivered-To: svn-src-all@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 4A368B9F5FA; Thu, 21 Jul 2016 23:29:17 +0000 (UTC) (envelope-from imp@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 1D6E417D1; Thu, 21 Jul 2016 23:29:17 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LNTGKV091404; Thu, 21 Jul 2016 23:29:16 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LNTG4r091403; Thu, 21 Jul 2016 23:29:16 GMT (envelope-from imp@FreeBSD.org) Message-Id: <201607212329.u6LNTG4r091403@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Thu, 21 Jul 2016 23:29:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303166 - head/sys/modules/cam X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 23:29:17 -0000 Author: imp Date: Thu Jul 21 23:29:16 2016 New Revision: 303166 URL: https://svnweb.freebsd.org/changeset/base/303166 Log: Add opt_ddb.h. MFC after: 1 week Modified: head/sys/modules/cam/Makefile Modified: head/sys/modules/cam/Makefile ============================================================================== --- head/sys/modules/cam/Makefile Thu Jul 21 23:29:13 2016 (r303165) +++ head/sys/modules/cam/Makefile Thu Jul 21 23:29:16 2016 (r303166) @@ -14,6 +14,7 @@ SRCS+= opt_cd.h SRCS+= opt_pt.h SRCS+= opt_sa.h SRCS+= opt_ses.h +SRCS+= opt_ddb.h SRCS+= device_if.h bus_if.h vnode_if.h SRCS+= cam.c SRCS+= cam_compat.c From owner-svn-src-all@freebsd.org Thu Jul 21 23:49:28 2016 Return-Path: Delivered-To: svn-src-all@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 A3B8DB9FC26; Thu, 21 Jul 2016 23:49:28 +0000 (UTC) (envelope-from sobomax@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 35502167B; Thu, 21 Jul 2016 23:49:28 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6LNnRZI099323; Thu, 21 Jul 2016 23:49:27 GMT (envelope-from sobomax@FreeBSD.org) Received: (from sobomax@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6LNnR2J099317; Thu, 21 Jul 2016 23:49:27 GMT (envelope-from sobomax@FreeBSD.org) Message-Id: <201607212349.u6LNnR2J099317@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sobomax set sender to sobomax@FreeBSD.org using -f From: Maxim Sobolev Date: Thu, 21 Jul 2016 23:49:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303167 - in stable/10/sys: conf geom/uzip modules/geom/geom_uzip X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jul 2016 23:49:28 -0000 Author: sobomax Date: Thu Jul 21 23:49:26 2016 New Revision: 303167 URL: https://svnweb.freebsd.org/changeset/base/303167 Log: MFC: merge in all new features and improvements into geom_uzip(8) from current, which includes: o LZMA compression; o block de-duplication; o performance improvements; o pop out worker kthread to do extraction. This includes the following revisions: r295943,r295952,r298502,r298619,r299195,r302284 Suggested by: emaste Added: stable/10/sys/geom/uzip/g_uzip.h (contents, props changed) stable/10/sys/geom/uzip/g_uzip_cloop.h (contents, props changed) stable/10/sys/geom/uzip/g_uzip_dapi.h (contents, props changed) stable/10/sys/geom/uzip/g_uzip_lzma.c (contents, props changed) stable/10/sys/geom/uzip/g_uzip_lzma.h (contents, props changed) stable/10/sys/geom/uzip/g_uzip_softc.h (contents, props changed) stable/10/sys/geom/uzip/g_uzip_wrkthr.c (contents, props changed) stable/10/sys/geom/uzip/g_uzip_wrkthr.h (contents, props changed) stable/10/sys/geom/uzip/g_uzip_zlib.c (contents, props changed) stable/10/sys/geom/uzip/g_uzip_zlib.h (contents, props changed) Modified: stable/10/sys/conf/files stable/10/sys/geom/uzip/g_uzip.c stable/10/sys/modules/geom/geom_uzip/Makefile Modified: stable/10/sys/conf/files ============================================================================== --- stable/10/sys/conf/files Thu Jul 21 23:29:16 2016 (r303166) +++ stable/10/sys/conf/files Thu Jul 21 23:49:26 2016 (r303167) @@ -2912,21 +2912,24 @@ geom/shsec/g_shsec.c optional geom_shse geom/stripe/g_stripe.c optional geom_stripe geom/uncompress/g_uncompress.c optional geom_uncompress contrib/xz-embedded/freebsd/xz_malloc.c \ - optional xz_embedded | geom_uncompress \ + optional xz_embedded | geom_uncompress | geom_uzip \ compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" contrib/xz-embedded/linux/lib/xz/xz_crc32.c \ - optional xz_embedded | geom_uncompress \ + optional xz_embedded | geom_uncompress | geom_uzip \ compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" contrib/xz-embedded/linux/lib/xz/xz_dec_bcj.c \ - optional xz_embedded | geom_uncompress \ + optional xz_embedded | geom_uncompress | geom_uzip \ compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" contrib/xz-embedded/linux/lib/xz/xz_dec_lzma2.c \ - optional xz_embedded | geom_uncompress \ + optional xz_embedded | geom_uncompress | geom_uzip \ compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" contrib/xz-embedded/linux/lib/xz/xz_dec_stream.c \ - optional xz_embedded | geom_uncompress \ + optional xz_embedded | geom_uncompress | geom_uzip \ compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" geom/uzip/g_uzip.c optional geom_uzip +geom/uzip/g_uzip_lzma.c optional geom_uzip +geom/uzip/g_uzip_wrkthr.c optional geom_uzip +geom/uzip/g_uzip_zlib.c optional geom_uzip geom/vinum/geom_vinum.c optional geom_vinum geom/vinum/geom_vinum_create.c optional geom_vinum geom/vinum/geom_vinum_drive.c optional geom_vinum Modified: stable/10/sys/geom/uzip/g_uzip.c ============================================================================== --- stable/10/sys/geom/uzip/g_uzip.c Thu Jul 21 23:29:16 2016 (r303166) +++ stable/10/sys/geom/uzip/g_uzip.c Thu Jul 21 23:49:26 2016 (r303167) @@ -1,6 +1,7 @@ /*- * Copyright (c) 2004 Max Khon * Copyright (c) 2014 Juniper Networks, Inc. + * Copyright (c) 2006-2016 Maxim Sobolev * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,91 +39,129 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include -#include -FEATURE(geom_uzip, "GEOM uzip read-only compressed disks support"); +#include +#include +#include +#include +#include +#include +#include + +#include "opt_geom.h" + +MALLOC_DEFINE(M_GEOM_UZIP, "geom_uzip", "GEOM UZIP data structures"); + +FEATURE(geom_uzip, "GEOM read-only compressed disks support"); + +struct g_uzip_blk { + uint64_t offset; + uint32_t blen; + unsigned char last:1; + unsigned char padded:1; +#define BLEN_UNDEF UINT32_MAX +}; + +#ifndef ABS +#define ABS(a) ((a) < 0 ? -(a) : (a)) +#endif + +#define BLK_IN_RANGE(mcn, bcn, ilen) \ + (((bcn) != BLEN_UNDEF) && ( \ + ((ilen) >= 0 && (mcn >= bcn) && (mcn <= ((intmax_t)(bcn) + (ilen)))) || \ + ((ilen) < 0 && (mcn <= bcn) && (mcn >= ((intmax_t)(bcn) + (ilen)))) \ + )) -#undef GEOM_UZIP_DEBUG #ifdef GEOM_UZIP_DEBUG -#define DPRINTF(a) printf a +# define GEOM_UZIP_DBG_DEFAULT 3 #else -#define DPRINTF(a) +# define GEOM_UZIP_DBG_DEFAULT 0 #endif -static MALLOC_DEFINE(M_GEOM_UZIP, "geom_uzip", "GEOM UZIP data structures"); +#define GUZ_DBG_ERR 1 +#define GUZ_DBG_INFO 2 +#define GUZ_DBG_IO 3 +#define GUZ_DBG_TOC 4 + +#define GUZ_DEV_SUFX ".uzip" +#define GUZ_DEV_NAME(p) (p GUZ_DEV_SUFX) + +static char g_uzip_attach_to[MAXPATHLEN] = {"*"}; +static char g_uzip_noattach_to[MAXPATHLEN] = {GUZ_DEV_NAME("*")}; +TUNABLE_STR("kern.geom.uzip.attach_to", g_uzip_attach_to, + sizeof(g_uzip_attach_to)); +TUNABLE_STR("kern.geom.uzip.noattach_to", g_uzip_noattach_to, + sizeof(g_uzip_noattach_to)); + +SYSCTL_DECL(_kern_geom); +SYSCTL_NODE(_kern_geom, OID_AUTO, uzip, CTLFLAG_RW, 0, "GEOM_UZIP stuff"); +static u_int g_uzip_debug = GEOM_UZIP_DBG_DEFAULT; +SYSCTL_UINT(_kern_geom_uzip, OID_AUTO, debug, CTLFLAG_RWTUN, &g_uzip_debug, 0, + "Debug level (0-4)"); +static u_int g_uzip_debug_block = BLEN_UNDEF; +SYSCTL_UINT(_kern_geom_uzip, OID_AUTO, debug_block, CTLFLAG_RWTUN, + &g_uzip_debug_block, 0, "Debug operations around specific cluster#"); + +#define DPRINTF(lvl, a) \ + if ((lvl) <= g_uzip_debug) { \ + printf a; \ + } +#define DPRINTF_BLK(lvl, cn, a) \ + if ((lvl) <= g_uzip_debug || \ + BLK_IN_RANGE(cn, g_uzip_debug_block, 8) || \ + BLK_IN_RANGE(cn, g_uzip_debug_block, -8)) { \ + printf a; \ + } +#define DPRINTF_BRNG(lvl, bcn, ecn, a) \ + KASSERT(bcn < ecn, ("DPRINTF_BRNG: invalid range (%ju, %ju)", \ + (uintmax_t)bcn, (uintmax_t)ecn)); \ + if (((lvl) <= g_uzip_debug) || \ + BLK_IN_RANGE(g_uzip_debug_block, bcn, \ + (intmax_t)ecn - (intmax_t)bcn)) { \ + printf a; \ + } #define UZIP_CLASS_NAME "UZIP" /* * Maximum allowed valid block size (to prevent foot-shooting) */ -#define MAX_BLKSZ (MAXPHYS - MAXPHYS / 1000 - 12) - -/* - * Integer values (block size, number of blocks, offsets) - * are stored in big-endian (network) order on disk and struct cloop_header - * and in native order in struct g_uzip_softc - */ +#define MAX_BLKSZ (MAXPHYS) -#define CLOOP_MAGIC_LEN 128 static char CLOOP_MAGIC_START[] = "#!/bin/sh\n"; -struct cloop_header { - char magic[CLOOP_MAGIC_LEN]; /* cloop magic */ - uint32_t blksz; /* block size */ - uint32_t nblocks; /* number of blocks */ -}; - -struct g_uzip_softc { - uint32_t blksz; /* block size */ - uint32_t nblocks; /* number of blocks */ - uint64_t *offsets; - - struct mtx last_mtx; - uint32_t last_blk; /* last blk no */ - char *last_buf; /* last blk data */ - int req_total; /* total requests */ - int req_cached; /* cached requests */ -}; - -static void g_uzip_done(struct bio *bp); +static void g_uzip_read_done(struct bio *bp); +static void g_uzip_do(struct g_uzip_softc *, struct bio *bp); static void g_uzip_softc_free(struct g_uzip_softc *sc, struct g_geom *gp) { if (gp != NULL) { - DPRINTF(("%s: %d requests, %d cached\n", + DPRINTF(GUZ_DBG_INFO, ("%s: %d requests, %d cached\n", gp->name, sc->req_total, sc->req_cached)); } - if (sc->offsets != NULL) { - free(sc->offsets, M_GEOM_UZIP); - sc->offsets = NULL; - } + + mtx_lock(&sc->queue_mtx); + sc->wrkthr_flags |= GUZ_SHUTDOWN; + wakeup(sc); + while (!(sc->wrkthr_flags & GUZ_EXITING)) { + msleep(sc->procp, &sc->queue_mtx, PRIBIO, "guzfree", + hz / 10); + } + mtx_unlock(&sc->queue_mtx); + + sc->dcp->free(sc->dcp); + free(sc->toc, M_GEOM_UZIP); + mtx_destroy(&sc->queue_mtx); mtx_destroy(&sc->last_mtx); free(sc->last_buf, M_GEOM_UZIP); free(sc, M_GEOM_UZIP); } -static void * -z_alloc(void *nil, u_int type, u_int size) -{ - void *ptr; - - ptr = malloc(type * size, M_GEOM_UZIP, M_NOWAIT); - - return (ptr); -} - -static void -z_free(void *nil, void *ptr) -{ - - free(ptr, M_GEOM_UZIP); -} - static int g_uzip_cached(struct g_geom *gp, struct bio *bp) { @@ -144,8 +183,9 @@ g_uzip_cached(struct g_geom *gp, struct sc->req_cached++; mtx_unlock(&sc->last_mtx); - DPRINTF(("%s/%s: %p: offset=%jd: got %jd bytes from cache\n", - __func__, gp->name, bp, (intmax_t)ofs, (intmax_t)usz)); + DPRINTF(GUZ_DBG_IO, ("%s/%s: %p: offset=%jd: got %jd bytes " + "from cache\n", __func__, gp->name, bp, (intmax_t)ofs, + (intmax_t)usz)); bp->bio_completed += usz; bp->bio_resid -= usz; @@ -160,6 +200,19 @@ g_uzip_cached(struct g_geom *gp, struct return (0); } +#define BLK_ENDS(sc, bi) ((sc)->toc[(bi)].offset + \ + (sc)->toc[(bi)].blen) + +#define BLK_IS_CONT(sc, bi) (BLK_ENDS((sc), (bi) - 1) == \ + (sc)->toc[(bi)].offset) +#define BLK_IS_NIL(sc, bi) ((sc)->toc[(bi)].blen == 0) + +#define TOFF_2_BOFF(sc, pp, bi) ((sc)->toc[(bi)].offset - \ + (sc)->toc[(bi)].offset % (pp)->sectorsize) +#define TLEN_2_BLEN(sc, pp, bp, ei) ((BLK_ENDS((sc), (ei)) - \ + (bp)->bio_offset + (pp)->sectorsize - 1) / \ + (pp)->sectorsize * (pp)->sectorsize) + static int g_uzip_request(struct g_geom *gp, struct bio *bp) { @@ -167,21 +220,14 @@ g_uzip_request(struct g_geom *gp, struct struct bio *bp2; struct g_consumer *cp; struct g_provider *pp; - off_t ofs; - size_t start_blk, end_blk; + off_t ofs, start_blk_ofs; + size_t i, start_blk, end_blk, zsize; if (g_uzip_cached(gp, bp) != 0) return (1); sc = gp->softc; - bp2 = g_clone_bio(bp); - if (bp2 == NULL) { - g_io_deliver(bp, ENOMEM); - return (1); - } - bp2->bio_done = g_uzip_done; - cp = LIST_FIRST(&gp->consumer); pp = cp->provider; @@ -191,23 +237,68 @@ g_uzip_request(struct g_geom *gp, struct end_blk = (ofs + bp->bio_resid + sc->blksz - 1) / sc->blksz; KASSERT(end_blk <= sc->nblocks, ("end_blk out of range")); - DPRINTF(("%s/%s: %p: start=%u (%jd), end=%u (%jd)\n", - __func__, gp->name, bp, - (u_int)start_blk, (intmax_t)sc->offsets[start_blk], - (u_int)end_blk, (intmax_t)sc->offsets[end_blk])); + for (; BLK_IS_NIL(sc, start_blk) && start_blk < end_blk; start_blk++) { + /* Fill in any leading Nil blocks */ + start_blk_ofs = ofs % sc->blksz; + zsize = MIN(sc->blksz - start_blk_ofs, bp->bio_resid); + DPRINTF_BLK(GUZ_DBG_IO, start_blk, ("%s/%s: %p/%ju: " + "filling %ju zero bytes\n", __func__, gp->name, gp, + (uintmax_t)bp->bio_completed, (uintmax_t)zsize)); + bzero(bp->bio_data + bp->bio_completed, zsize); + bp->bio_completed += zsize; + bp->bio_resid -= zsize; + ofs += zsize; + } + + if (start_blk == end_blk) { + KASSERT(bp->bio_resid == 0, ("bp->bio_resid is invalid")); + /* + * No non-Nil data is left, complete request immediately. + */ + DPRINTF(GUZ_DBG_IO, ("%s/%s: %p: all done returning %ju " + "bytes\n", __func__, gp->name, gp, + (uintmax_t)bp->bio_completed)); + g_io_deliver(bp, 0); + return (1); + } - bp2->bio_offset = sc->offsets[start_blk] - - sc->offsets[start_blk] % pp->sectorsize; - while (1) { - bp2->bio_length = sc->offsets[end_blk] - bp2->bio_offset; - bp2->bio_length = (bp2->bio_length + pp->sectorsize - 1) / - pp->sectorsize * pp->sectorsize; - if (bp2->bio_length <= MAXPHYS) + for (i = start_blk + 1; i < end_blk; i++) { + /* Trim discontinuous areas if any */ + if (!BLK_IS_CONT(sc, i)) { + end_blk = i; break; + } + } + + DPRINTF_BRNG(GUZ_DBG_IO, start_blk, end_blk, ("%s/%s: %p: " + "start=%u (%ju[%jd]), end=%u (%ju)\n", __func__, gp->name, bp, + (u_int)start_blk, (uintmax_t)sc->toc[start_blk].offset, + (intmax_t)sc->toc[start_blk].blen, + (u_int)end_blk, (uintmax_t)BLK_ENDS(sc, end_blk - 1))); + + bp2 = g_clone_bio(bp); + if (bp2 == NULL) { + g_io_deliver(bp, ENOMEM); + return (1); + } + bp2->bio_done = g_uzip_read_done; + bp2->bio_offset = TOFF_2_BOFF(sc, pp, start_blk); + while (1) { + bp2->bio_length = TLEN_2_BLEN(sc, pp, bp2, end_blk - 1); + if (bp2->bio_length <= MAXPHYS) { + break; + } + if (end_blk == (start_blk + 1)) { + break; + } end_blk--; } + DPRINTF(GUZ_DBG_IO, ("%s/%s: bp2->bio_length = %jd, " + "bp2->bio_offset = %jd\n", __func__, gp->name, + (intmax_t)bp2->bio_length, (intmax_t)bp2->bio_offset)); + bp2->bio_data = malloc(bp2->bio_length, M_GEOM_UZIP, M_NOWAIT); if (bp2->bio_data == NULL) { g_destroy_bio(bp2); @@ -215,8 +306,8 @@ g_uzip_request(struct g_geom *gp, struct return (1); } - DPRINTF(("%s/%s: %p: reading %jd bytes from offset %jd\n", - __func__, gp->name, bp, + DPRINTF_BRNG(GUZ_DBG_IO, start_blk, end_blk, ("%s/%s: %p: " + "reading %jd bytes from offset %jd\n", __func__, gp->name, bp, (intmax_t)bp2->bio_length, (intmax_t)bp2->bio_offset)); g_io_request(bp2, cp); @@ -224,21 +315,45 @@ g_uzip_request(struct g_geom *gp, struct } static void -g_uzip_done(struct bio *bp) +g_uzip_read_done(struct bio *bp) +{ + struct bio *bp2; + struct g_geom *gp; + struct g_uzip_softc *sc; + + bp2 = bp->bio_parent; + gp = bp2->bio_to->geom; + sc = gp->softc; + + mtx_lock(&sc->queue_mtx); + bioq_disksort(&sc->bio_queue, bp); + mtx_unlock(&sc->queue_mtx); + wakeup(sc); +} + +static int +g_uzip_memvcmp(const void *memory, unsigned char val, size_t size) +{ + const u_char *mm; + + mm = (const u_char *)memory; + return (*mm == val) && memcmp(mm, mm + 1, size - 1) == 0; +} + +static void +g_uzip_do(struct g_uzip_softc *sc, struct bio *bp) { - z_stream zs; struct bio *bp2; struct g_provider *pp; struct g_consumer *cp; struct g_geom *gp; - struct g_uzip_softc *sc; char *data, *data2; off_t ofs; - size_t blk, blkofs, len, ulen; + size_t blk, blkofs, len, ulen, firstblk; + int err; bp2 = bp->bio_parent; gp = bp2->bio_to->geom; - sc = gp->softc; cp = LIST_FIRST(&gp->consumer); pp = cp->provider; @@ -253,46 +368,62 @@ g_uzip_done(struct bio *bp) goto done; } - zs.zalloc = z_alloc; - zs.zfree = z_free; - if (inflateInit(&zs) != Z_OK) { - bp2->bio_error = EILSEQ; - goto done; - } - ofs = bp2->bio_offset + bp2->bio_completed; - blk = ofs / sc->blksz; + firstblk = blk = ofs / sc->blksz; blkofs = ofs % sc->blksz; - data = bp->bio_data + sc->offsets[blk] % pp->sectorsize; + data = bp->bio_data + sc->toc[blk].offset % pp->sectorsize; data2 = bp2->bio_data + bp2->bio_completed; while (bp->bio_completed && bp2->bio_resid) { + if (blk > firstblk && !BLK_IS_CONT(sc, blk)) { + DPRINTF_BLK(GUZ_DBG_IO, blk, ("%s/%s: %p: backref'ed " + "cluster #%u requested, looping around\n", + __func__, gp->name, bp2, (u_int)blk)); + goto done; + } ulen = MIN(sc->blksz - blkofs, bp2->bio_resid); - len = sc->offsets[blk + 1] - sc->offsets[blk]; - DPRINTF(("%s/%s: %p/%ju: data2=%p, ulen=%u, data=%p, len=%u\n", - __func__, gp->name, gp, bp->bio_completed, - data2, (u_int)ulen, data, (u_int)len)); + len = sc->toc[blk].blen; + DPRINTF(GUZ_DBG_IO, ("%s/%s: %p/%ju: data2=%p, ulen=%u, " + "data=%p, len=%u\n", __func__, gp->name, gp, + bp->bio_completed, data2, (u_int)ulen, data, (u_int)len)); if (len == 0) { /* All zero block: no cache update */ +zero_block: bzero(data2, ulen); } else if (len <= bp->bio_completed) { - zs.next_in = data; - zs.avail_in = len; - zs.next_out = sc->last_buf; - zs.avail_out = sc->blksz; mtx_lock(&sc->last_mtx); - if (inflate(&zs, Z_FINISH) != Z_STREAM_END) { + err = sc->dcp->decompress(sc->dcp, gp->name, data, + len, sc->last_buf); + if (err != 0 && sc->toc[blk].last != 0) { + /* + * Last block decompression has failed, check + * if it's just zero padding. + */ + if (g_uzip_memvcmp(data, '\0', len) == 0) { + sc->toc[blk].blen = 0; + sc->last_blk = -1; + mtx_unlock(&sc->last_mtx); + len = 0; + goto zero_block; + } + } + if (err != 0) { sc->last_blk = -1; mtx_unlock(&sc->last_mtx); - inflateEnd(&zs); bp2->bio_error = EILSEQ; + DPRINTF(GUZ_DBG_ERR, ("%s/%s: decompress" + "(%p, %ju, %ju) failed\n", __func__, + gp->name, sc->dcp, (uintmax_t)blk, + (uintmax_t)len)); goto done; } sc->last_blk = blk; memcpy(data2, sc->last_buf + blkofs, ulen); mtx_unlock(&sc->last_mtx); - if (inflateReset(&zs) != Z_OK) { - inflateEnd(&zs); + err = sc->dcp->rewind(sc->dcp, gp->name); + if (err != 0) { bp2->bio_error = EILSEQ; + DPRINTF(GUZ_DBG_ERR, ("%s/%s: rewind(%p) " + "failed\n", __func__, gp->name, sc->dcp)); goto done; } data += len; @@ -307,9 +438,6 @@ g_uzip_done(struct bio *bp) blk++; } - if (inflateEnd(&zs) != Z_OK) - bp2->bio_error = EILSEQ; - done: /* Finish processing the request. */ free(bp->bio_data, M_GEOM_UZIP); @@ -330,9 +458,9 @@ g_uzip_start(struct bio *bp) pp = bp->bio_to; gp = pp->geom; - DPRINTF(("%s/%s: %p: cmd=%d, offset=%jd, length=%jd, buffer=%p\n", - __func__, gp->name, bp, bp->bio_cmd, (intmax_t)bp->bio_offset, - (intmax_t)bp->bio_length, bp->bio_data)); + DPRINTF(GUZ_DBG_IO, ("%s/%s: %p: cmd=%d, offset=%jd, length=%jd, " + "buffer=%p\n", __func__, gp->name, bp, bp->bio_cmd, + (intmax_t)bp->bio_offset, (intmax_t)bp->bio_length, bp->bio_data)); sc = gp->softc; sc->req_total++; @@ -383,6 +511,7 @@ g_uzip_spoiled(struct g_consumer *cp) { struct g_geom *gp; + G_VALID_CONSUMER(cp); gp = cp->geom; g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, gp->name); g_topology_assert(); @@ -392,6 +521,114 @@ g_uzip_spoiled(struct g_consumer *cp) g_wither_geom(gp, ENXIO); } +static int +g_uzip_parse_toc(struct g_uzip_softc *sc, struct g_provider *pp, + struct g_geom *gp) +{ + uint32_t i, j, backref_to; + uint64_t max_offset, min_offset; + struct g_uzip_blk *last_blk; + + min_offset = sizeof(struct cloop_header) + + (sc->nblocks + 1) * sizeof(uint64_t); + max_offset = sc->toc[0].offset - 1; + last_blk = &sc->toc[0]; + for (i = 0; i < sc->nblocks; i++) { + /* First do some bounds checking */ + if ((sc->toc[i].offset < min_offset) || + (sc->toc[i].offset > pp->mediasize)) { + goto error_offset; + } + DPRINTF_BLK(GUZ_DBG_IO, i, ("%s: cluster #%u " + "offset=%ju max_offset=%ju\n", gp->name, + (u_int)i, (uintmax_t)sc->toc[i].offset, + (uintmax_t)max_offset)); + backref_to = BLEN_UNDEF; + if (sc->toc[i].offset < max_offset) { + /* + * For the backref'ed blocks search already parsed + * TOC entries for the matching offset and copy the + * size from matched entry. + */ + for (j = 0; j <= i; j++) { + if (sc->toc[j].offset == sc->toc[i].offset && + !BLK_IS_NIL(sc, j)) { + break; + } + if (j != i) { + continue; + } + DPRINTF(GUZ_DBG_ERR, ("%s: cannot match " + "backref'ed offset at cluster #%u\n", + gp->name, i)); + return (-1); + } + sc->toc[i].blen = sc->toc[j].blen; + backref_to = j; + } else { + last_blk = &sc->toc[i]; + /* + * For the "normal blocks" seek forward until we hit + * block whose offset is larger than ours and assume + * it's going to be the next one. + */ + for (j = i + 1; j < sc->nblocks; j++) { + if (sc->toc[j].offset > max_offset) { + break; + } + } + sc->toc[i].blen = sc->toc[j].offset - + sc->toc[i].offset; + if (BLK_ENDS(sc, i) > pp->mediasize) { + DPRINTF(GUZ_DBG_ERR, ("%s: cluster #%u " + "extends past media boundary (%ju > %ju)\n", + gp->name, (u_int)i, + (uintmax_t)BLK_ENDS(sc, i), + (intmax_t)pp->mediasize)); + return (-1); + } + KASSERT(max_offset <= sc->toc[i].offset, ( + "%s: max_offset is incorrect: %ju", + gp->name, (uintmax_t)max_offset)); + max_offset = BLK_ENDS(sc, i) - 1; + } + DPRINTF_BLK(GUZ_DBG_TOC, i, ("%s: cluster #%u, original %u " + "bytes, in %u bytes", gp->name, i, sc->blksz, + sc->toc[i].blen)); + if (backref_to != BLEN_UNDEF) { + DPRINTF_BLK(GUZ_DBG_TOC, i, (" (->#%u)", + (u_int)backref_to)); + } + DPRINTF_BLK(GUZ_DBG_TOC, i, ("\n")); + } + last_blk->last = 1; + /* Do a second pass to validate block lengths */ + for (i = 0; i < sc->nblocks; i++) { + if (sc->toc[i].blen > sc->dcp->max_blen) { + if (sc->toc[i].last == 0) { + DPRINTF(GUZ_DBG_ERR, ("%s: cluster #%u " + "length (%ju) exceeds " + "max_blen (%ju)\n", gp->name, i, + (uintmax_t)sc->toc[i].blen, + (uintmax_t)sc->dcp->max_blen)); + return (-1); + } + DPRINTF(GUZ_DBG_INFO, ("%s: cluster #%u extra " + "padding is detected, trimmed to %ju\n", + gp->name, i, (uintmax_t)sc->dcp->max_blen)); + sc->toc[i].blen = sc->dcp->max_blen; + sc->toc[i].padded = 1; + } + } + return (0); + +error_offset: + DPRINTF(GUZ_DBG_ERR, ("%s: cluster #%u: invalid offset %ju, " + "min_offset=%ju mediasize=%jd\n", gp->name, (u_int)i, + sc->toc[i].offset, min_offset, pp->mediasize)); + return (-1); +} + static struct g_geom * g_uzip_taste(struct g_class *mp, struct g_provider *pp, int flags) { @@ -403,6 +640,10 @@ g_uzip_taste(struct g_class *mp, struct struct g_geom *gp; struct g_provider *pp2; struct g_uzip_softc *sc; + enum { + G_UZIP = 1, + G_ULZMA + } type; g_trace(G_T_TOPOLOGY, "%s(%s,%s)", __func__, mp->name, pp->name); g_topology_assert(); @@ -411,21 +652,25 @@ g_uzip_taste(struct g_class *mp, struct if (pp->acw > 0) return (NULL); + if ((fnmatch(g_uzip_attach_to, pp->name, 0) != 0) || + (fnmatch(g_uzip_noattach_to, pp->name, 0) == 0)) { + DPRINTF(GUZ_DBG_INFO, ("%s(%s,%s), ignoring\n", __func__, + mp->name, pp->name)); + return (NULL); + } + buf = NULL; /* * Create geom instance. */ - gp = g_new_geomf(mp, "%s.uzip", pp->name); + gp = g_new_geomf(mp, GUZ_DEV_NAME("%s"), pp->name); cp = g_new_consumer(gp); error = g_attach(cp, pp); if (error == 0) error = g_access(cp, 1, 0, 0); if (error) { - g_detach(cp); - g_destroy_consumer(cp); - g_destroy_geom(gp); - return (NULL); + goto e1; } g_topology_unlock(); @@ -433,22 +678,47 @@ g_uzip_taste(struct g_class *mp, struct * Read cloop header, look for CLOOP magic, perform * other validity checks. */ - DPRINTF(("%s: media sectorsize %u, mediasize %jd\n", + DPRINTF(GUZ_DBG_INFO, ("%s: media sectorsize %u, mediasize %jd\n", gp->name, pp->sectorsize, (intmax_t)pp->mediasize)); buf = g_read_data(cp, 0, pp->sectorsize, NULL); if (buf == NULL) - goto err; + goto e2; header = (struct cloop_header *) buf; if (strncmp(header->magic, CLOOP_MAGIC_START, sizeof(CLOOP_MAGIC_START) - 1) != 0) { - DPRINTF(("%s: no CLOOP magic\n", gp->name)); - goto err; - } - if (header->magic[0x0b] != 'V' || header->magic[0x0c] < '2') { - DPRINTF(("%s: image version too old\n", gp->name)); - goto err; + DPRINTF(GUZ_DBG_ERR, ("%s: no CLOOP magic\n", gp->name)); + goto e3; } + switch (header->magic[CLOOP_OFS_COMPR]) { + case CLOOP_COMP_LZMA: + case CLOOP_COMP_LZMA_DDP: + type = G_ULZMA; + if (header->magic[CLOOP_OFS_VERSN] < CLOOP_MINVER_LZMA) { + DPRINTF(GUZ_DBG_ERR, ("%s: image version too old\n", + gp->name)); + goto e3; + } + DPRINTF(GUZ_DBG_INFO, ("%s: GEOM_UZIP_LZMA image found\n", + gp->name)); + break; + case CLOOP_COMP_LIBZ: + case CLOOP_COMP_LIBZ_DDP: + type = G_UZIP; + if (header->magic[CLOOP_OFS_VERSN] < CLOOP_MINVER_ZLIB) { + DPRINTF(GUZ_DBG_ERR, ("%s: image version too old\n", + gp->name)); + goto e3; + } + DPRINTF(GUZ_DBG_INFO, ("%s: GEOM_UZIP_ZLIB image found\n", + gp->name)); + break; + default: + DPRINTF(GUZ_DBG_ERR, ("%s: unsupported image type\n", + gp->name)); + goto e3; + } + /* * Initialize softc and read offsets. */ @@ -459,7 +729,7 @@ g_uzip_taste(struct g_class *mp, struct if (sc->blksz % 512 != 0) { printf("%s: block size (%u) should be multiple of 512.\n", gp->name, sc->blksz); - goto err; + goto e4; } if (sc->blksz > MAX_BLKSZ) { printf("%s: block size (%u) should not be larger than %d.\n", @@ -470,15 +740,17 @@ g_uzip_taste(struct g_class *mp, struct total_offsets * sizeof(uint64_t) > pp->mediasize) { printf("%s: media too small for %u blocks\n", gp->name, sc->nblocks); - goto err; + goto e4; } - sc->offsets = malloc( - total_offsets * sizeof(uint64_t), M_GEOM_UZIP, M_WAITOK); + sc->toc = malloc(total_offsets * sizeof(struct g_uzip_blk), + M_GEOM_UZIP, M_WAITOK | M_ZERO); offsets_read = MIN(total_offsets, (pp->sectorsize - sizeof(*header)) / sizeof(uint64_t)); - for (i = 0; i < offsets_read; i++) - sc->offsets[i] = be64toh(((uint64_t *) (header + 1))[i]); - DPRINTF(("%s: %u offsets in the first sector\n", + for (i = 0; i < offsets_read; i++) { + sc->toc[i].offset = be64toh(((uint64_t *) (header + 1))[i]); + sc->toc[i].blen = BLEN_UNDEF; + } + DPRINTF(GUZ_DBG_INFO, ("%s: %u offsets in the first sector\n", gp->name, offsets_read)); for (blk = 1; offsets_read < total_offsets; blk++) { uint32_t nread; @@ -487,25 +759,65 @@ g_uzip_taste(struct g_class *mp, struct buf = g_read_data( cp, blk * pp->sectorsize, pp->sectorsize, NULL); if (buf == NULL) - goto err; + goto e5; nread = MIN(total_offsets - offsets_read, pp->sectorsize / sizeof(uint64_t)); - DPRINTF(("%s: %u offsets read from sector %d\n", + DPRINTF(GUZ_DBG_TOC, ("%s: %u offsets read from sector %d\n", gp->name, nread, blk)); for (i = 0; i < nread; i++) { - sc->offsets[offsets_read + i] = + sc->toc[offsets_read + i].offset = be64toh(((uint64_t *) buf)[i]); + sc->toc[offsets_read + i].blen = BLEN_UNDEF; } offsets_read += nread; } free(buf, M_GEOM); - DPRINTF(("%s: done reading offsets\n", gp->name)); + buf = NULL; + offsets_read -= 1; + DPRINTF(GUZ_DBG_INFO, ("%s: done reading %u block offsets from %u " + "sectors\n", gp->name, offsets_read, blk)); + if (sc->nblocks != offsets_read) { + DPRINTF(GUZ_DBG_ERR, ("%s: read %s offsets than expected " + "blocks\n", gp->name, + sc->nblocks < offsets_read ? "more" : "less")); + goto e5; + } + + if (type == G_UZIP) { + sc->dcp = g_uzip_zlib_ctor(sc->blksz); + } else { + sc->dcp = g_uzip_lzma_ctor(sc->blksz); + } + if (sc->dcp == NULL) { + goto e5; + } + + /* + * "Fake" last+1 block, to make it easier for the TOC parser to + * iterate without making the last element a special case. + */ + sc->toc[sc->nblocks].offset = pp->mediasize; + /* Massage TOC (table of contents), make sure it is sound */ + if (g_uzip_parse_toc(sc, pp, gp) != 0) { + DPRINTF(GUZ_DBG_ERR, ("%s: TOC error\n", gp->name)); + goto e6; + } mtx_init(&sc->last_mtx, "geom_uzip cache", NULL, MTX_DEF); + mtx_init(&sc->queue_mtx, "geom_uzip wrkthread", NULL, MTX_DEF); + bioq_init(&sc->bio_queue); sc->last_blk = -1; sc->last_buf = malloc(sc->blksz, M_GEOM_UZIP, M_WAITOK); sc->req_total = 0; sc->req_cached = 0; + sc->uzip_do = &g_uzip_do; + + error = kproc_create(g_uzip_wrkthr, sc, &sc->procp, 0, 0, "%s", + gp->name); + if (error != 0) { + goto e7; + } + g_topology_lock(); pp2 = g_new_providerf(gp, "%s", gp->name); pp2->sectorsize = 512; @@ -515,22 +827,31 @@ g_uzip_taste(struct g_class *mp, struct g_error_provider(pp2, 0); g_access(cp, -1, 0, 0); - DPRINTF(("%s: taste ok (%d, %jd), (%d, %d), %x\n", - gp->name, - pp2->sectorsize, (intmax_t)pp2->mediasize, + DPRINTF(GUZ_DBG_INFO, ("%s: taste ok (%d, %jd), (%d, %d), %x\n", + gp->name, pp2->sectorsize, (intmax_t)pp2->mediasize, pp2->stripeoffset, pp2->stripesize, pp2->flags)); - DPRINTF(("%s: %u x %u blocks\n", gp->name, sc->nblocks, sc->blksz)); + DPRINTF(GUZ_DBG_INFO, ("%s: %u x %u blocks\n", gp->name, sc->nblocks, + sc->blksz)); return (gp); -err: - g_topology_lock(); - g_access(cp, -1, 0, 0); - if (buf != NULL) +e7: + free(sc->last_buf, M_GEOM); + mtx_destroy(&sc->queue_mtx); + mtx_destroy(&sc->last_mtx); +e6: + sc->dcp->free(sc->dcp); +e5: + free(sc->toc, M_GEOM); +e4: + free(gp->softc, M_GEOM_UZIP); +e3: + if (buf != NULL) { free(buf, M_GEOM); - if (gp->softc != NULL) { - g_uzip_softc_free(gp->softc, NULL); - gp->softc = NULL; } +e2: + g_topology_lock(); + g_access(cp, -1, 0, 0); +e1: g_detach(cp); g_destroy_consumer(cp); g_destroy_geom(gp); @@ -547,7 +868,8 @@ g_uzip_destroy_geom(struct gctl_req *req g_topology_assert(); if (gp->softc == NULL) { - DPRINTF(("%s(%s): gp->softc == NULL\n", __func__, gp->name)); + DPRINTF(GUZ_DBG_ERR, ("%s(%s): gp->softc == NULL\n", __func__, + gp->name)); return (ENXIO); } Added: stable/10/sys/geom/uzip/g_uzip.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/geom/uzip/g_uzip.h Thu Jul 21 23:49:26 2016 (r303167) @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2004 Max Khon + * Copyright (c) 2014 Juniper Networks, Inc. + * Copyright (c) 2006-2016 Maxim Sobolev + * 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 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. + * + * $FreeBSD$ + */ +#ifndef __GEOM_G_UZIP_H__ +#define __GEOM_G_UZIP_H__ + +MALLOC_DECLARE(M_GEOM_UZIP); + +#define DEFINE_RAW_METHOD(func, rval, args...) typedef rval (*func##_t)(args) + +#endif /* __GEOM_G_UZIP_H__ */ Added: stable/10/sys/geom/uzip/g_uzip_cloop.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/10/sys/geom/uzip/g_uzip_cloop.h Thu Jul 21 23:49:26 2016 (r303167) @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2004-2016 Maxim Sobolev + * 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 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. + * + * $FreeBSD$ + */ + +/* CLOOP format and related constants */ + +/* + * Integer values (block size, number of blocks, offsets) + * are stored in big-endian (network) order on disk. + */ + +#define CLOOP_MAGIC_LEN 128 +#define CLOOP_OFS_COMPR 0x0b +#define CLOOP_OFS_VERSN (CLOOP_OFS_COMPR + 1) + +#define CLOOP_MAJVER_2 '2' +#define CLOOP_MAJVER_3 '3' + +#define CLOOP_COMP_LIBZ 'V' +#define CLOOP_COMP_LIBZ_DDP 'v' +#define CLOOP_COMP_LZMA 'L' +#define CLOOP_COMP_LZMA_DDP 'l' + +#define CLOOP_MINVER_LZMA CLOOP_MAJVER_3 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Fri Jul 22 00:00:10 2016 Return-Path: Delivered-To: svn-src-all@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 A0AEEBA003E; Fri, 22 Jul 2016 00:00:10 +0000 (UTC) (envelope-from gjb@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 65E611AF8; Fri, 22 Jul 2016 00:00:10 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M009ci003135; Fri, 22 Jul 2016 00:00:09 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M009vN003134; Fri, 22 Jul 2016 00:00:09 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201607220000.u6M009vN003134@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 22 Jul 2016 00:00:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303168 - stable/11/sys/conf X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 00:00:10 -0000 Author: gjb Date: Fri Jul 22 00:00:09 2016 New Revision: 303168 URL: https://svnweb.freebsd.org/changeset/base/303168 Log: Update stable/11 to BETA2 as part of the 11.0-RELEASE cycle. Approved by: re (implicit) Sponsored by: The FreeBSD Foundation Modified: stable/11/sys/conf/newvers.sh Modified: stable/11/sys/conf/newvers.sh ============================================================================== --- stable/11/sys/conf/newvers.sh Thu Jul 21 23:49:26 2016 (r303167) +++ stable/11/sys/conf/newvers.sh Fri Jul 22 00:00:09 2016 (r303168) @@ -32,7 +32,7 @@ TYPE="FreeBSD" REVISION="11.0" -BRANCH="BETA1" +BRANCH="BETA2" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From owner-svn-src-all@freebsd.org Fri Jul 22 00:43:33 2016 Return-Path: Delivered-To: svn-src-all@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 C5D61BA0BDC; Fri, 22 Jul 2016 00:43:33 +0000 (UTC) (envelope-from bdrewery@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 8EE5412A3; Fri, 22 Jul 2016 00:43:33 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M0hWli021478; Fri, 22 Jul 2016 00:43:32 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M0hWDe021477; Fri, 22 Jul 2016 00:43:32 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201607220043.u6M0hWDe021477@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 22 Jul 2016 00:43:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303169 - stable/10/libexec/rtld-elf X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 00:43:33 -0000 Author: bdrewery Date: Fri Jul 22 00:43:32 2016 New Revision: 303169 URL: https://svnweb.freebsd.org/changeset/base/303169 Log: MFC r302908: Fix dlsym(RTLD_NEXT) handling to only return the next library in last library cases. Modified: stable/10/libexec/rtld-elf/rtld.c Directory Properties: stable/10/ (props changed) Modified: stable/10/libexec/rtld-elf/rtld.c ============================================================================== --- stable/10/libexec/rtld-elf/rtld.c Fri Jul 22 00:00:09 2016 (r303168) +++ stable/10/libexec/rtld-elf/rtld.c Fri Jul 22 00:43:32 2016 (r303169) @@ -3181,7 +3181,7 @@ do_dlsym(void *handle, const char *name, handle == RTLD_SELF) { /* ... caller included */ if (handle == RTLD_NEXT) obj = globallist_next(obj); - TAILQ_FOREACH_FROM(obj, &obj_list, next) { + for (; obj != NULL; obj = TAILQ_NEXT(obj, next)) { if (obj->marker) continue; res = symlook_obj(&req, obj); From owner-svn-src-all@freebsd.org Fri Jul 22 01:16:57 2016 Return-Path: Delivered-To: svn-src-all@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 AC85BBA0325; Fri, 22 Jul 2016 01:16:57 +0000 (UTC) (envelope-from emaste@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 7BD6C1E3E; Fri, 22 Jul 2016 01:16:57 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M1Gu8g032736; Fri, 22 Jul 2016 01:16:56 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M1Guvf032735; Fri, 22 Jul 2016 01:16:56 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607220116.u6M1Guvf032735@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 22 Jul 2016 01:16:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303170 - stable/10/contrib/llvm/tools/clang/lib/Driver X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 01:16:57 -0000 Author: emaste Date: Fri Jul 22 01:16:56 2016 New Revision: 303170 URL: https://svnweb.freebsd.org/changeset/base/303170 Log: MFC r303031: clang++: Always use --eh-frame-hdr on FreeBSD, even for -static FreeBSD uses LLVM's libunwind on FreeBSD/arm64 today (and we expect to use it more widely in the future) and it requires the EH frame segment in static binaries. Modified: stable/10/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/llvm/tools/clang/lib/Driver/Tools.cpp ============================================================================== --- stable/10/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Fri Jul 22 00:43:32 2016 (r303169) +++ stable/10/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Fri Jul 22 01:16:56 2016 (r303170) @@ -5848,12 +5848,12 @@ void freebsd::Link::ConstructJob(Compila if (Args.hasArg(options::OPT_pie)) CmdArgs.push_back("-pie"); + CmdArgs.push_back("--eh-frame-hdr"); if (Args.hasArg(options::OPT_static)) { CmdArgs.push_back("-Bstatic"); } else { if (Args.hasArg(options::OPT_rdynamic)) CmdArgs.push_back("-export-dynamic"); - CmdArgs.push_back("--eh-frame-hdr"); if (Args.hasArg(options::OPT_shared)) { CmdArgs.push_back("-Bshareable"); } else { From owner-svn-src-all@freebsd.org Fri Jul 22 02:11:50 2016 Return-Path: Delivered-To: svn-src-all@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 7A03BBA106E; Fri, 22 Jul 2016 02:11:50 +0000 (UTC) (envelope-from karels@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 342B91969; Fri, 22 Jul 2016 02:11:50 +0000 (UTC) (envelope-from karels@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M2BnmO052398; Fri, 22 Jul 2016 02:11:49 GMT (envelope-from karels@FreeBSD.org) Received: (from karels@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M2BnQb052396; Fri, 22 Jul 2016 02:11:49 GMT (envelope-from karels@FreeBSD.org) Message-Id: <201607220211.u6M2BnQb052396@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: karels set sender to karels@FreeBSD.org using -f From: Mike Karels Date: Fri, 22 Jul 2016 02:11:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303171 - in head/sys: netinet netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 02:11:50 -0000 Author: karels Date: Fri Jul 22 02:11:49 2016 New Revision: 303171 URL: https://svnweb.freebsd.org/changeset/base/303171 Log: Fix per-connection L2 caching in fast path r301217 re-added per-connection L2 caching from a previous change, but it omitted caching in the fast path. Add it. Reviewed By: gallatin Approved by: gnn (mentor) Differential Revision: https://reviews.freebsd.org/D7239 Modified: head/sys/netinet/if_ether.c head/sys/netinet6/nd6.c Modified: head/sys/netinet/if_ether.c ============================================================================== --- head/sys/netinet/if_ether.c Fri Jul 22 01:16:56 2016 (r303170) +++ head/sys/netinet/if_ether.c Fri Jul 22 02:11:49 2016 (r303171) @@ -607,7 +607,7 @@ arpresolve(struct ifnet *ifp, int is_gw, } IF_AFDATA_RLOCK(ifp); - la = lla_lookup(LLTABLE(ifp), LLE_UNLOCKED, dst); + la = lla_lookup(LLTABLE(ifp), plle ? LLE_EXCLUSIVE : LLE_UNLOCKED, dst); if (la != NULL && (la->r_flags & RLLE_VALID) != 0) { /* Entry found, let's copy lle info */ bcopy(la->r_linkdata, desten, la->r_hdrlen); @@ -619,9 +619,16 @@ arpresolve(struct ifnet *ifp, int is_gw, la->r_skip_req = 0; /* Notify that entry was used */ LLE_REQ_UNLOCK(la); } + if (plle) { + LLE_ADDREF(la); + *plle = la; + LLE_WUNLOCK(la); + } IF_AFDATA_RUNLOCK(ifp); return (0); } + if (plle && la) + LLE_WUNLOCK(la); IF_AFDATA_RUNLOCK(ifp); return (arpresolve_full(ifp, is_gw, la == NULL ? LLE_CREATE : 0, m, dst, Modified: head/sys/netinet6/nd6.c ============================================================================== --- head/sys/netinet6/nd6.c Fri Jul 22 01:16:56 2016 (r303170) +++ head/sys/netinet6/nd6.c Fri Jul 22 02:11:49 2016 (r303171) @@ -2222,7 +2222,8 @@ nd6_resolve(struct ifnet *ifp, int is_gw } IF_AFDATA_RLOCK(ifp); - ln = nd6_lookup(&dst6->sin6_addr, LLE_UNLOCKED, ifp); + ln = nd6_lookup(&dst6->sin6_addr, plle ? LLE_EXCLUSIVE : LLE_UNLOCKED, + ifp); if (ln != NULL && (ln->r_flags & RLLE_VALID) != 0) { /* Entry found, let's copy lle info */ bcopy(ln->r_linkdata, desten, ln->r_hdrlen); @@ -2235,9 +2236,15 @@ nd6_resolve(struct ifnet *ifp, int is_gw ln->lle_hittime = time_uptime; LLE_REQ_UNLOCK(ln); } + if (plle) { + LLE_ADDREF(ln); + *plle = ln; + LLE_WUNLOCK(ln); + } IF_AFDATA_RUNLOCK(ifp); return (0); - } + } else if (plle && ln) + LLE_WUNLOCK(ln); IF_AFDATA_RUNLOCK(ifp); return (nd6_resolve_slow(ifp, 0, m, dst6, desten, pflags, plle)); From owner-svn-src-all@freebsd.org Fri Jul 22 03:03:54 2016 Return-Path: Delivered-To: svn-src-all@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 32A6BBA1908; Fri, 22 Jul 2016 03:03:54 +0000 (UTC) (envelope-from sbruno@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 E318715BB; Fri, 22 Jul 2016 03:03:53 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M33quY074158; Fri, 22 Jul 2016 03:03:52 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M33qdk074157; Fri, 22 Jul 2016 03:03:52 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607220303.u6M33qdk074157@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 22 Jul 2016 03:03:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303172 - stable/10/sys/dev/hptmv X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 03:03:54 -0000 Author: sbruno Date: Fri Jul 22 03:03:52 2016 New Revision: 303172 URL: https://svnweb.freebsd.org/changeset/base/303172 Log: MFC r298231 hptmv(4) Fix potential buffer overflow in hpt_set_info. While here, adjust some whitespace and yeild some useful debug info. This is untested on this hardware, testing requests to -scsi went unanswered. Modified: stable/10/sys/dev/hptmv/hptproc.c Modified: stable/10/sys/dev/hptmv/hptproc.c ============================================================================== --- stable/10/sys/dev/hptmv/hptproc.c Fri Jul 22 02:11:49 2016 (r303171) +++ stable/10/sys/dev/hptmv/hptproc.c Fri Jul 22 03:03:52 2016 (r303172) @@ -290,7 +290,9 @@ hpt_set_info(int length) /* * map buffer to kernel. */ - if (piop->nInBufferSize+piop->nOutBufferSize > PAGE_SIZE) { + if (piop->nInBufferSize > PAGE_SIZE || + piop->nOutBufferSize > PAGE_SIZE || + piop->nInBufferSize+piop->nOutBufferSize > PAGE_SIZE) { KdPrintE(("User buffer too large\n")); return -EINVAL; } @@ -301,8 +303,13 @@ hpt_set_info(int length) return -EINVAL; } - if (piop->nInBufferSize) - copyin((void*)(ULONG_PTR)piop->lpInBuffer, ke_area, piop->nInBufferSize); + if (piop->nInBufferSize) { + if (copyin((void*)(ULONG_PTR)piop->lpInBuffer, ke_area, piop->nInBufferSize) != 0) { + KdPrintE(("Failed to copyin from lpInBuffer\n")); + free(ke_area, M_DEVBUF); + return -EFAULT; + } + } /* * call kernel handler. @@ -324,7 +331,7 @@ hpt_set_info(int length) else KdPrintW(("Kernel_ioctl(): return %d\n", err)); free(ke_area, M_DEVBUF); - return -EINVAL; + return -EINVAL; } else { KdPrintW(("Wrong signature: %x\n", piop->Magic)); return -EINVAL; From owner-svn-src-all@freebsd.org Fri Jul 22 03:09:48 2016 Return-Path: Delivered-To: svn-src-all@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 7AECDBA1A01; Fri, 22 Jul 2016 03:09:48 +0000 (UTC) (envelope-from sbruno@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 4BA6F189C; Fri, 22 Jul 2016 03:09:48 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M39lhB074551; Fri, 22 Jul 2016 03:09:47 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M39loU074550; Fri, 22 Jul 2016 03:09:47 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607220309.u6M39loU074550@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 22 Jul 2016 03:09:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303173 - stable/10/sys/nlm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 03:09:48 -0000 Author: sbruno Date: Fri Jul 22 03:09:47 2016 New Revision: 303173 URL: https://svnweb.freebsd.org/changeset/base/303173 Log: MFC r298351 Avoid a possible heap overflow in our nlm code by limiting the number of service to the arbitrary value of 256. Log an appropriate message that indicates the hard limit. Modified: stable/10/sys/nlm/nlm_prot_impl.c Modified: stable/10/sys/nlm/nlm_prot_impl.c ============================================================================== --- stable/10/sys/nlm/nlm_prot_impl.c Fri Jul 22 03:03:52 2016 (r303172) +++ stable/10/sys/nlm/nlm_prot_impl.c Fri Jul 22 03:09:47 2016 (r303173) @@ -1439,6 +1439,12 @@ nlm_register_services(SVCPOOL *pool, int return (EINVAL); } + if (addr_count < 0 || addr_count > 256 ) { + NLM_ERR("NLM: too many service addresses (%d) given, " + "max 256 - can't start server\n", addr_count); + return (EINVAL); + } + xprts = malloc(addr_count * sizeof(SVCXPRT *), M_NLM, M_WAITOK|M_ZERO); for (i = 0; i < version_count; i++) { for (j = 0; j < addr_count; j++) { From owner-svn-src-all@freebsd.org Fri Jul 22 03:16:38 2016 Return-Path: Delivered-To: svn-src-all@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 E6079BA1B9C; Fri, 22 Jul 2016 03:16:38 +0000 (UTC) (envelope-from sbruno@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 B5C821D14; Fri, 22 Jul 2016 03:16:38 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M3GbSZ078477; Fri, 22 Jul 2016 03:16:37 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M3GbVZ078476; Fri, 22 Jul 2016 03:16:37 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607220316.u6M3GbVZ078476@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 22 Jul 2016 03:16:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303174 - stable/10/sys/dev/e1000 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 03:16:39 -0000 Author: sbruno Date: Fri Jul 22 03:16:37 2016 New Revision: 303174 URL: https://svnweb.freebsd.org/changeset/base/303174 Log: MFC r299182 If ALTQ is defined in the kern conf, switch to Legacy Mode. PR: 208409 Modified: stable/10/sys/dev/e1000/if_igb.h Modified: stable/10/sys/dev/e1000/if_igb.h ============================================================================== --- stable/10/sys/dev/e1000/if_igb.h Fri Jul 22 03:09:47 2016 (r303173) +++ stable/10/sys/dev/e1000/if_igb.h Fri Jul 22 03:16:37 2016 (r303174) @@ -35,6 +35,10 @@ #ifndef _IF_IGB_H_ #define _IF_IGB_H_ +#ifdef ALTQ +#define IGB_LEGACY_TX +#endif + #include #include #ifndef IGB_LEGACY_TX From owner-svn-src-all@freebsd.org Fri Jul 22 03:19:51 2016 Return-Path: Delivered-To: svn-src-all@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 1C771BA1C78; Fri, 22 Jul 2016 03:19:51 +0000 (UTC) (envelope-from sbruno@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 E04A61F8D; Fri, 22 Jul 2016 03:19:50 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M3JoDo078666; Fri, 22 Jul 2016 03:19:50 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M3Jo13078665; Fri, 22 Jul 2016 03:19:50 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607220319.u6M3Jo13078665@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 22 Jul 2016 03:19:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303175 - stable/10/sys/dev/e1000 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 03:19:51 -0000 Author: sbruno Date: Fri Jul 22 03:19:49 2016 New Revision: 303175 URL: https://svnweb.freebsd.org/changeset/base/303175 Log: MFC r299188 Since igb_detach() cleans up all the data structures that will be free'd by the functions following its call, we can simply return instead of crashing and burning in the event of igb_detach() failing. PR: 197139 Modified: stable/10/sys/dev/e1000/if_igb.c Modified: stable/10/sys/dev/e1000/if_igb.c ============================================================================== --- stable/10/sys/dev/e1000/if_igb.c Fri Jul 22 03:16:37 2016 (r303174) +++ stable/10/sys/dev/e1000/if_igb.c Fri Jul 22 03:19:49 2016 (r303175) @@ -664,7 +664,8 @@ igb_attach(device_t dev) return (0); err_late: - igb_detach(dev); + if (igb_detach(dev) == 0) /* igb_detach() already did the cleanup */ + return(error); igb_free_transmit_structures(adapter); igb_free_receive_structures(adapter); igb_release_hw_control(adapter); From owner-svn-src-all@freebsd.org Fri Jul 22 03:21:48 2016 Return-Path: Delivered-To: svn-src-all@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 8814FBA1D04; Fri, 22 Jul 2016 03:21:48 +0000 (UTC) (envelope-from sbruno@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 3A7F61342; Fri, 22 Jul 2016 03:21:48 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M3Ll9h082046; Fri, 22 Jul 2016 03:21:47 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M3Llqt082045; Fri, 22 Jul 2016 03:21:47 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607220321.u6M3Llqt082045@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 22 Jul 2016 03:21:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303176 - stable/10/sys/dev/ciss X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 03:21:48 -0000 Author: sbruno Date: Fri Jul 22 03:21:47 2016 New Revision: 303176 URL: https://svnweb.freebsd.org/changeset/base/303176 Log: MFC r300551 Update some of the TBD entries in ciss(4) to match what's in the pci IDS data. Modified: stable/10/sys/dev/ciss/ciss.c Modified: stable/10/sys/dev/ciss/ciss.c ============================================================================== --- stable/10/sys/dev/ciss/ciss.c Fri Jul 22 03:19:49 2016 (r303175) +++ stable/10/sys/dev/ciss/ciss.c Fri Jul 22 03:21:47 2016 (r303176) @@ -345,21 +345,22 @@ static struct { 0x103C, 0x1928, CISS_BOARD_SA5, "HP Smart Array P230i" }, { 0x103C, 0x1929, CISS_BOARD_SA5, "HP Smart Array P530" }, { 0x103C, 0x192A, CISS_BOARD_SA5, "HP Smart Array P531" }, - { 0x103C, 0x21BD, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21BE, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21BF, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21C0, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21C2, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21C3, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21C5, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21C6, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21C7, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21C8, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21CA, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21CB, CISS_BOARD_SA5, "HP Smart Array TBD" }, + { 0x103C, 0x21BD, CISS_BOARD_SA5, "HP Smart Array P244br" }, + { 0x103C, 0x21BE, CISS_BOARD_SA5, "HP Smart Array P741m" }, + { 0x103C, 0x21BF, CISS_BOARD_SA5, "HP Smart Array H240ar" }, + { 0x103C, 0x21C0, CISS_BOARD_SA5, "HP Smart Array P440ar" }, + { 0x103C, 0x21C1, CISS_BOARD_SA5, "HP Smart Array P840ar" }, + { 0x103C, 0x21C2, CISS_BOARD_SA5, "HP Smart Array P440" }, + { 0x103C, 0x21C3, CISS_BOARD_SA5, "HP Smart Array P441" }, + { 0x103C, 0x21C5, CISS_BOARD_SA5, "HP Smart Array P841" }, + { 0x103C, 0x21C6, CISS_BOARD_SA5, "HP Smart Array H244br" }, + { 0x103C, 0x21C7, CISS_BOARD_SA5, "HP Smart Array H240" }, + { 0x103C, 0x21C8, CISS_BOARD_SA5, "HP Smart Array H241" }, + { 0x103C, 0x21CA, CISS_BOARD_SA5, "HP Smart Array P246br" }, + { 0x103C, 0x21CB, CISS_BOARD_SA5, "HP Smart Array P840" }, { 0x103C, 0x21CC, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21CD, CISS_BOARD_SA5, "HP Smart Array TBD" }, - { 0x103C, 0x21CE, CISS_BOARD_SA5, "HP Smart Array TBD" }, + { 0x103C, 0x21CD, CISS_BOARD_SA5, "HP Smart Array P240nr" }, + { 0x103C, 0x21CE, CISS_BOARD_SA5, "HP Smart Array H240nr" }, { 0, 0, 0, NULL } }; From owner-svn-src-all@freebsd.org Fri Jul 22 03:26:03 2016 Return-Path: Delivered-To: svn-src-all@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 4B202BA1E3E; Fri, 22 Jul 2016 03:26:03 +0000 (UTC) (envelope-from sbruno@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 14A3016D2; Fri, 22 Jul 2016 03:26:02 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M3Q2Iu082277; Fri, 22 Jul 2016 03:26:02 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M3Q2Xp082276; Fri, 22 Jul 2016 03:26:02 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607220326.u6M3Q2Xp082276@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 22 Jul 2016 03:26:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303177 - stable/10/sys/dev/an X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 03:26:03 -0000 Author: sbruno Date: Fri Jul 22 03:26:01 2016 New Revision: 303177 URL: https://svnweb.freebsd.org/changeset/base/303177 Log: MFC r300612 Reject ioctl commands for FLSHGCHR and FLSHPCHR if the size is greater than sc->areq. This is a bounds check to ensure we're not just cramming arbitrarily sized nonsense into the driver and overflowing the heap. PR: 209545 Modified: stable/10/sys/dev/an/if_an.c Modified: stable/10/sys/dev/an/if_an.c ============================================================================== --- stable/10/sys/dev/an/if_an.c Fri Jul 22 03:21:47 2016 (r303176) +++ stable/10/sys/dev/an/if_an.c Fri Jul 22 03:26:01 2016 (r303177) @@ -3777,6 +3777,9 @@ flashcard(struct ifnet *ifp, struct airo return ENOBUFS; break; case AIROFLSHGCHR: /* Get char from aux */ + if (l_ioctl->len > sizeof(sc->areq)) { + return -EINVAL; + } AN_UNLOCK(sc); status = copyin(l_ioctl->data, &sc->areq, l_ioctl->len); AN_LOCK(sc); @@ -3788,6 +3791,9 @@ flashcard(struct ifnet *ifp, struct airo else return -1; case AIROFLSHPCHR: /* Send char to card. */ + if (l_ioctl->len > sizeof(sc->areq)) { + return -EINVAL; + } AN_UNLOCK(sc); status = copyin(l_ioctl->data, &sc->areq, l_ioctl->len); AN_LOCK(sc); From owner-svn-src-all@freebsd.org Fri Jul 22 03:30:01 2016 Return-Path: Delivered-To: svn-src-all@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 40735BA1EF4; Fri, 22 Jul 2016 03:30:01 +0000 (UTC) (envelope-from sephe@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 0DFBF19F9; Fri, 22 Jul 2016 03:30:00 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M3U0Sd082620; Fri, 22 Jul 2016 03:30:00 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M3U0PO082619; Fri, 22 Jul 2016 03:30:00 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607220330.u6M3U0PO082619@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Fri, 22 Jul 2016 03:30:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303178 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 03:30:01 -0000 Author: sephe Date: Fri Jul 22 03:30:00 2016 New Revision: 303178 URL: https://svnweb.freebsd.org/changeset/base/303178 Log: hyperv/vmbus: Cosmetic bufring cleanup. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7267 Modified: head/sys/dev/hyperv/vmbus/hv_ring_buffer.c Modified: head/sys/dev/hyperv/vmbus/hv_ring_buffer.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_ring_buffer.c Fri Jul 22 03:26:01 2016 (r303177) +++ head/sys/dev/hyperv/vmbus/hv_ring_buffer.c Fri Jul 22 03:30:00 2016 (r303178) @@ -26,7 +26,6 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - #include #include #include @@ -35,8 +34,14 @@ #include "hv_vmbus_priv.h" /* Amount of space to write to */ -#define HV_BYTES_AVAIL_TO_WRITE(r, w, z) ((w) >= (r))? \ - ((z) - ((w) - (r))):((r) - (w)) +#define HV_BYTES_AVAIL_TO_WRITE(r, w, z) \ + ((w) >= (r)) ? ((z) - ((w) - (r))) : ((r) - (w)) + +static uint32_t copy_to_ring_buffer(hv_vmbus_ring_buffer_info *ring_info, + uint32_t start_write_offset, const uint8_t *src, + uint32_t src_len); +static uint32_t copy_from_ring_buffer(hv_vmbus_ring_buffer_info *ring_info, + char *dest, uint32_t dest_len, uint32_t start_read_offset); static int hv_rbi_sysctl_stats(SYSCTL_HANDLER_ARGS) @@ -54,40 +59,30 @@ hv_rbi_sysctl_stats(SYSCTL_HANDLER_ARGS) write_avail = HV_BYTES_AVAIL_TO_WRITE(read_index, write_index, sz); read_avail = sz - write_avail; - snprintf(rbi_stats, sizeof(rbi_stats), - "r_idx:%d " - "w_idx:%d " - "int_mask:%d " - "r_avail:%d " - "w_avail:%d", - read_index, write_index, interrupt_mask, - read_avail, write_avail); - return (sysctl_handle_string(oidp, rbi_stats, - sizeof(rbi_stats), req)); + snprintf(rbi_stats, sizeof(rbi_stats), + "r_idx:%d w_idx:%d int_mask:%d r_avail:%d w_avail:%d", + read_index, write_index, interrupt_mask, read_avail, write_avail); + return sysctl_handle_string(oidp, rbi_stats, sizeof(rbi_stats), req); } void -hv_ring_buffer_stat( - struct sysctl_ctx_list *ctx, - struct sysctl_oid_list *tree_node, - hv_vmbus_ring_buffer_info *rbi, - const char *desc) +hv_ring_buffer_stat(struct sysctl_ctx_list *ctx, + struct sysctl_oid_list *tree_node, hv_vmbus_ring_buffer_info *rbi, + const char *desc) { SYSCTL_ADD_PROC(ctx, tree_node, OID_AUTO, - "ring_buffer_stats", - CTLTYPE_STRING|CTLFLAG_RD|CTLFLAG_MPSAFE, rbi, 0, - hv_rbi_sysctl_stats, "A", desc); + "ring_buffer_stats", CTLTYPE_STRING|CTLFLAG_RD|CTLFLAG_MPSAFE, + rbi, 0, hv_rbi_sysctl_stats, "A", desc); } + /** * @brief Get number of bytes available to read and to write to * for the specified ring buffer */ -static inline void -get_ring_buffer_avail_bytes( - hv_vmbus_ring_buffer_info* rbi, - uint32_t* read, - uint32_t* write) +static __inline void +get_ring_buffer_avail_bytes(hv_vmbus_ring_buffer_info *rbi, uint32_t *read, + uint32_t *write) { uint32_t read_loc, write_loc; @@ -97,28 +92,26 @@ get_ring_buffer_avail_bytes( read_loc = rbi->ring_buffer->read_index; write_loc = rbi->ring_buffer->write_index; - *write = HV_BYTES_AVAIL_TO_WRITE( - read_loc, write_loc, rbi->ring_data_size); + *write = HV_BYTES_AVAIL_TO_WRITE(read_loc, write_loc, + rbi->ring_data_size); *read = rbi->ring_data_size - *write; } /** * @brief Get the next write location for the specified ring buffer */ -static inline uint32_t -get_next_write_location(hv_vmbus_ring_buffer_info* ring_info) +static __inline uint32_t +get_next_write_location(hv_vmbus_ring_buffer_info *ring_info) { - uint32_t next = ring_info->ring_buffer->write_index; - return (next); + return ring_info->ring_buffer->write_index; } /** * @brief Set the next write location for the specified ring buffer */ -static inline void -set_next_write_location( - hv_vmbus_ring_buffer_info* ring_info, - uint32_t next_write_location) +static __inline void +set_next_write_location(hv_vmbus_ring_buffer_info *ring_info, + uint32_t next_write_location) { ring_info->ring_buffer->write_index = next_write_location; } @@ -126,23 +119,22 @@ set_next_write_location( /** * @brief Get the next read location for the specified ring buffer */ -static inline uint32_t -get_next_read_location(hv_vmbus_ring_buffer_info* ring_info) +static __inline uint32_t +get_next_read_location(hv_vmbus_ring_buffer_info *ring_info) { - uint32_t next = ring_info->ring_buffer->read_index; - return (next); + return ring_info->ring_buffer->read_index; } /** * @brief Get the next read location + offset for the specified ring buffer. * This allows the caller to skip. */ -static inline uint32_t -get_next_read_location_with_offset( - hv_vmbus_ring_buffer_info* ring_info, - uint32_t offset) +static __inline uint32_t +get_next_read_location_with_offset(hv_vmbus_ring_buffer_info *ring_info, + uint32_t offset) { uint32_t next = ring_info->ring_buffer->read_index; + next += offset; next %= ring_info->ring_data_size; return (next); @@ -151,10 +143,9 @@ get_next_read_location_with_offset( /** * @brief Set the next read location for the specified ring buffer */ -static inline void -set_next_read_location( - hv_vmbus_ring_buffer_info* ring_info, - uint32_t next_read_location) +static __inline void +set_next_read_location(hv_vmbus_ring_buffer_info *ring_info, + uint32_t next_read_location) { ring_info->ring_buffer->read_index = next_read_location; } @@ -162,17 +153,17 @@ set_next_read_location( /** * @brief Get the start of the ring buffer */ -static inline void * -get_ring_buffer(hv_vmbus_ring_buffer_info* ring_info) +static __inline void * +get_ring_buffer(hv_vmbus_ring_buffer_info *ring_info) { - return (void *) ring_info->ring_buffer->buffer; + return ring_info->ring_buffer->buffer; } /** * @brief Get the size of the ring buffer. */ -static inline uint32_t -get_ring_buffer_size(hv_vmbus_ring_buffer_info* ring_info) +static __inline uint32_t +get_ring_buffer_size(hv_vmbus_ring_buffer_info *ring_info) { return ring_info->ring_data_size; } @@ -180,25 +171,23 @@ get_ring_buffer_size(hv_vmbus_ring_buffe /** * Get the read and write indices as uint64_t of the specified ring buffer. */ -static inline uint64_t -get_ring_buffer_indices(hv_vmbus_ring_buffer_info* ring_info) +static __inline uint64_t +get_ring_buffer_indices(hv_vmbus_ring_buffer_info *ring_info) { - return (uint64_t) ring_info->ring_buffer->write_index << 32; + return ((uint64_t)ring_info->ring_buffer->write_index) << 32; } void -hv_ring_buffer_read_begin( - hv_vmbus_ring_buffer_info* ring_info) +hv_ring_buffer_read_begin(hv_vmbus_ring_buffer_info *ring_info) { ring_info->ring_buffer->interrupt_mask = 1; mb(); } uint32_t -hv_ring_buffer_read_end( - hv_vmbus_ring_buffer_info* ring_info) +hv_ring_buffer_read_end(hv_vmbus_ring_buffer_info *ring_info) { - uint32_t read, write; + uint32_t read, write; ring_info->ring_buffer->interrupt_mask = 0; mb(); @@ -209,7 +198,6 @@ hv_ring_buffer_read_end( * incoming messages. */ get_ring_buffer_avail_bytes(ring_info, &read, &write); - return (read); } @@ -229,9 +217,8 @@ hv_ring_buffer_read_end( * arrived. */ static boolean_t -hv_ring_buffer_needsig_on_write( - uint32_t old_write_location, - hv_vmbus_ring_buffer_info* rbi) +hv_ring_buffer_needsig_on_write(uint32_t old_write_location, + hv_vmbus_ring_buffer_info *rbi) { mb(); if (rbi->ring_buffer->interrupt_mask) @@ -249,35 +236,20 @@ hv_ring_buffer_needsig_on_write( return (FALSE); } -static uint32_t copy_to_ring_buffer( - hv_vmbus_ring_buffer_info* ring_info, - uint32_t start_write_offset, - const uint8_t *src, - uint32_t src_len); - -static uint32_t copy_from_ring_buffer( - hv_vmbus_ring_buffer_info* ring_info, - char* dest, - uint32_t dest_len, - uint32_t start_read_offset); - /** * @brief Initialize the ring buffer. */ int -hv_vmbus_ring_buffer_init( - hv_vmbus_ring_buffer_info* ring_info, - void* buffer, - uint32_t buffer_len) +hv_vmbus_ring_buffer_init(hv_vmbus_ring_buffer_info *ring_info, void *buffer, + uint32_t buffer_len) { memset(ring_info, 0, sizeof(hv_vmbus_ring_buffer_info)); - ring_info->ring_buffer = (hv_vmbus_ring_buffer*) buffer; - ring_info->ring_buffer->read_index = - ring_info->ring_buffer->write_index = 0; + ring_info->ring_buffer = buffer; + ring_info->ring_buffer->read_index = 0; + ring_info->ring_buffer->write_index = 0; ring_info->ring_data_size = buffer_len - sizeof(hv_vmbus_ring_buffer); - mtx_init(&ring_info->ring_lock, "vmbus ring buffer", NULL, MTX_SPIN); return (0); @@ -286,7 +258,8 @@ hv_vmbus_ring_buffer_init( /** * @brief Cleanup the ring buffer. */ -void hv_ring_buffer_cleanup(hv_vmbus_ring_buffer_info* ring_info) +void +hv_ring_buffer_cleanup(hv_vmbus_ring_buffer_info *ring_info) { mtx_destroy(&ring_info->ring_lock); } @@ -295,24 +268,19 @@ void hv_ring_buffer_cleanup(hv_vmbus_rin * @brief Write to the ring buffer. */ int -hv_ring_buffer_write( - hv_vmbus_ring_buffer_info* out_ring_info, - const struct iovec iov[], - uint32_t iovlen, - boolean_t *need_sig) +hv_ring_buffer_write(hv_vmbus_ring_buffer_info *out_ring_info, + const struct iovec iov[], uint32_t iovlen, boolean_t *need_sig) { int i = 0; uint32_t byte_avail_to_write; uint32_t byte_avail_to_read; uint32_t old_write_location; uint32_t total_bytes_to_write = 0; - volatile uint32_t next_write_location; uint64_t prev_indices = 0; - for (i = 0; i < iovlen; i++) { - total_bytes_to_write += iov[i].iov_len; - } + for (i = 0; i < iovlen; i++) + total_bytes_to_write += iov[i].iov_len; total_bytes_to_write += sizeof(uint64_t); @@ -326,11 +294,9 @@ hv_ring_buffer_write( * Otherwise, the next time around, we think the ring buffer * is empty since the read index == write index */ - if (byte_avail_to_write <= total_bytes_to_write) { - - mtx_unlock_spin(&out_ring_info->ring_lock); - return (EAGAIN); + mtx_unlock_spin(&out_ring_info->ring_lock); + return (EAGAIN); } /* @@ -341,8 +307,8 @@ hv_ring_buffer_write( old_write_location = next_write_location; for (i = 0; i < iovlen; i++) { - next_write_location = copy_to_ring_buffer(out_ring_info, - next_write_location, iov[i].iov_base, iov[i].iov_len); + next_write_location = copy_to_ring_buffer(out_ring_info, + next_write_location, iov[i].iov_base, iov[i].iov_len); } /* @@ -350,9 +316,8 @@ hv_ring_buffer_write( */ prev_indices = get_ring_buffer_indices(out_ring_info); - next_write_location = copy_to_ring_buffer( - out_ring_info, next_write_location, - (char *) &prev_indices, sizeof(uint64_t)); + next_write_location = copy_to_ring_buffer(out_ring_info, + next_write_location, (char *)&prev_indices, sizeof(uint64_t)); /* * Full memory barrier before upding the write index. @@ -376,10 +341,8 @@ hv_ring_buffer_write( * @brief Read without advancing the read index. */ int -hv_ring_buffer_peek( - hv_vmbus_ring_buffer_info* in_ring_info, - void* buffer, - uint32_t buffer_len) +hv_ring_buffer_peek(hv_vmbus_ring_buffer_info *in_ring_info, void *buffer, + uint32_t buffer_len) { uint32_t bytesAvailToWrite; uint32_t bytesAvailToRead; @@ -388,14 +351,14 @@ hv_ring_buffer_peek( mtx_lock_spin(&in_ring_info->ring_lock); get_ring_buffer_avail_bytes(in_ring_info, &bytesAvailToRead, - &bytesAvailToWrite); + &bytesAvailToWrite); /* * Make sure there is something to read */ if (bytesAvailToRead < buffer_len) { - mtx_unlock_spin(&in_ring_info->ring_lock); - return (EAGAIN); + mtx_unlock_spin(&in_ring_info->ring_lock); + return (EAGAIN); } /* @@ -403,8 +366,8 @@ hv_ring_buffer_peek( */ nextReadLocation = get_next_read_location(in_ring_info); - nextReadLocation = copy_from_ring_buffer( - in_ring_info, (char *)buffer, buffer_len, nextReadLocation); + nextReadLocation = copy_from_ring_buffer(in_ring_info, + (char *)buffer, buffer_len, nextReadLocation); mtx_unlock_spin(&in_ring_info->ring_lock); @@ -415,11 +378,8 @@ hv_ring_buffer_peek( * @brief Read and advance the read index. */ int -hv_ring_buffer_read( - hv_vmbus_ring_buffer_info* in_ring_info, - void* buffer, - uint32_t buffer_len, - uint32_t offset) +hv_ring_buffer_read(hv_vmbus_ring_buffer_info *in_ring_info, void *buffer, + uint32_t buffer_len, uint32_t offset) { uint32_t bytes_avail_to_write; uint32_t bytes_avail_to_read; @@ -427,37 +387,29 @@ hv_ring_buffer_read( uint64_t prev_indices = 0; if (buffer_len <= 0) - return (EINVAL); + return (EINVAL); mtx_lock_spin(&in_ring_info->ring_lock); - get_ring_buffer_avail_bytes( - in_ring_info, &bytes_avail_to_read, + get_ring_buffer_avail_bytes(in_ring_info, &bytes_avail_to_read, &bytes_avail_to_write); /* * Make sure there is something to read */ if (bytes_avail_to_read < buffer_len) { - mtx_unlock_spin(&in_ring_info->ring_lock); - return (EAGAIN); + mtx_unlock_spin(&in_ring_info->ring_lock); + return (EAGAIN); } - next_read_location = get_next_read_location_with_offset( - in_ring_info, + next_read_location = get_next_read_location_with_offset(in_ring_info, offset); - next_read_location = copy_from_ring_buffer( - in_ring_info, - (char *) buffer, - buffer_len, - next_read_location); - - next_read_location = copy_from_ring_buffer( - in_ring_info, - (char *) &prev_indices, - sizeof(uint64_t), - next_read_location); + next_read_location = copy_from_ring_buffer(in_ring_info, (char *)buffer, + buffer_len, next_read_location); + + next_read_location = copy_from_ring_buffer(in_ring_info, + (char *)&prev_indices, sizeof(uint64_t), next_read_location); /* * Make sure all reads are done before we update the read index since @@ -482,23 +434,20 @@ hv_ring_buffer_read( * Assume there is enough room. Handles wrap-around in dest case only! */ static uint32_t -copy_to_ring_buffer( - hv_vmbus_ring_buffer_info* ring_info, - uint32_t start_write_offset, - const uint8_t *src, - uint32_t src_len) +copy_to_ring_buffer(hv_vmbus_ring_buffer_info *ring_info, + uint32_t start_write_offset, const uint8_t *src, uint32_t src_len) { char *ring_buffer = get_ring_buffer(ring_info); uint32_t ring_buffer_size = get_ring_buffer_size(ring_info); uint32_t fragLen; - if (src_len > ring_buffer_size - start_write_offset) { - /* wrap-around detected! */ - fragLen = ring_buffer_size - start_write_offset; - memcpy(ring_buffer + start_write_offset, src, fragLen); - memcpy(ring_buffer, src + fragLen, src_len - fragLen); + if (src_len > ring_buffer_size - start_write_offset) { + /* wrap-around detected! */ + fragLen = ring_buffer_size - start_write_offset; + memcpy(ring_buffer + start_write_offset, src, fragLen); + memcpy(ring_buffer, src + fragLen, src_len - fragLen); } else { - memcpy(ring_buffer + start_write_offset, src, src_len); + memcpy(ring_buffer + start_write_offset, src, src_len); } start_write_offset += src_len; @@ -512,24 +461,21 @@ copy_to_ring_buffer( * * Assume there is enough room. Handles wrap-around in src case only! */ -uint32_t -copy_from_ring_buffer( - hv_vmbus_ring_buffer_info* ring_info, - char* dest, - uint32_t dest_len, - uint32_t start_read_offset) +static uint32_t +copy_from_ring_buffer(hv_vmbus_ring_buffer_info *ring_info, char *dest, + uint32_t dest_len, uint32_t start_read_offset) { uint32_t fragLen; char *ring_buffer = get_ring_buffer(ring_info); uint32_t ring_buffer_size = get_ring_buffer_size(ring_info); if (dest_len > ring_buffer_size - start_read_offset) { - /* wrap-around detected at the src */ - fragLen = ring_buffer_size - start_read_offset; - memcpy(dest, ring_buffer + start_read_offset, fragLen); - memcpy(dest + fragLen, ring_buffer, dest_len - fragLen); + /* wrap-around detected at the src */ + fragLen = ring_buffer_size - start_read_offset; + memcpy(dest, ring_buffer + start_read_offset, fragLen); + memcpy(dest + fragLen, ring_buffer, dest_len - fragLen); } else { - memcpy(dest, ring_buffer + start_read_offset, dest_len); + memcpy(dest, ring_buffer + start_read_offset, dest_len); } start_read_offset += dest_len; @@ -537,4 +483,3 @@ copy_from_ring_buffer( return (start_read_offset); } - From owner-svn-src-all@freebsd.org Fri Jul 22 03:34:16 2016 Return-Path: Delivered-To: svn-src-all@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 DC15BBA016C; Fri, 22 Jul 2016 03:34:16 +0000 (UTC) (envelope-from sbruno@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 A5E311E26; Fri, 22 Jul 2016 03:34:16 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M3YFmc086033; Fri, 22 Jul 2016 03:34:15 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M3YF34086032; Fri, 22 Jul 2016 03:34:15 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607220334.u6M3YF34086032@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 22 Jul 2016 03:34:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303179 - stable/10/sys/cam/scsi X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 03:34:17 -0000 Author: sbruno Date: Fri Jul 22 03:34:15 2016 New Revision: 303179 URL: https://svnweb.freebsd.org/changeset/base/303179 Log: MFC r302281 Correct PERSISTENT RESERVE OUT command and populate scsi_cmd->length. PR: 202625 Modified: stable/10/sys/cam/scsi/scsi_all.c Modified: stable/10/sys/cam/scsi/scsi_all.c ============================================================================== --- stable/10/sys/cam/scsi/scsi_all.c Fri Jul 22 03:30:00 2016 (r303178) +++ stable/10/sys/cam/scsi/scsi_all.c Fri Jul 22 03:34:15 2016 (r303179) @@ -8539,6 +8539,7 @@ scsi_persistent_reserve_out(struct ccb_s scsi_cmd->opcode = PERSISTENT_RES_OUT; scsi_cmd->action = service_action; scsi_cmd->scope_type = scope | res_type; + scsi_ulto4b(dxfer_len, scsi_cmd->length); cam_fill_csio(csio, retries, From owner-svn-src-all@freebsd.org Fri Jul 22 03:42:33 2016 Return-Path: Delivered-To: svn-src-all@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 AB730BA040C; Fri, 22 Jul 2016 03:42:33 +0000 (UTC) (envelope-from sephe@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 801AB143C; Fri, 22 Jul 2016 03:42:33 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M3gWnf089664; Fri, 22 Jul 2016 03:42:32 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M3gWN3089661; Fri, 22 Jul 2016 03:42:32 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607220342.u6M3gWN3089661@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Fri, 22 Jul 2016 03:42:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303180 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 03:42:33 -0000 Author: sephe Date: Fri Jul 22 03:42:32 2016 New Revision: 303180 URL: https://svnweb.freebsd.org/changeset/base/303180 Log: hyperv/vmbus: Cleanup and augment bufring sysctl tree creation Binary state node is added, so that userland programs do not have to parse human readable state string. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7268 Modified: head/sys/dev/hyperv/vmbus/hv_ring_buffer.c head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h head/sys/dev/hyperv/vmbus/vmbus_chan.c Modified: head/sys/dev/hyperv/vmbus/hv_ring_buffer.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_ring_buffer.c Fri Jul 22 03:34:15 2016 (r303179) +++ head/sys/dev/hyperv/vmbus/hv_ring_buffer.c Fri Jul 22 03:42:32 2016 (r303180) @@ -44,36 +44,74 @@ static uint32_t copy_from_ring_buffer(hv char *dest, uint32_t dest_len, uint32_t start_read_offset); static int -hv_rbi_sysctl_stats(SYSCTL_HANDLER_ARGS) +vmbus_br_sysctl_state(SYSCTL_HANDLER_ARGS) { - hv_vmbus_ring_buffer_info* rbi; - uint32_t read_index, write_index, interrupt_mask, sz; - uint32_t read_avail, write_avail; - char rbi_stats[256]; - - rbi = (hv_vmbus_ring_buffer_info*)arg1; - read_index = rbi->ring_buffer->read_index; - write_index = rbi->ring_buffer->write_index; - interrupt_mask = rbi->ring_buffer->interrupt_mask; - sz = rbi->ring_data_size; - write_avail = HV_BYTES_AVAIL_TO_WRITE(read_index, - write_index, sz); - read_avail = sz - write_avail; - - snprintf(rbi_stats, sizeof(rbi_stats), - "r_idx:%d w_idx:%d int_mask:%d r_avail:%d w_avail:%d", - read_index, write_index, interrupt_mask, read_avail, write_avail); - return sysctl_handle_string(oidp, rbi_stats, sizeof(rbi_stats), req); + const hv_vmbus_ring_buffer_info *br = arg1; + uint32_t rindex, windex, intr_mask, ravail, wavail; + char state[256]; + + rindex = br->ring_buffer->read_index; + windex = br->ring_buffer->write_index; + intr_mask = br->ring_buffer->interrupt_mask; + wavail = HV_BYTES_AVAIL_TO_WRITE(rindex, windex, br->ring_data_size); + ravail = br->ring_data_size - wavail; + + snprintf(state, sizeof(state), + "rindex:%u windex:%u intr_mask:%u ravail:%u wavail:%u", + rindex, windex, intr_mask, ravail, wavail); + return sysctl_handle_string(oidp, state, sizeof(state), req); +} + +/* + * Binary bufring states. + */ +static int +vmbus_br_sysctl_state_bin(SYSCTL_HANDLER_ARGS) +{ +#define BR_STATE_RIDX 0 +#define BR_STATE_WIDX 1 +#define BR_STATE_IMSK 2 +#define BR_STATE_RSPC 3 +#define BR_STATE_WSPC 4 +#define BR_STATE_MAX 5 + + const hv_vmbus_ring_buffer_info *br = arg1; + uint32_t rindex, windex, wavail, state[BR_STATE_MAX]; + + rindex = br->ring_buffer->read_index; + windex = br->ring_buffer->write_index; + wavail = HV_BYTES_AVAIL_TO_WRITE(rindex, windex, br->ring_data_size); + + state[BR_STATE_RIDX] = rindex; + state[BR_STATE_WIDX] = windex; + state[BR_STATE_IMSK] = br->ring_buffer->interrupt_mask; + state[BR_STATE_WSPC] = wavail; + state[BR_STATE_RSPC] = br->ring_data_size - wavail; + + return sysctl_handle_opaque(oidp, state, sizeof(state), req); } void -hv_ring_buffer_stat(struct sysctl_ctx_list *ctx, - struct sysctl_oid_list *tree_node, hv_vmbus_ring_buffer_info *rbi, - const char *desc) -{ - SYSCTL_ADD_PROC(ctx, tree_node, OID_AUTO, - "ring_buffer_stats", CTLTYPE_STRING|CTLFLAG_RD|CTLFLAG_MPSAFE, - rbi, 0, hv_rbi_sysctl_stats, "A", desc); +vmbus_br_sysctl_create(struct sysctl_ctx_list *ctx, struct sysctl_oid *br_tree, + hv_vmbus_ring_buffer_info *br, const char *name) +{ + struct sysctl_oid *tree; + char desc[64]; + + tree = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(br_tree), OID_AUTO, + name, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); + if (tree == NULL) + return; + + snprintf(desc, sizeof(desc), "%s state", name); + SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "state", + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, + br, 0, vmbus_br_sysctl_state, "A", desc); + + snprintf(desc, sizeof(desc), "%s binary state", name); + SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "state_bin", + CTLTYPE_OPAQUE | CTLFLAG_RD | CTLFLAG_MPSAFE, + br, 0, vmbus_br_sysctl_state_bin, "IU", desc); } /** Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Fri Jul 22 03:34:15 2016 (r303179) +++ head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h Fri Jul 22 03:42:32 2016 (r303180) @@ -45,13 +45,11 @@ struct vmbus_softc; * Private, VM Bus functions */ struct sysctl_ctx_list; -struct sysctl_oid_list; +struct sysctl_oid; -void hv_ring_buffer_stat( - struct sysctl_ctx_list *ctx, - struct sysctl_oid_list *tree_node, - hv_vmbus_ring_buffer_info *rbi, - const char *desc); +void vmbus_br_sysctl_create(struct sysctl_ctx_list *ctx, + struct sysctl_oid *br_tree, hv_vmbus_ring_buffer_info *br, + const char *name); int hv_vmbus_ring_buffer_init( hv_vmbus_ring_buffer_info *ring_info, Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chan.c Fri Jul 22 03:34:15 2016 (r303179) +++ head/sys/dev/hyperv/vmbus/vmbus_chan.c Fri Jul 22 03:42:32 2016 (r303180) @@ -171,24 +171,17 @@ vmbus_chan_sysctl_create(struct vmbus_ch chan, 0, vmbus_chan_sysctl_mnf, "I", "has monitor notification facilities"); - /* - * Create sysctl tree for RX bufring. - */ - br_tree = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(chid_tree), OID_AUTO, - "in", CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); - if (br_tree != NULL) { - hv_ring_buffer_stat(ctx, SYSCTL_CHILDREN(br_tree), - &chan->ch_rxbr, "inbound ring buffer stats"); - } - - /* - * Create sysctl tree for TX bufring. - */ br_tree = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(chid_tree), OID_AUTO, - "out", CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); + "br", CTLFLAG_RD | CTLFLAG_MPSAFE, 0, ""); if (br_tree != NULL) { - hv_ring_buffer_stat(ctx, SYSCTL_CHILDREN(br_tree), - &chan->ch_txbr, "outbound ring buffer stats"); + /* + * Create sysctl tree for RX bufring. + */ + vmbus_br_sysctl_create(ctx, br_tree, &chan->ch_rxbr, "rx"); + /* + * Create sysctl tree for TX bufring. + */ + vmbus_br_sysctl_create(ctx, br_tree, &chan->ch_txbr, "tx"); } } From owner-svn-src-all@freebsd.org Fri Jul 22 03:48:45 2016 Return-Path: Delivered-To: svn-src-all@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 4B91EBA05DA; Fri, 22 Jul 2016 03:48:45 +0000 (UTC) (envelope-from sbruno@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 1AFD0178D; Fri, 22 Jul 2016 03:48:45 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M3miPW090019; Fri, 22 Jul 2016 03:48:44 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M3miFF090018; Fri, 22 Jul 2016 03:48:44 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201607220348.u6M3miFF090018@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 22 Jul 2016 03:48:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303181 - stable/10/sys/dev/e1000 X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 03:48:45 -0000 Author: sbruno Date: Fri Jul 22 03:48:44 2016 New Revision: 303181 URL: https://svnweb.freebsd.org/changeset/base/303181 Log: MFC r303110 Remove uneeded parens. Modified: stable/10/sys/dev/e1000/if_igb.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/e1000/if_igb.c ============================================================================== --- stable/10/sys/dev/e1000/if_igb.c Fri Jul 22 03:42:32 2016 (r303180) +++ stable/10/sys/dev/e1000/if_igb.c Fri Jul 22 03:48:44 2016 (r303181) @@ -1091,7 +1091,7 @@ igb_ioctl(struct ifnet *ifp, u_long comm ifp->if_mtu = ifr->ifr_mtu; adapter->max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; - if ((ifp->if_drv_flags & IFF_DRV_RUNNING)) + if (ifp->if_drv_flags & IFF_DRV_RUNNING) igb_init_locked(adapter); IGB_CORE_UNLOCK(adapter); break; From owner-svn-src-all@freebsd.org Fri Jul 22 04:35:36 2016 Return-Path: Delivered-To: svn-src-all@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 25E7FBA1433; Fri, 22 Jul 2016 04:35:36 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 1C0411EDE; Fri, 22 Jul 2016 04:35:36 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1033) id 1AEC2181B; Fri, 22 Jul 2016 04:35:36 +0000 (UTC) Date: Fri, 22 Jul 2016 04:35:36 +0000 From: Alexey Dokuchaev To: "Pedro F. Giffuni" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303146 - head/usr.bin/sed Message-ID: <20160722043536.GB37437@FreeBSD.org> References: <201607211417.u6LEHaPR086378@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201607211417.u6LEHaPR086378@repo.freebsd.org> User-Agent: Mutt/1.6.1 (2016-04-27) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 04:35:36 -0000 On Thu, Jul 21, 2016 at 02:17:36PM +0000, Pedro F. Giffuni wrote: > New Revision: 303146 > URL: https://svnweb.freebsd.org/changeset/base/303146 > > Log: > sed(1): Appease older GCC. Isn't it also being dictated by style(9) and common sense? :) ./danfe > Modified: > head/usr.bin/sed/process.c > > @@ -97,11 +97,12 @@ process(void) > { > struct s_command *cp; > SPACE tspace; > - size_t oldpsl = 0; > + size_t oldpsl; > char *p; > int oldpsanl; > > p = NULL; > + oldpsanl = oldpsl = 0; From owner-svn-src-all@freebsd.org Fri Jul 22 05:09:10 2016 Return-Path: Delivered-To: svn-src-all@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 44D47BA18DD; Fri, 22 Jul 2016 05:09:10 +0000 (UTC) (envelope-from sephe@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 009261D75; Fri, 22 Jul 2016 05:09:09 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M599LU019659; Fri, 22 Jul 2016 05:09:09 GMT (envelope-from sephe@FreeBSD.org) Received: (from sephe@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M598KA019656; Fri, 22 Jul 2016 05:09:08 GMT (envelope-from sephe@FreeBSD.org) Message-Id: <201607220509.u6M598KA019656@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sephe set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau Date: Fri, 22 Jul 2016 05:09:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303182 - head/sys/dev/hyperv/vmbus X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 05:09:10 -0000 Author: sephe Date: Fri Jul 22 05:09:08 2016 New Revision: 303182 URL: https://svnweb.freebsd.org/changeset/base/303182 Log: hyperv/vmbus: Move vmbus bufring definition to vmbus_reg.h And add more comment about its fields. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D7269 Modified: head/sys/dev/hyperv/vmbus/hv_ring_buffer.c head/sys/dev/hyperv/vmbus/vmbus_chanvar.h head/sys/dev/hyperv/vmbus/vmbus_reg.h Modified: head/sys/dev/hyperv/vmbus/hv_ring_buffer.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_ring_buffer.c Fri Jul 22 03:48:44 2016 (r303181) +++ head/sys/dev/hyperv/vmbus/hv_ring_buffer.c Fri Jul 22 05:09:08 2016 (r303182) @@ -32,6 +32,7 @@ #include #include "hv_vmbus_priv.h" +#include /* Amount of space to write to */ #define HV_BYTES_AVAIL_TO_WRITE(r, w, z) \ @@ -50,9 +51,9 @@ vmbus_br_sysctl_state(SYSCTL_HANDLER_ARG uint32_t rindex, windex, intr_mask, ravail, wavail; char state[256]; - rindex = br->ring_buffer->read_index; - windex = br->ring_buffer->write_index; - intr_mask = br->ring_buffer->interrupt_mask; + rindex = br->ring_buffer->br_rindex; + windex = br->ring_buffer->br_windex; + intr_mask = br->ring_buffer->br_imask; wavail = HV_BYTES_AVAIL_TO_WRITE(rindex, windex, br->ring_data_size); ravail = br->ring_data_size - wavail; @@ -78,13 +79,13 @@ vmbus_br_sysctl_state_bin(SYSCTL_HANDLER const hv_vmbus_ring_buffer_info *br = arg1; uint32_t rindex, windex, wavail, state[BR_STATE_MAX]; - rindex = br->ring_buffer->read_index; - windex = br->ring_buffer->write_index; + rindex = br->ring_buffer->br_rindex; + windex = br->ring_buffer->br_windex; wavail = HV_BYTES_AVAIL_TO_WRITE(rindex, windex, br->ring_data_size); state[BR_STATE_RIDX] = rindex; state[BR_STATE_WIDX] = windex; - state[BR_STATE_IMSK] = br->ring_buffer->interrupt_mask; + state[BR_STATE_IMSK] = br->ring_buffer->br_imask; state[BR_STATE_WSPC] = wavail; state[BR_STATE_RSPC] = br->ring_data_size - wavail; @@ -127,8 +128,8 @@ get_ring_buffer_avail_bytes(hv_vmbus_rin /* * Capture the read/write indices before they changed */ - read_loc = rbi->ring_buffer->read_index; - write_loc = rbi->ring_buffer->write_index; + read_loc = rbi->ring_buffer->br_rindex; + write_loc = rbi->ring_buffer->br_windex; *write = HV_BYTES_AVAIL_TO_WRITE(read_loc, write_loc, rbi->ring_data_size); @@ -141,7 +142,7 @@ get_ring_buffer_avail_bytes(hv_vmbus_rin static __inline uint32_t get_next_write_location(hv_vmbus_ring_buffer_info *ring_info) { - return ring_info->ring_buffer->write_index; + return ring_info->ring_buffer->br_windex; } /** @@ -151,7 +152,7 @@ static __inline void set_next_write_location(hv_vmbus_ring_buffer_info *ring_info, uint32_t next_write_location) { - ring_info->ring_buffer->write_index = next_write_location; + ring_info->ring_buffer->br_windex = next_write_location; } /** @@ -160,7 +161,7 @@ set_next_write_location(hv_vmbus_ring_bu static __inline uint32_t get_next_read_location(hv_vmbus_ring_buffer_info *ring_info) { - return ring_info->ring_buffer->read_index; + return ring_info->ring_buffer->br_rindex; } /** @@ -171,7 +172,7 @@ static __inline uint32_t get_next_read_location_with_offset(hv_vmbus_ring_buffer_info *ring_info, uint32_t offset) { - uint32_t next = ring_info->ring_buffer->read_index; + uint32_t next = ring_info->ring_buffer->br_rindex; next += offset; next %= ring_info->ring_data_size; @@ -185,7 +186,7 @@ static __inline void set_next_read_location(hv_vmbus_ring_buffer_info *ring_info, uint32_t next_read_location) { - ring_info->ring_buffer->read_index = next_read_location; + ring_info->ring_buffer->br_rindex = next_read_location; } /** @@ -194,7 +195,7 @@ set_next_read_location(hv_vmbus_ring_buf static __inline void * get_ring_buffer(hv_vmbus_ring_buffer_info *ring_info) { - return ring_info->ring_buffer->buffer; + return ring_info->ring_buffer->br_data; } /** @@ -212,13 +213,13 @@ get_ring_buffer_size(hv_vmbus_ring_buffe static __inline uint64_t get_ring_buffer_indices(hv_vmbus_ring_buffer_info *ring_info) { - return ((uint64_t)ring_info->ring_buffer->write_index) << 32; + return ((uint64_t)ring_info->ring_buffer->br_windex) << 32; } void hv_ring_buffer_read_begin(hv_vmbus_ring_buffer_info *ring_info) { - ring_info->ring_buffer->interrupt_mask = 1; + ring_info->ring_buffer->br_imask = 1; mb(); } @@ -227,7 +228,7 @@ hv_ring_buffer_read_end(hv_vmbus_ring_bu { uint32_t read, write; - ring_info->ring_buffer->interrupt_mask = 0; + ring_info->ring_buffer->br_imask = 0; mb(); /* @@ -259,7 +260,7 @@ hv_ring_buffer_needsig_on_write(uint32_t hv_vmbus_ring_buffer_info *rbi) { mb(); - if (rbi->ring_buffer->interrupt_mask) + if (rbi->ring_buffer->br_imask) return (FALSE); /* Read memory barrier */ @@ -268,7 +269,7 @@ hv_ring_buffer_needsig_on_write(uint32_t * This is the only case we need to signal when the * ring transitions from being empty to non-empty. */ - if (old_write_location == rbi->ring_buffer->read_index) + if (old_write_location == rbi->ring_buffer->br_rindex) return (TRUE); return (FALSE); @@ -284,10 +285,10 @@ hv_vmbus_ring_buffer_init(hv_vmbus_ring_ memset(ring_info, 0, sizeof(hv_vmbus_ring_buffer_info)); ring_info->ring_buffer = buffer; - ring_info->ring_buffer->read_index = 0; - ring_info->ring_buffer->write_index = 0; + ring_info->ring_buffer->br_rindex = 0; + ring_info->ring_buffer->br_windex = 0; - ring_info->ring_data_size = buffer_len - sizeof(hv_vmbus_ring_buffer); + ring_info->ring_data_size = buffer_len - sizeof(struct vmbus_bufring); mtx_init(&ring_info->ring_lock, "vmbus ring buffer", NULL, MTX_SPIN); return (0); Modified: head/sys/dev/hyperv/vmbus/vmbus_chanvar.h ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Fri Jul 22 03:48:44 2016 (r303181) +++ head/sys/dev/hyperv/vmbus/vmbus_chanvar.h Fri Jul 22 05:09:08 2016 (r303182) @@ -41,31 +41,7 @@ #include typedef struct { - /* - * offset in bytes from the start of ring data below - */ - volatile uint32_t write_index; - /* - * offset in bytes from the start of ring data below - */ - volatile uint32_t read_index; - /* - * NOTE: The interrupt_mask field is used only for channels, but - * vmbus connection also uses this data structure - */ - volatile uint32_t interrupt_mask; - /* pad it to PAGE_SIZE so that data starts on a page */ - uint8_t reserved[4084]; - - /* - * WARNING: Ring data starts here - * !!! DO NOT place any fields below this !!! - */ - uint8_t buffer[0]; /* doubles as interrupt mask */ -} __packed hv_vmbus_ring_buffer; - -typedef struct { - hv_vmbus_ring_buffer* ring_buffer; + struct vmbus_bufring *ring_buffer; struct mtx ring_lock; uint32_t ring_data_size; /* ring_size */ } hv_vmbus_ring_buffer_info; Modified: head/sys/dev/hyperv/vmbus/vmbus_reg.h ============================================================================== --- head/sys/dev/hyperv/vmbus/vmbus_reg.h Fri Jul 22 03:48:44 2016 (r303181) +++ head/sys/dev/hyperv/vmbus/vmbus_reg.h Fri Jul 22 05:09:08 2016 (r303182) @@ -102,6 +102,37 @@ struct vmbus_mnf { CTASSERT(sizeof(struct vmbus_mnf) == PAGE_SIZE); /* + * Buffer ring + */ +struct vmbus_bufring { + /* + * If br_windex == br_rindex, this bufring is empty; this + * means we can _not_ write data to the bufring, if the + * write is going to make br_windex same as br_rindex. + */ + volatile uint32_t br_windex; + volatile uint32_t br_rindex; + + /* + * Interrupt mask {0,1} + * + * For TX bufring, host set this to 1, when it is processing + * the TX bufring, so that we can safely skip the TX event + * notification to host. + * + * For RX bufring, once this is set to 1 by us, host will not + * further dispatch interrupts to us, even if there are data + * pending on the RX bufring. This effectively disables the + * interrupt of the channel to which this RX bufring is attached. + */ + volatile uint32_t br_imask; + + uint8_t br_rsvd[4084]; + uint8_t br_data[]; +} __packed; +CTASSERT(sizeof(struct vmbus_bufring) == PAGE_SIZE); + +/* * Channel */ From owner-svn-src-all@freebsd.org Fri Jul 22 05:51:29 2016 Return-Path: Delivered-To: svn-src-all@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 BFDA7BA1E98; Fri, 22 Jul 2016 05:51:29 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from c.mail.sonic.net (c.mail.sonic.net [64.142.111.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A46DD1DE7; Fri, 22 Jul 2016 05:51:29 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from zeppelin.tachypleus.net (75-101-50-44.static.sonic.net [75.101.50.44]) (authenticated bits=0) by c.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6M5pKLv007017 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 21 Jul 2016 22:51:20 -0700 Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: John Baldwin , Andrew Turner References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578F6075.7010500@FreeBSD.org> <20160721133742.05f0e045@zapp> <13301107.Hm25rxUxW2@ralph.baldwin.cx> Cc: Michal Meloun , Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Nathan Whitehorn Message-ID: <03bcc081-5b93-c2ba-4e9b-e51d0b2e773a@freebsd.org> Date: Thu, 21 Jul 2016 22:51:20 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <13301107.Hm25rxUxW2@ralph.baldwin.cx> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Sonic-CAuth: UmFuZG9tSVbYawnepQAe1PF0BqBTxPf5l0T1d5QKZisjH8BrcAFE4KoXgJ6UCg5YhgKJwnPBa/qDtRh7bBTel4+AuT1HRCcHnp8YLS1d+cI= X-Sonic-ID: C;8t5dUNBP5hG1l5tMTlz00w== M;AkC6UNBP5hG1l5tMTlz00w== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 05:51:29 -0000 On 07/21/16 14:35, John Baldwin wrote: > On Thursday, July 21, 2016 01:37:42 PM Andrew Turner wrote: >> On Wed, 20 Jul 2016 13:28:53 +0200 >> Michal Meloun wrote: >>> Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): >>>> 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), >>>> but is both problematically more general and less flexible (it has >>>> requirements on timing of PIC attachment vs. driver resource >>>> allocation) >>> OFW_BUS_MAP_INTR() can parse only OFW based data and expect that >>> parsed data are magicaly stored within the call. >>> The new method, bus_map_intr(), can parse data from multiple sources >>> (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). It also >>> returns parsed data back to caller. >>> And no, it doesn't add any additional timing requirements . >> I've been looking at ACPI on arm64. So far I have not found the need >> for this with ACPI as we don't need to send the data to the interrupt >> controller driver to be parsed in the way OFW/FDT needs to. > ACPI though has a gross hack where we call BUS_CONFIG_INTR on the IRQ > in bus_alloc_resource(). I hadn't realized that. It looks like you could do essentially the same thing we do on PowerPC to clean this up by explicitly mapping the ACPI interrupt domains to different PICs with varying default interrupt properties. > What I had advocated in the discussions > leading up to this was to have some sort of opaque structure containing > a set of properties (the sort of thing bus_map_resource and make_dev_s > use) that was passed up at bus_setup_intr() time. > I think it should now > be passed up at bus_alloc_resource() time instead, but it would allow bus > drivers to "decorate" a SYS_RES_IRQ request as it goes up the device tree > with properties that the interrupt controller can then associate with > the IRQ cookie it allocates in its own code. We used to do this on PPC and MIPS, and the current code still supports it, but it turned out not to be useful in the end for IRQs. The hierarchy for IRQs rarely (read: almost never) follows the bus hierarchy and often is enumerated in a different order. I have hardware, for example, where the children of a single parent bus are all wired to different interrupt controllers and sometimes to a mixture of interrupt controllers. Those controllers are cascaded in ways that cross the newbus tree laterally and, on some of them, the parent device from the bus topology has interrupts handled by its own (bus) children. Trying to make the newbus parents do something sensible with all of this would be crazy and, in the case where parents depend on resources provided by their own children, impossible. This is all to say that, since you want the interrupts to be decorated along a path that usually has nothing to do with the newbus hierarchy, it doesn't add much to add extra features to resource allocation. ofw_bus_map_intr() is a newbus method to support this kind of thing but, on all supported platforms, it is implemented only in nexus and no cases have appeared where anyone ever wanted anything at the intermediate layers. > I would let the particular > structure have different layouts for different resource types. On x86 we > would replace bus_config_intr by passing the level and trigger-mode in > this structure. However, I could also see allowing the memattr to be > set for a SYS_RES_MEMORY resource so you could have a much shorter way > than an explicit bus_map_resource to map an entire BAR as WC for example: > > struct alloc_resource_args { > size_t len; > union { > struct { > enum intr_trigger trigger; > enum intr_polarity polarity; > } irq; > struct { > vm_memattr_t memattr; > } memory; > } > } > > ... > > union alloc_resource_args args; > > init_alloc_resource_args(&args, sizeof(args)); > args.memattr = VM_MEMATTR_WRITE_COMBINING; > > /* Uses WC for the implicit mapping. */ > res = bus_alloc_resource(...., &args); > > ... > > foobus_alloc_resource(..., union alloc_resource_args *args) > { > union alloc_resource_args args2; > > switch (type) { > case SYS_RES_IRQ: > if (args == NULL) { > init_alloc_resource_args(&args2, sizeof(args2)); > args = &args2; > } > /* Replace call to BUS_CONFIG_INTR on ACPI: */ > if (args->irq.polarity == INTR_POLARITY_CONFORMING && > device_has_polarity_from_CRS) > args->irq.polarity = polarity_from_CRS; > ... > } > > However, you could associate arbitrary data with a resource request by > adding more members to the approriate struct in the union. > For memory, I think this is an interesting concept, but it really doesn't match well with what you would want to do for interrupts or for, say, GPIOs in which the lines of control are fundamentally unrelated to the newbus hierarchy. -Nathan From owner-svn-src-all@freebsd.org Fri Jul 22 06:21:04 2016 Return-Path: Delivered-To: svn-src-all@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 EAB86BA1358; Fri, 22 Jul 2016 06:21:04 +0000 (UTC) (envelope-from kib@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 BB4091946; Fri, 22 Jul 2016 06:21:04 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6M6L3bD045273; Fri, 22 Jul 2016 06:21:03 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6M6L39J045272; Fri, 22 Jul 2016 06:21:03 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607220621.u6M6L39J045272@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 22 Jul 2016 06:21:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303183 - head/sys/modules/cam X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 06:21:05 -0000 Author: kib Date: Fri Jul 22 06:21:03 2016 New Revision: 303183 URL: https://svnweb.freebsd.org/changeset/base/303183 Log: Make cam.ko loadable. Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/modules/cam/Makefile Modified: head/sys/modules/cam/Makefile ============================================================================== --- head/sys/modules/cam/Makefile Fri Jul 22 05:09:08 2016 (r303182) +++ head/sys/modules/cam/Makefile Fri Jul 22 06:21:03 2016 (r303183) @@ -2,7 +2,7 @@ S= ${.CURDIR}/../.. -.PATH: $S/cam $S/cam/scsi $S/cam/ata $S/${MACHINE}/${MACHINE} +.PATH: $S/cam $S/cam/scsi $S/cam/ata $S/cam/nvme $S/${MACHINE}/${MACHINE} KMOD= cam @@ -41,6 +41,8 @@ SRCS+= ata_da.c SRCS+= ata_machdep.c .endif SRCS+= ata_pmp.c +SRCS+= nvme_all.c +SRCS+= nvme_xpt.c EXPORT_SYMS= YES # XXX evaluate From owner-svn-src-all@freebsd.org Fri Jul 22 07:45:59 2016 Return-Path: Delivered-To: svn-src-all@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 53750BA1525; Fri, 22 Jul 2016 07:45:59 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail105.syd.optusnet.com.au (mail105.syd.optusnet.com.au [211.29.132.249]) by mx1.freebsd.org (Postfix) with ESMTP id 1BE7F1F68; Fri, 22 Jul 2016 07:45:58 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c122-106-149-109.carlnfd1.nsw.optusnet.com.au (c122-106-149-109.carlnfd1.nsw.optusnet.com.au [122.106.149.109]) by mail105.syd.optusnet.com.au (Postfix) with ESMTPS id D722A104483D; Fri, 22 Jul 2016 17:13:59 +1000 (AEST) Date: Fri, 22 Jul 2016 17:13:58 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Alexey Dokuchaev cc: "Pedro F. Giffuni" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303146 - head/usr.bin/sed In-Reply-To: <20160722043536.GB37437@FreeBSD.org> Message-ID: <20160722165435.C2805@besplex.bde.org> References: <201607211417.u6LEHaPR086378@repo.freebsd.org> <20160722043536.GB37437@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=EfU1O6SC c=1 sm=1 tr=0 a=R/f3m204ZbWUO/0rwPSMPw==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=W6mxSz3NVuVsKJmdymQA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 07:45:59 -0000 On Fri, 22 Jul 2016, Alexey Dokuchaev wrote: >> Log: >> sed(1): Appease older GCC. "Appease" actually seems to be the correct wording here since gcc's detection of a variable that might be used unitialized seems to report one that is not used uninitialized. > Isn't it also being dictated by style(9) and common sense? :) You missed that this combines a style fix in previous gcc appeasement (or just excessive paranoia) in one variable with appeasement for another variable, since copying the previous appeasement would copy its style bug. The 2 variables are used in exactly the same limited way. >> Modified: >> head/usr.bin/sed/process.c >> >> @@ -97,11 +97,12 @@ process(void) >> { >> struct s_command *cp; >> SPACE tspace; >> - size_t oldpsl = 0; >> + size_t oldpsl; >> char *p; >> int oldpsanl; >> >> p = NULL; >> + oldpsanl = oldpsl = 0; Multiple assignments on a single line is not very good style and is probably not KNF. Here it is further from being good style since the variables have different types. Since both types are integral and the value is 0 the implicit type conversions don't change the value. However, compilers should warn about down-converting a size_t to an int unless they do the analysis that this is safe because the value in the size_t is known to fit in the int. Bruce From owner-svn-src-all@freebsd.org Fri Jul 22 12:55:33 2016 Return-Path: Delivered-To: svn-src-all@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 4D96BB9F389; Fri, 22 Jul 2016 12:55:33 +0000 (UTC) (envelope-from emaste@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 16CEB138C; Fri, 22 Jul 2016 12:55:33 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MCtWr5092109; Fri, 22 Jul 2016 12:55:32 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MCtWVa092108; Fri, 22 Jul 2016 12:55:32 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607221255.u6MCtWVa092108@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 22 Jul 2016 12:55:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303184 - stable/11/contrib/llvm/tools/clang/lib/Driver X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 12:55:33 -0000 Author: emaste Date: Fri Jul 22 12:55:31 2016 New Revision: 303184 URL: https://svnweb.freebsd.org/changeset/base/303184 Log: MFC r303031: clang++: Always use --eh-frame-hdr on FreeBSD, even for -static FreeBSD uses LLVM's libunwind on FreeBSD/arm64 today (and we expect to use it more widely in the future) and it requires the EH frame segment in static binaries. Approved by: re (kib) Modified: stable/11/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/llvm/tools/clang/lib/Driver/Tools.cpp ============================================================================== --- stable/11/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Fri Jul 22 06:21:03 2016 (r303183) +++ stable/11/contrib/llvm/tools/clang/lib/Driver/Tools.cpp Fri Jul 22 12:55:31 2016 (r303184) @@ -7922,12 +7922,12 @@ void freebsd::Linker::ConstructJob(Compi if (IsPIE) CmdArgs.push_back("-pie"); + CmdArgs.push_back("--eh-frame-hdr"); if (Args.hasArg(options::OPT_static)) { CmdArgs.push_back("-Bstatic"); } else { if (Args.hasArg(options::OPT_rdynamic)) CmdArgs.push_back("-export-dynamic"); - CmdArgs.push_back("--eh-frame-hdr"); if (Args.hasArg(options::OPT_shared)) { CmdArgs.push_back("-Bshareable"); } else { From owner-svn-src-all@freebsd.org Fri Jul 22 14:24:19 2016 Return-Path: Delivered-To: svn-src-all@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 60FA5BA0FB9; Fri, 22 Jul 2016 14:24:19 +0000 (UTC) (envelope-from ache@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 35953151F; Fri, 22 Jul 2016 14:24:19 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MEOI0s025891; Fri, 22 Jul 2016 14:24:18 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MEOHmM025885; Fri, 22 Jul 2016 14:24:17 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607221424.u6MEOHmM025885@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Fri, 22 Jul 2016 14:24:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303185 - in stable/10/lib/libc: gen locale regex stdio X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 14:24:19 -0000 Author: ache Date: Fri Jul 22 14:24:17 2016 New Revision: 303185 URL: https://svnweb.freebsd.org/changeset/base/303185 Log: MFC: r302824 1) Eliminate possibility to call __*collate_range_cmp() with inclomplete locale (which cause core dump) by removing whole 'table' argument by which it passed. 2) Restore __collate_range_cmp() in __sccl(). 3) Collating [a-z] range in regcomp() works for single byte locales only (we can't do it for other ones). In previous state only first 256 wide chars are considered and all others are just silently dropped from the range. Modified: stable/10/lib/libc/gen/fnmatch.c stable/10/lib/libc/gen/glob.c stable/10/lib/libc/locale/collate.h stable/10/lib/libc/locale/collcmp.c stable/10/lib/libc/regex/regcomp.c stable/10/lib/libc/stdio/vfscanf.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libc/gen/fnmatch.c ============================================================================== --- stable/10/lib/libc/gen/fnmatch.c Fri Jul 22 12:55:31 2016 (r303184) +++ stable/10/lib/libc/gen/fnmatch.c Fri Jul 22 14:24:17 2016 (r303185) @@ -304,8 +304,8 @@ rangematch(pattern, test, flags, newp, p if (table->__collate_load_error ? c <= test && test <= c2 : - __collate_range_cmp(table, c, test) <= 0 - && __collate_range_cmp(table, test, c2) <= 0 + __wcollate_range_cmp(c, test) <= 0 + && __wcollate_range_cmp(test, c2) <= 0 ) ok = 1; } else if (c == test) Modified: stable/10/lib/libc/gen/glob.c ============================================================================== --- stable/10/lib/libc/gen/glob.c Fri Jul 22 12:55:31 2016 (r303184) +++ stable/10/lib/libc/gen/glob.c Fri Jul 22 14:24:17 2016 (r303185) @@ -836,8 +836,8 @@ match(Char *name, Char *pat, Char *paten if ((*pat & M_MASK) == M_RNG) { if (table->__collate_load_error ? CHAR(c) <= CHAR(k) && CHAR(k) <= CHAR(pat[1]) : - __collate_range_cmp(table, CHAR(c), CHAR(k)) <= 0 - && __collate_range_cmp(table, CHAR(k), CHAR(pat[1])) <= 0 + __wcollate_range_cmp(CHAR(c), CHAR(k)) <= 0 + && __wcollate_range_cmp(CHAR(k), CHAR(pat[1])) <= 0 ) ok = 1; pat += 2; Modified: stable/10/lib/libc/locale/collate.h ============================================================================== --- stable/10/lib/libc/locale/collate.h Fri Jul 22 12:55:31 2016 (r303184) +++ stable/10/lib/libc/locale/collate.h Fri Jul 22 14:24:17 2016 (r303185) @@ -72,7 +72,8 @@ u_char *__collate_strdup(u_char *); u_char *__collate_substitute(struct xlocale_collate *, const u_char *); int __collate_load_tables(const char *); void __collate_lookup(struct xlocale_collate *, const u_char *, int *, int *, int *); -int __collate_range_cmp(struct xlocale_collate *, int, int); +int __collate_range_cmp(char, char); +int __wcollate_range_cmp(wchar_t, wchar_t); #ifdef COLLATE_DEBUG void __collate_print_tables(void); #endif Modified: stable/10/lib/libc/locale/collcmp.c ============================================================================== --- stable/10/lib/libc/locale/collcmp.c Fri Jul 22 12:55:31 2016 (r303184) +++ stable/10/lib/libc/locale/collcmp.c Fri Jul 22 14:24:17 2016 (r303185) @@ -33,20 +33,29 @@ __FBSDID("$FreeBSD$"); #include -#include +#include #include "collate.h" /* * Compare two characters using collate */ -int __collate_range_cmp(struct xlocale_collate *table, int c1, int c2) +int __collate_range_cmp(char c1, char c2) { static char s1[2], s2[2]; s1[0] = c1; s2[0] = c2; - struct _xlocale l = {{0}}; - l.components[XLC_COLLATE] = (struct xlocale_component *)table; - return (strcoll_l(s1, s2, &l)); + return (strcoll(s1, s2)); +} + +int __wcollate_range_cmp(wchar_t c1, wchar_t c2) +{ + wchar_t s1[2], s2[2]; + + s1[0] = c1; + s1[1] = L'\0'; + s2[0] = c2; + s2[1] = L'\0'; + return (wcscoll(s1, s2)); } Modified: stable/10/lib/libc/regex/regcomp.c ============================================================================== --- stable/10/lib/libc/regex/regcomp.c Fri Jul 22 12:55:31 2016 (r303184) +++ stable/10/lib/libc/regex/regcomp.c Fri Jul 22 14:24:17 2016 (r303185) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include @@ -817,14 +816,14 @@ p_b_term(struct parse *p, cset *cs) if (start == finish) CHadd(p, cs, start); else { - if (table->__collate_load_error) { - (void)REQUIRE((uch)start <= (uch)finish, REG_ERANGE); + if (table->__collate_load_error || MB_CUR_MAX > 1) { + (void)REQUIRE(start <= finish, REG_ERANGE); CHaddrange(p, cs, start, finish); } else { - (void)REQUIRE(__collate_range_cmp(table, start, finish) <= 0, REG_ERANGE); + (void)REQUIRE(__wcollate_range_cmp(start, finish) <= 0, REG_ERANGE); for (i = 0; i <= UCHAR_MAX; i++) { - if ( __collate_range_cmp(table, start, i) <= 0 - && __collate_range_cmp(table, i, finish) <= 0 + if ( __wcollate_range_cmp(start, i) <= 0 + && __wcollate_range_cmp(i, finish) <= 0 ) CHadd(p, cs, i); } Modified: stable/10/lib/libc/stdio/vfscanf.c ============================================================================== --- stable/10/lib/libc/stdio/vfscanf.c Fri Jul 22 12:55:31 2016 (r303184) +++ stable/10/lib/libc/stdio/vfscanf.c Fri Jul 22 14:24:17 2016 (r303185) @@ -873,7 +873,7 @@ doswitch: n = *fmt; if (n == ']' || (table->__collate_load_error ? n < c : - __collate_range_cmp (table, n, c) < 0 + __collate_range_cmp(n, c) < 0 ) ) { c = '-'; @@ -887,8 +887,8 @@ doswitch: } while (c < n); } else { for (i = 0; i < 256; i ++) - if ( __collate_range_cmp (table, c, i) < 0 - && __collate_range_cmp (table, i, n) <= 0 + if (__collate_range_cmp(c, i) <= 0 && + __collate_range_cmp(i, n) <= 0 ) tab[i] = v; } From owner-svn-src-all@freebsd.org Fri Jul 22 14:39:56 2016 Return-Path: Delivered-To: svn-src-all@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 C336BBA12D6; Fri, 22 Jul 2016 14:39:56 +0000 (UTC) (envelope-from manu@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 7F4B81BDF; Fri, 22 Jul 2016 14:39:56 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MEdtx9029652; Fri, 22 Jul 2016 14:39:55 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MEdtID029651; Fri, 22 Jul 2016 14:39:55 GMT (envelope-from manu@FreeBSD.org) Message-Id: <201607221439.u6MEdtID029651@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Fri, 22 Jul 2016 14:39:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303186 - head/sys/arm/allwinner/a20 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 14:39:56 -0000 Author: manu Date: Fri Jul 22 14:39:55 2016 New Revision: 303186 URL: https://svnweb.freebsd.org/changeset/base/303186 Log: PC5 doesn't have mmc2 function. Modified: head/sys/arm/allwinner/a20/a20_padconf.c Modified: head/sys/arm/allwinner/a20/a20_padconf.c ============================================================================== --- head/sys/arm/allwinner/a20/a20_padconf.c Fri Jul 22 14:24:17 2016 (r303185) +++ head/sys/arm/allwinner/a20/a20_padconf.c Fri Jul 22 14:39:55 2016 (r303186) @@ -87,7 +87,7 @@ const static struct allwinner_pins a20_p {"PC2", 2, 2, {"gpio_in", "gpio_out", "nand0", "spi0", NULL, NULL, NULL, NULL}}, {"PC3", 2, 3, {"gpio_in", "gpio_out", "nand0", NULL, NULL, NULL, NULL, NULL}}, {"PC4", 2, 4, {"gpio_in", "gpio_out", "nand0", NULL, NULL, NULL, NULL, NULL}}, - {"PC5", 2, 5, {"gpio_in", "gpio_out", "nand0", "mmc2", NULL, NULL, NULL, NULL}}, + {"PC5", 2, 5, {"gpio_in", "gpio_out", "nand0", NULL, NULL, NULL, NULL, NULL}}, {"PC6", 2, 6, {"gpio_in", "gpio_out", "nand0", "mmc2", NULL, NULL, NULL, NULL}}, {"PC7", 2, 7, {"gpio_in", "gpio_out", "nand0", "mmc2", NULL, NULL, NULL, NULL}}, {"PC8", 2, 8, {"gpio_in", "gpio_out", "nand0", "mmc2", NULL, NULL, NULL, NULL}}, From owner-svn-src-all@freebsd.org Fri Jul 22 14:52:05 2016 Return-Path: Delivered-To: svn-src-all@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 14EADBA166D for ; Fri, 22 Jul 2016 14:52:05 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm20.bullet.mail.bf1.yahoo.com (nm20.bullet.mail.bf1.yahoo.com [98.139.212.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C184B14EB for ; Fri, 22 Jul 2016 14:52:04 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1469199117; bh=WgJd9D1VJ3g4OAHmBCdiJeVVn6S7ZIQvkH0rGCFQBjY=; h=Subject:To:References:Cc:From:Date:In-Reply-To:From:Subject; b=hh4SD+ntSUHpje1hf2HBNeF5YFBylWbqZX/D09bHLIy+/270C4FPbPL08EjEaw2ycfAPkp66rqbLVYvTNCZoS5RZnkiNfUK1n/CXB+G8j8hR61exa3AxKOULhDXQNY7K3VCcDx+auaqoSPUYqnCqZhdwECManIlrSq6qb/1LeeiXIOZXUX2azPpL4vItXloXgbQbcJ44ilPSYI/E29OAGBnU469Z0+mPLYqCLFWEzOuAR5IDEUGr49fiy4OM8Tv4JzfDGl/W0oxIRkmxkHmEKKW8gOZKzmOfiwpcrUrgLjQyNEE8QXfmWdhv1SxfI44/S7GYhakmhgZC/uzuc3mi/Q== Received: from [66.196.81.173] by nm20.bullet.mail.bf1.yahoo.com with NNFMP; 22 Jul 2016 14:51:57 -0000 Received: from [98.139.211.204] by tm19.bullet.mail.bf1.yahoo.com with NNFMP; 22 Jul 2016 14:51:57 -0000 Received: from [127.0.0.1] by smtp213.mail.bf1.yahoo.com with NNFMP; 22 Jul 2016 14:51:57 -0000 X-Yahoo-Newman-Id: 450564.16098.bm@smtp213.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: _u.xcr0VM1kCK_lObeOEPTfBWsOp2XhH_5UzDXtKl7eeYHJ wOlpODEtLvczs5H7HYAzzAh_c5F3HTR5hgtQD5P.gvRIKA_qE1ZpyqmNkmri xmoyOk3jUliVa4mcsWNWs42492Cp_dlghf.1B8NLNx1qVceU_NCe3Qpx2o3y ZwqCy0QWAJm9mpg0u1jIIg4M6fdP6bCQC.QrVd9h7lFPi5TZof_D9aTDvuN. 0CN9qpIu01PfMjso0uoHuzGp5G5vflunO1hsbOznavNgG_y.Cq_3k4sgHouC haEBWyp7d15R4QUO10SjhxNpJTmPNNYFq.VA3u6mnvZ6yuTUXBhKPR9C6u16 Ad6_qtRUYdCWB4VlfbMEkrtaEI9y9gtPIfi4SDQpKrcoN8JivEPzzkqxhULx Ll8EZhAyHzSAdcF3PSopVquSADTpKP0kq4DPuwsztAyU5k.GuH1.rl0wSeIO HN56na1qzjg22JpeOJKfSIkS.io.Jf8oFZMFeBy8pKCWr7OYcpibhtIlO_hG fNYuhVvC0LAXiP.mpyld.TXqsbEJy.L6vGAUFQmc4wiiZ5A-- X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Subject: Re: svn commit: r303146 - head/usr.bin/sed To: Bruce Evans , Alexey Dokuchaev References: <201607211417.u6LEHaPR086378@repo.freebsd.org> <20160722043536.GB37437@FreeBSD.org> <20160722165435.C2805@besplex.bde.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Pedro Giffuni Message-ID: Date: Fri, 22 Jul 2016 09:52:04 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20160722165435.C2805@besplex.bde.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 14:52:05 -0000 On 07/22/16 02:13, Bruce Evans wrote: > On Fri, 22 Jul 2016, Alexey Dokuchaev wrote: > >>> Log: >>> sed(1): Appease older GCC. > > "Appease" actually seems to be the correct wording here since gcc's > detection > of a variable that might be used unitialized seems to report one that is > not used uninitialized. > >> Isn't it also being dictated by style(9) and common sense? :) > > You missed that this combines a style fix in previous gcc appeasement > (or just excessive paranoia) in one variable with appeasement for > another variable, since copying the previous appeasement would copy > its style bug. The 2 variables are used in exactly the same limited > way. > Yes, the first one is just a style fix while I was there. The oldpsanl bogusness was breaking the build with gcc42. gcc48+, clang and coverity all agree it was a false positive. It was likely a side effect of raising the WARNS level to 5. >>> Modified: >>> head/usr.bin/sed/process.c >>> >>> @@ -97,11 +97,12 @@ process(void) >>> { >>> struct s_command *cp; >>> SPACE tspace; >>> - size_t oldpsl = 0; >>> + size_t oldpsl; >>> char *p; >>> int oldpsanl; >>> >>> p = NULL; >>> + oldpsanl = oldpsl = 0; > > Multiple assignments on a single line is not very good style and is > probably > not KNF. Here it is further from being good style since the variables > have different types. Since both types are integral and the value is 0 > the implicit type conversions don't change the value. However, compilers > should warn about down-converting a size_t to an int unless they do the > analysis that this is safe because the value in the size_t is known to > fit in the int. > Doing the multiple assignment seemed natural and readable as both are (perhaps equally bogus) initializations. I did notice the different types after committing. Perhaps swapping the assignment would have been preferable? I suspect the compiler manages to optimize out the casting. Pedro. From owner-svn-src-all@freebsd.org Fri Jul 22 14:57:27 2016 Return-Path: Delivered-To: svn-src-all@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 C1E8ABA1764; Fri, 22 Jul 2016 14:57:27 +0000 (UTC) (envelope-from br@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 8DE4D176A; Fri, 22 Jul 2016 14:57:27 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MEvQTm037019; Fri, 22 Jul 2016 14:57:26 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MEvQro037018; Fri, 22 Jul 2016 14:57:26 GMT (envelope-from br@FreeBSD.org) Message-Id: <201607221457.u6MEvQro037018@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Fri, 22 Jul 2016 14:57:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303187 - head/contrib/llvm/projects/libunwind/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 14:57:27 -0000 Author: br Date: Fri Jul 22 14:57:26 2016 New Revision: 303187 URL: https://svnweb.freebsd.org/changeset/base/303187 Log: Set real values for context/cursor sizes for RISC-V to prevent static assertions. Reviewed by: emaste Sponsored by: DARPA, AFRL Modified: head/contrib/llvm/projects/libunwind/include/__libunwind_config.h Modified: head/contrib/llvm/projects/libunwind/include/__libunwind_config.h ============================================================================== --- head/contrib/llvm/projects/libunwind/include/__libunwind_config.h Fri Jul 22 14:39:55 2016 (r303186) +++ head/contrib/llvm/projects/libunwind/include/__libunwind_config.h Fri Jul 22 14:57:26 2016 (r303187) @@ -50,8 +50,8 @@ # define _LIBUNWIND_MAX_REGISTER 32 # elif defined(__riscv__) # define _LIBUNWIND_TARGET_RISCV 1 -# define _LIBUNWIND_CONTEXT_SIZE 128 /* XXX */ -# define _LIBUNWIND_CURSOR_SIZE 140 /* XXX */ +# define _LIBUNWIND_CONTEXT_SIZE 64 +# define _LIBUNWIND_CURSOR_SIZE 76 # define _LIBUNWIND_MAX_REGISTER 96 # else # error "Unsupported architecture." From owner-svn-src-all@freebsd.org Fri Jul 22 15:00:39 2016 Return-Path: Delivered-To: svn-src-all@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 3533CBA1801; Fri, 22 Jul 2016 15:00:39 +0000 (UTC) (envelope-from br@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 08A4E19C8; Fri, 22 Jul 2016 15:00:38 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MF0c6q037490; Fri, 22 Jul 2016 15:00:38 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MF0c3S037470; Fri, 22 Jul 2016 15:00:38 GMT (envelope-from br@FreeBSD.org) Message-Id: <201607221500.u6MF0c3S037470@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Fri, 22 Jul 2016 15:00:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303188 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 15:00:39 -0000 Author: br Date: Fri Jul 22 15:00:38 2016 New Revision: 303188 URL: https://svnweb.freebsd.org/changeset/base/303188 Log: Add warn flags for GCC 6.1 compiler. Sponsored by: DARPA, AFRL Modified: head/share/mk/bsd.sys.mk Modified: head/share/mk/bsd.sys.mk ============================================================================== --- head/share/mk/bsd.sys.mk Fri Jul 22 14:57:26 2016 (r303187) +++ head/share/mk/bsd.sys.mk Fri Jul 22 15:00:38 2016 (r303188) @@ -114,6 +114,11 @@ CWARNFLAGS+= -Wno-format CWARNFLAGS+= -Wno-error=unused-function -Wno-error=enum-compare -Wno-error=logical-not-parentheses -Wno-error=bool-compare -Wno-error=uninitialized -Wno-error=array-bounds -Wno-error=clobbered -Wno-error=cast-align -Wno-error=extra -Wno-error=attributes -Wno-error=inline -Wno-error=unused-but-set-variable -Wno-error=unused-value -Wno-error=strict-aliasing -Wno-error=address .endif +# GCC 6.1.0 +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 60100 +CWARNFLAGS+= -Wno-error=unused-const-variable= -Wno-error=nonnull-compare -Wno-error=shift-negative-value -Wno-error=misleading-indentation -Wno-error=tautological-compare +.endif + # How to handle FreeBSD custom printf format specifiers. .if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 30600 FORMAT_EXTENSIONS= -D__printf__=__freebsd_kprintf__ From owner-svn-src-all@freebsd.org Fri Jul 22 15:22:51 2016 Return-Path: Delivered-To: svn-src-all@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 098E6BA1E03; Fri, 22 Jul 2016 15:22:51 +0000 (UTC) (envelope-from br@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 CF1B117C0; Fri, 22 Jul 2016 15:22:50 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MFMoEg048262; Fri, 22 Jul 2016 15:22:50 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MFMofl048261; Fri, 22 Jul 2016 15:22:50 GMT (envelope-from br@FreeBSD.org) Message-Id: <201607221522.u6MFMofl048261@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Fri, 22 Jul 2016 15:22:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303189 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 15:22:51 -0000 Author: br Date: Fri Jul 22 15:22:49 2016 New Revision: 303189 URL: https://svnweb.freebsd.org/changeset/base/303189 Log: Set the soft-float flag for assembly code as well. This fixes compilation with GCC 6.1. Sponsored by: DARPA, AFRL Modified: head/share/mk/bsd.cpu.mk Modified: head/share/mk/bsd.cpu.mk ============================================================================== --- head/share/mk/bsd.cpu.mk Fri Jul 22 15:00:38 2016 (r303188) +++ head/share/mk/bsd.cpu.mk Fri Jul 22 15:22:49 2016 (r303189) @@ -329,6 +329,7 @@ CFLAGS += -mfloat-abi=softfp .if ${MACHINE_CPUARCH} == "riscv" CFLAGS += -msoft-float +ACFLAGS += -msoft-float .endif # NB: COPTFLAGS is handled in /usr/src/sys/conf/kern.pre.mk From owner-svn-src-all@freebsd.org Fri Jul 22 16:15:37 2016 Return-Path: Delivered-To: svn-src-all@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 14357B9FC90; Fri, 22 Jul 2016 16:15:37 +0000 (UTC) (envelope-from br@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 C82CE12CF; Fri, 22 Jul 2016 16:15:36 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MGFZN9066649; Fri, 22 Jul 2016 16:15:35 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MGFZgA066648; Fri, 22 Jul 2016 16:15:35 GMT (envelope-from br@FreeBSD.org) Message-Id: <201607221615.u6MGFZgA066648@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Fri, 22 Jul 2016 16:15:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303190 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 16:15:37 -0000 Author: br Date: Fri Jul 22 16:15:35 2016 New Revision: 303190 URL: https://svnweb.freebsd.org/changeset/base/303190 Log: Add GCC 6.1 warn flags for kernel as well. Sponsored by: DARPA, AFRL Modified: head/sys/conf/kern.mk Modified: head/sys/conf/kern.mk ============================================================================== --- head/sys/conf/kern.mk Fri Jul 22 15:22:49 2016 (r303189) +++ head/sys/conf/kern.mk Fri Jul 22 16:15:35 2016 (r303190) @@ -50,6 +50,9 @@ CWARNEXTRA?= -Wno-error=inline -Wno-erro -Wno-error=array-bounds -Wno-error=address \ -Wno-error=cast-qual -Wno-error=sequence-point -Wno-error=attributes \ -Wno-error=strict-overflow -Wno-error=overflow +.if ${COMPILER_VERSION} >= 60100 +CWARNEXTRA+= -Wno-error=nonnull-compare -Wno-error=shift-overflow= +.endif .else # For gcc 4.2, eliminate the too-often-wrong warnings about uninitialized vars. CWARNEXTRA?= -Wno-uninitialized From owner-svn-src-all@freebsd.org Fri Jul 22 16:48:41 2016 Return-Path: Delivered-To: svn-src-all@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 0607BBA14FF; Fri, 22 Jul 2016 16:48:41 +0000 (UTC) (envelope-from ache@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 CAAA1157A; Fri, 22 Jul 2016 16:48:40 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MGmeFC077497; Fri, 22 Jul 2016 16:48:40 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MGmejo077496; Fri, 22 Jul 2016 16:48:40 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607221648.u6MGmejo077496@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Fri, 22 Jul 2016 16:48:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303191 - stable/10/lib/libc/locale X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 16:48:41 -0000 Author: ache Date: Fri Jul 22 16:48:39 2016 New Revision: 303191 URL: https://svnweb.freebsd.org/changeset/base/303191 Log: Forget to merge this changes in prev. MFC Modified: stable/10/lib/libc/locale/collcmp.c Modified: stable/10/lib/libc/locale/collcmp.c ============================================================================== --- stable/10/lib/libc/locale/collcmp.c Fri Jul 22 16:15:35 2016 (r303190) +++ stable/10/lib/libc/locale/collcmp.c Fri Jul 22 16:48:39 2016 (r303191) @@ -42,10 +42,12 @@ __FBSDID("$FreeBSD$"); int __collate_range_cmp(char c1, char c2) { - static char s1[2], s2[2]; + char s1[2], s2[2]; s1[0] = c1; + s1[1] = '\0'; s2[0] = c2; + s2[1] = '\0'; return (strcoll(s1, s2)); } From owner-svn-src-all@freebsd.org Fri Jul 22 17:22:38 2016 Return-Path: Delivered-To: svn-src-all@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 EEF2EBA1E7E; Fri, 22 Jul 2016 17:22:38 +0000 (UTC) (envelope-from kib@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 C19711BDD; Fri, 22 Jul 2016 17:22:38 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MHMcuB092665; Fri, 22 Jul 2016 17:22:38 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MHMcGJ092664; Fri, 22 Jul 2016 17:22:38 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607221722.u6MHMcGJ092664@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 22 Jul 2016 17:22:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303192 - stable/11/sys/kern X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 17:22:39 -0000 Author: kib Date: Fri Jul 22 17:22:37 2016 New Revision: 303192 URL: https://svnweb.freebsd.org/changeset/base/303192 Log: MFC r302893: Do not allow creation of char or block special nodes with VNOVAL dev_t. Approved by: re (gjb) Modified: stable/11/sys/kern/vfs_syscalls.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/vfs_syscalls.c ============================================================================== --- stable/11/sys/kern/vfs_syscalls.c Fri Jul 22 16:48:39 2016 (r303191) +++ stable/11/sys/kern/vfs_syscalls.c Fri Jul 22 17:22:37 2016 (r303192) @@ -1167,6 +1167,8 @@ kern_mknodat(struct thread *td, int fd, case S_IFCHR: case S_IFBLK: error = priv_check(td, PRIV_VFS_MKNOD_DEV); + if (error == 0 && dev == VNOVAL) + error = EINVAL; break; case S_IFMT: error = priv_check(td, PRIV_VFS_MKNOD_BAD); From owner-svn-src-all@freebsd.org Fri Jul 22 17:23:27 2016 Return-Path: Delivered-To: svn-src-all@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 B82C8BA1EFD; Fri, 22 Jul 2016 17:23:27 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id A7EF11D64; Fri, 22 Jul 2016 17:23:27 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id A125817F1; Fri, 22 Jul 2016 17:23:27 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 55963220BE; Fri, 22 Jul 2016 17:23:27 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id sW3aA4U3KD0s; Fri, 22 Jul 2016 17:23:24 +0000 (UTC) Subject: Re: svn commit: r300349 - head DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 49B22220B8 To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, sbruno@FreeBSD.org, Ed Maste References: <201605210132.u4L1W75d033196@repo.freebsd.org> From: Bryan Drewery Organization: FreeBSD Message-ID: <170a5233-9625-52b9-aaf7-840be1a5ce9d@FreeBSD.org> Date: Fri, 22 Jul 2016 10:23:22 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <201605210132.u4L1W75d033196@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 17:23:27 -0000 On 5/20/16 6:32 PM, Bryan Drewery wrote: > Author: bdrewery > Date: Sat May 21 01:32:07 2016 > New Revision: 300349 > URL: https://svnweb.freebsd.org/changeset/base/300349 > > Log: > Enable and utilize WITHOUT_CROSS_COMPILER logic for external CC. > > This is a NOP. > It turns out it isn't a NOP! > Reviewed by: brooks, bapt > Sponsored by: EMC / Isilon Storage Division > Differential Revision: https://reviews.freebsd.org/D6354 > > Modified: > head/Makefile.inc1 > > Modified: head/Makefile.inc1 > ============================================================================== > --- head/Makefile.inc1 Sat May 21 01:32:04 2016 (r300348) > +++ head/Makefile.inc1 Sat May 21 01:32:07 2016 (r300349) > @@ -91,6 +91,12 @@ X${BINUTIL}?= ${CROSS_BINUTILS_PREFIX}${ > X${BINUTIL}?= ${${BINUTIL}} > .endif > .endfor > +# If a full path to an external cross compiler is given, don't build > +# a cross compiler. > +.if ${XCC:N${CCACHE_BIN}:M/*} > +MK_CROSS_COMPILER= no > +.endif Now MK_CROSS_COMPILER=no is set. > + > .include # don't depend on src.opts.mk doing it > .include "share/mk/src.opts.mk" > src.opts.mk has: .if ${MK_CROSS_COMPILER} == "no" MK_BINUTILS_BOOTSTRAP:= no MK_CLANG_BOOTSTRAP:= no MK_ELFTOOLCHAIN_BOOTSTRAP:= no MK_GCC_BOOTSTRAP:= no .endif So binutils and elftoolchain don't get built. In my SYSTEM_COMPILER commit r300354 I had intended that binutils and elftoolchain continue to build as they lack version checks like were added for the compiler. I'll get some sort of fix in today for this. > @@ -454,7 +460,7 @@ BFLAGS+= -B${CROSS_BINUTILS_PREFIX} > .endif > > # External compiler needs sysroot and target flags. > -.if ${XCC:N${CCACHE_BIN}:M/*} || ${MK_CROSS_COMPILER} == "no" > +.if ${MK_CROSS_COMPILER} == "no" > .if !defined(CROSS_BINUTILS_PREFIX) || !exists(${CROSS_BINUTILS_PREFIX}) > BFLAGS+= -B${WORLDTMP}/usr/bin > .endif > @@ -478,7 +484,7 @@ XCFLAGS+= -target ${TARGET_TRIPLE} > .endif > XCFLAGS+= --sysroot=${WORLDTMP} > .else > -.endif # ${XCC:M/*} || ${MK_CROSS_COMPILER} == "no" > +.endif # ${MK_CROSS_COMPILER} == "no" > > .if !empty(BFLAGS) > XCFLAGS+= ${BFLAGS} > @@ -1714,9 +1720,7 @@ _elftctools= lib/libelftc \ > usr.bin/elfcopy > .endif > > -# If an full path to an external cross compiler is given, don't build > -# a cross compiler. > -.if ${XCC:N${CCACHE_BIN}:M/*} == "" && ${MK_CROSS_COMPILER} != "no" > +.if ${MK_CROSS_COMPILER} != "no" > .if ${MK_CLANG_BOOTSTRAP} != "no" > _clang= usr.bin/clang > _clang_libs= lib/clang > -- Regards, Bryan Drewery From owner-svn-src-all@freebsd.org Fri Jul 22 17:24:37 2016 Return-Path: Delivered-To: svn-src-all@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 64069BA1F7F; Fri, 22 Jul 2016 17:24:37 +0000 (UTC) (envelope-from bdrewery@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 2D6881EFB; Fri, 22 Jul 2016 17:24:37 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MHOamj092780; Fri, 22 Jul 2016 17:24:36 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MHOa3A092779; Fri, 22 Jul 2016 17:24:36 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201607221724.u6MHOa3A092779@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 22 Jul 2016 17:24:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303193 - stable/11/libexec/rtld-elf X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 17:24:37 -0000 Author: bdrewery Date: Fri Jul 22 17:24:36 2016 New Revision: 303193 URL: https://svnweb.freebsd.org/changeset/base/303193 Log: MFC r302908: Fix dlsym(RTLD_NEXT) handling to only return the next library in last library cases. Approved by: re (gjb) Modified: stable/11/libexec/rtld-elf/rtld.c Directory Properties: stable/11/ (props changed) Modified: stable/11/libexec/rtld-elf/rtld.c ============================================================================== --- stable/11/libexec/rtld-elf/rtld.c Fri Jul 22 17:22:37 2016 (r303192) +++ stable/11/libexec/rtld-elf/rtld.c Fri Jul 22 17:24:36 2016 (r303193) @@ -3291,7 +3291,7 @@ do_dlsym(void *handle, const char *name, handle == RTLD_SELF) { /* ... caller included */ if (handle == RTLD_NEXT) obj = globallist_next(obj); - TAILQ_FOREACH_FROM(obj, &obj_list, next) { + for (; obj != NULL; obj = TAILQ_NEXT(obj, next)) { if (obj->marker) continue; res = symlook_obj(&req, obj); From owner-svn-src-all@freebsd.org Fri Jul 22 17:25:29 2016 Return-Path: Delivered-To: svn-src-all@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 6651EBA1FFF; Fri, 22 Jul 2016 17:25:29 +0000 (UTC) (envelope-from kib@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 2F56C11C3; Fri, 22 Jul 2016 17:25:29 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MHPSLM092859; Fri, 22 Jul 2016 17:25:28 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MHPS2b092858; Fri, 22 Jul 2016 17:25:28 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607221725.u6MHPS2b092858@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 22 Jul 2016 17:25:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303194 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 17:25:29 -0000 Author: kib Date: Fri Jul 22 17:25:28 2016 New Revision: 303194 URL: https://svnweb.freebsd.org/changeset/base/303194 Log: MFC r302893: Do not allow creation of char or block special nodes with VNOVAL dev_t. Modified: stable/10/sys/kern/vfs_syscalls.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/vfs_syscalls.c ============================================================================== --- stable/10/sys/kern/vfs_syscalls.c Fri Jul 22 17:24:36 2016 (r303193) +++ stable/10/sys/kern/vfs_syscalls.c Fri Jul 22 17:25:28 2016 (r303194) @@ -1269,6 +1269,8 @@ kern_mknodat(struct thread *td, int fd, case S_IFCHR: case S_IFBLK: error = priv_check(td, PRIV_VFS_MKNOD_DEV); + if (error == 0 && dev == VNOVAL) + error = EINVAL; break; case S_IFMT: error = priv_check(td, PRIV_VFS_MKNOD_BAD); From owner-svn-src-all@freebsd.org Fri Jul 22 17:31:15 2016 Return-Path: Delivered-To: svn-src-all@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 8C3D1BA1224; Fri, 22 Jul 2016 17:31:15 +0000 (UTC) (envelope-from bdrewery@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 5928114E5; Fri, 22 Jul 2016 17:31:15 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MHVEXk095090; Fri, 22 Jul 2016 17:31:14 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MHVE50095088; Fri, 22 Jul 2016 17:31:14 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201607221731.u6MHVE50095088@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 22 Jul 2016 17:31:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303195 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 17:31:15 -0000 Author: bdrewery Date: Fri Jul 22 17:31:14 2016 New Revision: 303195 URL: https://svnweb.freebsd.org/changeset/base/303195 Log: Don't run find(1) for __MPATH with NO_MODULES set. It's a waste of time when it won't be used. Submitted by: bde MFC after: 3 days Modified: head/sys/conf/config.mk head/sys/conf/kern.pre.mk Modified: head/sys/conf/config.mk ============================================================================== --- head/sys/conf/config.mk Fri Jul 22 17:25:28 2016 (r303194) +++ head/sys/conf/config.mk Fri Jul 22 17:31:14 2016 (r303195) @@ -54,7 +54,7 @@ KERN_OPTS!=cat ${KERNBUILDDIR}/opt*.h | .export KERN_OPTS .endif -.if !defined(__MPATH) +.if !defined(NO_MODULES) && !defined(__MPATH) __MPATH!=find ${SYSDIR:tA}/ -name \*_if.m .export __MPATH .endif Modified: head/sys/conf/kern.pre.mk ============================================================================== --- head/sys/conf/kern.pre.mk Fri Jul 22 17:25:28 2016 (r303194) +++ head/sys/conf/kern.pre.mk Fri Jul 22 17:31:14 2016 (r303195) @@ -192,7 +192,7 @@ SYSTEM_LD_TAIL= @${OBJCOPY} --strip-symb SYSTEM_DEP+= ${LDSCRIPT} # Calculate path for .m files early, if needed. -.if !defined(__MPATH) +.if !defined(NO_MODULES) && !defined(__MPATH) __MPATH!=find ${S:tA}/ -name \*_if.m .endif @@ -212,7 +212,9 @@ MKMODULESENV+= MODULES_OVERRIDE="${MODUL .if defined(DEBUG) MKMODULESENV+= DEBUG_FLAGS="${DEBUG}" .endif +.if !defined(NO_MODULES) MKMODULESENV+= __MPATH="${__MPATH}" +.endif # Architecture and output format arguments for objdump to convert image to # object file From owner-svn-src-all@freebsd.org Fri Jul 22 17:34:30 2016 Return-Path: Delivered-To: svn-src-all@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 51B31BA12F0; Fri, 22 Jul 2016 17:34:30 +0000 (UTC) (envelope-from emaste@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 1F5B618AF; Fri, 22 Jul 2016 17:34:30 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MHYTu6096514; Fri, 22 Jul 2016 17:34:29 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MHYSC0096506; Fri, 22 Jul 2016 17:34:28 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201607221734.u6MHYSC0096506@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 22 Jul 2016 17:34:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303196 - in stable/11: contrib/llvm/projects/libunwind/include contrib/llvm/projects/libunwind/src gnu/lib/libgcc X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 17:34:30 -0000 Author: emaste Date: Fri Jul 22 17:34:28 2016 New Revision: 303196 URL: https://svnweb.freebsd.org/changeset/base/303196 Log: MFC libunwind improvements r302450: libunwind: update to upstream snapshot r272680 The key improvement is that it may be built without cross-unwinding support, which significantly reduces the stack space requirement. r302456: libunwind: enable only the native unwinder by default This significantly reduces stack space requirements, and runtimes require only native unwinding. r302475: libunwind: limit stack usage in unwind cursor This may be reworked upstream but in the interim should address the stack usage issue reported in the PR. r303016: llvm-libunwind: use conventional (non-Darwin) X86 register numbers For historical reasons Darwin/i386 has ebp and esp swapped in the eh_frame register numbering. That is: Darwin Other Reg # eh_frame eh_frame DWARF ===== ======== ======== ===== 4 ebp esp esp 5 esp ebp ebp Although the UNW_X86_* constants are not supposed to be coupled to DWARF / eh_frame numbering they are currently conflated in LLVM libunwind, and thus we require the non-Darwin numbering. PR: 206384 Approved by: re (kib) Sponsored by: The FreeBSD Foundation Modified: stable/11/contrib/llvm/projects/libunwind/include/__libunwind_config.h stable/11/contrib/llvm/projects/libunwind/include/libunwind.h stable/11/contrib/llvm/projects/libunwind/src/AddressSpace.hpp stable/11/contrib/llvm/projects/libunwind/src/CompactUnwinder.hpp stable/11/contrib/llvm/projects/libunwind/src/Registers.hpp stable/11/contrib/llvm/projects/libunwind/src/Unwind-EHABI.cpp stable/11/contrib/llvm/projects/libunwind/src/UnwindCursor.hpp stable/11/contrib/llvm/projects/libunwind/src/UnwindLevel1.c stable/11/contrib/llvm/projects/libunwind/src/UnwindRegistersRestore.S stable/11/contrib/llvm/projects/libunwind/src/UnwindRegistersSave.S stable/11/contrib/llvm/projects/libunwind/src/config.h stable/11/contrib/llvm/projects/libunwind/src/libunwind.cpp stable/11/gnu/lib/libgcc/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/llvm/projects/libunwind/include/__libunwind_config.h ============================================================================== --- stable/11/contrib/llvm/projects/libunwind/include/__libunwind_config.h Fri Jul 22 17:31:14 2016 (r303195) +++ stable/11/contrib/llvm/projects/libunwind/include/__libunwind_config.h Fri Jul 22 17:34:28 2016 (r303196) @@ -17,4 +17,47 @@ #define _LIBUNWIND_ARM_EHABI 0 #endif +#if defined(_LIBUNWIND_IS_NATIVE_ONLY) +# if defined(__i386__) +# define _LIBUNWIND_TARGET_I386 1 +# define _LIBUNWIND_CONTEXT_SIZE 8 +# define _LIBUNWIND_CURSOR_SIZE 19 +# elif defined(__x86_64__) +# define _LIBUNWIND_TARGET_X86_64 1 +# define _LIBUNWIND_CONTEXT_SIZE 21 +# define _LIBUNWIND_CURSOR_SIZE 33 +# elif defined(__ppc__) +# define _LIBUNWIND_TARGET_PPC 1 +# define _LIBUNWIND_CONTEXT_SIZE 117 +# define _LIBUNWIND_CURSOR_SIZE 128 +# elif defined(__aarch64__) +# define _LIBUNWIND_TARGET_AARCH64 1 +# define _LIBUNWIND_CONTEXT_SIZE 66 +# define _LIBUNWIND_CURSOR_SIZE 78 +# elif defined(__arm__) +# define _LIBUNWIND_TARGET_ARM 1 +# define _LIBUNWIND_CONTEXT_SIZE 60 +# define _LIBUNWIND_CURSOR_SIZE 67 +# elif defined(__or1k__) +# define _LIBUNWIND_TARGET_OR1K 1 +# define _LIBUNWIND_CONTEXT_SIZE 16 +# define _LIBUNWIND_CURSOR_SIZE 28 +# elif defined(__riscv__) +# define _LIBUNWIND_TARGET_RISCV 1 +# define _LIBUNWIND_CONTEXT_SIZE 128 /* XXX */ +# define _LIBUNWIND_CURSOR_SIZE 140 /* XXX */ +# else +# error "Unsupported architecture." +# endif +#else // !_LIBUNWIND_IS_NATIVE_ONLY +# define _LIBUNWIND_TARGET_I386 1 +# define _LIBUNWIND_TARGET_X86_64 1 +# define _LIBUNWIND_TARGET_PPC 1 +# define _LIBUNWIND_TARGET_AARCH64 1 +# define _LIBUNWIND_TARGET_ARM 1 +# define _LIBUNWIND_TARGET_OR1K 1 +# define _LIBUNWIND_CONTEXT_SIZE 128 +# define _LIBUNWIND_CURSOR_SIZE 140 +#endif // _LIBUNWIND_IS_NATIVE_ONLY + #endif // ____LIBUNWIND_CONFIG_H__ Modified: stable/11/contrib/llvm/projects/libunwind/include/libunwind.h ============================================================================== --- stable/11/contrib/llvm/projects/libunwind/include/libunwind.h Fri Jul 22 17:31:14 2016 (r303195) +++ stable/11/contrib/llvm/projects/libunwind/include/libunwind.h Fri Jul 22 17:34:28 2016 (r303196) @@ -46,12 +46,12 @@ enum { }; struct unw_context_t { - uint64_t data[128]; + uint64_t data[_LIBUNWIND_CONTEXT_SIZE]; }; typedef struct unw_context_t unw_context_t; struct unw_cursor_t { - uint64_t data[140]; + uint64_t data[_LIBUNWIND_CURSOR_SIZE]; }; typedef struct unw_cursor_t unw_cursor_t; @@ -151,8 +151,8 @@ enum { UNW_X86_ECX = 1, UNW_X86_EDX = 2, UNW_X86_EBX = 3, - UNW_X86_EBP = 4, - UNW_X86_ESP = 5, + UNW_X86_ESP = 4, + UNW_X86_EBP = 5, UNW_X86_ESI = 6, UNW_X86_EDI = 7 }; @@ -295,77 +295,6 @@ enum { UNW_PPC_SPEFSCR = 112 }; -// 64-bit RISC-V registers -enum { - UNW_RISCV_X0 = 0, - UNW_RISCV_X1 = 1, - UNW_RISCV_RA = 1, - UNW_RISCV_X2 = 2, - UNW_RISCV_SP = 2, - UNW_RISCV_X3 = 3, - UNW_RISCV_X4 = 4, - UNW_RISCV_X5 = 5, - UNW_RISCV_X6 = 6, - UNW_RISCV_X7 = 7, - UNW_RISCV_X8 = 8, - UNW_RISCV_X9 = 9, - UNW_RISCV_X10 = 10, - UNW_RISCV_X11 = 11, - UNW_RISCV_X12 = 12, - UNW_RISCV_X13 = 13, - UNW_RISCV_X14 = 14, - UNW_RISCV_X15 = 15, - UNW_RISCV_X16 = 16, - UNW_RISCV_X17 = 17, - UNW_RISCV_X18 = 18, - UNW_RISCV_X19 = 19, - UNW_RISCV_X20 = 20, - UNW_RISCV_X21 = 21, - UNW_RISCV_X22 = 22, - UNW_RISCV_X23 = 23, - UNW_RISCV_X24 = 24, - UNW_RISCV_X25 = 25, - UNW_RISCV_X26 = 26, - UNW_RISCV_X27 = 27, - UNW_RISCV_X28 = 28, - UNW_RISCV_X29 = 29, - UNW_RISCV_X30 = 30, - UNW_RISCV_X31 = 31, - // reserved block - UNW_RISCV_D0 = 64, - UNW_RISCV_D1 = 65, - UNW_RISCV_D2 = 66, - UNW_RISCV_D3 = 67, - UNW_RISCV_D4 = 68, - UNW_RISCV_D5 = 69, - UNW_RISCV_D6 = 70, - UNW_RISCV_D7 = 71, - UNW_RISCV_D8 = 72, - UNW_RISCV_D9 = 73, - UNW_RISCV_D10 = 74, - UNW_RISCV_D11 = 75, - UNW_RISCV_D12 = 76, - UNW_RISCV_D13 = 77, - UNW_RISCV_D14 = 78, - UNW_RISCV_D15 = 79, - UNW_RISCV_D16 = 80, - UNW_RISCV_D17 = 81, - UNW_RISCV_D18 = 82, - UNW_RISCV_D19 = 83, - UNW_RISCV_D20 = 84, - UNW_RISCV_D21 = 85, - UNW_RISCV_D22 = 86, - UNW_RISCV_D23 = 87, - UNW_RISCV_D24 = 88, - UNW_RISCV_D25 = 89, - UNW_RISCV_D26 = 90, - UNW_RISCV_D27 = 91, - UNW_RISCV_D28 = 92, - UNW_RISCV_D29 = 93, - UNW_RISCV_D30 = 94, - UNW_RISCV_D31 = 95, -}; - // 64-bit ARM64 registers enum { UNW_ARM64_X0 = 0, @@ -604,4 +533,75 @@ enum { UNW_OR1K_R31 = 31, }; +// 64-bit RISC-V registers +enum { + UNW_RISCV_X0 = 0, + UNW_RISCV_X1 = 1, + UNW_RISCV_RA = 1, + UNW_RISCV_X2 = 2, + UNW_RISCV_SP = 2, + UNW_RISCV_X3 = 3, + UNW_RISCV_X4 = 4, + UNW_RISCV_X5 = 5, + UNW_RISCV_X6 = 6, + UNW_RISCV_X7 = 7, + UNW_RISCV_X8 = 8, + UNW_RISCV_X9 = 9, + UNW_RISCV_X10 = 10, + UNW_RISCV_X11 = 11, + UNW_RISCV_X12 = 12, + UNW_RISCV_X13 = 13, + UNW_RISCV_X14 = 14, + UNW_RISCV_X15 = 15, + UNW_RISCV_X16 = 16, + UNW_RISCV_X17 = 17, + UNW_RISCV_X18 = 18, + UNW_RISCV_X19 = 19, + UNW_RISCV_X20 = 20, + UNW_RISCV_X21 = 21, + UNW_RISCV_X22 = 22, + UNW_RISCV_X23 = 23, + UNW_RISCV_X24 = 24, + UNW_RISCV_X25 = 25, + UNW_RISCV_X26 = 26, + UNW_RISCV_X27 = 27, + UNW_RISCV_X28 = 28, + UNW_RISCV_X29 = 29, + UNW_RISCV_X30 = 30, + UNW_RISCV_X31 = 31, + // reserved block + UNW_RISCV_D0 = 64, + UNW_RISCV_D1 = 65, + UNW_RISCV_D2 = 66, + UNW_RISCV_D3 = 67, + UNW_RISCV_D4 = 68, + UNW_RISCV_D5 = 69, + UNW_RISCV_D6 = 70, + UNW_RISCV_D7 = 71, + UNW_RISCV_D8 = 72, + UNW_RISCV_D9 = 73, + UNW_RISCV_D10 = 74, + UNW_RISCV_D11 = 75, + UNW_RISCV_D12 = 76, + UNW_RISCV_D13 = 77, + UNW_RISCV_D14 = 78, + UNW_RISCV_D15 = 79, + UNW_RISCV_D16 = 80, + UNW_RISCV_D17 = 81, + UNW_RISCV_D18 = 82, + UNW_RISCV_D19 = 83, + UNW_RISCV_D20 = 84, + UNW_RISCV_D21 = 85, + UNW_RISCV_D22 = 86, + UNW_RISCV_D23 = 87, + UNW_RISCV_D24 = 88, + UNW_RISCV_D25 = 89, + UNW_RISCV_D26 = 90, + UNW_RISCV_D27 = 91, + UNW_RISCV_D28 = 92, + UNW_RISCV_D29 = 93, + UNW_RISCV_D30 = 94, + UNW_RISCV_D31 = 95, +}; + #endif Modified: stable/11/contrib/llvm/projects/libunwind/src/AddressSpace.hpp ============================================================================== --- stable/11/contrib/llvm/projects/libunwind/src/AddressSpace.hpp Fri Jul 22 17:31:14 2016 (r303195) +++ stable/11/contrib/llvm/projects/libunwind/src/AddressSpace.hpp Fri Jul 22 17:34:28 2016 (r303196) @@ -35,7 +35,7 @@ namespace libunwind { #include "Registers.hpp" #if _LIBUNWIND_ARM_EHABI -#if defined(__FreeBSD__) +#if defined(__FreeBSD__) || defined(__NetBSD__) #include typedef void *_Unwind_Ptr; @@ -62,7 +62,8 @@ extern EHTEntry __exidx_end; #endif // !defined(_LIBUNWIND_IS_BAREMETAL) #endif // _LIBUNWIND_ARM_EHABI -#if defined(__CloudABI__) || defined(__FreeBSD__) || defined(__linux__) +#if defined(__CloudABI__) || defined(__FreeBSD__) || defined(__linux__) || \ + defined(__NetBSD__) #if _LIBUNWIND_SUPPORT_DWARF_UNWIND && _LIBUNWIND_SUPPORT_DWARF_INDEX #include // Macro for machine-independent access to the ELF program headers. This Modified: stable/11/contrib/llvm/projects/libunwind/src/CompactUnwinder.hpp ============================================================================== --- stable/11/contrib/llvm/projects/libunwind/src/CompactUnwinder.hpp Fri Jul 22 17:31:14 2016 (r303195) +++ stable/11/contrib/llvm/projects/libunwind/src/CompactUnwinder.hpp Fri Jul 22 17:34:28 2016 (r303196) @@ -27,6 +27,7 @@ namespace libunwind { +#if defined(_LIBUNWIND_TARGET_I386) /// CompactUnwinder_x86 uses a compact unwind info to virtually "step" (aka /// unwind) by modifying a Registers_x86 register set template @@ -255,8 +256,10 @@ void CompactUnwinder_x86::framelessUn // old esp is before return address registers.setSP((uint32_t)returnAddressLocation + 4); } +#endif // _LIBUNWIND_TARGET_I386 +#if defined(_LIBUNWIND_TARGET_X86_64) /// CompactUnwinder_x86_64 uses a compact unwind info to virtually "step" (aka /// unwind) by modifying a Registers_x86_64 register set template @@ -484,9 +487,11 @@ void CompactUnwinder_x86_64::frameles // old esp is before return address registers.setSP(returnAddressLocation + 8); } +#endif // _LIBUNWIND_TARGET_X86_64 +#if defined(_LIBUNWIND_TARGET_AARCH64) /// CompactUnwinder_arm64 uses a compact unwind info to virtually "step" (aka /// unwind) by modifying a Registers_arm64 register set template @@ -686,6 +691,7 @@ int CompactUnwinder_arm64::stepWithCo return UNW_STEP_SUCCESS; } +#endif // _LIBUNWIND_TARGET_AARCH64 } // namespace libunwind Modified: stable/11/contrib/llvm/projects/libunwind/src/Registers.hpp ============================================================================== --- stable/11/contrib/llvm/projects/libunwind/src/Registers.hpp Fri Jul 22 17:31:14 2016 (r303195) +++ stable/11/contrib/llvm/projects/libunwind/src/Registers.hpp Fri Jul 22 17:34:28 2016 (r303196) @@ -25,6 +25,7 @@ namespace libunwind { struct v128 { uint32_t vec[4]; }; +#if defined(_LIBUNWIND_TARGET_I386) /// Registers_x86 holds the register state of a thread in a 32-bit intel /// process. class _LIBUNWIND_HIDDEN Registers_x86 { @@ -86,8 +87,8 @@ private: }; inline Registers_x86::Registers_x86(const void *registers) { - static_assert(sizeof(Registers_x86) < sizeof(unw_context_t), - "x86 registers do not fit into unw_context_t"); + static_assert((check_fit::does_fit), + "x86 registers do not fit into unw_context_t"); memcpy(&_registers, registers, sizeof(_registers)); } @@ -211,8 +212,10 @@ inline v128 Registers_x86::getVectorRegi inline void Registers_x86::setVectorRegister(int, v128) { _LIBUNWIND_ABORT("no x86 vector registers"); } +#endif // _LIBUNWIND_TARGET_I386 +#if defined(_LIBUNWIND_TARGET_X86_64) /// Registers_x86_64 holds the register state of a thread in a 64-bit intel /// process. class _LIBUNWIND_HIDDEN Registers_x86_64 { @@ -278,8 +281,8 @@ private: }; inline Registers_x86_64::Registers_x86_64(const void *registers) { - static_assert(sizeof(Registers_x86_64) < sizeof(unw_context_t), - "x86_64 registers do not fit into unw_context_t"); + static_assert((check_fit::does_fit), + "x86_64 registers do not fit into unw_context_t"); memcpy(&_registers, registers, sizeof(_registers)); } @@ -459,8 +462,10 @@ inline v128 Registers_x86_64::getVectorR inline void Registers_x86_64::setVectorRegister(int, v128) { _LIBUNWIND_ABORT("no x86_64 vector registers"); } +#endif // _LIBUNWIND_TARGET_X86_64 +#if defined(_LIBUNWIND_TARGET_PPC) /// Registers_ppc holds the register state of a thread in a 32-bit PowerPC /// process. class _LIBUNWIND_HIDDEN Registers_ppc { @@ -543,8 +548,8 @@ private: }; inline Registers_ppc::Registers_ppc(const void *registers) { - static_assert(sizeof(Registers_ppc) < sizeof(unw_context_t), - "ppc registers do not fit into unw_context_t"); + static_assert((check_fit::does_fit), + "ppc registers do not fit into unw_context_t"); memcpy(&_registers, static_cast(registers), sizeof(_registers)); static_assert(sizeof(ppc_thread_state_t) == 160, @@ -1023,266 +1028,10 @@ inline const char *Registers_ppc::getReg } } - -/// Registers_riscv holds the register state of a thread in a 64-bit RISC-V -/// process. -class _LIBUNWIND_HIDDEN Registers_riscv { -public: - Registers_riscv(); - Registers_riscv(const void *registers); - - bool validRegister(int num) const; - uint64_t getRegister(int num) const; - void setRegister(int num, uint64_t value); - bool validFloatRegister(int num) const; - double getFloatRegister(int num) const; - void setFloatRegister(int num, double value); - bool validVectorRegister(int num) const; - v128 getVectorRegister(int num) const; - void setVectorRegister(int num, v128 value); - const char *getRegisterName(int num); - void jumpto(); - static int lastDwarfRegNum() { return 95; } - - uint64_t getSP() const { return _registers.__x[2]; } - void setSP(uint64_t value) { _registers.__x[2] = value; } - uint64_t getIP() const { return _registers.__x[1]; } - void setIP(uint64_t value) { _registers.__x[1] = value; } - -private: - struct GPRs { - uint64_t __x[32]; // x0-x31 - }; - - GPRs _registers; - double _vectorHalfRegisters[32]; - // Currently only the lower double in 128-bit vectore registers - // is perserved during unwinding. We could define new register - // numbers (> 96) which mean whole vector registers, then this - // struct would need to change to contain whole vector registers. -}; - -inline Registers_riscv::Registers_riscv(const void *registers) { - static_assert(sizeof(Registers_riscv) < sizeof(unw_context_t), - "riscv registers do not fit into unw_context_t"); - memcpy(&_registers, registers, sizeof(_registers)); - static_assert(sizeof(GPRs) == 0x100, - "expected VFP registers to be at offset 256"); - memcpy(_vectorHalfRegisters, - static_cast(registers) + sizeof(GPRs), - sizeof(_vectorHalfRegisters)); -} - -inline Registers_riscv::Registers_riscv() { - memset(&_registers, 0, sizeof(_registers)); - memset(&_vectorHalfRegisters, 0, sizeof(_vectorHalfRegisters)); -} - -inline bool Registers_riscv::validRegister(int regNum) const { - if (regNum == UNW_REG_IP) - return true; - if (regNum == UNW_REG_SP) - return true; - if (regNum < 0) - return false; - if (regNum > 95) - return false; - if ((regNum > 31) && (regNum < 64)) - return false; - return true; -} - -inline uint64_t Registers_riscv::getRegister(int regNum) const { - if (regNum == UNW_REG_IP) - return _registers.__x[1]; - if (regNum == UNW_REG_SP) - return _registers.__x[2]; - if ((regNum >= 0) && (regNum < 32)) - return _registers.__x[regNum]; - _LIBUNWIND_ABORT("unsupported riscv register"); -} - -inline void Registers_riscv::setRegister(int regNum, uint64_t value) { - if (regNum == UNW_REG_IP) - _registers.__x[1] = value; - else if (regNum == UNW_REG_SP) - _registers.__x[2] = value; - else if ((regNum >= 0) && (regNum < 32)) - _registers.__x[regNum] = value; - else - _LIBUNWIND_ABORT("unsupported riscv register"); -} - -inline const char *Registers_riscv::getRegisterName(int regNum) { - switch (regNum) { - case UNW_REG_IP: - return "ra"; - case UNW_REG_SP: - return "sp"; - case UNW_RISCV_X0: - return "x0"; - case UNW_RISCV_X1: - return "ra"; - case UNW_RISCV_X2: - return "sp"; - case UNW_RISCV_X3: - return "x3"; - case UNW_RISCV_X4: - return "x4"; - case UNW_RISCV_X5: - return "x5"; - case UNW_RISCV_X6: - return "x6"; - case UNW_RISCV_X7: - return "x7"; - case UNW_RISCV_X8: - return "x8"; - case UNW_RISCV_X9: - return "x9"; - case UNW_RISCV_X10: - return "x10"; - case UNW_RISCV_X11: - return "x11"; - case UNW_RISCV_X12: - return "x12"; - case UNW_RISCV_X13: - return "x13"; - case UNW_RISCV_X14: - return "x14"; - case UNW_RISCV_X15: - return "x15"; - case UNW_RISCV_X16: - return "x16"; - case UNW_RISCV_X17: - return "x17"; - case UNW_RISCV_X18: - return "x18"; - case UNW_RISCV_X19: - return "x19"; - case UNW_RISCV_X20: - return "x20"; - case UNW_RISCV_X21: - return "x21"; - case UNW_RISCV_X22: - return "x22"; - case UNW_RISCV_X23: - return "x23"; - case UNW_RISCV_X24: - return "x24"; - case UNW_RISCV_X25: - return "x25"; - case UNW_RISCV_X26: - return "x26"; - case UNW_RISCV_X27: - return "x27"; - case UNW_RISCV_X28: - return "x28"; - case UNW_RISCV_X29: - return "x29"; - case UNW_RISCV_X30: - return "x30"; - case UNW_RISCV_X31: - return "x31"; - case UNW_RISCV_D0: - return "d0"; - case UNW_RISCV_D1: - return "d1"; - case UNW_RISCV_D2: - return "d2"; - case UNW_RISCV_D3: - return "d3"; - case UNW_RISCV_D4: - return "d4"; - case UNW_RISCV_D5: - return "d5"; - case UNW_RISCV_D6: - return "d6"; - case UNW_RISCV_D7: - return "d7"; - case UNW_RISCV_D8: - return "d8"; - case UNW_RISCV_D9: - return "d9"; - case UNW_RISCV_D10: - return "d10"; - case UNW_RISCV_D11: - return "d11"; - case UNW_RISCV_D12: - return "d12"; - case UNW_RISCV_D13: - return "d13"; - case UNW_RISCV_D14: - return "d14"; - case UNW_RISCV_D15: - return "d15"; - case UNW_RISCV_D16: - return "d16"; - case UNW_RISCV_D17: - return "d17"; - case UNW_RISCV_D18: - return "d18"; - case UNW_RISCV_D19: - return "d19"; - case UNW_RISCV_D20: - return "d20"; - case UNW_RISCV_D21: - return "d21"; - case UNW_RISCV_D22: - return "d22"; - case UNW_RISCV_D23: - return "d23"; - case UNW_RISCV_D24: - return "d24"; - case UNW_RISCV_D25: - return "d25"; - case UNW_RISCV_D26: - return "d26"; - case UNW_RISCV_D27: - return "d27"; - case UNW_RISCV_D28: - return "d28"; - case UNW_RISCV_D29: - return "d29"; - case UNW_RISCV_D30: - return "d30"; - case UNW_RISCV_D31: - return "d31"; - default: - return "unknown register"; - } -} - -inline bool Registers_riscv::validFloatRegister(int regNum) const { - if (regNum < UNW_RISCV_D0) - return false; - if (regNum > UNW_RISCV_D31) - return false; - return true; -} - -inline double Registers_riscv::getFloatRegister(int regNum) const { - assert(validFloatRegister(regNum)); - return _vectorHalfRegisters[regNum - UNW_RISCV_D0]; -} - -inline void Registers_riscv::setFloatRegister(int regNum, double value) { - assert(validFloatRegister(regNum)); - _vectorHalfRegisters[regNum - UNW_RISCV_D0] = value; -} - -inline bool Registers_riscv::validVectorRegister(int) const { - return false; -} - -inline v128 Registers_riscv::getVectorRegister(int) const { - _LIBUNWIND_ABORT("no riscv vector register support yet"); -} - -inline void Registers_riscv::setVectorRegister(int, v128) { - _LIBUNWIND_ABORT("no riscv vector register support yet"); -} +#endif // _LIBUNWIND_TARGET_PPC +#if defined(_LIBUNWIND_TARGET_AARCH64) /// Registers_arm64 holds the register state of a thread in a 64-bit arm /// process. class _LIBUNWIND_HIDDEN Registers_arm64 { @@ -1329,8 +1078,8 @@ private: }; inline Registers_arm64::Registers_arm64(const void *registers) { - static_assert(sizeof(Registers_arm64) < sizeof(unw_context_t), - "arm64 registers do not fit into unw_context_t"); + static_assert((check_fit::does_fit), + "arm64 registers do not fit into unw_context_t"); memcpy(&_registers, registers, sizeof(_registers)); static_assert(sizeof(GPRs) == 0x110, "expected VFP registers to be at offset 272"); @@ -1547,7 +1296,9 @@ inline v128 Registers_arm64::getVectorRe inline void Registers_arm64::setVectorRegister(int, v128) { _LIBUNWIND_ABORT("no arm64 vector register support yet"); } +#endif // _LIBUNWIND_TARGET_AARCH64 +#if defined(_LIBUNWIND_TARGET_ARM) /// Registers_arm holds the register state of a thread in a 32-bit arm /// process. /// @@ -1653,8 +1404,8 @@ inline Registers_arm::Registers_arm(cons _saved_vfp_d16_d31(false), _saved_iwmmx(false), _saved_iwmmx_control(false) { - static_assert(sizeof(Registers_arm) < sizeof(unw_context_t), - "arm registers do not fit into unw_context_t"); + static_assert((check_fit::does_fit), + "arm registers do not fit into unw_context_t"); // See unw_getcontext() note about data. memcpy(&_registers, registers, sizeof(_registers)); memset(&_vfp_d0_d15_pad, 0, sizeof(_vfp_d0_d15_pad)); @@ -1969,6 +1720,10 @@ inline v128 Registers_arm::getVectorRegi inline void Registers_arm::setVectorRegister(int, v128) { _LIBUNWIND_ABORT("ARM vector support not implemented"); } +#endif // _LIBUNWIND_TARGET_ARM + + +#if defined(_LIBUNWIND_TARGET_OR1K) /// Registers_or1k holds the register state of a thread in an OpenRISC1000 /// process. class _LIBUNWIND_HIDDEN Registers_or1k { @@ -2003,8 +1758,8 @@ private: }; inline Registers_or1k::Registers_or1k(const void *registers) { - static_assert(sizeof(Registers_or1k) < sizeof(unw_context_t), - "or1k registers do not fit into unw_context_t"); + static_assert((check_fit::does_fit), + "or1k registers do not fit into unw_context_t"); memcpy(&_registers, static_cast(registers), sizeof(_registers)); } @@ -2151,6 +1906,268 @@ inline const char *Registers_or1k::getRe } } +#endif // _LIBUNWIND_TARGET_OR1K + + +#if defined(_LIBUNWIND_TARGET_RISCV) +/// Registers_riscv holds the register state of a thread in a 64-bit RISC-V +/// process. +class _LIBUNWIND_HIDDEN Registers_riscv { +public: + Registers_riscv(); + Registers_riscv(const void *registers); + + bool validRegister(int num) const; + uint64_t getRegister(int num) const; + void setRegister(int num, uint64_t value); + bool validFloatRegister(int num) const; + double getFloatRegister(int num) const; + void setFloatRegister(int num, double value); + bool validVectorRegister(int num) const; + v128 getVectorRegister(int num) const; + void setVectorRegister(int num, v128 value); + const char *getRegisterName(int num); + void jumpto(); + static int lastDwarfRegNum() { return 95; } + + uint64_t getSP() const { return _registers.__x[2]; } + void setSP(uint64_t value) { _registers.__x[2] = value; } + uint64_t getIP() const { return _registers.__x[1]; } + void setIP(uint64_t value) { _registers.__x[1] = value; } + +private: + struct GPRs { + uint64_t __x[32]; // x0-x31 + }; + + GPRs _registers; + double _vectorHalfRegisters[32]; + // Currently only the lower double in 128-bit vectore registers + // is perserved during unwinding. We could define new register + // numbers (> 96) which mean whole vector registers, then this + // struct would need to change to contain whole vector registers. +}; + +inline Registers_riscv::Registers_riscv(const void *registers) { + static_assert((check_fit::does_fit), + "riscv registers do not fit into unw_context_t"); + memcpy(&_registers, registers, sizeof(_registers)); + static_assert(sizeof(GPRs) == 0x100, + "expected VFP registers to be at offset 256"); + memcpy(_vectorHalfRegisters, + static_cast(registers) + sizeof(GPRs), + sizeof(_vectorHalfRegisters)); +} + +inline Registers_riscv::Registers_riscv() { + memset(&_registers, 0, sizeof(_registers)); + memset(&_vectorHalfRegisters, 0, sizeof(_vectorHalfRegisters)); +} + +inline bool Registers_riscv::validRegister(int regNum) const { + if (regNum == UNW_REG_IP) + return true; + if (regNum == UNW_REG_SP) + return true; + if (regNum < 0) + return false; + if (regNum > 95) + return false; + if ((regNum > 31) && (regNum < 64)) + return false; + return true; +} + +inline uint64_t Registers_riscv::getRegister(int regNum) const { + if (regNum == UNW_REG_IP) + return _registers.__x[1]; + if (regNum == UNW_REG_SP) + return _registers.__x[2]; + if ((regNum >= 0) && (regNum < 32)) + return _registers.__x[regNum]; + _LIBUNWIND_ABORT("unsupported riscv register"); +} + +inline void Registers_riscv::setRegister(int regNum, uint64_t value) { + if (regNum == UNW_REG_IP) + _registers.__x[1] = value; + else if (regNum == UNW_REG_SP) + _registers.__x[2] = value; + else if ((regNum >= 0) && (regNum < 32)) + _registers.__x[regNum] = value; + else + _LIBUNWIND_ABORT("unsupported riscv register"); +} + +inline const char *Registers_riscv::getRegisterName(int regNum) { + switch (regNum) { + case UNW_REG_IP: + return "ra"; + case UNW_REG_SP: + return "sp"; + case UNW_RISCV_X0: + return "x0"; + case UNW_RISCV_X1: + return "ra"; + case UNW_RISCV_X2: + return "sp"; + case UNW_RISCV_X3: + return "x3"; + case UNW_RISCV_X4: + return "x4"; + case UNW_RISCV_X5: + return "x5"; + case UNW_RISCV_X6: + return "x6"; + case UNW_RISCV_X7: + return "x7"; + case UNW_RISCV_X8: + return "x8"; + case UNW_RISCV_X9: + return "x9"; + case UNW_RISCV_X10: + return "x10"; + case UNW_RISCV_X11: + return "x11"; + case UNW_RISCV_X12: + return "x12"; + case UNW_RISCV_X13: + return "x13"; + case UNW_RISCV_X14: + return "x14"; + case UNW_RISCV_X15: + return "x15"; + case UNW_RISCV_X16: + return "x16"; + case UNW_RISCV_X17: + return "x17"; + case UNW_RISCV_X18: + return "x18"; + case UNW_RISCV_X19: + return "x19"; + case UNW_RISCV_X20: + return "x20"; + case UNW_RISCV_X21: + return "x21"; + case UNW_RISCV_X22: + return "x22"; + case UNW_RISCV_X23: + return "x23"; + case UNW_RISCV_X24: + return "x24"; + case UNW_RISCV_X25: + return "x25"; + case UNW_RISCV_X26: + return "x26"; + case UNW_RISCV_X27: + return "x27"; + case UNW_RISCV_X28: + return "x28"; + case UNW_RISCV_X29: + return "x29"; + case UNW_RISCV_X30: + return "x30"; + case UNW_RISCV_X31: + return "x31"; + case UNW_RISCV_D0: + return "d0"; + case UNW_RISCV_D1: + return "d1"; + case UNW_RISCV_D2: + return "d2"; + case UNW_RISCV_D3: + return "d3"; + case UNW_RISCV_D4: + return "d4"; + case UNW_RISCV_D5: + return "d5"; + case UNW_RISCV_D6: + return "d6"; + case UNW_RISCV_D7: + return "d7"; + case UNW_RISCV_D8: + return "d8"; + case UNW_RISCV_D9: + return "d9"; + case UNW_RISCV_D10: + return "d10"; + case UNW_RISCV_D11: + return "d11"; + case UNW_RISCV_D12: + return "d12"; + case UNW_RISCV_D13: + return "d13"; + case UNW_RISCV_D14: + return "d14"; + case UNW_RISCV_D15: + return "d15"; + case UNW_RISCV_D16: + return "d16"; + case UNW_RISCV_D17: + return "d17"; + case UNW_RISCV_D18: + return "d18"; + case UNW_RISCV_D19: + return "d19"; + case UNW_RISCV_D20: + return "d20"; + case UNW_RISCV_D21: + return "d21"; + case UNW_RISCV_D22: + return "d22"; + case UNW_RISCV_D23: + return "d23"; + case UNW_RISCV_D24: + return "d24"; + case UNW_RISCV_D25: + return "d25"; + case UNW_RISCV_D26: + return "d26"; + case UNW_RISCV_D27: + return "d27"; + case UNW_RISCV_D28: + return "d28"; + case UNW_RISCV_D29: + return "d29"; + case UNW_RISCV_D30: + return "d30"; + case UNW_RISCV_D31: + return "d31"; + default: + return "unknown register"; + } +} + +inline bool Registers_riscv::validFloatRegister(int regNum) const { + if (regNum < UNW_RISCV_D0) + return false; + if (regNum > UNW_RISCV_D31) + return false; + return true; +} + +inline double Registers_riscv::getFloatRegister(int regNum) const { + assert(validFloatRegister(regNum)); + return _vectorHalfRegisters[regNum - UNW_RISCV_D0]; +} + +inline void Registers_riscv::setFloatRegister(int regNum, double value) { + assert(validFloatRegister(regNum)); + _vectorHalfRegisters[regNum - UNW_RISCV_D0] = value; +} + +inline bool Registers_riscv::validVectorRegister(int) const { + return false; +} + +inline v128 Registers_riscv::getVectorRegister(int) const { + _LIBUNWIND_ABORT("no riscv vector register support yet"); +} + +inline void Registers_riscv::setVectorRegister(int, v128) { + _LIBUNWIND_ABORT("no riscv vector register support yet"); +} +#endif // _LIBUNWIND_TARGET_RISCV } // namespace libunwind #endif // __REGISTERS_HPP__ Modified: stable/11/contrib/llvm/projects/libunwind/src/Unwind-EHABI.cpp ============================================================================== --- stable/11/contrib/llvm/projects/libunwind/src/Unwind-EHABI.cpp Fri Jul 22 17:31:14 2016 (r303195) +++ stable/11/contrib/llvm/projects/libunwind/src/Unwind-EHABI.cpp Fri Jul 22 17:34:28 2016 (r303196) @@ -438,39 +438,21 @@ extern "C" _Unwind_Reason_Code __aeabi_u } static _Unwind_Reason_Code -unwind_phase1(unw_context_t *uc, _Unwind_Exception *exception_object) { +unwind_phase1(unw_context_t *uc, unw_cursor_t *cursor, _Unwind_Exception *exception_object) { // EHABI #7.3 discusses preserving the VRS in a "temporary VRS" during // phase 1 and then restoring it to the "primary VRS" for phase 2. The // effect is phase 2 doesn't see any of the VRS manipulations from phase 1. // In this implementation, the phases don't share the VRS backing store. // Instead, they are passed the original |uc| and they create a new VRS // from scratch thus achieving the same effect. - unw_cursor_t cursor1; - unw_init_local(&cursor1, uc); + unw_init_local(cursor, uc); // Walk each frame looking for a place to stop. for (bool handlerNotFound = true; handlerNotFound;) { -#if !_LIBUNWIND_ARM_EHABI - // Ask libuwind to get next frame (skip over first which is - // _Unwind_RaiseException). - int stepResult = unw_step(&cursor1); - if (stepResult == 0) { - _LIBUNWIND_TRACE_UNWINDING("unwind_phase1(ex_ojb=%p): unw_step() reached " - "bottom => _URC_END_OF_STACK\n", - static_cast(exception_object)); - return _URC_END_OF_STACK; - } else if (stepResult < 0) { - _LIBUNWIND_TRACE_UNWINDING("unwind_phase1(ex_ojb=%p): unw_step failed => " - "_URC_FATAL_PHASE1_ERROR\n", - static_cast(exception_object)); - return _URC_FATAL_PHASE1_ERROR; - } -#endif - // See if frame has code to run (has personality routine). unw_proc_info_t frameInfo; - if (unw_get_proc_info(&cursor1, &frameInfo) != UNW_ESUCCESS) { + if (unw_get_proc_info(cursor, &frameInfo) != UNW_ESUCCESS) { _LIBUNWIND_TRACE_UNWINDING("unwind_phase1(ex_ojb=%p): unw_get_proc_info " "failed => _URC_FATAL_PHASE1_ERROR\n", static_cast(exception_object)); @@ -482,12 +464,12 @@ unwind_phase1(unw_context_t *uc, _Unwind char functionBuf[512]; const char *functionName = functionBuf; unw_word_t offset; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Fri Jul 22 17:34:59 2016 Return-Path: Delivered-To: svn-src-all@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 C39C7BA139B; Fri, 22 Jul 2016 17:34:59 +0000 (UTC) (envelope-from kib@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 966791A58; Fri, 22 Jul 2016 17:34:59 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MHYwnQ096597; Fri, 22 Jul 2016 17:34:58 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MHYwbS096596; Fri, 22 Jul 2016 17:34:58 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607221734.u6MHYwbS096596@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 22 Jul 2016 17:34:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303197 - stable/11/sys/kern X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 17:34:59 -0000 Author: kib Date: Fri Jul 22 17:34:58 2016 New Revision: 303197 URL: https://svnweb.freebsd.org/changeset/base/303197 Log: MFC r302919: In ptrace_vm_entry(), do not call vmspace_free() while owning a vm object lock. Approved by: re (gjb) Modified: stable/11/sys/kern/sys_process.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/sys_process.c ============================================================================== --- stable/11/sys/kern/sys_process.c Fri Jul 22 17:34:28 2016 (r303196) +++ stable/11/sys/kern/sys_process.c Fri Jul 22 17:34:58 2016 (r303197) @@ -433,7 +433,6 @@ ptrace_vm_entry(struct thread *td, struc } while (0); vm_map_unlock_read(map); - vmspace_free(vm); pve->pve_fsid = VNOVAL; pve->pve_fileid = VNOVAL; @@ -478,6 +477,7 @@ ptrace_vm_entry(struct thread *td, struc free(freepath, M_TEMP); } } + vmspace_free(vm); if (error == 0) CTR3(KTR_PTRACE, "PT_VM_ENTRY: pid %d, entry %d, start %p", p->p_pid, pve->pve_entry, pve->pve_start); From owner-svn-src-all@freebsd.org Fri Jul 22 17:36:42 2016 Return-Path: Delivered-To: svn-src-all@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 2CBB8BA146D; Fri, 22 Jul 2016 17:36:42 +0000 (UTC) (envelope-from kib@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 F1B731C08; Fri, 22 Jul 2016 17:36:41 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MHaf2x096717; Fri, 22 Jul 2016 17:36:41 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MHafiS096716; Fri, 22 Jul 2016 17:36:41 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607221736.u6MHafiS096716@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Fri, 22 Jul 2016 17:36:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303198 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 17:36:42 -0000 Author: kib Date: Fri Jul 22 17:36:40 2016 New Revision: 303198 URL: https://svnweb.freebsd.org/changeset/base/303198 Log: MFC r302919: In ptrace_vm_entry(), do not call vmspace_free() while owning a vm object lock. Modified: stable/10/sys/kern/sys_process.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/sys_process.c ============================================================================== --- stable/10/sys/kern/sys_process.c Fri Jul 22 17:34:58 2016 (r303197) +++ stable/10/sys/kern/sys_process.c Fri Jul 22 17:36:40 2016 (r303198) @@ -389,7 +389,6 @@ ptrace_vm_entry(struct thread *td, struc } while (0); vm_map_unlock_read(map); - vmspace_free(vm); pve->pve_fsid = VNOVAL; pve->pve_fileid = VNOVAL; @@ -434,6 +433,7 @@ ptrace_vm_entry(struct thread *td, struc free(freepath, M_TEMP); } } + vmspace_free(vm); if (error == 0) CTR3(KTR_PTRACE, "PT_VM_ENTRY: pid %d, entry %d, start %p", p->p_pid, pve->pve_entry, pve->pve_start); From owner-svn-src-all@freebsd.org Fri Jul 22 19:28:25 2016 Return-Path: Delivered-To: svn-src-all@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 2535CBA1E0A; Fri, 22 Jul 2016 19:28:25 +0000 (UTC) (envelope-from np@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 EC75B1229; Fri, 22 Jul 2016 19:28:24 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MJSOM4037031; Fri, 22 Jul 2016 19:28:24 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MJSOSP037030; Fri, 22 Jul 2016 19:28:24 GMT (envelope-from np@FreeBSD.org) Message-Id: <201607221928.u6MJSOSP037030@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Fri, 22 Jul 2016 19:28:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303199 - head/usr.sbin/ctld X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 19:28:25 -0000 Author: np Date: Fri Jul 22 19:28:23 2016 New Revision: 303199 URL: https://svnweb.freebsd.org/changeset/base/303199 Log: ctld(8): Fix MaxBurstLength negotiation. The target must reply with the selected value of MaxBurstSize instead of just echoing back the initiator's offered value. Reviewed by: mav@ Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D7278 Modified: head/usr.sbin/ctld/login.c Modified: head/usr.sbin/ctld/login.c ============================================================================== --- head/usr.sbin/ctld/login.c Fri Jul 22 17:36:40 2016 (r303198) +++ head/usr.sbin/ctld/login.c Fri Jul 22 19:28:23 2016 (r303199) @@ -569,7 +569,7 @@ login_negotiate_key(struct pdu *request, tmp = MAX_BURST_LENGTH; } conn->conn_max_burst_length = tmp; - keys_add(response_keys, name, value); + keys_add_int(response_keys, name, tmp); } else if (strcmp(name, "FirstBurstLength") == 0) { tmp = strtoul(value, NULL, 10); if (tmp <= 0) { From owner-svn-src-all@freebsd.org Fri Jul 22 19:34:44 2016 Return-Path: Delivered-To: svn-src-all@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 4F14ABA2067; Fri, 22 Jul 2016 19:34:44 +0000 (UTC) (envelope-from ache@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 1B72119C1; Fri, 22 Jul 2016 19:34:44 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MJYhkB040726; Fri, 22 Jul 2016 19:34:43 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MJYhxj040725; Fri, 22 Jul 2016 19:34:43 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607221934.u6MJYhxj040725@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Fri, 22 Jul 2016 19:34:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303200 - stable/10/usr.bin/tr X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 19:34:44 -0000 Author: ache Date: Fri Jul 22 19:34:43 2016 New Revision: 303200 URL: https://svnweb.freebsd.org/changeset/base/303200 Log: MFC: r302826 Document incomplete support of [=equiv=] and collation for ranges. Modified: stable/10/usr.bin/tr/tr.1 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/tr/tr.1 ============================================================================== --- stable/10/usr.bin/tr/tr.1 Fri Jul 22 19:28:23 2016 (r303199) +++ stable/10/usr.bin/tr/tr.1 Fri Jul 22 19:34:43 2016 (r303200) @@ -334,6 +334,10 @@ should be used instead of explicit chara and .Dq Li A-Z . .Pp +.Dq Li [=equiv=] +expression and collation for ranges +are implemented for single byte locales only. +.Pp System V has historically implemented character ranges using the syntax .Dq Li [c-c] instead of the From owner-svn-src-all@freebsd.org Fri Jul 22 19:36:12 2016 Return-Path: Delivered-To: svn-src-all@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 BFCD5BA215F; Fri, 22 Jul 2016 19:36:12 +0000 (UTC) (envelope-from ache@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 923641C12; Fri, 22 Jul 2016 19:36:12 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MJaBxm040953; Fri, 22 Jul 2016 19:36:11 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MJaBC6040952; Fri, 22 Jul 2016 19:36:11 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607221936.u6MJaBC6040952@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Fri, 22 Jul 2016 19:36:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303201 - stable/10/usr.bin/tr X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 19:36:12 -0000 Author: ache Date: Fri Jul 22 19:36:11 2016 New Revision: 303201 URL: https://svnweb.freebsd.org/changeset/base/303201 Log: MFC: r302827 Optimize [Cc]flag case: don't repeatedly add the last character of string2 to squeeze cset when string2 reach its EOS state. Modified: stable/10/usr.bin/tr/tr.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.bin/tr/tr.c ============================================================================== --- stable/10/usr.bin/tr/tr.c Fri Jul 22 19:34:43 2016 (r303200) +++ stable/10/usr.bin/tr/tr.c Fri Jul 22 19:36:11 2016 (r303201) @@ -272,10 +272,11 @@ endloop: if (Cflag && !iswrune(cnt)) continue; if (cmap_lookup(map, cnt) == OOBCH) { - if (next(&s2)) + if (next(&s2)) { cmap_add(map, cnt, s2.lastch); - if (sflag) - cset_add(squeeze, s2.lastch); + if (sflag) + cset_add(squeeze, s2.lastch); + } } else cmap_add(map, cnt, cnt); if ((s2.state == EOS || s2.state == INFINITE) && From owner-svn-src-all@freebsd.org Fri Jul 22 20:35:27 2016 Return-Path: Delivered-To: svn-src-all@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 E698BBA10F0; Fri, 22 Jul 2016 20:35:27 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BFA031ECD; Fri, 22 Jul 2016 20:35:27 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 8862FB946; Fri, 22 Jul 2016 16:35:26 -0400 (EDT) From: John Baldwin To: Nathan Whitehorn Cc: Andrew Turner , Michal Meloun , Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys Date: Fri, 22 Jul 2016 13:19:32 -0700 Message-ID: <2764416.DJT1n7EiEe@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.3-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <03bcc081-5b93-c2ba-4e9b-e51d0b2e773a@freebsd.org> References: <201606051620.u55GKD5S066398@repo.freebsd.org> <13301107.Hm25rxUxW2@ralph.baldwin.cx> <03bcc081-5b93-c2ba-4e9b-e51d0b2e773a@freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Fri, 22 Jul 2016 16:35:26 -0400 (EDT) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 20:35:28 -0000 On Thursday, July 21, 2016 10:51:20 PM Nathan Whitehorn wrote: > > On 07/21/16 14:35, John Baldwin wrote: > > On Thursday, July 21, 2016 01:37:42 PM Andrew Turner wrote: > >> On Wed, 20 Jul 2016 13:28:53 +0200 > >> Michal Meloun wrote: > >>> Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): > >>>> 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), > >>>> but is both problematically more general and less flexible (it has > >>>> requirements on timing of PIC attachment vs. driver resource > >>>> allocation) > >>> OFW_BUS_MAP_INTR() can parse only OFW based data and expect that > >>> parsed data are magicaly stored within the call. > >>> The new method, bus_map_intr(), can parse data from multiple sources > >>> (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). It also > >>> returns parsed data back to caller. > >>> And no, it doesn't add any additional timing requirements . > >> I've been looking at ACPI on arm64. So far I have not found the need > >> for this with ACPI as we don't need to send the data to the interrupt > >> controller driver to be parsed in the way OFW/FDT needs to. > > ACPI though has a gross hack where we call BUS_CONFIG_INTR on the IRQ > > in bus_alloc_resource(). > > I hadn't realized that. It looks like you could do essentially the same > thing we do on PowerPC to clean this up by explicitly mapping the ACPI > interrupt domains to different PICs with varying default interrupt > properties. > > > What I had advocated in the discussions > > leading up to this was to have some sort of opaque structure containing > > a set of properties (the sort of thing bus_map_resource and make_dev_s > > use) that was passed up at bus_setup_intr() time. > > > I think it should now > > be passed up at bus_alloc_resource() time instead, but it would allow bus > > drivers to "decorate" a SYS_RES_IRQ request as it goes up the device tree > > with properties that the interrupt controller can then associate with > > the IRQ cookie it allocates in its own code. > > > We used to do this on PPC and MIPS, and the current code still supports > it, but it turned out not to be useful in the end for IRQs. The > hierarchy for IRQs rarely (read: almost never) follows the bus hierarchy > and often is enumerated in a different order. I have hardware, for > example, where the children of a single parent bus are all wired to > different interrupt controllers and sometimes to a mixture of interrupt > controllers. Those controllers are cascaded in ways that cross the > newbus tree laterally and, on some of them, the parent device from the > bus topology has interrupts handled by its own (bus) children. Trying to > make the newbus parents do something sensible with all of this would be > crazy and, in the case where parents depend on resources provided by > their own children, impossible. > > This is all to say that, since you want the interrupts to be decorated > along a path that usually has nothing to do with the newbus hierarchy, > it doesn't add much to add extra features to resource allocation. > ofw_bus_map_intr() is a newbus method to support this kind of thing but, > on all supported platforms, it is implemented only in nexus and no cases > have appeared where anyone ever wanted anything at the intermediate layers. Mmm. Another idea that has been bandied about is to create a separate "plane" in new-bus for an interrupt hierarchy and allow devices to have "interrupt" parents that are not the same as the "bus" parent. (Additional planes for power and clocks might also make sense.) The idea is borrowed from IOKit on Darwin which has multiple planes. The "bus" plane is always fully populated, but the other planes (Darwin has one for power for example) can be sparse. ACPI has methods that effectively describe the power plane on x86. -- John Baldwin From owner-svn-src-all@freebsd.org Fri Jul 22 20:35:30 2016 Return-Path: Delivered-To: svn-src-all@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 6365BBA1105; Fri, 22 Jul 2016 20:35:30 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 41D651ED4; Fri, 22 Jul 2016 20:35:30 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 3CDEDB98D; Fri, 22 Jul 2016 16:35:29 -0400 (EDT) From: John Baldwin To: Ruslan Bukin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303188 - head/share/mk Date: Fri, 22 Jul 2016 13:09:57 -0700 Message-ID: <1980140.IgFQbb5iVz@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.3-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <201607221500.u6MF0c3S037470@repo.freebsd.org> References: <201607221500.u6MF0c3S037470@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Fri, 22 Jul 2016 16:35:29 -0400 (EDT) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 20:35:30 -0000 On Friday, July 22, 2016 03:00:38 PM Ruslan Bukin wrote: > Author: br > Date: Fri Jul 22 15:00:38 2016 > New Revision: 303188 > URL: https://svnweb.freebsd.org/changeset/base/303188 > > Log: > Add warn flags for GCC 6.1 compiler. > > Sponsored by: DARPA, AFRL > > Modified: > head/share/mk/bsd.sys.mk > > Modified: head/share/mk/bsd.sys.mk > ============================================================================== > --- head/share/mk/bsd.sys.mk Fri Jul 22 14:57:26 2016 (r303187) > +++ head/share/mk/bsd.sys.mk Fri Jul 22 15:00:38 2016 (r303188) > @@ -114,6 +114,11 @@ CWARNFLAGS+= -Wno-format > CWARNFLAGS+= -Wno-error=unused-function -Wno-error=enum-compare -Wno-error=logical-not-parentheses -Wno-error=bool-compare -Wno-error=uninitialized -Wno-error=array-bounds -Wno-error=clobbered -Wno-error=cast-align -Wno-error=extra -Wno-error=attributes -Wno-error=inline -Wno-error=unused-but-set-variable -Wno-error=unused-value -Wno-error=strict-aliasing -Wno-error=address > .endif > > +# GCC 6.1.0 > +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 60100 > +CWARNFLAGS+= -Wno-error=unused-const-variable= -Wno-error=nonnull-compare -Wno-error=shift-negative-value -Wno-error=misleading-indentation -Wno-error=tautological-compare > +.endif Extra trailing = in the first one as well? -- John Baldwin From owner-svn-src-all@freebsd.org Fri Jul 22 20:35:31 2016 Return-Path: Delivered-To: svn-src-all@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 D911DBA1118; Fri, 22 Jul 2016 20:35:31 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B179D1F12; Fri, 22 Jul 2016 20:35:31 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id A9C42B99B; Fri, 22 Jul 2016 16:35:30 -0400 (EDT) From: John Baldwin To: Ruslan Bukin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303190 - head/sys/conf Date: Fri, 22 Jul 2016 13:08:19 -0700 Message-ID: <4772915.f2DiQz7AkI@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.3-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <201607221615.u6MGFZgA066648@repo.freebsd.org> References: <201607221615.u6MGFZgA066648@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Fri, 22 Jul 2016 16:35:30 -0400 (EDT) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 20:35:32 -0000 On Friday, July 22, 2016 04:15:35 PM Ruslan Bukin wrote: > Author: br > Date: Fri Jul 22 16:15:35 2016 > New Revision: 303190 > URL: https://svnweb.freebsd.org/changeset/base/303190 > > Log: > Add GCC 6.1 warn flags for kernel as well. > > Sponsored by: DARPA, AFRL > > Modified: > head/sys/conf/kern.mk > > Modified: head/sys/conf/kern.mk > ============================================================================== > --- head/sys/conf/kern.mk Fri Jul 22 15:22:49 2016 (r303189) > +++ head/sys/conf/kern.mk Fri Jul 22 16:15:35 2016 (r303190) > @@ -50,6 +50,9 @@ CWARNEXTRA?= -Wno-error=inline -Wno-erro > -Wno-error=array-bounds -Wno-error=address \ > -Wno-error=cast-qual -Wno-error=sequence-point -Wno-error=attributes \ > -Wno-error=strict-overflow -Wno-error=overflow > +.if ${COMPILER_VERSION} >= 60100 > +CWARNEXTRA+= -Wno-error=nonnull-compare -Wno-error=shift-overflow= Extra trailing =? -- John Baldwin From owner-svn-src-all@freebsd.org Fri Jul 22 20:42:10 2016 Return-Path: Delivered-To: svn-src-all@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 992D8BA139D; Fri, 22 Jul 2016 20:42:10 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from d.mail.sonic.net (d.mail.sonic.net [64.142.111.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 84A301877; Fri, 22 Jul 2016 20:42:10 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from aurora.physics.berkeley.edu (aurora.physics.berkeley.edu [128.32.117.67]) (authenticated bits=0) by d.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6MKg2at007406 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 22 Jul 2016 13:42:03 -0700 Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: John Baldwin References: <201606051620.u55GKD5S066398@repo.freebsd.org> <13301107.Hm25rxUxW2@ralph.baldwin.cx> <03bcc081-5b93-c2ba-4e9b-e51d0b2e773a@freebsd.org> <2764416.DJT1n7EiEe@ralph.baldwin.cx> Cc: Andrew Turner , Michal Meloun , Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Nathan Whitehorn Message-ID: <1a118114-836f-92bf-dbc3-38d4266668bb@freebsd.org> Date: Fri, 22 Jul 2016 13:42:02 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <2764416.DJT1n7EiEe@ralph.baldwin.cx> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Sonic-CAuth: UmFuZG9tSVbjSRoqxOZFI06ZzF5WEBWTG8xORVk4thdYcBA3B6dR1cr7MedZu3F9Ntfo1vcujkPHWnTLTza+Y7DN3Y1rngAopWvpo/qz6pE= X-Sonic-ID: C;4v2fvkxQ5hGggpNwxPCmMQ== M;BoLKvkxQ5hGggpNwxPCmMQ== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 20:42:10 -0000 On 07/22/16 13:19, John Baldwin wrote: > On Thursday, July 21, 2016 10:51:20 PM Nathan Whitehorn wrote: >> On 07/21/16 14:35, John Baldwin wrote: >>> On Thursday, July 21, 2016 01:37:42 PM Andrew Turner wrote: >>>> On Wed, 20 Jul 2016 13:28:53 +0200 >>>> Michal Meloun wrote: >>>>> Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): >>>>>> 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), >>>>>> but is both problematically more general and less flexible (it has >>>>>> requirements on timing of PIC attachment vs. driver resource >>>>>> allocation) >>>>> OFW_BUS_MAP_INTR() can parse only OFW based data and expect that >>>>> parsed data are magicaly stored within the call. >>>>> The new method, bus_map_intr(), can parse data from multiple sources >>>>> (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). It also >>>>> returns parsed data back to caller. >>>>> And no, it doesn't add any additional timing requirements . >>>> I've been looking at ACPI on arm64. So far I have not found the need >>>> for this with ACPI as we don't need to send the data to the interrupt >>>> controller driver to be parsed in the way OFW/FDT needs to. >>> ACPI though has a gross hack where we call BUS_CONFIG_INTR on the IRQ >>> in bus_alloc_resource(). >> I hadn't realized that. It looks like you could do essentially the same >> thing we do on PowerPC to clean this up by explicitly mapping the ACPI >> interrupt domains to different PICs with varying default interrupt >> properties. >> >>> What I had advocated in the discussions >>> leading up to this was to have some sort of opaque structure containing >>> a set of properties (the sort of thing bus_map_resource and make_dev_s >>> use) that was passed up at bus_setup_intr() time. >>> I think it should now >>> be passed up at bus_alloc_resource() time instead, but it would allow bus >>> drivers to "decorate" a SYS_RES_IRQ request as it goes up the device tree >>> with properties that the interrupt controller can then associate with >>> the IRQ cookie it allocates in its own code. >> >> We used to do this on PPC and MIPS, and the current code still supports >> it, but it turned out not to be useful in the end for IRQs. The >> hierarchy for IRQs rarely (read: almost never) follows the bus hierarchy >> and often is enumerated in a different order. I have hardware, for >> example, where the children of a single parent bus are all wired to >> different interrupt controllers and sometimes to a mixture of interrupt >> controllers. Those controllers are cascaded in ways that cross the >> newbus tree laterally and, on some of them, the parent device from the >> bus topology has interrupts handled by its own (bus) children. Trying to >> make the newbus parents do something sensible with all of this would be >> crazy and, in the case where parents depend on resources provided by >> their own children, impossible. >> >> This is all to say that, since you want the interrupts to be decorated >> along a path that usually has nothing to do with the newbus hierarchy, >> it doesn't add much to add extra features to resource allocation. >> ofw_bus_map_intr() is a newbus method to support this kind of thing but, >> on all supported platforms, it is implemented only in nexus and no cases >> have appeared where anyone ever wanted anything at the intermediate layers. > Mmm. Another idea that has been bandied about is to create a separate > "plane" in new-bus for an interrupt hierarchy and allow devices to have > "interrupt" parents that are not the same as the "bus" parent. (Additional > planes for power and clocks might also make sense.) The idea is borrowed > from IOKit on Darwin which has multiple planes. The "bus" plane is always > fully populated, but the other planes (Darwin has one for power for example) > can be sparse. ACPI has methods that effectively describe the power plane > on x86. > That's basically what the virtual IRQ code does: it implements a separate IRQ "plane" that is lazily interconnected during bus attachment and then strongly interconnected at configure_final() (i.e. it panics at that point if the topology hasn't converged yet). A generalized version of this concept would be useful for a number of other resource types (power, clocks, GPIOs, etc.) and I would be very happy to see it as a standard part of the OS. -Nathan From owner-svn-src-all@freebsd.org Fri Jul 22 20:52:42 2016 Return-Path: Delivered-To: svn-src-all@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 1CB97BA169C; Fri, 22 Jul 2016 20:52:42 +0000 (UTC) (envelope-from jhb@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 E0F711F53; Fri, 22 Jul 2016 20:52:41 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MKqfZK075686; Fri, 22 Jul 2016 20:52:41 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MKqfwW075685; Fri, 22 Jul 2016 20:52:41 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607222052.u6MKqfwW075685@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 22 Jul 2016 20:52:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303202 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 20:52:42 -0000 Author: jhb Date: Fri Jul 22 20:52:40 2016 New Revision: 303202 URL: https://svnweb.freebsd.org/changeset/base/303202 Log: Update after r303154 to note that operations on local files are safe. Modified: head/share/man/man4/aio.4 Modified: head/share/man/man4/aio.4 ============================================================================== --- head/share/man/man4/aio.4 Fri Jul 22 19:36:11 2016 (r303201) +++ head/share/man/man4/aio.4 Fri Jul 22 20:52:40 2016 (r303202) @@ -54,7 +54,9 @@ the .Va vfs.aio.enable_unsafe sysctl node to a non-zero value. .Pp -Asynchronous I/O operations on sockets and raw disk devices do not block +Asynchronous I/O operations on sockets, +raw disk devices, +and regular files on local filesystems do not block indefinitely and are always enabled. .Pp The From owner-svn-src-all@freebsd.org Fri Jul 22 20:54:31 2016 Return-Path: Delivered-To: svn-src-all@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 4D395BA1723; Fri, 22 Jul 2016 20:54:31 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from kif.fubar.geek.nz (kif.fubar.geek.nz [178.62.119.249]) by mx1.freebsd.org (Postfix) with ESMTP id 1A8DC125F; Fri, 22 Jul 2016 20:54:30 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from zapp (bcdf0033.skybroadband.com [188.223.0.51]) by kif.fubar.geek.nz (Postfix) with ESMTPSA id 3E0CFD78FE; Fri, 22 Jul 2016 20:53:55 +0000 (UTC) Date: Fri, 22 Jul 2016 21:53:51 +0100 From: Andrew Turner To: John Baldwin Cc: Nathan Whitehorn , Michal Meloun , Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys Message-ID: <20160722215351.5fbb2a49@zapp> In-Reply-To: <2764416.DJT1n7EiEe@ralph.baldwin.cx> References: <201606051620.u55GKD5S066398@repo.freebsd.org> <13301107.Hm25rxUxW2@ralph.baldwin.cx> <03bcc081-5b93-c2ba-4e9b-e51d0b2e773a@freebsd.org> <2764416.DJT1n7EiEe@ralph.baldwin.cx> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 20:54:31 -0000 On Fri, 22 Jul 2016 13:19:32 -0700 John Baldwin wrote: > On Thursday, July 21, 2016 10:51:20 PM Nathan Whitehorn wrote: > > > > On 07/21/16 14:35, John Baldwin wrote: > > > On Thursday, July 21, 2016 01:37:42 PM Andrew Turner wrote: > > >> On Wed, 20 Jul 2016 13:28:53 +0200 > > >> Michal Meloun wrote: > > >>> Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): > > >>>> 2. It partially duplicates the functionality of > > >>>> OFW_BUS_MAP_INTR(), but is both problematically more general > > >>>> and less flexible (it has requirements on timing of PIC > > >>>> attachment vs. driver resource allocation) > > >>> OFW_BUS_MAP_INTR() can parse only OFW based data and expect > > >>> that parsed data are magicaly stored within the call. > > >>> The new method, bus_map_intr(), can parse data from multiple > > >>> sources (OFW, UEFI / ACPI, synthetic[gpio device + pin > > >>> number]). It also returns parsed data back to caller. > > >>> And no, it doesn't add any additional timing requirements . > > >> I've been looking at ACPI on arm64. So far I have not found the > > >> need for this with ACPI as we don't need to send the data to the > > >> interrupt controller driver to be parsed in the way OFW/FDT > > >> needs to. > > > ACPI though has a gross hack where we call BUS_CONFIG_INTR on the > > > IRQ in bus_alloc_resource(). > > > > I hadn't realized that. It looks like you could do essentially the > > same thing we do on PowerPC to clean this up by explicitly mapping > > the ACPI interrupt domains to different PICs with varying default > > interrupt properties. > > > > > What I had advocated in the discussions > > > leading up to this was to have some sort of opaque structure > > > containing a set of properties (the sort of thing > > > bus_map_resource and make_dev_s use) that was passed up at > > > bus_setup_intr() time. > > > > > I think it should now > > > be passed up at bus_alloc_resource() time instead, but it would > > > allow bus drivers to "decorate" a SYS_RES_IRQ request as it goes > > > up the device tree with properties that the interrupt controller > > > can then associate with the IRQ cookie it allocates in its own > > > code. > > > > > > We used to do this on PPC and MIPS, and the current code still > > supports it, but it turned out not to be useful in the end for > > IRQs. The hierarchy for IRQs rarely (read: almost never) follows > > the bus hierarchy and often is enumerated in a different order. I > > have hardware, for example, where the children of a single parent > > bus are all wired to different interrupt controllers and sometimes > > to a mixture of interrupt controllers. Those controllers are > > cascaded in ways that cross the newbus tree laterally and, on some > > of them, the parent device from the bus topology has interrupts > > handled by its own (bus) children. Trying to make the newbus > > parents do something sensible with all of this would be crazy and, > > in the case where parents depend on resources provided by their own > > children, impossible. > > > > This is all to say that, since you want the interrupts to be > > decorated along a path that usually has nothing to do with the > > newbus hierarchy, it doesn't add much to add extra features to > > resource allocation. ofw_bus_map_intr() is a newbus method to > > support this kind of thing but, on all supported platforms, it is > > implemented only in nexus and no cases have appeared where anyone > > ever wanted anything at the intermediate layers. > > Mmm. Another idea that has been bandied about is to create a separate > "plane" in new-bus for an interrupt hierarchy and allow devices to > have "interrupt" parents that are not the same as the "bus" parent. > (Additional planes for power and clocks might also make sense.) The > idea is borrowed from IOKit on Darwin which has multiple planes. The > "bus" plane is always fully populated, but the other planes (Darwin > has one for power for example) can be sparse. ACPI has methods that > effectively describe the power plane on x86. For some planes the structure would look more like a directed graph. Devices can have multiple clock parents, e.g. one for the register interface, and another to drive the external bus. I can also imagine the case where a device could have multiple interrupt parents, an MMC/SD controller comes to mind where it may have an interrupt on a GPIO line to detect the card being inserted, with another for command completion, etc. In this case one parent would be the standard interrupt controller, with the other being the GPIO controller. Andrew From owner-svn-src-all@freebsd.org Fri Jul 22 21:00:00 2016 Return-Path: Delivered-To: svn-src-all@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 8D4FDBA1805; Fri, 22 Jul 2016 21:00:00 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from d.mail.sonic.net (d.mail.sonic.net [64.142.111.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 77E9F1502; Fri, 22 Jul 2016 21:00:00 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from aurora.physics.berkeley.edu (aurora.physics.berkeley.edu [128.32.117.67]) (authenticated bits=0) by d.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6MKxwKM027862 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 22 Jul 2016 13:59:58 -0700 Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Andrew Turner , John Baldwin References: <201606051620.u55GKD5S066398@repo.freebsd.org> <13301107.Hm25rxUxW2@ralph.baldwin.cx> <03bcc081-5b93-c2ba-4e9b-e51d0b2e773a@freebsd.org> <2764416.DJT1n7EiEe@ralph.baldwin.cx> <20160722215351.5fbb2a49@zapp> Cc: Michal Meloun , Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Nathan Whitehorn Message-ID: <32fbc7f3-eb27-29f6-f7d7-7e05b7c2f07e@freebsd.org> Date: Fri, 22 Jul 2016 13:59:58 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <20160722215351.5fbb2a49@zapp> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Sonic-CAuth: UmFuZG9tSVbDZgjPIjLf106nj/Blm0n1rCygC+q+N3O9hR/h0Q6R5XAkKWGRoNBT7LxeWAXAW5w7HTQbUjq6TPDwuAIrjdC8Mx8cEIbxrVw= X-Sonic-ID: C;DkfZP09Q5hGckpNwxPCmMQ== M;Do8EQE9Q5hGckpNwxPCmMQ== X-Spam-Flag: No X-Sonic-Spam-Details: 2.5/5.0 by cerberusd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 21:00:00 -0000 On 07/22/16 13:53, Andrew Turner wrote: > On Fri, 22 Jul 2016 13:19:32 -0700 > John Baldwin wrote: > >> On Thursday, July 21, 2016 10:51:20 PM Nathan Whitehorn wrote: >>> On 07/21/16 14:35, John Baldwin wrote: >>>> On Thursday, July 21, 2016 01:37:42 PM Andrew Turner wrote: >>>>> On Wed, 20 Jul 2016 13:28:53 +0200 >>>>> Michal Meloun wrote: >>>>>> Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): >>>>>>> 2. It partially duplicates the functionality of >>>>>>> OFW_BUS_MAP_INTR(), but is both problematically more general >>>>>>> and less flexible (it has requirements on timing of PIC >>>>>>> attachment vs. driver resource allocation) >>>>>> OFW_BUS_MAP_INTR() can parse only OFW based data and expect >>>>>> that parsed data are magicaly stored within the call. >>>>>> The new method, bus_map_intr(), can parse data from multiple >>>>>> sources (OFW, UEFI / ACPI, synthetic[gpio device + pin >>>>>> number]). It also returns parsed data back to caller. >>>>>> And no, it doesn't add any additional timing requirements . >>>>> I've been looking at ACPI on arm64. So far I have not found the >>>>> need for this with ACPI as we don't need to send the data to the >>>>> interrupt controller driver to be parsed in the way OFW/FDT >>>>> needs to. >>>> ACPI though has a gross hack where we call BUS_CONFIG_INTR on the >>>> IRQ in bus_alloc_resource(). >>> I hadn't realized that. It looks like you could do essentially the >>> same thing we do on PowerPC to clean this up by explicitly mapping >>> the ACPI interrupt domains to different PICs with varying default >>> interrupt properties. >>> >>>> What I had advocated in the discussions >>>> leading up to this was to have some sort of opaque structure >>>> containing a set of properties (the sort of thing >>>> bus_map_resource and make_dev_s use) that was passed up at >>>> bus_setup_intr() time. >>> >>>> I think it should now >>>> be passed up at bus_alloc_resource() time instead, but it would >>>> allow bus drivers to "decorate" a SYS_RES_IRQ request as it goes >>>> up the device tree with properties that the interrupt controller >>>> can then associate with the IRQ cookie it allocates in its own >>>> code. >>> >>> We used to do this on PPC and MIPS, and the current code still >>> supports it, but it turned out not to be useful in the end for >>> IRQs. The hierarchy for IRQs rarely (read: almost never) follows >>> the bus hierarchy and often is enumerated in a different order. I >>> have hardware, for example, where the children of a single parent >>> bus are all wired to different interrupt controllers and sometimes >>> to a mixture of interrupt controllers. Those controllers are >>> cascaded in ways that cross the newbus tree laterally and, on some >>> of them, the parent device from the bus topology has interrupts >>> handled by its own (bus) children. Trying to make the newbus >>> parents do something sensible with all of this would be crazy and, >>> in the case where parents depend on resources provided by their own >>> children, impossible. >>> >>> This is all to say that, since you want the interrupts to be >>> decorated along a path that usually has nothing to do with the >>> newbus hierarchy, it doesn't add much to add extra features to >>> resource allocation. ofw_bus_map_intr() is a newbus method to >>> support this kind of thing but, on all supported platforms, it is >>> implemented only in nexus and no cases have appeared where anyone >>> ever wanted anything at the intermediate layers. >> Mmm. Another idea that has been bandied about is to create a separate >> "plane" in new-bus for an interrupt hierarchy and allow devices to >> have "interrupt" parents that are not the same as the "bus" parent. >> (Additional planes for power and clocks might also make sense.) The >> idea is borrowed from IOKit on Darwin which has multiple planes. The >> "bus" plane is always fully populated, but the other planes (Darwin >> has one for power for example) can be sparse. ACPI has methods that >> effectively describe the power plane on x86. > For some planes the structure would look more like a directed > graph. Devices can have multiple clock parents, e.g. one for the > register interface, and another to drive the external bus. > > I can also imagine the case where a device could have multiple > interrupt parents, an MMC/SD controller comes to mind where it may have > an interrupt on a GPIO line to detect the card being inserted, with > another for command completion, etc. In this case one parent would be > the standard interrupt controller, with the other being the GPIO > controller. > > Andrew > That's a good point for the generalized system (this already works for the specific case of interrupts, of course). It's more the resources that have a non-bus parent than the device. There are also devices with multiple bus parents, but those are more oddball kinds of things (Apple made some on-board PCI devices that are also connected by a second non-PCI path). -Nathan From owner-svn-src-all@freebsd.org Fri Jul 22 21:42:57 2016 Return-Path: Delivered-To: svn-src-all@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 6DC18B9E2CF; Fri, 22 Jul 2016 21:42:57 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4DEB51A9E; Fri, 22 Jul 2016 21:42:57 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 0925BB96E; Fri, 22 Jul 2016 17:42:56 -0400 (EDT) From: John Baldwin To: Roger Pau =?ISO-8859-1?Q?Monn=E9?= Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303076 - head/sys/dev/fb Date: Fri, 22 Jul 2016 14:42:51 -0700 Message-ID: <3203650.y8tuqEfyUM@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.3-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <201607200929.u6K9Td8S040645@repo.freebsd.org> References: <201607200929.u6K9Td8S040645@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Fri, 22 Jul 2016 17:42:56 -0400 (EDT) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 21:42:57 -0000 On Wednesday, July 20, 2016 09:29:39 AM Roger Pau Monn=E9 wrote: > Author: royger > Date: Wed Jul 20 09:29:39 2016 > New Revision: 303076 > URL: https://svnweb.freebsd.org/changeset/base/303076 >=20 > Log: > vesa: fix panic on suspend > =20 > Fix the following panic seen when migrating a FreeBSD guest on Xen:= > =20 > panic: mtx_lock() of destroyed mutex @ /usr/src/sys/dev/fb/vesa.c:5= 41 > cpuid =3D 0 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffff= e001d2fa4f0 > vpanic() at vpanic+0x182/frame 0xfffffe001d2fa570 > kassert_panic() at kassert_panic+0x126/frame 0xfffffe001d2fa5e0 > __mtx_lock_flags() at __mtx_lock_flags+0x15b/frame 0xfffffe001d2fa6= 30 > vesa_bios_save_restore() at vesa_bios_save_restore+0x78/frame 0xfff= ffe001d2fa680 > vga_suspend() at vga_suspend+0xa3/frame 0xfffffe001d2fa6b0 > isavga_suspend() at isavga_suspend+0x1d/frame 0xfffffe001d2fa6d0 > bus_generic_suspend_child() at bus_generic_suspend_child+0x44/frame= > [...] > =20 > This is caused because vga_sub_configure (which is called if the VG= A adapter > is attached after VESA tried to initialize), points to vesa_configu= re, which > doesn't initialize the VESA mutex. In order to fix it, make sure > vga_sub_configure points to vesa_load, so that all the needed vesa > components are properly initialized. This panics a box without VESA (a dumb VGA) since vesa_init_done doesn'= t get set to true if VESA fails to find anything during its probe, so the mutex c= an be initialized twice. I think it is better to just revert this change and= use MTX_SYSINIT to initialize the mutex instead. vga0: at port 0x3d0-0x3db iomem 0xb8000-0xbffff on is= a0 panic: lock "VESA lock" 0xffffffff81c64af0 already initialized cpuid =3D 0 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xffffffff8= 24ec7a0 kdb_backtrace() at kdb_backtrace+0x39/frame 0xffffffff824ec850 vpanic() at vpanic+0x181/frame 0xffffffff824ec8d0 kassert_panic() at kassert_panic+0x17d/frame 0xffffffff824ec960 lock_init() at lock_init+0x186/frame 0xffffffff824ec9a0 _mtx_init() at _mtx_init+0x90/frame 0xffffffff824ec9e0 vesa_late_load() at vesa_late_load+0x2d/frame 0xffffffff824eca00 vga_init() at vga_init+0x65/frame 0xffffffff824eca20 vga_attach_unit() at vga_attach_unit+0x4b/frame 0xffffffff824eca50 isavga_attach() at isavga_attach+0x6c/frame 0xffffffff824eca90 DEVICE_ATTACH() at DEVICE_ATTACH+0x44/frame 0xffffffff824ecab0 https://reviews.freebsd.org/D7290 is a suggested patch that works in my= test case. --=20 John Baldwin From owner-svn-src-all@freebsd.org Fri Jul 22 21:49:42 2016 Return-Path: Delivered-To: svn-src-all@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 E34B0B9E3A9; Fri, 22 Jul 2016 21:49:42 +0000 (UTC) (envelope-from mizhka@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 B5F331D0F; Fri, 22 Jul 2016 21:49:42 +0000 (UTC) (envelope-from mizhka@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MLnf4g099345; Fri, 22 Jul 2016 21:49:41 GMT (envelope-from mizhka@FreeBSD.org) Received: (from mizhka@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MLnfUp099344; Fri, 22 Jul 2016 21:49:41 GMT (envelope-from mizhka@FreeBSD.org) Message-Id: <201607222149.u6MLnfUp099344@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mizhka set sender to mizhka@FreeBSD.org using -f From: Michael Zhilin Date: Fri, 22 Jul 2016 21:49:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303203 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 21:49:43 -0000 Author: mizhka Date: Fri Jul 22 21:49:41 2016 New Revision: 303203 URL: https://svnweb.freebsd.org/changeset/base/303203 Log: [new-committer:mizhka] add committer into graph Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D7288 Modified: head/share/misc/committers-src.dot Modified: head/share/misc/committers-src.dot ============================================================================== --- head/share/misc/committers-src.dot Fri Jul 22 20:52:40 2016 (r303202) +++ head/share/misc/committers-src.dot Fri Jul 22 21:49:41 2016 (r303203) @@ -237,6 +237,7 @@ maxim [label="Maxim Konovalov\nmaxim@Fre mdf [label="Matthew Fleming\nmdf@FreeBSD.org\n2010/06/04"] mdodd [label="Matthew N. Dodd\nmdodd@FreeBSD.org\n1999/07/27"] melifaro [label="Alexander V. Chernikov\nmelifaro@FreeBSD.org\n2011/10/04"] +mizhka [label="Michael Zhilin\nmizhka@FreeBSD.org\n2016/07/19"] mjacob [label="Matt Jacob\nmjacob@FreeBSD.org\n1997/08/13"] mjg [label="Mateusz Guzik\nmjg@FreeBSD.org\n2012/06/04"] mlaier [label="Max Laier\nmlaier@FreeBSD.org\n2004/02/10"] @@ -353,6 +354,7 @@ adrian -> jmcneill adrian -> landonf adrian -> lidl adrian -> loos +adrian -> mizhka adrian -> monthadar adrian -> ray adrian -> rmh From owner-svn-src-all@freebsd.org Fri Jul 22 21:52:09 2016 Return-Path: Delivered-To: svn-src-all@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 2CB3BB9E51D; Fri, 22 Jul 2016 21:52:09 +0000 (UTC) (envelope-from jhb@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 0137811BC; Fri, 22 Jul 2016 21:52:08 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MLq8w5002917; Fri, 22 Jul 2016 21:52:08 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MLq8UN002916; Fri, 22 Jul 2016 21:52:08 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607222152.u6MLq8UN002916@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 22 Jul 2016 21:52:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303204 - head/sys/dev/cxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 21:52:09 -0000 Author: jhb Date: Fri Jul 22 21:52:07 2016 New Revision: 303204 URL: https://svnweb.freebsd.org/changeset/base/303204 Log: Install a handler for firmware work request error messages. If a driver sends an malformed or disallowed work request, the firmware responds with a work request error. Previously the driver treated this is as an unexpected message and panicked. Now it decodes the error message to aid in debugging. Reviewed by: np (older version) MFC after: 1 month Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D6950 Modified: head/sys/dev/cxgbe/t4_sge.c Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Fri Jul 22 21:49:41 2016 (r303203) +++ head/sys/dev/cxgbe/t4_sge.c Fri Jul 22 21:52:07 2016 (r303204) @@ -244,6 +244,7 @@ static int handle_sge_egr_update(struct struct mbuf *); static int handle_fw_msg(struct sge_iq *, const struct rss_header *, struct mbuf *); +static int t4_handle_wrerr_rpl(struct adapter *, const __be64 *); static void wrq_tx_drain(void *, int); static void drain_wrq_wr_list(struct adapter *, struct sge_wrq *); @@ -402,6 +403,7 @@ t4_sge_modload(void) t4_register_cpl_handler(CPL_SGE_EGR_UPDATE, handle_sge_egr_update); t4_register_cpl_handler(CPL_RX_PKT, t4_eth_rx); t4_register_fw_msg_handler(FW6_TYPE_CMD_RPL, t4_handle_fw_rpl); + t4_register_fw_msg_handler(FW6_TYPE_WRERR_RPL, t4_handle_wrerr_rpl); } void @@ -4782,6 +4784,71 @@ handle_fw_msg(struct sge_iq *iq, const s return (t4_fw_msg_handler[cpl->type](sc, &cpl->data[0])); } +/** + * t4_handle_wrerr_rpl - process a FW work request error message + * @adap: the adapter + * @rpl: start of the FW message + */ +static int +t4_handle_wrerr_rpl(struct adapter *adap, const __be64 *rpl) +{ + u8 opcode = *(const u8 *)rpl; + const struct fw_error_cmd *e = (const void *)rpl; + unsigned int i; + + if (opcode != FW_ERROR_CMD) { + log(LOG_ERR, + "%s: Received WRERR_RPL message with opcode %#x\n", + device_get_nameunit(adap->dev), opcode); + return (EINVAL); + } + log(LOG_ERR, "%s: FW_ERROR (%s) ", device_get_nameunit(adap->dev), + G_FW_ERROR_CMD_FATAL(be32toh(e->op_to_type)) ? "fatal" : + "non-fatal"); + switch (G_FW_ERROR_CMD_TYPE(be32toh(e->op_to_type))) { + case FW_ERROR_TYPE_EXCEPTION: + log(LOG_ERR, "exception info:\n"); + for (i = 0; i < nitems(e->u.exception.info); i++) + log(LOG_ERR, "%s%08x", i == 0 ? "\t" : " ", + be32toh(e->u.exception.info[i])); + log(LOG_ERR, "\n"); + break; + case FW_ERROR_TYPE_HWMODULE: + log(LOG_ERR, "HW module regaddr %08x regval %08x\n", + be32toh(e->u.hwmodule.regaddr), + be32toh(e->u.hwmodule.regval)); + break; + case FW_ERROR_TYPE_WR: + log(LOG_ERR, "WR cidx %d PF %d VF %d eqid %d hdr:\n", + be16toh(e->u.wr.cidx), + G_FW_ERROR_CMD_PFN(be16toh(e->u.wr.pfn_vfn)), + G_FW_ERROR_CMD_VFN(be16toh(e->u.wr.pfn_vfn)), + be32toh(e->u.wr.eqid)); + for (i = 0; i < nitems(e->u.wr.wrhdr); i++) + log(LOG_ERR, "%s%02x", i == 0 ? "\t" : " ", + e->u.wr.wrhdr[i]); + log(LOG_ERR, "\n"); + break; + case FW_ERROR_TYPE_ACL: + log(LOG_ERR, "ACL cidx %d PF %d VF %d eqid %d %s", + be16toh(e->u.acl.cidx), + G_FW_ERROR_CMD_PFN(be16toh(e->u.acl.pfn_vfn)), + G_FW_ERROR_CMD_VFN(be16toh(e->u.acl.pfn_vfn)), + be32toh(e->u.acl.eqid), + G_FW_ERROR_CMD_MV(be16toh(e->u.acl.mv_pkd)) ? "vlanid" : + "MAC"); + for (i = 0; i < nitems(e->u.acl.val); i++) + log(LOG_ERR, " %02x", e->u.acl.val[i]); + log(LOG_ERR, "\n"); + break; + default: + log(LOG_ERR, "type %#x\n", + G_FW_ERROR_CMD_TYPE(be32toh(e->op_to_type))); + return (EINVAL); + } + return (0); +} + static int sysctl_uint16(SYSCTL_HANDLER_ARGS) { From owner-svn-src-all@freebsd.org Fri Jul 22 21:57:33 2016 Return-Path: Delivered-To: svn-src-all@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 B053DB9E5E6; Fri, 22 Jul 2016 21:57:33 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail110.syd.optusnet.com.au (mail110.syd.optusnet.com.au [211.29.132.97]) by mx1.freebsd.org (Postfix) with ESMTP id 3B5B61439; Fri, 22 Jul 2016 21:57:33 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c110-21-100-149.carlnfd1.nsw.optusnet.com.au [110.21.100.149]) by mail110.syd.optusnet.com.au (Postfix) with ESMTPS id 35819785BDE; Sat, 23 Jul 2016 07:57:24 +1000 (AEST) Date: Sat, 23 Jul 2016 07:57:23 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: John Baldwin cc: Ruslan Bukin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303188 - head/share/mk In-Reply-To: <1980140.IgFQbb5iVz@ralph.baldwin.cx> Message-ID: <20160723073428.K1265@besplex.bde.org> References: <201607221500.u6MF0c3S037470@repo.freebsd.org> <1980140.IgFQbb5iVz@ralph.baldwin.cx> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=VIkg5I7X c=1 sm=1 tr=0 a=XDAe9YG+7EcdVXYrgT+/UQ==:117 a=XDAe9YG+7EcdVXYrgT+/UQ==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=-_n7_GSXjfI_3vEHYuMA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 21:57:33 -0000 On Fri, 22 Jul 2016, John Baldwin wrote: > On Friday, July 22, 2016 03:00:38 PM Ruslan Bukin wrote: >> >> Log: >> Add warn flags for GCC 6.1 compiler. >> >> Sponsored by: DARPA, AFRL >> >> Modified: >> head/share/mk/bsd.sys.mk >> >> Modified: head/share/mk/bsd.sys.mk >> ============================================================================== >> --- head/share/mk/bsd.sys.mk Fri Jul 22 14:57:26 2016 (r303187) >> +++ head/share/mk/bsd.sys.mk Fri Jul 22 15:00:38 2016 (r303188) >> @@ -114,6 +114,11 @@ CWARNFLAGS+= -Wno-format >> CWARNFLAGS+= -Wno-error=unused-function -Wno-error=enum-compare -Wno-error=logical-not-parentheses -Wno-error=bool-compare -Wno-error=uninitialized -Wno-error=array-bounds -Wno-error=clobbered -Wno-error=cast-align -Wno-error=extra -Wno-error=attributes -Wno-error=inline -Wno-error=unused-but-set-variable -Wno-error=unused-value -Wno-error=strict-aliasing -Wno-error=address >> .endif >> >> +# GCC 6.1.0 >> +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 60100 >> +CWARNFLAGS+= -Wno-error=unused-const-variable= -Wno-error=nonnull-compare -Wno-error=shift-negative-value -Wno-error=misleading-indentation -Wno-error=tautological-compare >> +.endif > > Extra trailing = in the first one as well? I don't see one. I see only unreadably long lines containing unreadably unordered flags. Perhaps your mail client mangled the line splitting, but the above quite displays OK in mutt and vi here (except mutt makes the line wrapping especially ugly by highlighting it). Bruce From owner-svn-src-all@freebsd.org Fri Jul 22 22:20:54 2016 Return-Path: Delivered-To: svn-src-all@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 BA0D2B9E9E4; Fri, 22 Jul 2016 22:20:54 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-qk0-x22f.google.com (mail-qk0-x22f.google.com [IPv6:2607:f8b0:400d:c09::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 389311C58; Fri, 22 Jul 2016 22:20:54 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: by mail-qk0-x22f.google.com with SMTP id o67so113415569qke.1; Fri, 22 Jul 2016 15:20:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=CyQf2i8776FVb03S5O1LqlnjiWKAXpd4yHSazd2hdcg=; b=gSxwRBIGymz4ccN0AmGjXPKypr3rYws9nIcsWSBhpiyVfnMIYrcu8ie0hNdrdlGZJP YHw/3055rKsSsoDVNs3S+MaEjE0YZewYW/JOmCDEcvvK4LGhKzqsdLuzCOikrmG6saXY e6kr51lANW9+DE6qoUSLUHlFU73nT42SuthnzMGG1WyDaTi7C0Z9w8g/cLD2MBDTDuIl RnH+dl4bAaqsJGDmK1FH17X4up3BMrI2R6EKIOcuMBEqTW5OQUql3ZEocMP1OPqhCna4 pHTe0NwpdzP4ON5wtnXHn2cMwb3/Ym0BAyE/+GtD5Hf0zLYkDO2WLzEUH3TpsI91vloS wcMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=CyQf2i8776FVb03S5O1LqlnjiWKAXpd4yHSazd2hdcg=; b=V5PIFFwRXyog5YbpOctHuvz/KV/ysSfnZ8pbM/8UQjMSrAvP3aXyhMp9wFYFI0/PGS xj0rBCuVz6Dim2s7Rnc2jP1iVgvVLUWCo2irHih8qQK7S+6yePtizpZ/XsdLuasFzaDu n2ESsdCRmrrKj80CbvDVwczgY9wdPpsHn1hbyKkgQELPoNDhvPQPx27iXeACjYgJ2FDp 2+5X9ug7FD/pwJVEaS1U2DgMQB2VbPRRhavGLzb8QMldAqHb+6kZkP8ebiPto1N2OPNJ lv6ACsNH9rTWAprNowyJGirTSDdqIGQdTrbyjf3GmAV3LsBonzqP4EFY32J4i28DHFQF Xo+Q== X-Gm-Message-State: AEkooutz813tvhaNdaNLiskv2KCYW7O15vBDwC5CIVomZISGrXh/0yn5tFSI6yAdeS8To2+j8Qh3cVm2h2APKw== X-Received: by 10.55.48.19 with SMTP id w19mr7645749qkw.141.1469226052390; Fri, 22 Jul 2016 15:20:52 -0700 (PDT) MIME-Version: 1.0 Received: by 10.233.216.194 with HTTP; Fri, 22 Jul 2016 15:20:51 -0700 (PDT) In-Reply-To: <20160723073428.K1265@besplex.bde.org> References: <201607221500.u6MF0c3S037470@repo.freebsd.org> <1980140.IgFQbb5iVz@ralph.baldwin.cx> <20160723073428.K1265@besplex.bde.org> From: Ngie Cooper Date: Fri, 22 Jul 2016 15:20:51 -0700 Message-ID: Subject: Re: svn commit: r303188 - head/share/mk To: Bruce Evans Cc: John Baldwin , Ruslan Bukin , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 22:20:54 -0000 On Fri, Jul 22, 2016 at 2:57 PM, Bruce Evans wrote: ... >>> +# GCC 6.1.0 >>> +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 60100 >>> +CWARNFLAGS+= -Wno-error=unused-const-variable= >>> -Wno-error=nonnull-compare -Wno-error=shift-negative-value >>> -Wno-error=misleading-indentation -Wno-error=tautological-compare >>> +.endif >> >> >> Extra trailing = in the first one as well? > > I don't see one. I see only unreadably long lines containing unreadably > unordered flags. Perhaps your mail client mangled the line splitting, > but the above quite displays OK in mutt and vi here (except mutt makes > the line wrapping especially ugly by highlighting it). Look for "-Wno-error=unused-const-variable=". Thanks, -Ngie From owner-svn-src-all@freebsd.org Fri Jul 22 22:46:43 2016 Return-Path: Delivered-To: svn-src-all@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 401B1BA1176; Fri, 22 Jul 2016 22:46:43 +0000 (UTC) (envelope-from jhb@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 09D0419F1; Fri, 22 Jul 2016 22:46:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6MMkgdB021101; Fri, 22 Jul 2016 22:46:42 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6MMkfQh021096; Fri, 22 Jul 2016 22:46:41 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607222246.u6MMkfQh021096@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 22 Jul 2016 22:46:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303205 - in head/sys: conf dev/cxgbe modules/cxgbe/if_cxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 22:46:43 -0000 Author: jhb Date: Fri Jul 22 22:46:41 2016 New Revision: 303205 URL: https://svnweb.freebsd.org/changeset/base/303205 Log: Add a driver to create VF devices on Chelsio T4/T5 NICs. Chelsio NICs are a bit unique compared to some other NICs in that they expose different functionality on different physical functions. In particular, PF4 is used to manage the NIC interfaces ('t4nex' and 't5nex'). However, PF4 is not able to create VF devices. Instead, VFs are only supported by physical functions 0 through 3. This commit adds 't4iov' and 't5iov' drivers that attach to PF0-3. One extra wrinkle is that the iov devices cannot enable SR-IOV until the firwmare has been initialized by the main PF4 driver. To handle this case, a new t4_if kobj interface has been added to permit cross-calls between the PF drivers. The PF4 driver notifies sibling drivers when it is fully attached. It also requests sibling drivers to detach before it detaches. Sibling drivers query the PF4 driver during their attach routine to see if it is attached. If not, the sibling drivers defer their attach actions until the PF4 driver informs them it is attached. VF devices are associated with a single port on the NIC. VF devices created from PF0 are associated with the first port on the NIC, VFs from PF1 are associated with the second port, etc. VF devices can only be created from a PF device that has an associated port. Thus, on a 2-port card, VFs are only supported on PF0 and PF1. Reviewed by: np (earlier versions) MFC after: 1 month Sponsored by: Chelsio Communications Added: head/sys/dev/cxgbe/t4_if.m (contents, props changed) head/sys/dev/cxgbe/t4_iov.c (contents, props changed) Modified: head/sys/conf/files head/sys/dev/cxgbe/t4_main.c head/sys/modules/cxgbe/if_cxgbe/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Fri Jul 22 21:52:07 2016 (r303204) +++ head/sys/conf/files Fri Jul 22 22:46:41 2016 (r303205) @@ -1243,6 +1243,8 @@ dev/cxgb/sys/uipc_mvec.c optional cxgb p compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/cxgb_t3fw.c optional cxgb cxgb_t3fw \ compile-with "${NORMAL_C} -I$S/dev/cxgb" +dev/cxgbe/t4_iov.c optional cxgbe pci \ + compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_mp_ring.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_main.c optional cxgbe pci \ Added: head/sys/dev/cxgbe/t4_if.m ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/cxgbe/t4_if.m Fri Jul 22 22:46:41 2016 (r303205) @@ -0,0 +1,65 @@ +#- +# Copyright (c) 2015-2016 Chelsio Communications, Inc. +# All rights reserved. +# Written by: John Baldwin +# +# 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. +# +# $FreeBSD$ +# + +#include + +INTERFACE t4; + +# The "main" device of a T4/T5 NIC is the PF4 device. Drivers for other +# functions on the NIC need to wait for the main device to be initialized +# before finishing attach. These routines allow drivers for other devices +# to coordinate with the main driver for the PF4. + +# Called by a driver during attach to determine if the PF4 driver is +# initialized. If the main driver is not ready, the driver should defer +# further initialization until 'attach_child'. +METHOD int is_main_ready { + device_t dev; +}; + +# Called by the PF4 driver on each sibling device when the PF4 driver is +# initialized. +METHOD int attach_child { + device_t dev; +}; + +# Called by the PF4 driver on each sibling device when the PF4 driver is +# preparing to detach. +METHOD int detach_child { + device_t dev; +}; + +# Called by a driver to query the PF4 driver for the unit number to use +# for a given port. If the port is not enabled on the adapter, this +# will fail. +METHOD int read_port_unit { + device_t dev; + int port; + int *unit; +}; Added: head/sys/dev/cxgbe/t4_iov.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/cxgbe/t4_iov.c Fri Jul 22 22:46:41 2016 (r303205) @@ -0,0 +1,289 @@ +/*- + * Copyright (c) 2015-2016 Chelsio Communications, Inc. + * All rights reserved. + * Written by: John Baldwin + * + * 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 +#include +#include +#include +#include + +#ifdef PCI_IOV +#include +#include +#include +#endif + +#include "t4_if.h" + +struct t4iov_softc { + device_t sc_dev; + device_t sc_main; + bool sc_attached; +}; + +struct { + uint16_t device; + char *desc; +} t4iov_pciids[] = { + {0x4000, "Chelsio T440-dbg"}, + {0x4001, "Chelsio T420-CR"}, + {0x4002, "Chelsio T422-CR"}, + {0x4003, "Chelsio T440-CR"}, + {0x4004, "Chelsio T420-BCH"}, + {0x4005, "Chelsio T440-BCH"}, + {0x4006, "Chelsio T440-CH"}, + {0x4007, "Chelsio T420-SO"}, + {0x4008, "Chelsio T420-CX"}, + {0x4009, "Chelsio T420-BT"}, + {0x400a, "Chelsio T404-BT"}, + {0x400e, "Chelsio T440-LP-CR"}, +}, t5iov_pciids[] = { + {0x5000, "Chelsio T580-dbg"}, + {0x5001, "Chelsio T520-CR"}, /* 2 x 10G */ + {0x5002, "Chelsio T522-CR"}, /* 2 x 10G, 2 X 1G */ + {0x5003, "Chelsio T540-CR"}, /* 4 x 10G */ + {0x5007, "Chelsio T520-SO"}, /* 2 x 10G, nomem */ + {0x5009, "Chelsio T520-BT"}, /* 2 x 10GBaseT */ + {0x500a, "Chelsio T504-BT"}, /* 4 x 1G */ + {0x500d, "Chelsio T580-CR"}, /* 2 x 40G */ + {0x500e, "Chelsio T540-LP-CR"}, /* 4 x 10G */ + {0x5010, "Chelsio T580-LP-CR"}, /* 2 x 40G */ + {0x5011, "Chelsio T520-LL-CR"}, /* 2 x 10G */ + {0x5012, "Chelsio T560-CR"}, /* 1 x 40G, 2 x 10G */ + {0x5014, "Chelsio T580-LP-SO-CR"}, /* 2 x 40G, nomem */ + {0x5015, "Chelsio T502-BT"}, /* 2 x 1G */ +#ifdef notyet + {0x5004, "Chelsio T520-BCH"}, + {0x5005, "Chelsio T540-BCH"}, + {0x5006, "Chelsio T540-CH"}, + {0x5008, "Chelsio T520-CX"}, + {0x500b, "Chelsio B520-SR"}, + {0x500c, "Chelsio B504-BT"}, + {0x500f, "Chelsio Amsterdam"}, + {0x5013, "Chelsio T580-CHR"}, +#endif +}; + +static int t4iov_attach_child(device_t dev); + +static int +t4iov_probe(device_t dev) +{ + uint16_t d; + size_t i; + + d = pci_get_device(dev); + for (i = 0; i < nitems(t4iov_pciids); i++) { + if (d == t4iov_pciids[i].device) { + device_set_desc(dev, t4iov_pciids[i].desc); + return (BUS_PROBE_DEFAULT); + } + } + return (ENXIO); +} + +static int +t5iov_probe(device_t dev) +{ + uint16_t d; + size_t i; + + d = pci_get_device(dev); + for (i = 0; i < nitems(t5iov_pciids); i++) { + if (d == t5iov_pciids[i].device) { + device_set_desc(dev, t5iov_pciids[i].desc); + return (BUS_PROBE_DEFAULT); + } + } + return (ENXIO); +} + +static int +t4iov_attach(device_t dev) +{ + struct t4iov_softc *sc; + + sc = device_get_softc(dev); + sc->sc_dev = dev; + + sc->sc_main = pci_find_dbsf(pci_get_domain(dev), pci_get_bus(dev), + pci_get_slot(dev), 4); + if (T4_IS_MAIN_READY(sc->sc_main) == 0) + return (t4iov_attach_child(dev)); + return (0); +} + +static int +t4iov_attach_child(device_t dev) +{ + struct t4iov_softc *sc; +#ifdef PCI_IOV + nvlist_t *pf_schema, *vf_schema; +#endif + int error, unit; + + sc = device_get_softc(dev); + MPASS(!sc->sc_attached); + + /* + * PF0-3 are associated with a specific port on the NIC (PF0 + * with port 0, etc.). Ask the PF4 driver for the unit number + * for this function's associated port to determine if the port + * is present. + */ + error = T4_READ_PORT_UNIT(sc->sc_main, pci_get_function(dev), &unit); + if (error) + return (0); + +#ifdef PCI_IOV + pf_schema = pci_iov_schema_alloc_node(); + vf_schema = pci_iov_schema_alloc_node(); + error = pci_iov_attach(dev, pf_schema, vf_schema); + if (error) { + device_printf(dev, "Failed to initialize SR-IOV: %d\n", error); + return (0); + } +#endif + + sc->sc_attached = true; + return (0); +} + +static int +t4iov_detach_child(device_t dev) +{ + struct t4iov_softc *sc; +#ifdef PCI_IOV + int error; +#endif + + sc = device_get_softc(dev); + if (!sc->sc_attached) + return (0); + +#ifdef PCI_IOV + error = pci_iov_detach(dev); + if (error != 0) { + device_printf(dev, "Failed to disable SR-IOV\n"); + return (error); + } +#endif + + sc->sc_attached = false; + return (0); +} + +static int +t4iov_detach(device_t dev) +{ + struct t4iov_softc *sc; + + sc = device_get_softc(dev); + if (sc->sc_attached) + return (t4iov_detach_child(dev)); + return (0); +} + +#ifdef PCI_IOV +static int +t4iov_iov_init(device_t dev, uint16_t num_vfs, const struct nvlist *config) +{ + + /* XXX: The Linux driver sets up a vf_monitor task on T4 adapters. */ + return (0); +} + +static void +t4iov_iov_uninit(device_t dev) +{ +} + +static int +t4iov_add_vf(device_t dev, uint16_t vfnum, const struct nvlist *config) +{ + + return (0); +} +#endif + +static device_method_t t4iov_methods[] = { + DEVMETHOD(device_probe, t4iov_probe), + DEVMETHOD(device_attach, t4iov_attach), + DEVMETHOD(device_detach, t4iov_detach), + +#ifdef PCI_IOV + DEVMETHOD(pci_iov_init, t4iov_iov_init), + DEVMETHOD(pci_iov_uninit, t4iov_iov_uninit), + DEVMETHOD(pci_iov_add_vf, t4iov_add_vf), +#endif + + DEVMETHOD(t4_attach_child, t4iov_attach_child), + DEVMETHOD(t4_detach_child, t4iov_detach_child), + + DEVMETHOD_END +}; + +static driver_t t4iov_driver = { + "t4iov", + t4iov_methods, + sizeof(struct t4iov_softc) +}; + +static device_method_t t5iov_methods[] = { + DEVMETHOD(device_probe, t5iov_probe), + DEVMETHOD(device_attach, t4iov_attach), + DEVMETHOD(device_detach, t4iov_detach), + +#ifdef PCI_IOV + DEVMETHOD(pci_iov_init, t4iov_iov_init), + DEVMETHOD(pci_iov_uninit, t4iov_iov_uninit), + DEVMETHOD(pci_iov_add_vf, t4iov_add_vf), +#endif + + DEVMETHOD(t4_attach_child, t4iov_attach_child), + DEVMETHOD(t4_detach_child, t4iov_detach_child), + + DEVMETHOD_END +}; + +static driver_t t5iov_driver = { + "t5iov", + t5iov_methods, + sizeof(struct t4iov_softc) +}; + +static devclass_t t4iov_devclass, t5iov_devclass; + +DRIVER_MODULE(t4iov, pci, t4iov_driver, t4iov_devclass, 0, 0); +MODULE_VERSION(t4iov, 1); + +DRIVER_MODULE(t5iov, pci, t5iov_driver, t5iov_devclass, 0, 0); +MODULE_VERSION(t5iov, 1); Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Fri Jul 22 21:52:07 2016 (r303204) +++ head/sys/dev/cxgbe/t4_main.c Fri Jul 22 22:46:41 2016 (r303205) @@ -76,16 +76,22 @@ __FBSDID("$FreeBSD$"); #include "t4_ioctl.h" #include "t4_l2t.h" #include "t4_mp_ring.h" +#include "t4_if.h" /* T4 bus driver interface */ static int t4_probe(device_t); static int t4_attach(device_t); static int t4_detach(device_t); +static int t4_ready(device_t); +static int t4_read_port_unit(device_t, int, int *); static device_method_t t4_methods[] = { DEVMETHOD(device_probe, t4_probe), DEVMETHOD(device_attach, t4_attach), DEVMETHOD(device_detach, t4_detach), + DEVMETHOD(t4_is_main_ready, t4_ready), + DEVMETHOD(t4_read_port_unit, t4_read_port_unit), + DEVMETHOD_END }; static driver_t t4_driver = { @@ -147,6 +153,9 @@ static device_method_t t5_methods[] = { DEVMETHOD(device_attach, t4_attach), DEVMETHOD(device_detach, t4_detach), + DEVMETHOD(t4_is_main_ready, t4_ready), + DEVMETHOD(t4_read_port_unit, t4_read_port_unit), + DEVMETHOD_END }; static driver_t t5_driver = { @@ -533,6 +542,7 @@ static int set_sched_queue(struct adapte static int toe_capability(struct vi_info *, int); #endif static int mod_event(module_t, int, void *); +static int notify_siblings(device_t, int); struct { uint16_t device; @@ -1062,6 +1072,8 @@ t4_attach(device_t dev) t4_set_desc(sc); + notify_siblings(dev, 0); + done: if (rc != 0 && sc->cdev) { /* cdev was created and so cxgbetool works; recover that way. */ @@ -1078,6 +1090,57 @@ done: return (rc); } +static int +t4_ready(device_t dev) +{ + struct adapter *sc; + + sc = device_get_softc(dev); + if (sc->flags & FW_OK) + return (0); + return (ENXIO); +} + +static int +t4_read_port_unit(device_t dev, int port, int *unit) +{ + struct adapter *sc; + struct port_info *pi; + + sc = device_get_softc(dev); + if (port < 0 || port >= MAX_NPORTS) + return (EINVAL); + pi = sc->port[port]; + if (pi == NULL || pi->dev == NULL) + return (ENXIO); + *unit = device_get_unit(pi->dev); + return (0); +} + +static int +notify_siblings(device_t dev, int detaching) +{ + device_t sibling; + int error, i; + + error = 0; + for (i = 0; i < PCI_FUNCMAX; i++) { + if (i == pci_get_function(dev)) + continue; + sibling = pci_find_dbsf(pci_get_domain(dev), pci_get_bus(dev), + pci_get_slot(dev), i); + if (sibling == NULL || !device_is_attached(sibling)) + continue; + if (detaching) + error = T4_DETACH_CHILD(sibling); + else + (void)T4_ATTACH_CHILD(sibling); + if (error) + break; + } + return (error); +} + /* * Idempotent */ @@ -1090,6 +1153,13 @@ t4_detach(device_t dev) sc = device_get_softc(dev); + rc = notify_siblings(dev, 1); + if (rc) { + device_printf(dev, + "failed to detach sibling devices: %d\n", rc); + return (rc); + } + if (sc->flags & FULL_INIT_DONE) t4_intr_disable(sc); Modified: head/sys/modules/cxgbe/if_cxgbe/Makefile ============================================================================== --- head/sys/modules/cxgbe/if_cxgbe/Makefile Fri Jul 22 21:52:07 2016 (r303204) +++ head/sys/modules/cxgbe/if_cxgbe/Makefile Fri Jul 22 22:46:41 2016 (r303205) @@ -13,8 +13,10 @@ SRCS+= opt_inet.h SRCS+= opt_inet6.h SRCS+= opt_ofed.h SRCS+= opt_rss.h -SRCS+= pci_if.h +SRCS+= pci_if.h pci_iov_if.h +SRCS+= t4_if.c t4_if.h SRCS+= t4_hw.c +SRCS+= t4_iov.c SRCS+= t4_l2t.c SRCS+= t4_main.c SRCS+= t4_mp_ring.c From owner-svn-src-all@freebsd.org Fri Jul 22 23:22:23 2016 Return-Path: Delivered-To: svn-src-all@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 747BCBA17AF; Fri, 22 Jul 2016 23:22:23 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4E7F719AD; Fri, 22 Jul 2016 23:22:23 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id EA7A8B946; Fri, 22 Jul 2016 19:22:21 -0400 (EDT) From: John Baldwin To: src-committers@freebsd.org Cc: svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303205 - in head/sys: conf dev/cxgbe modules/cxgbe/if_cxgbe Date: Fri, 22 Jul 2016 16:15:37 -0700 Message-ID: <8075415.uQxp9geTMj@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.3-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <201607222246.u6MMkfQh021096@repo.freebsd.org> References: <201607222246.u6MMkfQh021096@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Fri, 22 Jul 2016 19:22:22 -0400 (EDT) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 23:22:23 -0000 On Friday, July 22, 2016 10:46:41 PM John Baldwin wrote: > Author: jhb > Date: Fri Jul 22 22:46:41 2016 > New Revision: 303205 > URL: https://svnweb.freebsd.org/changeset/base/303205 > > Log: > Add a driver to create VF devices on Chelsio T4/T5 NICs. > > Chelsio NICs are a bit unique compared to some other NICs in that they > expose different functionality on different physical functions. In > particular, PF4 is used to manage the NIC interfaces ('t4nex' and 't5nex'). > However, PF4 is not able to create VF devices. Instead, VFs are only > supported by physical functions 0 through 3. This commit adds 't4iov' > and 't5iov' drivers that attach to PF0-3. > > One extra wrinkle is that the iov devices cannot enable SR-IOV until the > firwmare has been initialized by the main PF4 driver. To handle this > case, a new t4_if kobj interface has been added to permit cross-calls > between the PF drivers. The PF4 driver notifies sibling drivers when it > is fully attached. It also requests sibling drivers to detach before it > detaches. Sibling drivers query the PF4 driver during their attach > routine to see if it is attached. If not, the sibling drivers defer > their attach actions until the PF4 driver informs them it is attached. > > VF devices are associated with a single port on the NIC. VF devices > created from PF0 are associated with the first port on the NIC, VFs > from PF1 are associated with the second port, etc. VF devices can > only be created from a PF device that has an associated port. Thus, > on a 2-port card, VFs are only supported on PF0 and PF1. > > Reviewed by: np (earlier versions) > MFC after: 1 month > Sponsored by: Chelsio Communications Note that this only permits the creation of VFs, it does not include a driver for these VFs. I have a mostly working driver, but it is against an older HEAD and has to be rebased. In addition, Linux VF drivers will not work without some hacks to the FreeBSD cxgbe/cxl driver because the Linux VF driver only wants page-sized buffers whereas the FreeBSD drivers use 2k buffers (since that is an mbuf cluster). -- John Baldwin From owner-svn-src-all@freebsd.org Fri Jul 22 23:31:29 2016 Return-Path: Delivered-To: svn-src-all@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 8A0C0BA18E3; Fri, 22 Jul 2016 23:31:29 +0000 (UTC) (envelope-from rb743@hermes.cam.ac.uk) Received: from ppsw-31.csi.cam.ac.uk (ppsw-31.csi.cam.ac.uk [131.111.8.131]) (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 54BDF1CFA; Fri, 22 Jul 2016 23:31:28 +0000 (UTC) (envelope-from rb743@hermes.cam.ac.uk) X-Cam-AntiVirus: no malware found X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/ Received: from xc1.bsdpad.com ([195.154.136.64]:42209) by ppsw-31.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.157]:587) with esmtpsa (LOGIN:rb743) (TLSv1:ECDHE-RSA-AES256-SHA:256) id 1bQjuf-000Qef-K4 (Exim 4.86_36-e07b163) (return-path ); Sat, 23 Jul 2016 00:31:25 +0100 Date: Sat, 23 Jul 2016 00:29:36 +0100 From: Ruslan Bukin To: Ngie Cooper Cc: Bruce Evans , John Baldwin , Ruslan Bukin , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r303188 - head/share/mk Message-ID: <20160722232936.GA2631@bsdpad.com> References: <201607221500.u6MF0c3S037470@repo.freebsd.org> <1980140.IgFQbb5iVz@ralph.baldwin.cx> <20160723073428.K1265@besplex.bde.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Sender: "R. Bukin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2016 23:31:29 -0000 On Fri, Jul 22, 2016 at 03:20:51PM -0700, Ngie Cooper wrote: > On Fri, Jul 22, 2016 at 2:57 PM, Bruce Evans wrote: > ... > >>> +# GCC 6.1.0 > >>> +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 60100 > >>> +CWARNFLAGS+= -Wno-error=unused-const-variable= > >>> -Wno-error=nonnull-compare -Wno-error=shift-negative-value > >>> -Wno-error=misleading-indentation -Wno-error=tautological-compare > >>> +.endif > >> > >> > >> Extra trailing = in the first one as well? > > > > I don't see one. I see only unreadably long lines containing unreadably > > unordered flags. Perhaps your mail client mangled the line splitting, > > but the above quite displays OK in mutt and vi here (except mutt makes > > the line wrapping especially ugly by highlighting it). > > Look for "-Wno-error=unused-const-variable=". I copy-pasted this from compiler error message: /home/rb743/dev/freebsd-riscv/lib/libc/isc/ev_timers.c:23:19: error: 'rcsid' defined but not used [-Werror=unused-const-variable=] static const char rcsid[] = "$Id: ev_timers.c,v 1.6 2005/04/27 04:56:36 sra Exp $"; I am not sure yet why compiler set extra trailing = for some errors only Ruslan From owner-svn-src-all@freebsd.org Sat Jul 23 00:26:00 2016 Return-Path: Delivered-To: svn-src-all@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 434F2BA2509; Sat, 23 Jul 2016 00:26:00 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id AEC50171C; Sat, 23 Jul 2016 00:25:59 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c110-21-100-149.carlnfd1.nsw.optusnet.com.au [110.21.100.149]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id D12583C554B; Sat, 23 Jul 2016 10:25:48 +1000 (AEST) Date: Sat, 23 Jul 2016 10:25:48 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Ngie Cooper cc: Bruce Evans , John Baldwin , Ruslan Bukin , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r303188 - head/share/mk In-Reply-To: Message-ID: <20160723100100.K1644@besplex.bde.org> References: <201607221500.u6MF0c3S037470@repo.freebsd.org> <1980140.IgFQbb5iVz@ralph.baldwin.cx> <20160723073428.K1265@besplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=OtmysHLt c=1 sm=1 tr=0 a=XDAe9YG+7EcdVXYrgT+/UQ==:117 a=XDAe9YG+7EcdVXYrgT+/UQ==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=PO7r1zJSAAAA:8 a=khO1dhh0rlZb77YnPP0A:9 a=CjuIK1q_8ugA:10 a=Oa0T6EYmKFNB-xRHvYM1:22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 00:26:00 -0000 On Fri, 22 Jul 2016, Ngie Cooper wrote: > On Fri, Jul 22, 2016 at 2:57 PM, Bruce Evans wrote: > ... >>>> +# GCC 6.1.0 >>>> +.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 60100 >>>> +CWARNFLAGS+= -Wno-error=unused-const-variable= >>>> -Wno-error=nonnull-compare -Wno-error=shift-negative-value >>>> -Wno-error=misleading-indentation -Wno-error=tautological-compare >>>> +.endif >>> >>> >>> Extra trailing = in the first one as well? >> >> I don't see one. I see only unreadably long lines containing unreadably >> unordered flags. Perhaps your mail client mangled the line splitting, >> but the above quite displays OK in mutt and vi here (except mutt makes >> the line wrapping especially ugly by highlighting it). > > Look for "-Wno-error=unused-const-variable=". It is not trailing :-). It is only trailing in the above quote and apparently in the mail as seen by jhb because some mail programs mangle the formatting worse than others. In the above quote as seen by me in EDITOR=vi, the long line is split and each part is quoted. But in the previous quote, the line wasn't split. Since it was unreadable by me, I used the editor search function to check if it had a trailing '=' using a regexp, and none was found. The corresponding line for gcc 5.2.0 in bsd.sys.mk has the same quality. The '='s in the correct part of the syntax are not very good either. I think they break our policy that all warnings are fatal unless NO_WERROR is set. Already clang allows too many things to compile without even warnings. I think this allows them to compile with gcc's stricter warnings, but only with newer gcc's. NO_WERROR is too global, but is at least easy to understand. Bruce From owner-svn-src-all@freebsd.org Sat Jul 23 01:21:59 2016 Return-Path: Delivered-To: svn-src-all@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 7F34ABA2F97; Sat, 23 Jul 2016 01:21:59 +0000 (UTC) (envelope-from ache@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 5A9BA1228; Sat, 23 Jul 2016 01:21:59 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6N1LwmF077832; Sat, 23 Jul 2016 01:21:58 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6N1LwA8077831; Sat, 23 Jul 2016 01:21:58 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607230121.u6N1LwA8077831@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Sat, 23 Jul 2016 01:21:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303208 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 01:21:59 -0000 Author: ache Date: Sat Jul 23 01:21:58 2016 New Revision: 303208 URL: https://svnweb.freebsd.org/changeset/base/303208 Log: 1) We need the original pattern (in the next round of changes) not only in case it fully constructed, but for half-constructed too, so have no other choice to pass original pattern from glob() down to globextend() instead of attempt to reconstruct I implement previously. 2) Instead of copy&paste the same big enough code, make function for it: globfinal(). Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Fri Jul 22 23:13:25 2016 (r303207) +++ head/lib/libc/gen/glob.c Sat Jul 23 01:21:58 2016 (r303208) @@ -145,11 +145,12 @@ typedef uint_fast64_t Char; #define M_RNG META(L'-') #define M_SET META(L'[') #define ismeta(c) (((c)&M_QUOTE) != 0) +#ifdef DEBUG #define isprot(c) (((c)&M_PROTECT) != 0) - +#endif static int compare(const void *, const void *); -static int g_Ctoc(const Char *, char *, size_t, int); +static int g_Ctoc(const Char *, char *, size_t); static int g_lstat(Char *, struct stat *, glob_t *); static DIR *g_opendir(Char *, glob_t *); static const Char *g_strchr(const Char *, wchar_t); @@ -157,19 +158,24 @@ static const Char *g_strchr(const Char * static Char *g_strcat(Char *, const Char *); #endif static int g_stat(Char *, struct stat *, glob_t *); -static int glob0(const Char *, glob_t *, struct glob_limit *, int); +static int glob0(const Char *, glob_t *, struct glob_limit *, + const char *); static int glob1(Char *, glob_t *, struct glob_limit *); static int glob2(Char *, Char *, Char *, Char *, glob_t *, struct glob_limit *); static int glob3(Char *, Char *, Char *, Char *, Char *, glob_t *, struct glob_limit *); -static int globextend(const Char *, glob_t *, struct glob_limit *, int); +static int globextend(const Char *, glob_t *, struct glob_limit *, + const char *); static const Char * globtilde(const Char *, Char *, size_t, glob_t *); -static int globexp0(const Char *, glob_t *, struct glob_limit *); +static int globexp0(const Char *, glob_t *, struct glob_limit *, + const char *); static int globexp1(const Char *, glob_t *, struct glob_limit *); static int globexp2(const Char *, const Char *, glob_t *, struct glob_limit *); +static int globfinal(glob_t *, struct glob_limit *, size_t, + const char *); static int match(Char *, Char *, Char *); #ifdef DEBUG static void qprintf(const char *, Char *); @@ -247,14 +253,14 @@ glob(const char * __restrict pattern, in *bufnext = EOS; if (flags & GLOB_BRACE) - return (globexp0(patbuf, pglob, &limit)); + return (globexp0(patbuf, pglob, &limit, pattern)); else - return (glob0(patbuf, pglob, &limit, 1)); + return (glob0(patbuf, pglob, &limit, pattern)); } static int -globexp0(const Char *pattern, glob_t *pglob, struct glob_limit *limit) -{ +globexp0(const Char *pattern, glob_t *pglob, struct glob_limit *limit, + const char *origpat) { int rv; size_t oldpathc; @@ -265,31 +271,15 @@ globexp0(const Char *pattern, glob_t *pg errno = 0; return (GLOB_NOSPACE); } - return (glob0(pattern, pglob, limit, 1)); + return (glob0(pattern, pglob, limit, origpat)); } oldpathc = pglob->gl_pathc; if ((rv = globexp1(pattern, pglob, limit)) != 0) return rv; - /* - * If there was no match we are going to append the pattern - * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was specified - * and the pattern did not contain any magic characters - * GLOB_NOMAGIC is there just for compatibility with csh. - */ - if (pglob->gl_pathc == oldpathc) { - if (((pglob->gl_flags & GLOB_NOCHECK) || - ((pglob->gl_flags & GLOB_NOMAGIC) && - !(pglob->gl_flags & GLOB_MAGCHAR)))) - return (globextend(pattern, pglob, limit, 1)); - else - return (GLOB_NOMATCH); - } - if (!(pglob->gl_flags & GLOB_NOSORT)) - qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, - pglob->gl_pathc - oldpathc, sizeof(char *), compare); - return (0); + + return (globfinal(pglob, limit, oldpathc, origpat)); } /* @@ -311,7 +301,7 @@ globexp1(const Char *pattern, glob_t *pg return (globexp2(ptr, pattern, pglob, limit)); } - return (glob0(pattern, pglob, limit, 0)); + return (glob0(pattern, pglob, limit, NULL)); } @@ -359,7 +349,7 @@ globexp2(const Char *ptr, const Char *pa /* Non matching braces; just glob the pattern */ if (i != 0 || *pe == EOS) - return (glob0(pattern, pglob, limit, 0)); + return (glob0(pattern, pglob, limit, NULL)); for (i = 0, pl = pm = ptr; pm <= pe; pm++) switch (*pm) { @@ -475,7 +465,7 @@ globtilde(const Char *pattern, Char *pat /* * Expand a ~user */ - if (g_Ctoc(patbuf, (char *)wbuf, sizeof(wbuf), 0)) + if (g_Ctoc(patbuf, (char *)wbuf, sizeof(wbuf))) return (NULL); if ((pwd = getpwnam((char *)wbuf)) == NULL) return (pattern); @@ -538,8 +528,7 @@ globtilde(const Char *pattern, Char *pat */ static int glob0(const Char *pattern, glob_t *pglob, struct glob_limit *limit, - int final) -{ + const char *origpat) { const Char *qpatnext; int err; size_t oldpathc; @@ -608,25 +597,33 @@ glob0(const Char *pattern, glob_t *pglob if ((err = glob1(patbuf, pglob, limit)) != 0) return(err); - if (final) { - /* - * If there was no match we are going to append the pattern - * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was specified - * and the pattern did not contain any magic characters - * GLOB_NOMAGIC is there just for compatibility with csh. - */ - if (pglob->gl_pathc == oldpathc) { - if (((pglob->gl_flags & GLOB_NOCHECK) || - ((pglob->gl_flags & GLOB_NOMAGIC) && - !(pglob->gl_flags & GLOB_MAGCHAR)))) - return (globextend(pattern, pglob, limit, 1)); - else - return (GLOB_NOMATCH); - } - if (!(pglob->gl_flags & GLOB_NOSORT)) - qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, - pglob->gl_pathc - oldpathc, sizeof(char *), compare); + if (origpat != NULL) + return (globfinal(pglob, limit, oldpathc, origpat)); + + return (0); +} + +static int +globfinal(glob_t *pglob, struct glob_limit *limit, size_t oldpathc, + const char *origpat) { + /* + * If there was no match we are going to append the origpat + * if GLOB_NOCHECK was specified or if GLOB_NOMAGIC was specified + * and the origpat did not contain any magic characters + * GLOB_NOMAGIC is there just for compatibility with csh. + */ + if (pglob->gl_pathc == oldpathc) { + if (origpat != NULL && ((pglob->gl_flags & GLOB_NOCHECK) || + ((pglob->gl_flags & GLOB_NOMAGIC) && + !(pglob->gl_flags & GLOB_MAGCHAR)))) + return (globextend(NULL, pglob, limit, origpat)); + else + return (GLOB_NOMATCH); } + if (!(pglob->gl_flags & GLOB_NOSORT)) + qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, + pglob->gl_pathc - oldpathc, sizeof(char *), compare); + return (0); } @@ -690,7 +687,7 @@ glob2(Char *pathbuf, Char *pathend, Char *pathend = EOS; } ++pglob->gl_matchc; - return (globextend(pathbuf, pglob, limit, 0)); + return (globextend(pathbuf, pglob, limit, NULL)); } /* Find end of next segment, copy tentatively to pathend. */ @@ -741,7 +738,7 @@ glob3(Char *pathbuf, Char *pathend, Char } *pathend = EOS; if (pglob->gl_errfunc != NULL && - g_Ctoc(pathbuf, buf, sizeof(buf), 0)) { + g_Ctoc(pathbuf, buf, sizeof(buf))) { errno = 0; return (GLOB_NOSPACE); } @@ -847,7 +844,7 @@ glob3(Char *pathbuf, Char *pathend, Char */ static int globextend(const Char *path, glob_t *pglob, struct glob_limit *limit, - int prot) + const char *origpat) { char **pathv; size_t i, newsize, len; @@ -874,17 +871,21 @@ globextend(const Char *path, glob_t *pgl } pglob->gl_pathv = pathv; - for (p = path; *p++ != EOS;) - continue; - len = MB_CUR_MAX * (size_t)(p - path); /* XXX overallocation */ - if (prot) - len += (size_t)(p - path) - 1; - if ((copy = malloc(len)) != NULL) { - if (g_Ctoc(path, copy, len, prot)) { - free(copy); - errno = 0; - return (GLOB_NOSPACE); + if (origpat != NULL) + copy = strdup(origpat); + else { + for (p = path; *p++ != EOS;) + continue; + len = MB_CUR_MAX * (size_t)(p - path); /* XXX overallocation */ + if ((copy = malloc(len)) != NULL) { + if (g_Ctoc(path, copy, len)) { + free(copy); + errno = 0; + return (GLOB_NOSPACE); + } } + } + if (copy != NULL) { limit->l_string_cnt += strlen(copy) + 1; if ((pglob->gl_flags & GLOB_LIMIT) && limit->l_string_cnt >= GLOB_LIMIT_STRING) { @@ -981,7 +982,7 @@ g_opendir(Char *str, glob_t *pglob) if (*str == EOS) strcpy(buf, "."); else { - if (g_Ctoc(str, buf, sizeof(buf), 0)) { + if (g_Ctoc(str, buf, sizeof(buf))) { errno = ENAMETOOLONG; return (NULL); } @@ -998,7 +999,7 @@ g_lstat(Char *fn, struct stat *sb, glob_ { char buf[MAXPATHLEN + MB_LEN_MAX - 1]; - if (g_Ctoc(fn, buf, sizeof(buf), 0)) { + if (g_Ctoc(fn, buf, sizeof(buf))) { errno = ENAMETOOLONG; return (-1); } @@ -1012,7 +1013,7 @@ g_stat(Char *fn, struct stat *sb, glob_t { char buf[MAXPATHLEN + MB_LEN_MAX - 1]; - if (g_Ctoc(fn, buf, sizeof(buf), 0)) { + if (g_Ctoc(fn, buf, sizeof(buf))) { errno = ENAMETOOLONG; return (-1); } @@ -1033,31 +1034,23 @@ g_strchr(const Char *str, wchar_t ch) } static int -g_Ctoc(const Char *str, char *buf, size_t len, int prot) +g_Ctoc(const Char *str, char *buf, size_t len) { mbstate_t mbs; size_t clen; - Char Ch; - Ch = *str; memset(&mbs, 0, sizeof(mbs)); while (len >= MB_CUR_MAX) { - if (prot && isprot(Ch)) { - Ch = UNPROT(Ch); - *buf++ = '\\'; - len--; - continue; - } - clen = wcrtomb(buf, CHAR(Ch), &mbs); + clen = wcrtomb(buf, CHAR(*str), &mbs); if (clen == (size_t)-1) { /* XXX See initial comment #2. */ - *buf = (char)CHAR(Ch); + *buf = (char)CHAR(*str); clen = 1; memset(&mbs, 0, sizeof(mbs)); } - if (CHAR(Ch) == EOS) + if (CHAR(*str) == EOS) return (0); - Ch = *++str; + str++; buf += clen; len -= clen; } From owner-svn-src-all@freebsd.org Sat Jul 23 01:24:43 2016 Return-Path: Delivered-To: svn-src-all@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 628EDBA000F; Sat, 23 Jul 2016 01:24:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 395511472; Sat, 23 Jul 2016 01:24:43 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [IPv6:::1]) by freefall.freebsd.org (Postfix) with ESMTP id E7D7314F5; Sat, 23 Jul 2016 01:24:42 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mail.xzibition.com (localhost [172.31.3.2]) by mail.xzibition.com (Postfix) with ESMTP id 926C22363A; Sat, 23 Jul 2016 01:24:42 +0000 (UTC) X-Virus-Scanned: amavisd-new at mail.xzibition.com Received: from mail.xzibition.com ([172.31.3.2]) by mail.xzibition.com (mail.xzibition.com [172.31.3.2]) (amavisd-new, port 10026) with LMTP id WGdVMV_FUfS8; Sat, 23 Jul 2016 01:24:39 +0000 (UTC) Subject: Re: svn commit: r303188 - head/share/mk DKIM-Filter: OpenDKIM Filter v2.9.2 mail.xzibition.com 8EC5123634 To: Bruce Evans , Ngie Cooper References: <201607221500.u6MF0c3S037470@repo.freebsd.org> <1980140.IgFQbb5iVz@ralph.baldwin.cx> <20160723073428.K1265@besplex.bde.org> <20160723100100.K1644@besplex.bde.org> Cc: John Baldwin , Ruslan Bukin , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" From: Bryan Drewery Openpgp: id=F9173CB2C3AAEA7A5C8A1F0935D771BB6E4697CF; url=http://www.shatow.net/bryan/bryan2.asc Organization: FreeBSD Message-ID: Date: Fri, 22 Jul 2016 18:24:41 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20160723100100.K1644@besplex.bde.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="hWg8axHEw5p9tjwWoIrq85ucH17TTiRqs" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 01:24:43 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --hWg8axHEw5p9tjwWoIrq85ucH17TTiRqs Content-Type: multipart/mixed; boundary="3KrF1axrX0xGX63RMlHQPaAmMCHPOLCLf" From: Bryan Drewery To: Bruce Evans , Ngie Cooper Cc: John Baldwin , Ruslan Bukin , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Message-ID: Subject: Re: svn commit: r303188 - head/share/mk References: <201607221500.u6MF0c3S037470@repo.freebsd.org> <1980140.IgFQbb5iVz@ralph.baldwin.cx> <20160723073428.K1265@besplex.bde.org> <20160723100100.K1644@besplex.bde.org> In-Reply-To: <20160723100100.K1644@besplex.bde.org> --3KrF1axrX0xGX63RMlHQPaAmMCHPOLCLf Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 7/22/2016 5:25 PM, Bruce Evans wrote: > On Fri, 22 Jul 2016, Ngie Cooper wrote: >=20 >> On Fri, Jul 22, 2016 at 2:57 PM, Bruce Evans >> wrote: >> ... >>>>> +# GCC 6.1.0 >>>>> +.if ${COMPILER_TYPE} =3D=3D "gcc" && ${COMPILER_VERSION} >=3D 6010= 0 >>>>> +CWARNFLAGS+=3D -Wno-error=3Dunused-const-variable=3D >>>>> -Wno-error=3Dnonnull-compare -Wno-error=3Dshift-negative-value >>>>> -Wno-error=3Dmisleading-indentation -Wno-error=3Dtautological-compa= re >>>>> +.endif >>>> >>>> >>>> Extra trailing =3D in the first one as well? >>> >>> I don't see one. I see only unreadably long lines containing unreada= bly >>> unordered flags. Perhaps your mail client mangled the line splitting= , >>> but the above quite displays OK in mutt and vi here (except mutt make= s >>> the line wrapping especially ugly by highlighting it). >> >> Look for "-Wno-error=3Dunused-const-variable=3D". >=20 > It is not trailing :-). It is only trailing in the above quote and > apparently in the mail as seen by jhb because some mail programs mangle= > the formatting worse than others. In the above quote as seen by me > in EDITOR=3Dvi, the long line is split and each part is quoted. But in= > the previous quote, the line wasn't split. Since it was unreadable > by me, I used the editor search function to check if it had a trailing > '=3D' using a regexp, and none was found. It's not a mail issue. It is in the actual file. See https://svnweb.freebsd.org/base/head/share/mk/bsd.sys.mk?r1=3D303188&r2=3D= 303187&pathrev=3D303188 and https://svnweb.freebsd.org/base/head/share/mk/bsd.sys.mk?revision=3D30318= 8&view=3Dmarkup&pathrev=3D303188#l119 Specifically "-Wno-error=3Dunused-const-variable=3D", the first value. --=20 Regards, Bryan Drewery --3KrF1axrX0xGX63RMlHQPaAmMCHPOLCLf-- --hWg8axHEw5p9tjwWoIrq85ucH17TTiRqs Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBAgAGBQJXksdZAAoJEDXXcbtuRpfPnYkIANN/gpwkavD5NUHntyP7F1DW e9r3K8caZkOulpN0MYVdlHe6NP1K5ktLS/JDrM/4+iByNAuBIYI9BxCfbtGP8UVA Qm1a0Zj+VGtK0AVm1P4fAz6i0ZZG5FNdeOf4vDDMNH+/We9y79kLlIhDHLWRM9T8 5fKQbIiIRDQOIbV1ZJ9NNdImbG931hSkA/dFQSDpUckNykIbK9pLGdP/NyHeGJ5Y J6y/dJThxEMZjcXuODL/tFoxUmQ8t4fFb/L+baZ1cSu1Bb4jL8R3jWaGKvo+l4EM uQkM4fGZ+hg5YKy8tfzomIBooo+PwLXnhgq6EiGmVKYmIoVnHhhgFTU31j0gE9o= =UudZ -----END PGP SIGNATURE----- --hWg8axHEw5p9tjwWoIrq85ucH17TTiRqs-- From owner-svn-src-all@freebsd.org Sat Jul 23 02:27:43 2016 Return-Path: Delivered-To: svn-src-all@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 5E27EBA0CFC; Sat, 23 Jul 2016 02:27:43 +0000 (UTC) (envelope-from jhibbits@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 14D071B84; Sat, 23 Jul 2016 02:27:43 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6N2Rga3002224; Sat, 23 Jul 2016 02:27:42 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6N2Rgiw002223; Sat, 23 Jul 2016 02:27:42 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <201607230227.u6N2Rgiw002223@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 23 Jul 2016 02:27:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303209 - head/sys/powerpc/booke X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 02:27:43 -0000 Author: jhibbits Date: Sat Jul 23 02:27:42 2016 New Revision: 303209 URL: https://svnweb.freebsd.org/changeset/base/303209 Log: Use label math instead of hard-coding offsets for return addresses. Though the chances of the code in these sections changing are low, future-proof the sections and use label math. Renumber the surrounding areas to avoid duplicate label numbers. Modified: head/sys/powerpc/booke/locore.S Modified: head/sys/powerpc/booke/locore.S ============================================================================== --- head/sys/powerpc/booke/locore.S Sat Jul 23 01:21:58 2016 (r303208) +++ head/sys/powerpc/booke/locore.S Sat Jul 23 02:27:42 2016 (r303209) @@ -171,7 +171,7 @@ __start: ori %r3, %r3, (PSL_IS | PSL_DS) bl 2f 2: mflr %r4 - addi %r4, %r4, 20 + addi %r4, %r4, (3f - 2b) mtspr SPR_SRR0, %r4 mtspr SPR_SRR1, %r3 rfi /* Switch context */ @@ -179,6 +179,7 @@ __start: /* * Invalidate initial entry */ +3: mr %r3, %r29 bl tlb1_inval_entry @@ -224,7 +225,7 @@ __start: rlwinm %r4, %r4, 0, 8, 31 /* Current offset from kernel load address */ rlwinm %r3, %r3, 0, 0, 19 add %r4, %r4, %r3 /* Convert to kernel virtual address */ - addi %r4, %r4, 36 + addi %r4, %r4, (5f - 4b) li %r3, PSL_DE /* Note AS=0 */ mtspr SPR_SRR0, %r4 mtspr SPR_SRR1, %r3 @@ -233,6 +234,7 @@ __start: /* * Invalidate temp mapping */ +5: mr %r3, %r28 bl tlb1_inval_entry @@ -362,7 +364,7 @@ bp_kernload: ori %r3, %r3, (PSL_IS | PSL_DS) bl 3f 3: mflr %r4 - addi %r4, %r4, 20 + addi %r4, %r4, (4f - 3b) mtspr SPR_SRR0, %r4 mtspr SPR_SRR1, %r3 rfi /* Switch context */ @@ -370,6 +372,7 @@ bp_kernload: /* * Invalidate initial entry */ +4: mr %r3, %r29 bl tlb1_inval_entry @@ -395,10 +398,10 @@ bp_kernload: isync /* Retrieve kernel load [physical] address from bp_kernload */ - bl 4f + bl 5f .long bp_kernload .long __boot_page -4: mflr %r3 +5: mflr %r3 lwz %r4, 0(%r3) lwz %r5, 4(%r3) rlwinm %r3, %r3, 0, 0, 19 @@ -414,15 +417,16 @@ bp_kernload: msync /* Switch to the final mapping */ - bl 5f -5: mflr %r3 + bl 6f +6: mflr %r3 rlwinm %r3, %r3, 0, 0xfff /* Offset from boot page start */ add %r3, %r3, %r5 /* Make this virtual address */ - addi %r3, %r3, 32 + addi %r3, %r3, (7f - 6b) li %r4, 0 /* Note AS=0 */ mtspr SPR_SRR0, %r3 mtspr SPR_SRR1, %r4 rfi +7: /* * At this point we're running at virtual addresses KERNBASE and beyond so From owner-svn-src-all@freebsd.org Sat Jul 23 03:28:07 2016 Return-Path: Delivered-To: svn-src-all@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 F3B68BA263E; Sat, 23 Jul 2016 03:28:06 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail110.syd.optusnet.com.au (mail110.syd.optusnet.com.au [211.29.132.97]) by mx1.freebsd.org (Postfix) with ESMTP id BAE8D16AC; Sat, 23 Jul 2016 03:28:06 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c110-21-100-149.carlnfd1.nsw.optusnet.com.au [110.21.100.149]) by mail110.syd.optusnet.com.au (Postfix) with ESMTPS id EC56078139C; Sat, 23 Jul 2016 13:28:01 +1000 (AEST) Date: Sat, 23 Jul 2016 13:28:00 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Justin Hibbits cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303209 - head/sys/powerpc/booke In-Reply-To: <201607230227.u6N2Rgiw002223@repo.freebsd.org> Message-ID: <20160723130540.Q2164@besplex.bde.org> References: <201607230227.u6N2Rgiw002223@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=VIkg5I7X c=1 sm=1 tr=0 a=XDAe9YG+7EcdVXYrgT+/UQ==:117 a=XDAe9YG+7EcdVXYrgT+/UQ==:17 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=HFGmMxYJA0FTgHnMFwcA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 03:28:07 -0000 On Sat, 23 Jul 2016, Justin Hibbits wrote: > Log: > Use label math instead of hard-coding offsets for return addresses. > > Though the chances of the code in these sections changing are low, future-proof > the sections and use label math. Not with numeric labels. > Renumber the surrounding areas to avoid duplicate label numbers. New numeric labels tend to move the addresses of old labels. Renumbering to give unique numeric labels more than defeats their reason for existence -- you have to manage them on every change to a label anywhere in the file (and perhaps in macros and included files). You never get a error for a duplicated numeric label. Non-unique numeric labels are also a good obfuscation. Given a branch to 1f or 1b, grepping the file for 1: may find many labels 1:. You have to examine all the labels named 1: or search only near the jump to see where 1 is. Its name is supposed to not matter, but perhaps it does. Numeric labels should only be used in macros, and then only when the macro processor is too feeble to support generating unique non-numeric labels. Standard cpp is too feeble for this. I managed to remove all numeric labels in i386/exception.s (except in macros and included files), and none came back. amd64/exception.S has 19 of them, 7 with the additional style bug of being on a line with a statement or comment. Bruce From owner-svn-src-all@freebsd.org Sat Jul 23 03:49:03 2016 Return-Path: Delivered-To: svn-src-all@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 D571ABA28BE; Sat, 23 Jul 2016 03:49:03 +0000 (UTC) (envelope-from ache@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 8D29C1E30; Sat, 23 Jul 2016 03:49:03 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6N3n2WR032501; Sat, 23 Jul 2016 03:49:02 GMT (envelope-from ache@FreeBSD.org) Received: (from ache@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6N3n2VN032500; Sat, 23 Jul 2016 03:49:02 GMT (envelope-from ache@FreeBSD.org) Message-Id: <201607230349.u6N3n2VN032500@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ache set sender to ache@FreeBSD.org using -f From: "Andrey A. Chernov" Date: Sat, 23 Jul 2016 03:49:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303210 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 03:49:03 -0000 Author: ache Date: Sat Jul 23 03:49:02 2016 New Revision: 303210 URL: https://svnweb.freebsd.org/changeset/base/303210 Log: 1) POSIX defines well when GLOB_NOMATCH or original pattern (instead) should be returned, so we can't return GLOB_NOMATCH blindly just because we dislike something in the pattern. 2) Remove extra condition. Modified: head/lib/libc/gen/glob.c Modified: head/lib/libc/gen/glob.c ============================================================================== --- head/lib/libc/gen/glob.c Sat Jul 23 02:27:42 2016 (r303209) +++ head/lib/libc/gen/glob.c Sat Jul 23 03:49:02 2016 (r303210) @@ -217,7 +217,8 @@ glob(const char * __restrict pattern, in while (bufnext <= bufend) { clen = mbrtowc(&wc, patnext, MB_LEN_MAX, &mbs); if (clen == (size_t)-1 || clen == (size_t)-2) - return (GLOB_NOMATCH); + return (globfinal(pglob, &limit, + pglob->gl_pathc, pattern)); else if (clen == 0) { too_long = 0; break; @@ -239,7 +240,8 @@ glob(const char * __restrict pattern, in prot = 0; clen = mbrtowc(&wc, patnext, MB_LEN_MAX, &mbs); if (clen == (size_t)-1 || clen == (size_t)-2) - return (GLOB_NOMATCH); + return (globfinal(pglob, &limit, + pglob->gl_pathc, pattern)); else if (clen == 0) { too_long = 0; break; @@ -249,7 +251,7 @@ glob(const char * __restrict pattern, in } } if (too_long) - return (GLOB_NOMATCH); + return (globfinal(pglob, &limit, pglob->gl_pathc, pattern)); *bufnext = EOS; if (flags & GLOB_BRACE) @@ -613,9 +615,9 @@ globfinal(glob_t *pglob, struct glob_lim * GLOB_NOMAGIC is there just for compatibility with csh. */ if (pglob->gl_pathc == oldpathc) { - if (origpat != NULL && ((pglob->gl_flags & GLOB_NOCHECK) || + if ((pglob->gl_flags & GLOB_NOCHECK) || ((pglob->gl_flags & GLOB_NOMAGIC) && - !(pglob->gl_flags & GLOB_MAGCHAR)))) + !(pglob->gl_flags & GLOB_MAGCHAR))) return (globextend(NULL, pglob, limit, origpat)); else return (GLOB_NOMATCH); From owner-svn-src-all@freebsd.org Sat Jul 23 05:30:56 2016 Return-Path: Delivered-To: svn-src-all@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 9A33BBA0AE7; Sat, 23 Jul 2016 05:30:56 +0000 (UTC) (envelope-from kib@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 6C0011A68; Sat, 23 Jul 2016 05:30:56 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6N5UtLH069561; Sat, 23 Jul 2016 05:30:55 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6N5UtVJ069556; Sat, 23 Jul 2016 05:30:55 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607230530.u6N5UtVJ069556@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 23 Jul 2016 05:30:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303211 - in head: share/man/man9 sys/kern sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 05:30:56 -0000 Author: kib Date: Sat Jul 23 05:30:55 2016 New Revision: 303211 URL: https://svnweb.freebsd.org/changeset/base/303211 Log: Implement mtx_trylock_spin(9). Discussed with: bde Reviewed by: jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D7192 Modified: head/share/man/man9/Makefile head/share/man/man9/mutex.9 head/sys/kern/kern_mutex.c head/sys/sys/mutex.h Modified: head/share/man/man9/Makefile ============================================================================== --- head/share/man/man9/Makefile Sat Jul 23 03:49:02 2016 (r303210) +++ head/share/man/man9/Makefile Sat Jul 23 05:30:55 2016 (r303211) @@ -1181,6 +1181,8 @@ MLINKS+=mutex.9 mtx_assert.9 \ mutex.9 MTX_SYSINIT.9 \ mutex.9 mtx_trylock.9 \ mutex.9 mtx_trylock_flags.9 \ + mutex.9 mtx_trylock_spin.9 \ + mutex.9 mtx_trylock_spin_flags.9 \ mutex.9 mtx_unlock.9 \ mutex.9 mtx_unlock_flags.9 \ mutex.9 mtx_unlock_spin.9 \ Modified: head/share/man/man9/mutex.9 ============================================================================== --- head/share/man/man9/mutex.9 Sat Jul 23 03:49:02 2016 (r303210) +++ head/share/man/man9/mutex.9 Sat Jul 23 05:30:55 2016 (r303211) @@ -28,7 +28,7 @@ .\" from BSDI $Id: mutex.4,v 1.1.2.3 1998/04/27 22:53:13 ewv Exp $ .\" $FreeBSD$ .\" -.Dd December 13, 2014 +.Dd July 18, 2016 .Dt MUTEX 9 .Os .Sh NAME @@ -41,6 +41,8 @@ .Nm mtx_lock_spin_flags , .Nm mtx_trylock , .Nm mtx_trylock_flags , +.Nm mtx_trylock_spin , +.Nm mtx_trylock_spin_flags , .Nm mtx_unlock , .Nm mtx_unlock_spin , .Nm mtx_unlock_flags , @@ -73,6 +75,10 @@ .Ft int .Fn mtx_trylock_flags "struct mtx *mutex" "int flags" .Ft void +.Fn mtx_trylock_spin "struct mtx *mutex" +.Ft int +.Fn mtx_trylock_spin_flags "struct mtx *mutex" "int flags" +.Ft void .Fn mtx_unlock "struct mtx *mutex" .Ft void .Fn mtx_unlock_spin "struct mtx *mutex" @@ -249,26 +255,33 @@ argument, then the mutex can be acquired .Pp The .Fn mtx_trylock -attempts to acquire the +and +.Fn mtx_trylock_spin +functions attempt to acquire a .Dv MTX_DEF -mutex pointed to by +or +.Dv MTX_SPIN +mutex, respectively, pointed to by .Fa mutex . -If the mutex cannot be immediately acquired -.Fn mtx_trylock -will return 0, -otherwise the mutex will be acquired -and a non-zero value will be returned. +If the mutex cannot be immediately acquired, the functions will return 0, +otherwise the mutex will be acquired and a non-zero value will be returned. .Pp The .Fn mtx_trylock_flags -function has the same behavior as +and +.Fn mtx_trylock_spin_flags +functions have the same behavior as .Fn mtx_trylock -but should be used when the caller desires to pass in a +and +.Fn mtx_trylock_spin +respectively, but should be used when the caller desires to pass in a .Fa flags value. Presently, the only valid value in the .Fn mtx_trylock -case is +and +.Fn mtx_trylock_spin +cases is .Dv MTX_QUIET , and its effects are identical to those described for .Fn mtx_lock @@ -447,6 +460,13 @@ while any spin lock is held. .It Dv MTX_RECURSE Specifies that the initialized mutex is allowed to recurse. This bit must be present if the mutex is permitted to recurse. +.Pp +Note that neither +.Fn mtx_trylock +nor +.Fn mtx_trylock_spin +support recursion; +that is, attempting to acquire an already-owned mutex fails. .It Dv MTX_QUIET Do not log any mutex operations for this lock. .It Dv MTX_NOWITNESS @@ -534,3 +554,7 @@ functions appeared in .Bsx 4.1 and .Fx 5.0 . +The +.Fn mtx_trylock_spin +function was added in +.Fx 12.0 . Modified: head/sys/kern/kern_mutex.c ============================================================================== --- head/sys/kern/kern_mutex.c Sat Jul 23 03:49:02 2016 (r303210) +++ head/sys/kern/kern_mutex.c Sat Jul 23 05:30:55 2016 (r303211) @@ -281,6 +281,34 @@ __mtx_lock_spin_flags(volatile uintptr_t WITNESS_LOCK(&m->lock_object, opts | LOP_EXCLUSIVE, file, line); } +int +__mtx_trylock_spin_flags(volatile uintptr_t *c, int opts, const char *file, + int line) +{ + struct mtx *m; + + if (SCHEDULER_STOPPED()) + return (1); + + m = mtxlock2mtx(c); + + KASSERT(m->mtx_lock != MTX_DESTROYED, + ("mtx_trylock_spin() of destroyed mutex @ %s:%d", file, line)); + KASSERT(LOCK_CLASS(&m->lock_object) == &lock_class_mtx_spin, + ("mtx_trylock_spin() of sleep mutex %s @ %s:%d", + m->lock_object.lo_name, file, line)); + KASSERT((opts & MTX_RECURSE) == 0, + ("mtx_trylock_spin: unsupp. opt MTX_RECURSE on mutex %s @ %s:%d\n", + m->lock_object.lo_name, file, line)); + if (__mtx_trylock_spin(m, curthread, opts, file, line)) { + LOCK_LOG_TRY("LOCK", &m->lock_object, opts, 1, file, line); + WITNESS_LOCK(&m->lock_object, opts | LOP_EXCLUSIVE, file, line); + return (1); + } + LOCK_LOG_TRY("LOCK", &m->lock_object, opts, 0, file, line); + return (0); +} + void __mtx_unlock_spin_flags(volatile uintptr_t *c, int opts, const char *file, int line) Modified: head/sys/sys/mutex.h ============================================================================== --- head/sys/sys/mutex.h Sat Jul 23 03:49:02 2016 (r303210) +++ head/sys/sys/mutex.h Sat Jul 23 05:30:55 2016 (r303211) @@ -112,6 +112,8 @@ void __mtx_unlock_flags(volatile uintptr int line); void __mtx_lock_spin_flags(volatile uintptr_t *c, int opts, const char *file, int line); +int __mtx_trylock_spin_flags(volatile uintptr_t *c, int opts, + const char *file, int line); void __mtx_unlock_spin_flags(volatile uintptr_t *c, int opts, const char *file, int line); #if defined(INVARIANTS) || defined(INVARIANT_SUPPORT) @@ -152,6 +154,8 @@ void thread_lock_flags_(struct thread *, __mtx_unlock_flags(&(m)->mtx_lock, o, f, l) #define _mtx_lock_spin_flags(m, o, f, l) \ __mtx_lock_spin_flags(&(m)->mtx_lock, o, f, l) +#define _mtx_trylock_spin_flags(m, o, f, l) \ + __mtx_trylock_spin_flags(&(m)->mtx_lock, o, f, l) #define _mtx_unlock_spin_flags(m, o, f, l) \ __mtx_unlock_spin_flags(&(m)->mtx_lock, o, f, l) #if defined(INVARIANTS) || defined(INVARIANT_SUPPORT) @@ -212,6 +216,21 @@ void thread_lock_flags_(struct thread *, LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(spin__acquire, \ mp, 0, 0, file, line); \ } while (0) +#define __mtx_trylock_spin(mp, tid, opts, file, line) __extension__ ({ \ + uintptr_t _tid = (uintptr_t)(tid); \ + int _ret; \ + \ + spinlock_enter(); \ + if (((mp)->mtx_lock != MTX_UNOWNED || !_mtx_obtain_lock((mp), _tid))) {\ + spinlock_exit(); \ + _ret = 0; \ + } else { \ + LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(spin__acquire, \ + mp, 0, 0, file, line); \ + _ret = 1; \ + } \ + _ret; \ +}) #else /* SMP */ #define __mtx_lock_spin(mp, tid, opts, file, line) do { \ uintptr_t _tid = (uintptr_t)(tid); \ @@ -224,6 +243,20 @@ void thread_lock_flags_(struct thread *, (mp)->mtx_lock = _tid; \ } \ } while (0) +#define __mtx_trylock_spin(mp, tid, opts, file, line) __extension__ ({ \ + uintptr_t _tid = (uintptr_t)(tid); \ + int _ret; \ + \ + spinlock_enter(); \ + if ((mp)->mtx_lock != MTX_UNOWNED) { \ + spinlock_exit(); \ + _ret = 0; \ + } else { \ + (mp)->mtx_lock = _tid; \ + _ret = 1; \ + } \ + _ret; \ +}) #endif /* SMP */ /* Unlock a normal mutex. */ @@ -293,6 +326,10 @@ void thread_lock_flags_(struct thread *, * mtx_trylock_flags(m, opts) is used the same way as mtx_trylock() but accepts * relevant option flags `opts.' * + * mtx_trylock_spin(m) attempts to acquire MTX_SPIN mutex `m' but doesn't + * spin if it cannot. Rather, it returns 0 on failure and non-zero on + * success. It always returns failure for recursed lock attempts. + * * mtx_initialized(m) returns non-zero if the lock `m' has been initialized. * * mtx_owned(m) returns non-zero if the current thread owns the lock `m' @@ -302,6 +339,7 @@ void thread_lock_flags_(struct thread *, #define mtx_lock(m) mtx_lock_flags((m), 0) #define mtx_lock_spin(m) mtx_lock_spin_flags((m), 0) #define mtx_trylock(m) mtx_trylock_flags((m), 0) +#define mtx_trylock_spin(m) mtx_trylock_spin_flags((m), 0) #define mtx_unlock(m) mtx_unlock_flags((m), 0) #define mtx_unlock_spin(m) mtx_unlock_spin_flags((m), 0) @@ -335,6 +373,8 @@ extern struct mtx_pool *mtxpool_sleep; _mtx_unlock_flags((m), (opts), (file), (line)) #define mtx_lock_spin_flags_(m, opts, file, line) \ _mtx_lock_spin_flags((m), (opts), (file), (line)) +#define mtx_trylock_spin_flags_(m, opts, file, line) \ + _mtx_trylock_spin_flags((m), (opts), (file), (line)) #define mtx_unlock_spin_flags_(m, opts, file, line) \ _mtx_unlock_spin_flags((m), (opts), (file), (line)) #else /* LOCK_DEBUG == 0 && !MUTEX_NOINLINE */ @@ -344,6 +384,8 @@ extern struct mtx_pool *mtxpool_sleep; __mtx_unlock((m), curthread, (opts), (file), (line)) #define mtx_lock_spin_flags_(m, opts, file, line) \ __mtx_lock_spin((m), curthread, (opts), (file), (line)) +#define mtx_trylock_spin_flags_(m, opts, file, line) \ + __mtx_trylock_spin((m), curthread, (opts), (file), (line)) #define mtx_unlock_spin_flags_(m, opts, file, line) \ __mtx_unlock_spin((m)) #endif /* LOCK_DEBUG > 0 || MUTEX_NOINLINE */ @@ -369,6 +411,8 @@ extern struct mtx_pool *mtxpool_sleep; mtx_unlock_spin_flags_((m), (opts), LOCK_FILE, LOCK_LINE) #define mtx_trylock_flags(m, opts) \ mtx_trylock_flags_((m), (opts), LOCK_FILE, LOCK_LINE) +#define mtx_trylock_spin_flags(m, opts) \ + mtx_trylock_spin_flags_((m), (opts), LOCK_FILE, LOCK_LINE) #define mtx_assert(m, what) \ mtx_assert_((m), (what), __FILE__, __LINE__) From owner-svn-src-all@freebsd.org Sat Jul 23 05:49:20 2016 Return-Path: Delivered-To: svn-src-all@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 1B98EBA0D5E; Sat, 23 Jul 2016 05:49:20 +0000 (UTC) (envelope-from bdrewery@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 B854F119B; Sat, 23 Jul 2016 05:49:19 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6N5nInD076810; Sat, 23 Jul 2016 05:49:18 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6N5nIGm076807; Sat, 23 Jul 2016 05:49:18 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201607230549.u6N5nIGm076807@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Sat, 23 Jul 2016 05:49:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303212 - in head: etc/mtree tools/build/mk usr.sbin/chown/tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 05:49:20 -0000 Author: bdrewery Date: Sat Jul 23 05:49:18 2016 New Revision: 303212 URL: https://svnweb.freebsd.org/changeset/base/303212 Log: Move chown tests to proper path Sponsored by: EMC / Isilon Storage Division Modified: head/etc/mtree/BSD.tests.dist head/tools/build/mk/OptionalObsoleteFiles.inc head/usr.sbin/chown/tests/Makefile Modified: head/etc/mtree/BSD.tests.dist ============================================================================== --- head/etc/mtree/BSD.tests.dist Sat Jul 23 05:30:55 2016 (r303211) +++ head/etc/mtree/BSD.tests.dist Sat Jul 23 05:49:18 2016 (r303212) @@ -8,8 +8,6 @@ bin cat .. - chown - .. date .. dd @@ -652,6 +650,8 @@ .. .. usr.sbin + chown + .. etcupdate .. extattr Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Sat Jul 23 05:30:55 2016 (r303211) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Sat Jul 23 05:49:18 2016 (r303212) @@ -7419,6 +7419,9 @@ OLD_FILES+=usr/share/aclocal/atf-c.m4 OLD_FILES+=usr/share/aclocal/atf-common.m4 OLD_FILES+=usr/share/aclocal/atf-sh.m4 OLD_DIRS+=usr/share/aclocal +OLD_DIRS+=usr/tests/bin/chown +OLD_FILES+=usr/tests/bin/chown/Kyuafile +OLD_FILES+=usr/tests/bin/chown/chown-f_test OLD_FILES+=usr/tests/bin/chown/units_basics OLD_FILES+=usr/tests/bin/date/legacy_test OLD_FILES+=usr/tests/bin/sh/legacy_test Modified: head/usr.sbin/chown/tests/Makefile ============================================================================== --- head/usr.sbin/chown/tests/Makefile Sat Jul 23 05:30:55 2016 (r303211) +++ head/usr.sbin/chown/tests/Makefile Sat Jul 23 05:49:18 2016 (r303212) @@ -2,7 +2,7 @@ .include -TESTSDIR= ${TESTSBASE}/bin/chown +TESTSDIR= ${TESTSBASE}/usr.sbin/chown TAP_TESTS_SH= chown-f_test From owner-svn-src-all@freebsd.org Sat Jul 23 06:30:01 2016 Return-Path: Delivered-To: svn-src-all@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 96916BA152D; Sat, 23 Jul 2016 06:30:01 +0000 (UTC) (envelope-from kib@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 59B3B130E; Sat, 23 Jul 2016 06:30:01 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6N6U0Ep092039; Sat, 23 Jul 2016 06:30:00 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6N6U0bu092038; Sat, 23 Jul 2016 06:30:00 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607230630.u6N6U0bu092038@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 23 Jul 2016 06:30:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303213 - head/bin/ps X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 06:30:01 -0000 Author: kib Date: Sat Jul 23 06:30:00 2016 New Revision: 303213 URL: https://svnweb.freebsd.org/changeset/base/303213 Log: Addm missed required call to xo_finish() when only header is printed. Reported by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/bin/ps/ps.c Modified: head/bin/ps/ps.c ============================================================================== --- head/bin/ps/ps.c Sat Jul 23 05:49:18 2016 (r303212) +++ head/bin/ps/ps.c Sat Jul 23 06:30:00 2016 (r303213) @@ -612,6 +612,7 @@ main(int argc, char *argv[]) if (nkept == 0) { printheader(); + xo_finish(); exit(1); } From owner-svn-src-all@freebsd.org Sat Jul 23 08:02:47 2016 Return-Path: Delivered-To: svn-src-all@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 22BBABA2CCF; Sat, 23 Jul 2016 08:02:47 +0000 (UTC) (envelope-from kib@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 E6B0E1885; Sat, 23 Jul 2016 08:02:46 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6N82kXj028394; Sat, 23 Jul 2016 08:02:46 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6N82k8X028393; Sat, 23 Jul 2016 08:02:46 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607230802.u6N82k8X028393@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 23 Jul 2016 08:02:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303214 - stable/10/sys/kern X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 08:02:47 -0000 Author: kib Date: Sat Jul 23 08:02:45 2016 New Revision: 303214 URL: https://svnweb.freebsd.org/changeset/base/303214 Log: MFC r302936: Explicitely check for the valid range of file descriptor values. Modified: stable/10/sys/kern/kern_event.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/kern/kern_event.c ============================================================================== --- stable/10/sys/kern/kern_event.c Sat Jul 23 06:30:00 2016 (r303213) +++ stable/10/sys/kern/kern_event.c Sat Jul 23 08:02:45 2016 (r303214) @@ -1083,8 +1083,11 @@ kqueue_register(struct kqueue *kq, struc findkn: if (fops->f_isfd) { KASSERT(td != NULL, ("td is NULL")); - error = fget(td, kev->ident, - cap_rights_init(&rights, CAP_EVENT), &fp); + if (kev->ident > INT_MAX) + error = EBADF; + else + error = fget(td, kev->ident, + cap_rights_init(&rights, CAP_EVENT), &fp); if (error) goto done; From owner-svn-src-all@freebsd.org Sat Jul 23 08:06:51 2016 Return-Path: Delivered-To: svn-src-all@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 E14D2BA2DB9; Sat, 23 Jul 2016 08:06:51 +0000 (UTC) (envelope-from kib@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 B005D1A87; Sat, 23 Jul 2016 08:06:51 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6N86oS8028585; Sat, 23 Jul 2016 08:06:50 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6N86ox3028584; Sat, 23 Jul 2016 08:06:50 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607230806.u6N86ox3028584@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 23 Jul 2016 08:06:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r303215 - stable/9/sys/kern X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 08:06:52 -0000 Author: kib Date: Sat Jul 23 08:06:50 2016 New Revision: 303215 URL: https://svnweb.freebsd.org/changeset/base/303215 Log: MFC r302936: Explicitely check for the valid range of file descriptor values. Modified: stable/9/sys/kern/kern_event.c Directory Properties: stable/9/ (props changed) stable/9/sys/ (props changed) Modified: stable/9/sys/kern/kern_event.c ============================================================================== --- stable/9/sys/kern/kern_event.c Sat Jul 23 08:02:45 2016 (r303214) +++ stable/9/sys/kern/kern_event.c Sat Jul 23 08:06:50 2016 (r303215) @@ -986,7 +986,10 @@ kqueue_register(struct kqueue *kq, struc findkn: if (fops->f_isfd) { KASSERT(td != NULL, ("td is NULL")); - error = fget(td, kev->ident, CAP_POLL_EVENT, &fp); + if (kev->ident > INT_MAX) + error = EBADF; + else + error = fget(td, kev->ident, CAP_POLL_EVENT, &fp); if (error) goto done; From owner-svn-src-all@freebsd.org Sat Jul 23 08:23:58 2016 Return-Path: Delivered-To: svn-src-all@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 EA7A6B9F521; Sat, 23 Jul 2016 08:23:58 +0000 (UTC) (envelope-from kib@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 B19C212BB; Sat, 23 Jul 2016 08:23:58 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6N8NvIL035912; Sat, 23 Jul 2016 08:23:57 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6N8Nv37035911; Sat, 23 Jul 2016 08:23:57 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607230823.u6N8Nv37035911@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 23 Jul 2016 08:23:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303216 - stable/11/sys/kern X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 08:23:59 -0000 Author: kib Date: Sat Jul 23 08:23:57 2016 New Revision: 303216 URL: https://svnweb.freebsd.org/changeset/base/303216 Log: MFC r302936: Explicitely check for the valid range of file descriptor values. Approved by: re (gjb) Modified: stable/11/sys/kern/kern_event.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/kern_event.c ============================================================================== --- stable/11/sys/kern/kern_event.c Sat Jul 23 08:06:50 2016 (r303215) +++ stable/11/sys/kern/kern_event.c Sat Jul 23 08:23:57 2016 (r303216) @@ -1183,8 +1183,11 @@ kqueue_register(struct kqueue *kq, struc findkn: if (fops->f_isfd) { KASSERT(td != NULL, ("td is NULL")); - error = fget(td, kev->ident, - cap_rights_init(&rights, CAP_EVENT), &fp); + if (kev->ident > INT_MAX) + error = EBADF; + else + error = fget(td, kev->ident, + cap_rights_init(&rights, CAP_EVENT), &fp); if (error) goto done; From owner-svn-src-all@freebsd.org Sat Jul 23 10:19:11 2016 Return-Path: Delivered-To: svn-src-all@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 ACFE4BA1934; Sat, 23 Jul 2016 10:19:11 +0000 (UTC) (envelope-from bapt@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 7FC561949; Sat, 23 Jul 2016 10:19:11 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NAJAaB077921; Sat, 23 Jul 2016 10:19:10 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NAJAxg077919; Sat, 23 Jul 2016 10:19:10 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201607231019.u6NAJAxg077919@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sat, 23 Jul 2016 10:19:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303217 - in head/usr.sbin/pw: . tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 10:19:11 -0000 Author: bapt Date: Sat Jul 23 10:19:10 2016 New Revision: 303217 URL: https://svnweb.freebsd.org/changeset/base/303217 Log: Do not try to delete the home of the user if is is not a directory for example "/dev/null" PR: 211195 Submitted by: rday Reported by: eniorm MFC after: 1 day Modified: head/usr.sbin/pw/rm_r.c head/usr.sbin/pw/tests/pw_userdel.sh Modified: head/usr.sbin/pw/rm_r.c ============================================================================== --- head/usr.sbin/pw/rm_r.c Sat Jul 23 08:23:57 2016 (r303216) +++ head/usr.sbin/pw/rm_r.c Sat Jul 23 10:19:10 2016 (r303217) @@ -50,6 +50,9 @@ rm_r(int rootfd, const char *path, uid_t path++; dirfd = openat(rootfd, path, O_DIRECTORY); + if (dirfd == -1) { + return; + } d = fdopendir(dirfd); while ((e = readdir(d)) != NULL) { Modified: head/usr.sbin/pw/tests/pw_userdel.sh ============================================================================== --- head/usr.sbin/pw/tests/pw_userdel.sh Sat Jul 23 08:23:57 2016 (r303216) +++ head/usr.sbin/pw/tests/pw_userdel.sh Sat Jul 23 10:19:10 2016 (r303217) @@ -59,9 +59,18 @@ delete_numeric_name_body() { ${PW} userdel -n 4001 } +atf_test_case home_not_a_dir +home_not_a_dir_body() { + populate_root_etc_skel + touch ${HOME}/foo + atf_check ${RPW} useradd foo -d /foo + atf_check ${RPW} userdel foo -r +} + atf_init_test_cases() { atf_add_test_case rmuser_seperate_group atf_add_test_case user_do_not_try_to_delete_root_if_user_unknown atf_add_test_case delete_files atf_add_test_case delete_numeric_name + atf_add_test_case home_not_a_dir } From owner-svn-src-all@freebsd.org Sat Jul 23 10:45:27 2016 Return-Path: Delivered-To: svn-src-all@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 08135BA17C0; Sat, 23 Jul 2016 10:45:27 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mail.miracle.cz (mail.miracle.cz [193.84.128.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.miracle.cz", Issuer "Miracle Group Root CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 6F8E21EE1; Sat, 23 Jul 2016 10:45:26 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from [193.84.128.50] (meloun.ad.miracle.cz [193.84.128.50]) by mail.miracle.cz (Postfix) with ESMTPSA id 5BD8A3AC9C; Sat, 23 Jul 2016 12:45:18 +0200 (CEST) Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Nathan Whitehorn , Svatopluk Kraus , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578E0B5D.3070105@FreeBSD.org> <578F6075.7010500@FreeBSD.org> <05a80ac6-4285-ec9d-36e9-2f92c609f746@freebsd.org> <57907B0F.9070204@FreeBSD.org> <9d2a224c-b787-2875-5984-a7a2354e8695@freebsd.org> From: Michal Meloun X-Enigmail-Draft-Status: N1110 Message-ID: <57934ABD.6010807@FreeBSD.org> Date: Sat, 23 Jul 2016 12:45:17 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <9d2a224c-b787-2875-5984-a7a2354e8695@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.miracle.cz); Sat, 23 Jul 2016 12:45:18 +0200 (CEST) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 10:45:27 -0000 Dne 21.07.2016 v 17:53 Nathan Whitehorn napsal(a): > > > On 07/21/16 00:34, Michal Meloun wrote: >> Dne 20.07.2016 v 17:45 Nathan Whitehorn napsal(a): >>> >>> >>> On 07/20/16 04:28, Michal Meloun wrote: >>>> Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): >>>>> >>>>> >>>>> On 07/19/16 04:13, Michal Meloun wrote: >>>>>> Dne 19.07.2016 v 2:11 Nathan Whitehorn napsal(a): >>>>>> Hi Nathan, >>>>>> I’m afraid that skra is on vacation, for next 2 weeks (at >>>>>> minimum), so >>>>>> please don’t expect quick response. >>>>>> >>>>>>> Could you please describe what this change is in more detail? >>>>>> Short description is appended. >>>>>> >>>>>>> It breaks a lot of encapsulations we have worked very hard to >>>>>>> maintain, >>>>>>> moves ARM code into MI parts of the kernel, and the OFW parts >>>>>>> violate >>>>>>> IEEE 1275 (the Open Firmware standard). In particular, there is no >>>>>>> guarantee that the interrupts for a newbus (or OF) device are >>>>>>> encoded in >>>>>>> a property called "interrupts" (or, indeed, in any property at >>>>>>> all) on >>>>>>> that node and there are many, many device trees where that is >>>>>>> not the >>>>>>> case (e.g. ones with interrupt maps, as well as Apple hardware). By >>>>>>> putting that knowledge into the OF root bus device, which we >>>>>>> have tried >>>>>>> to keep it out of, this enforces a standard that doesn't >>>>>>> actually exist. >>>>>> Imho, this patch doesn’t change anything in this area. Only >>>>>> handling of >>>>>> “interrupts†property is changed, all other cases are unchanged (I >>>>>> hope). Also, INTRNG code is currently shared by ARM, ARM64 and >>>>>> MIPS. >>>>> >>>>> But "interrupts" isn't a generic part of OF. This makes it one, >>>>> incorrectly. >>>> How? Can you be little more exact ? >>> >>> Because it puts knowledge into ofwbus that expects that children at >>> arbitrary levels of nesting have interrupts defined by an >>> "interrupts" property. You could patch this through on sub-devices, >>> of course, but that's already done correctly by the existing >>> ofw_bus_map_intr() code in a much more robust way that doesn't >>> involve trying to guess how sub-buses and devices have chosen to >>> allocate resources. Why reinvent the wheel all the way through the >>> bus hierarchy? >> Nope, the code only expect that „interrupts" property is default way >> hot to get interrupt description. Any device or bus in the hierarchy >> can fill appropriate resource list, or terminate call at any level. > > "interrupts" should not be the default -- it's part of the OF bindings > for the bus and is used (notably) by simplebus. The issue of > cross-correlating RIDs is a much larger problem, however. > Can we postpone this problem while, please? > [snip] >>> >>>>>> >>>>>> The patch simply postpones reading of interrupt property to >>>>>> bus_alloc_resource() (called by consumer driver) time. >>>>>> >>>>>> Due to this, we can: >>>>>> - parse interrupt property. The interrupt driver must exist >>>>>> at this time. >>>>> >>>>> This only works with some types of interrupt properties, not all, >>>>> and breaks if the interrupt driver hasn't attached yet (which it >>>>> can't be guaranteed to -- some PPC systems have interrupt drivers >>>>> that live on the PCI bus, for example). >>>> How you can allocate (and reserve it in rman) interrupt if is not >>>> mapped (so you have not real IRQ number for it). Just for notice - >>>> multiple virtual IRQs can be mapped into single real IRQ. >>> >>> The core idea is to think of the full interrupt specifier -- the >>> interrupt parent and the full byte string in the device tree -- as >>> the IRQ rather than the interrupt pin on some chip (which is >>> usually, but not always, the first word in that byte string). The >>> "virtual" IRQ number is just a compression of that longer piece of >>> data, which usually can't fit in an rman resource. >> I understand. While this approach can works (and actually works) for >> single sourced OFW world, it immediately fails if you must be able to >> parse data from different sources (which uses different encoding) >> (OFW, UEFI / ACPI, GPIO...) within one system. > > > On PowerPC, GENERIC64 supports FDT systems (some IBM hardware), OFW > systems (Macs, some IBM hardware), systems with no device trees at all > (old-style PS3), and systems with a mixture of device tree and no > device tree (new-style PS3). On these, there is a mixture of "real" > interrupts and GPIO-type interrupts. There is no limitation that this > be used only for device-tree-type systems. > > The system requires two things: an interrupt domain key and an > arbitrary unique byte string describing the interrupt. When running > with a device tree, these are set to the phandle of the > interrupt-parent and the contents of the device tree interrupt > specifier, respectively, and the system was of course developed with > that in mind. But they don't need to be, and often aren't. You could > make the domain an element of an enum (where "ACPI" is a choice, for > instance -- this is what PS3 does), or set it to a pointer to a > device_t, or really anything you like. Similarly, the interrupt > specifier is totally free-form. Yes, I agree. and i think that we followed the same direction. But i see two problems with this approach. - in some cases (OFW, device_t) you don't have control over domain key value, so you cannot guarantee its uniqueness. Of course, probability of collision is low, but it is. - within ofw_bus_map_intr() (or later - at the time when byte string must be decoded) you are not able (easily) to differentiate between different formats, thus you are not able to select appropriate decoder. The GPIO controller, for example, must be able to handle interrupts defined by standard OFW property, or by pair concurrently. For this reason we makes domain key composite, in our model, the domain key consist of "domain key type" and "domain key value". This composite key guarantees uniqueness and it also allows to select proper parser for byte string. This is, imho, only one difference between us. > You could, for instance, set it to one of the structures introduced in > r301453 if you wanted to. > > I would have zero problems with changing the prototype of the existing > dev/ofw function to something more generic in name, like: > > bus_map_intr(device_t dev, uintptr_t iparent, size_t intrlen, void *intr) > > instead of the existing equivalent: > > ofw_bus_map_intr(device_t dev, phandle_t iparent, int icells, pcell_t > *intr) > Our bus_map_intr() method is not indeed as replacement of ofw_bus_map_intr(). Its evolution of "how we can store more complex data to resource list (from bus enumerator) and transfer it to bus_allocate_resource() and/or to bus_setup_intr()" in driver independent way. We found no reasonable way to do it, so we postponed reading of properties to bus_allocate_resource() time. But now jhb@ gives us alternative and I must say that this looks like a clean and elegant way how to make this (assuming that we can expand resource_list_entry by pointer to alloc_resource_args) >> By this, one byte string in OFW encoding can describe one IRQ and >> exactly same string in UEFI encoding can describe different IRQ. Or, >> in reverse, OFW and UEFI can describe same (and compatible) IRQ by >> two different strings. >> This is exact reason, why we discards virtual IRQ idea and I think >> that this fact is root issue of this clash. >> Probably it doesn't make sense to talk about others, unless we can >> find consensus on this. > > You have the larger problem if you end up in this situation that you > are enumerating the hardware by two different and incompatible > techniques. There simply is no way to solve this unless you either (a) > segregate the system into an ACPI-enumerated domain and an > OF-enumerated domain, in which case the problem vanishes, (b) discard > one enumeration, which is what arm64 does and will always do, > according to Andrew in another post, or (c) make some incredibly > complex merging code that would naturally handle interrupts with > everything else. So I don't think this is an actual, real problem. > I think that above proposed solution resolves this gracefully. > In circumstances where you have a nested, non-device-tree hierarchy > (e.g. OPAL on PowerNV or GPIOs or what-have-you), this kind of problem > is easily solved by inventing an extra interrupt domain. > >> >>> There is no need to actually activate those interrupts before >>> interrupts are enabled, so you can just cache them in a table until >>> the end of device probing, which lets you break circular dependency >>> loops between bus and interrupt topology. >>> >>> So long as you keep track of your mapping and the same (parent, >>> interrupt specifier) parent always gives the same virtual IRQ, there >>> is no way in this system to map multiple active IRQs onto a single >>> interrupt pin on the PIC unless your device tree is broken and >>> specifies two devices with incompatible modes (active high and edge >>> downgoing or something) on the same pin. In this case, nothing you >>> can do will save you -- unless your PIC supports interrupts for >>> different kinds of events, in which case this system will work >>> perfectly by treating them as different interrupts to the kernel for >>> which the fact they are on the same pin is immaterial. >>> >>> I should note that ARM and MIPS have an almost complete >>> implementation of this already: maybe some more intr_machdep.c logic >>> is needed for some cases, but all the rest of the plumbing is there. >>> >>>> >>>>> >>>>>> - bus_alloc_resource() returns resource, so we can attach parsed >>>>>> interrupt data to it. By this, the resource itself can be used >>>>>> for delivering configuration data to subsequent call to >>>>>> bus_setup_intr() (or to all related bus_() calls). >>>>>> >>>>>> >>>>>> The patched code still accepts delivering of interrupts in >>>>>> resource list. >>>>>> >>>>>> Michal >>>>>> >>>>> >>>>> Given that other code depends on this, fixing it will likely >>>>> require some complex work. I wish I had known about it when it >>>>> went in. >>>>> >>>>> There are three main problems: >>>>> 1. It doesn't work for interrupts defined by other mechanisms >>>>> (e.g. interrupt-map properties) >>>> I aggree, but missing ' interrupt-map' functioanlity is not caused >>>> by this patch. >>> >>> It is in that the standard system already implements it completely. >> Really? >> https://svnweb.freebsd.org/base/head/sys/dev/ofw/ofw_bus_subr.c?revision=301453&view=markup#l521 >> and >> https://svnweb.freebsd.org/base/head/sys/arm/arm/nexus.c?revision=301453&view=markup#l411 > > That function is questionable and I objected to it at the time; it is > meant only as a convenience for simplebus. More complicated cases, > like ofwpci.c, use interrupt-map and have for a very long time. > Simplebus allows interrupt-map but support has never been added, which > is a bug. One of the major problems I have with this patch is that > adding it would now require parsing all of that in two places, and > cross-correlating them with questionable chance of success, rather > than in just one. > > FreeBSD/PowerPC systems have relied on interrupt-map for ten years > now. It's not especially exotic. > >>> >>>> >>>>> 2. It partially duplicates the functionality of >>>>> OFW_BUS_MAP_INTR(), but is both problematically more general and >>>>> less flexible (it has requirements on timing of PIC attachment vs. >>>>> driver resource allocation) >>>> OFW_BUS_MAP_INTR() can parse only OFW based data and expect that >>>> parsed data are magicaly stored within the call. >>>> The new method, bus_map_intr(), can parse data from multiple >>>> sources (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). >>>> It also returns parsed data back to caller. >>> >>> That is not true. It works as long as you can specify the interrupt >>> state as a 32-bit key of some kind for the PIC and a string of >>> arbitrary data, which works with all of those. You could even make >>> the interrupt data be a pointer to exactly the structs you have >>> chosen to define here. >> Nope, in heterogeneous world, same string can describe two different >> IRQs and/or two different strings can describe single IRQ in >> compatible manner. > > Can you give *any* concrete example of this that doesn't involve mixed > ACPI/FDT enumeration of a single system where devices appear in both > trees, which doesn't actually ever happen? GPIO - its interrupt function can be accessed by regular "interrupts" property, or it can be derived from GPIO pin. > > And even in those cases, there is no problem, since the PIC driver can > just dispatch both (or more) vectors corresponding to the interrupt > pin when the configured interrupt fires. It would have to have special > logic to handle decoding unrelated types of interrupt specifiers; > adding that would be about 3 lines of code. > >> >>> >>>> And no, it doesn't add any additional timing requirements . >>> >>> As far as I can tell, it requires the interrupt controller to be >>> attached before you can allocate interrupts. Is that not true? >> Yes, sure. And the patch doesn't change this. >> Before: >> https://svnweb.freebsd.org/base/head/sys/kern/subr_intr.c?view=markup&pathrev=301263#l1103 >> After: >> https://svnweb.freebsd.org/base/head/sys/kern/subr_intr.c?view=markup&pathrev=301543#l928 > > On PowerPC, we don't require this and never have. The VIRQ stuff is > meant explicitly to not require this. > >>> >>>> >>>>> 3. It is not fully transparent to end code. Since it happens at >>>>> bus_alloc_resource() time, it is complicated to get the >>>>> appropriate values for IRQs constructed by composite techniques >>>>> (interrupt-map vs. interrupts vs. hand allocation vs. PCI routing, >>>>> for example). >>>> I don't see any limitation - can you be more exact? Why is not >>>> transparent? Why is more complicated ? >>> >>> Suppose that a PCI device adds more IRQs to its resource list or >>> modifies the ordering. How is whatever bus layer supposed to do >>> something sensible at allocation time? It requires that RID numbers >>> mean something to the parent bus after assignment, which is not >>> guaranteed by anything and is, in more than handful of cases I think >>> of, not true in practice. >> Sure. And since the new code allows delivering resources in RL, so I >> don't see any limitation here. > > It indexed mapping by RID and then searches interrupt lists by that to > get the interrupt-parent. This is fundamentally a broken design if the > child needs to, say, add a second interrupt to its RL on a different > interrupt-parent. ?? I don't understand. The new code doesn't need this. > >> >>> >>>>> It is much easier to do this correctly at bus attach time when the >>>>> resource lists are made (how PPC does it). >>>>> >>>> I don't agree. I don't agree. Making this at bus attach time leads >>>> into complicated 'virtual' IRQ infrastructure, with many unresolved >>>> corner cases. >>> >>> Which unresolved corner cases? This has been working correctly on a >>> number of platforms in both FreeBSD and Linux for many years. >> Nope, it doesn't work for ARM yet (for GPIO interrupts for example) >> and Linux uses EPROBE_DEFER mechanism for a long time. >> See: http://lxr.free-electrons.com/source/drivers/base/platform.c#L87 > > There is some missing code on ARM (probably about 30 minutes of work > to make it match PowerPC) to make it work in an ideal case, sure, but > there is no reason you could not go out right now, with the existing > code, and implement GPIO interrupts by declaring the GPIO driver as an > interrupt controller. > > Can you give any concrete case of something that doesn't work? GPIO again. How you can allocate interrupt associated with given gpio pin installed by "cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;" >> >>> >>>> >>>>> (1) is easy to fix without API changes, but (2) and (3) are >>>>> fundamental architectural problems that will bite us immediately >>>>> down the road and cause a permanent schism between OF support on >>>>> different platforms. >>>>> >>>>> Let me describe how this is handled on PowerPC (Linux on PPC >>>>> solves the problem the same way). When constructing a resource >>>>> list, bus drivers that construct them from OF properties call >>>>> ofw_bus_map_intr() with the interrupt parent phandle and the array >>>>> of cells corresponding to the interrupt. This thunks immediately >>>>> to nexus, which connects to code in intr_machdep.c. Code there >>>>> assigns a unique made-up virtual IRQ and returns it, caching the >>>>> interrupt parent ID and opaque interrupt data (if the same string >>>>> of data reappears later, you get back the same virtual IRQ of >>>>> course). >>>>> >>>>> When PIC drivers attach and register themselves with the interrupt >>>>> handling layer, all the interrupts for that PIC are passed to it >>>>> along with the virtual IRQ. The PIC driver is supposed to know >>>>> what its interrupt data mean, which can be safely guaranteed, and >>>>> it presents the assigned virtual IRQ number to the kernel when >>>>> dispatching interrupts. (IRQs configured after PIC attachment are >>>>> passed through immediately). >>>>> >>>>> This accomplishes the following things: >>>>> 1. Parsing interrupt data is moved to the PIC driver, which is the >>>>> only place it can be done safely. >>>> I don't see anything different comparing with INTRNG. >>> >>> What I am advocating *is* INTRNG, at least as originally conceived >>> and implemented. >>> >>>>> 2. There is no ordering requirement on PIC attachment vs. the >>>>> attachment of anything else. >>>> I think thats is not a true - PIC must exist before >>>> bus_alloc_resource() / bus_setup_intr() is called. >>> >>> It does not with the IRQ mapping infrastructure. Interrupts are set >>> up at PIC attachment, whenever that occurs. >>> >> Assuming that bus_alloc_resource and bus_setup_intr() are close >> thorougher and in linear piece of code, can i assume that you can >> call bus_setup_intr() >> without PIC attached ? > > Yes. So driver can request and/or setup any random IRQ and gets success from bus_alloc_resource() or bus_setup_intr()? Do you think that is this right behavior? > >>>> >>>>> 3. Changes are extremely minimal relative to the "standard" >>>>> interrupt flow: you only have to patch code that is already >>>>> directly dealing with OF interrupts. >>>> I don't see anything different comparing with INTRNG. >>> >>> Again, this was the original INTRNG architecture and is already >>> implemented. As such, there are *no* changes required on ARM to get >>> it. bus_map_intr() adds a bunch of new code, in parallel with the >>> old code that also solves the problem, to no purpose. >> So, on PPC, how i can get interrupt for GPIO pin described by this >> property: >> https://svnweb.freebsd.org/base/head/sys/gnu/dts/arm/tegra124-jetson-tk1.dts?revision=295436&view=markup#l1691 >> > > The GPIO controller registers itself as an interrupt domain and > decodes those strings as IRQ specifiers. When interrupts are > configured, it does whatever it needs to do to configure them > appropriately and dispatches them to the kernel when they occur. It's > a pretty trivial cascaded interrupt configuration. And, since the VIRQ > code does not need the interrupt controller attached in advance, you > don't need to worry about attach order of wherever &gpio points and > the SDHCI driver. > >>> >>>>> 4. It happens at bus enumeration time, when results can be >>>>> guaranteed self-consistent. >>>> Where do you see any potential source of inconsistency in INTRNG? >>> >>> See the example above about modified interrupt lists. There is also >>> no obvious way for a child device to construct an interrupt not >>> assigned to it by the parent device from device tree properties >>> without knowing in some detail what kind of interrupt needs to be built. >>> >>>> >>>>> 5. It combines naturally with ofw_bus_lookup_imap() and friends in >>>>> the interrupt-map case (e.g. for PCI). >>>> Again, I don't see anything different. Proper parsing of interrupt >>>> property is not a problem of INTRNG (but must be fixed, of course). >>> >>> But it is *already* fixed by the standard code that already exists. >>> You are introducing a less-functional parallel code path here. >> NO, its not fixed, at least not for ARM. > > Why not, concretely? I'm happy to write whatever code is missing if > there's a bug. It can't be more than a few tens of lines in arm/intr.c. Interrupt maps are not covered by current ARM code. >>> >>>>> >>>>> I'm not sure what the right path forward is, but this code needs >>>>> to be fixed. The PowerPC code is fully MI, and was the template >>>>> for the original INTRNG, so it shouldn't be too bad to replace. >>>>> -Nathan >>>>> >>>> >>>> So, new INTRNG: >>>> - Introduces new more general bus method that can parse interrupt >>>> configuration >>>> data from any source. Is this step backward? >>> >>> Yes, since it is more general in some sense, while simultaneously >>> handling fewer cases than code that already exists and is implemented. >>> >>>> >>>> - Old INTRNG and PPC code stores unparsed and/or parsed interrupt >>>> data in >>>> INTRNG and each consumer must query for them. This data sharing >>>> also causes >>>> significant locking issues. New INTRNG stores interrupt >>>> configuration data into >>>> given resource, so each relevant bus method can access it >>>> immediately. >>>> Is this step backward? >>> >>> Which locking issues? And yes, it is. >>> >>>> >>>> - New INTRNG is not OFW centric, it can works with virtually >>>> unlimited number >>>> of configuration data sources. Is this step backward? >>> >>> Also yes, because it makes the interrupt handles less opaque, which >>> makes the infrastructure less flexible. >>> >>>> - New INTRNG correctly uses standard system infrastructure. Real >>>> IRQ number >>>> is reserved in rman within bus_alloc_resource() call, interrupt >>>> HW is >>>> configured (only!) within bus_setup_intr() call. Is this step >>>> backward? >>> >>> The "real" IRQ number is not well defined always, so requiring that >>> is a step backwards, yes. >>> >>>> - New INTRNG completely eliminates huge and not always working virtual >>>> IRQ concept. >>> >>> When does it "not always work"? It seems to, in fact, always work on >>> multiple platforms and have for a long time in the face of all kinds >>> of totally bizarre topologies and system architectures. >>> >>>> >>>> >>>> Don’t take me bad, I’m open to any change. But no, at this time, >>>> I’m not ready to completely revert someone else's work – although I >>>> am a co-author. >>> >>> I would urge, in the strongest possible terms, that this be backed >>> out from stable/11 at least. We can add the new API back for 11.1 if >>> we want it, but we totally lose the ability to change it later in >>> the stable/11 cycle if it stays in now. >>> -Nathan >>> >> The API is part of still unstable, experimental INTRNG, so its not >> fixed we we can change it at any time, I think. >> But yes, we forget to wrap new bus_map_intr() method (and associated >> code) by #ifdef INTRNG. Is this sufficient for you? > > For HEAD, yes. I would like it out of stable/11 entirely until this > discussion converges. > -Nathan The current code (in stable/11) works and is tested. I simple cannot commit any untested change for stable tree mainly if is in BETA2 stage. And I cannot fully test the requested change, at this time i have access to single ARM platform. But we're in the same situation - both have the same commit bit, neither one of us is the author of the disputed commit and neither of us are not able to fully test it. So feel free to commit what you want, if you have courage to commit untested code. I haven't it...\ Michal From owner-svn-src-all@freebsd.org Sat Jul 23 11:04:11 2016 Return-Path: Delivered-To: svn-src-all@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 B1A7CBA1EFC; Sat, 23 Jul 2016 11:04:11 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from mail.miracle.cz (mail.miracle.cz [193.84.128.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.miracle.cz", Issuer "Miracle Group Root CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 2DB0C18B2; Sat, 23 Jul 2016 11:04:10 +0000 (UTC) (envelope-from mmel@FreeBSD.org) Received: from [193.84.128.50] (meloun.ad.miracle.cz [193.84.128.50]) by mail.miracle.cz (Postfix) with ESMTPSA id D671E3AC9C; Sat, 23 Jul 2016 13:04:07 +0200 (CEST) Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: John Baldwin , Andrew Turner References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578F6075.7010500@FreeBSD.org> <20160721133742.05f0e045@zapp> <13301107.Hm25rxUxW2@ralph.baldwin.cx> Cc: Nathan Whitehorn , Svatopluk Kraus , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Michal Meloun X-Enigmail-Draft-Status: N1110 Message-ID: <57934F27.9070800@FreeBSD.org> Date: Sat, 23 Jul 2016 13:04:07 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <13301107.Hm25rxUxW2@ralph.baldwin.cx> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.miracle.cz); Sat, 23 Jul 2016 13:04:07 +0200 (CEST) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 11:04:11 -0000 Dne 21.07.2016 v 23:35 John Baldwin napsal(a): > On Thursday, July 21, 2016 01:37:42 PM Andrew Turner wrote: >> On Wed, 20 Jul 2016 13:28:53 +0200 >> Michal Meloun wrote: >>> Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): >>>> 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), >>>> but is both problematically more general and less flexible (it has >>>> requirements on timing of PIC attachment vs. driver resource >>>> allocation) >>> OFW_BUS_MAP_INTR() can parse only OFW based data and expect that >>> parsed data are magicaly stored within the call. >>> The new method, bus_map_intr(), can parse data from multiple sources >>> (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). It also >>> returns parsed data back to caller. >>> And no, it doesn't add any additional timing requirements . >> I've been looking at ACPI on arm64. So far I have not found the need >> for this with ACPI as we don't need to send the data to the interrupt >> controller driver to be parsed in the way OFW/FDT needs to. > ACPI though has a gross hack where we call BUS_CONFIG_INTR on the IRQ > in bus_alloc_resource(). What I had advocated in the discussions > leading up to this was to have some sort of opaque structure containing > a set of properties (the sort of thing bus_map_resource and make_dev_s > use) that was passed up at bus_setup_intr() time. I think it should now > be passed up at bus_alloc_resource() time instead, but it would allow bus > drivers to "decorate" a SYS_RES_IRQ request as it goes up the device tree > with properties that the interrupt controller can then associate with > the IRQ cookie it allocates in its own code. I would let the particular > structure have different layouts for different resource types. On x86 we > would replace bus_config_intr by passing the level and trigger-mode in > this structure. However, I could also see allowing the memattr to be > set for a SYS_RES_MEMORY resource so you could have a much shorter way > than an explicit bus_map_resource to map an entire BAR as WC for example: > > struct alloc_resource_args { > size_t len; > union { > struct { > enum intr_trigger trigger; > enum intr_polarity polarity; > } irq; > struct { > vm_memattr_t memattr; > } memory; > } > } > > ... > > union alloc_resource_args args; > > init_alloc_resource_args(&args, sizeof(args)); > args.memattr = VM_MEMATTR_WRITE_COMBINING; > > /* Uses WC for the implicit mapping. */ > res = bus_alloc_resource(...., &args); > > ... > > foobus_alloc_resource(..., union alloc_resource_args *args) > { > union alloc_resource_args args2; > > switch (type) { > case SYS_RES_IRQ: > if (args == NULL) { > init_alloc_resource_args(&args2, sizeof(args2)); > args = &args2; > } > /* Replace call to BUS_CONFIG_INTR on ACPI: */ > if (args->irq.polarity == INTR_POLARITY_CONFORMING && > device_has_polarity_from_CRS) > args->irq.polarity = polarity_from_CRS; > ... > } > > However, you could associate arbitrary data with a resource request by > adding more members to the approriate struct in the union. > I like this idea. Mainly if we can add 'struct alloc_resource_args' into 'struct resource_list_entry' and, eventually, also into struct resource_i. Inability to pass something more complex as single integer between bus enumerator (aka resource_list_entry creator) and bus_alloc_resource() (aka resource_list_entry consumer) is serious limitation. At lest for me :) Michal From owner-svn-src-all@freebsd.org Sat Jul 23 11:24:07 2016 Return-Path: Delivered-To: svn-src-all@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 1155DBA263D; Sat, 23 Jul 2016 11:24:07 +0000 (UTC) (envelope-from bapt@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 CAC9C135D; Sat, 23 Jul 2016 11:24:06 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NBO5mb003825; Sat, 23 Jul 2016 11:24:05 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NBO5aJ003824; Sat, 23 Jul 2016 11:24:05 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201607231124.u6NBO5aJ003824@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sat, 23 Jul 2016 11:24:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303218 - head/tools/tools/locale/tools X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 11:24:07 -0000 Author: bapt Date: Sat Jul 23 11:24:05 2016 New Revision: 303218 URL: https://svnweb.freebsd.org/changeset/base/303218 Log: Add another hack to add weekday to date format to more locales While here only initialize the iconv converter when needed Modified: head/tools/tools/locale/tools/cldr2def.pl Modified: head/tools/tools/locale/tools/cldr2def.pl ============================================================================== --- head/tools/tools/locale/tools/cldr2def.pl Sat Jul 23 10:19:10 2016 (r303217) +++ head/tools/tools/locale/tools/cldr2def.pl Sat Jul 23 11:24:05 2016 (r303218) @@ -201,12 +201,12 @@ sub callback_ampm { my $s = shift; my $nl = $callback{data}{l} . "_" . $callback{data}{c}; my $enc = $callback{data}{e}; - my $converter = Text::Iconv->new("utf-8", "$enc"); if ($nl eq 'ru_RU') { if ($enc eq 'UTF-8') { $s = 'дп;пп'; } else { + my $converter = Text::Iconv->new("utf-8", "$enc"); $s = $converter->convert("дп;пп"); } } @@ -220,6 +220,7 @@ sub callback_cformat { $s =~ s/\.,/\./; $s =~ s/ %Z//; $s =~ s/ %z//; + $s =~ s/^"%e\./%A %e/; $s =~ s/^"(%B %e, )/"%A, $1/; $s =~ s/^"(%e %B )/"%A $1/; return $s; @@ -241,6 +242,7 @@ sub callback_dtformat { $s =~ s/(> )(%H)/$1%A $2/; } $s =~ s/\.,/\./; + $s =~ s/^"%e\./%A %e/; $s =~ s/^"(%B %e, )/"%A, $1/; $s =~ s/^"(%e %B )/"%A $1/; return $s; From owner-svn-src-all@freebsd.org Sat Jul 23 11:25:37 2016 Return-Path: Delivered-To: svn-src-all@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 ED463BA26E0; Sat, 23 Jul 2016 11:25:37 +0000 (UTC) (envelope-from bapt@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 C4D00155F; Sat, 23 Jul 2016 11:25:37 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NBParI003939; Sat, 23 Jul 2016 11:25:36 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NBPYs1003917; Sat, 23 Jul 2016 11:25:34 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201607231125.u6NBPYs1003917@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sat, 23 Jul 2016 11:25:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303219 - head/share/timedef X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 11:25:38 -0000 Author: bapt Date: Sat Jul 23 11:25:34 2016 New Revision: 303219 URL: https://svnweb.freebsd.org/changeset/base/303219 Log: Add weekday to the date format of more locales MFC after: 1 day Modified: head/share/timedef/cs_CZ.ISO8859-2.src head/share/timedef/cs_CZ.UTF-8.src head/share/timedef/da_DK.ISO8859-15.src head/share/timedef/da_DK.UTF-8.src head/share/timedef/de_AT.ISO8859-15.src head/share/timedef/de_AT.UTF-8.src head/share/timedef/de_DE.ISO8859-15.src head/share/timedef/de_DE.UTF-8.src head/share/timedef/et_EE.ISO8859-15.src head/share/timedef/et_EE.UTF-8.src head/share/timedef/fi_FI.ISO8859-15.src head/share/timedef/fi_FI.UTF-8.src head/share/timedef/hr_HR.ISO8859-2.src head/share/timedef/hr_HR.UTF-8.src head/share/timedef/is_IS.ISO8859-15.src head/share/timedef/is_IS.UTF-8.src head/share/timedef/nb_NO.ISO8859-15.src head/share/timedef/nb_NO.UTF-8.src head/share/timedef/nn_NO.ISO8859-15.src head/share/timedef/nn_NO.UTF-8.src head/share/timedef/sk_SK.ISO8859-2.src head/share/timedef/sk_SK.UTF-8.src Modified: head/share/timedef/cs_CZ.ISO8859-2.src ============================================================================== --- head/share/timedef/cs_CZ.ISO8859-2.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/cs_CZ.ISO8859-2.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ sobota %d.%m.%y # # c_fmt -%e. %B %Y %H:%M:%S +%A %e %B %Y %H:%M:%S # # AM/PM dopoledne odpoledne # # date_fmt -%e. %B %Y %H:%M:%S %Z +%A %e %B %Y %H:%M:%S %Z # # Long month names (without case ending) leden Modified: head/share/timedef/cs_CZ.UTF-8.src ============================================================================== --- head/share/timedef/cs_CZ.UTF-8.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/cs_CZ.UTF-8.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ sobota %d.%m.%y # # c_fmt -%e. %B %Y %H:%M:%S +%A %e %B %Y %H:%M:%S # # AM/PM dopoledne odpoledne # # date_fmt -%e. %B %Y %H:%M:%S %Z +%A %e %B %Y %H:%M:%S %Z # # Long month names (without case ending) leden Modified: head/share/timedef/da_DK.ISO8859-15.src ============================================================================== --- head/share/timedef/da_DK.ISO8859-15.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/da_DK.ISO8859-15.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ lørdag %d/%m/%Y # # c_fmt -%e. %B %Y kl. %H.%M.%S +%A %e %B %Y kl. %H.%M.%S # # AM/PM AM PM # # date_fmt -%e. %B %Y kl. %H.%M.%S %Z +%A %e %B %Y kl. %H.%M.%S %Z # # Long month names (without case ending) januar Modified: head/share/timedef/da_DK.UTF-8.src ============================================================================== --- head/share/timedef/da_DK.UTF-8.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/da_DK.UTF-8.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ lørdag %d/%m/%Y # # c_fmt -%e. %B %Y kl. %H.%M.%S +%A %e %B %Y kl. %H.%M.%S # # AM/PM AM PM # # date_fmt -%e. %B %Y kl. %H.%M.%S %Z +%A %e %B %Y kl. %H.%M.%S %Z # # Long month names (without case ending) januar Modified: head/share/timedef/de_AT.ISO8859-15.src ============================================================================== --- head/share/timedef/de_AT.ISO8859-15.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/de_AT.ISO8859-15.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ Samstag %d.%m.%y # # c_fmt -%e. %B %Y um %H:%M:%S +%A %e %B %Y um %H:%M:%S # # AM/PM vorm. nachm. # # date_fmt -%e. %B %Y um %H:%M:%S %Z +%A %e %B %Y um %H:%M:%S %Z # # Long month names (without case ending) Jänner Modified: head/share/timedef/de_AT.UTF-8.src ============================================================================== --- head/share/timedef/de_AT.UTF-8.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/de_AT.UTF-8.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ Samstag %d.%m.%y # # c_fmt -%e. %B %Y um %H:%M:%S +%A %e %B %Y um %H:%M:%S # # AM/PM vorm. nachm. # # date_fmt -%e. %B %Y um %H:%M:%S %Z +%A %e %B %Y um %H:%M:%S %Z # # Long month names (without case ending) Jänner Modified: head/share/timedef/de_DE.ISO8859-15.src ============================================================================== --- head/share/timedef/de_DE.ISO8859-15.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/de_DE.ISO8859-15.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ Samstag %d.%m.%y # # c_fmt -%e. %B %Y um %H:%M:%S +%A %e %B %Y um %H:%M:%S # # AM/PM vorm. nachm. # # date_fmt -%e. %B %Y um %H:%M:%S %Z +%A %e %B %Y um %H:%M:%S %Z # # Long month names (without case ending) Januar Modified: head/share/timedef/de_DE.UTF-8.src ============================================================================== --- head/share/timedef/de_DE.UTF-8.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/de_DE.UTF-8.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ Samstag %d.%m.%y # # c_fmt -%e. %B %Y um %H:%M:%S +%A %e %B %Y um %H:%M:%S # # AM/PM vorm. nachm. # # date_fmt -%e. %B %Y um %H:%M:%S %Z +%A %e %B %Y um %H:%M:%S %Z # # Long month names (without case ending) Januar Modified: head/share/timedef/et_EE.ISO8859-15.src ============================================================================== --- head/share/timedef/et_EE.ISO8859-15.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/et_EE.ISO8859-15.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ laupäev %d.%m.%y # # c_fmt -%e. %B %Y %H:%M.%S +%A %e %B %Y %H:%M.%S # # AM/PM AM PM # # date_fmt -%e. %B %Y %H:%M.%S %Z +%A %e %B %Y %H:%M.%S %Z # # Long month names (without case ending) jaanuar Modified: head/share/timedef/et_EE.UTF-8.src ============================================================================== --- head/share/timedef/et_EE.UTF-8.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/et_EE.UTF-8.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ laupäev %d.%m.%y # # c_fmt -%e. %B %Y %H:%M.%S +%A %e %B %Y %H:%M.%S # # AM/PM AM PM # # date_fmt -%e. %B %Y %H:%M.%S %Z +%A %e %B %Y %H:%M.%S %Z # # Long month names (without case ending) jaanuar Modified: head/share/timedef/fi_FI.ISO8859-15.src ============================================================================== --- head/share/timedef/fi_FI.ISO8859-15.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/fi_FI.ISO8859-15.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ lauantaina %d.%m.%Y # # c_fmt -%e. %B %Y klo %H.%M.%S +%A %e %B %Y klo %H.%M.%S # # AM/PM ap. ip. # # date_fmt -%e. %B %Y klo %H.%M.%S %Z +%A %e %B %Y klo %H.%M.%S %Z # # Long month names (without case ending) tammikuuta Modified: head/share/timedef/fi_FI.UTF-8.src ============================================================================== --- head/share/timedef/fi_FI.UTF-8.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/fi_FI.UTF-8.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ lauantaina %d.%m.%Y # # c_fmt -%e. %B %Y klo %H.%M.%S +%A %e %B %Y klo %H.%M.%S # # AM/PM ap. ip. # # date_fmt -%e. %B %Y klo %H.%M.%S %Z +%A %e %B %Y klo %H.%M.%S %Z # # Long month names (without case ending) tammikuuta Modified: head/share/timedef/hr_HR.ISO8859-2.src ============================================================================== --- head/share/timedef/hr_HR.ISO8859-2.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/hr_HR.ISO8859-2.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ subota %d.%m.%Y. # # c_fmt -%e. %B %Y. u %H:%M:%S +%A %e %B %Y. u %H:%M:%S # # AM/PM AM PM # # date_fmt -%e. %B %Y. u %H:%M:%S %Z +%A %e %B %Y. u %H:%M:%S %Z # # Long month names (without case ending) sijeènja Modified: head/share/timedef/hr_HR.UTF-8.src ============================================================================== --- head/share/timedef/hr_HR.UTF-8.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/hr_HR.UTF-8.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ subota %d.%m.%Y. # # c_fmt -%e. %B %Y. u %H:%M:%S +%A %e %B %Y. u %H:%M:%S # # AM/PM AM PM # # date_fmt -%e. %B %Y. u %H:%M:%S %Z +%A %e %B %Y. u %H:%M:%S %Z # # Long month names (without case ending) sijeÄnja Modified: head/share/timedef/is_IS.ISO8859-15.src ============================================================================== --- head/share/timedef/is_IS.ISO8859-15.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/is_IS.ISO8859-15.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ laugardagur %d.%m.%Y # # c_fmt -%e. %B %Y kl. %H:%M:%S +%A %e %B %Y kl. %H:%M:%S # # AM/PM f.h. e.h. # # date_fmt -%e. %B %Y kl. %H:%M:%S %Z +%A %e %B %Y kl. %H:%M:%S %Z # # Long month names (without case ending) janúar Modified: head/share/timedef/is_IS.UTF-8.src ============================================================================== --- head/share/timedef/is_IS.UTF-8.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/is_IS.UTF-8.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ laugardagur %d.%m.%Y # # c_fmt -%e. %B %Y kl. %H:%M:%S +%A %e %B %Y kl. %H:%M:%S # # AM/PM f.h. e.h. # # date_fmt -%e. %B %Y kl. %H:%M:%S %Z +%A %e %B %Y kl. %H:%M:%S %Z # # Long month names (without case ending) janúar Modified: head/share/timedef/nb_NO.ISO8859-15.src ============================================================================== --- head/share/timedef/nb_NO.ISO8859-15.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/nb_NO.ISO8859-15.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ lørdag %d.%m.%Y # # c_fmt -%e. %B %Y kl. %H.%M.%S +%A %e %B %Y kl. %H.%M.%S # # AM/PM a.m. p.m. # # date_fmt -%e. %B %Y kl. %H.%M.%S %Z +%A %e %B %Y kl. %H.%M.%S %Z # # Long month names (without case ending) januar Modified: head/share/timedef/nb_NO.UTF-8.src ============================================================================== --- head/share/timedef/nb_NO.UTF-8.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/nb_NO.UTF-8.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ lørdag %d.%m.%Y # # c_fmt -%e. %B %Y kl. %H.%M.%S +%A %e %B %Y kl. %H.%M.%S # # AM/PM a.m. p.m. # # date_fmt -%e. %B %Y kl. %H.%M.%S %Z +%A %e %B %Y kl. %H.%M.%S %Z # # Long month names (without case ending) januar Modified: head/share/timedef/nn_NO.ISO8859-15.src ============================================================================== --- head/share/timedef/nn_NO.ISO8859-15.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/nn_NO.ISO8859-15.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ laurdag %d.%m.%Y # # c_fmt -%e. %B %Y kl. %H:%M:%S +%A %e %B %Y kl. %H:%M:%S # # AM/PM formiddag ettermiddag # # date_fmt -%e. %B %Y kl. %H:%M:%S %Z +%A %e %B %Y kl. %H:%M:%S %Z # # Long month names (without case ending) januar Modified: head/share/timedef/nn_NO.UTF-8.src ============================================================================== --- head/share/timedef/nn_NO.UTF-8.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/nn_NO.UTF-8.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ laurdag %d.%m.%Y # # c_fmt -%e. %B %Y kl. %H:%M:%S +%A %e %B %Y kl. %H:%M:%S # # AM/PM formiddag ettermiddag # # date_fmt -%e. %B %Y kl. %H:%M:%S %Z +%A %e %B %Y kl. %H:%M:%S %Z # # Long month names (without case ending) januar Modified: head/share/timedef/sk_SK.ISO8859-2.src ============================================================================== --- head/share/timedef/sk_SK.ISO8859-2.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/sk_SK.ISO8859-2.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ sobota %d.%m.%y # # c_fmt -%e. %B %Y, %H:%M:%S +%A %e %B %Y, %H:%M:%S # # AM/PM dopoludnia odpoludnia # # date_fmt -%e. %B %Y, %H:%M:%S %Z +%A %e %B %Y, %H:%M:%S %Z # # Long month names (without case ending) januára Modified: head/share/timedef/sk_SK.UTF-8.src ============================================================================== --- head/share/timedef/sk_SK.UTF-8.src Sat Jul 23 11:24:05 2016 (r303218) +++ head/share/timedef/sk_SK.UTF-8.src Sat Jul 23 11:25:34 2016 (r303219) @@ -56,14 +56,14 @@ sobota %d.%m.%y # # c_fmt -%e. %B %Y, %H:%M:%S +%A %e %B %Y, %H:%M:%S # # AM/PM dopoludnia odpoludnia # # date_fmt -%e. %B %Y, %H:%M:%S %Z +%A %e %B %Y, %H:%M:%S %Z # # Long month names (without case ending) januára From owner-svn-src-all@freebsd.org Sat Jul 23 11:26:26 2016 Return-Path: Delivered-To: svn-src-all@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 2FD8ABA275A; Sat, 23 Jul 2016 11:26:26 +0000 (UTC) (envelope-from kib@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 F082C1726; Sat, 23 Jul 2016 11:26:25 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NBQPOr004013; Sat, 23 Jul 2016 11:26:25 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NBQPQN004012; Sat, 23 Jul 2016 11:26:25 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201607231126.u6NBQPQN004012@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 23 Jul 2016 11:26:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r303220 - stable/9/sys/kern X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 11:26:26 -0000 Author: kib Date: Sat Jul 23 11:26:24 2016 New Revision: 303220 URL: https://svnweb.freebsd.org/changeset/base/303220 Log: Fix build. Modified: stable/9/sys/kern/kern_event.c Modified: stable/9/sys/kern/kern_event.c ============================================================================== --- stable/9/sys/kern/kern_event.c Sat Jul 23 11:25:34 2016 (r303219) +++ stable/9/sys/kern/kern_event.c Sat Jul 23 11:26:24 2016 (r303220) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include From owner-svn-src-all@freebsd.org Sat Jul 23 11:41:50 2016 Return-Path: Delivered-To: svn-src-all@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 75AD4BA2D35 for ; Sat, 23 Jul 2016 11:41:50 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mail-lf0-f45.google.com (mail-lf0-f45.google.com [209.85.215.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 24CC91F58 for ; Sat, 23 Jul 2016 11:41:49 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mail-lf0-f45.google.com with SMTP id b199so101232631lfe.0 for ; Sat, 23 Jul 2016 04:41:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=SE0WS6TKNTh250Lxh7he14fzck/7f39yv3gBAKeK/Mw=; b=KqkqtAOCbvflSewOt+0BE5GoMsZX6Ruxgg3+J3zH5ImplNsxTFl9reiA9fMh+T8cRn WvCy5A5mqxwTihAuYCP5H2u08EclLvnKVeXqA2JLSd04KRn+mEM5VGn5gNw3WqQ2blma p8GWLySItleLs0IRNmJjbqaZl1wGBQwlBWQs8erVSG/JrHozk8j4INfRBx3xQ/psJAez xujMx0UR3UQgayFdEWJzSUOGBkAo8JUl2wHMfetGSSLbeEUt3f68eezDSSnY+tVxKODR sb+K3LC3ohFXklLZuX0hoQs7Fez0mnb+CnR0YRQCnnKV6YlDnzuSZAP0mNSR+RCu4N2T DVgA== X-Gm-Message-State: AEkoousXqfaiYA1t+r5MdUMgcl7NTcWsjy0SeCpk88bPROJtnZKSiC9+6h2O/SDRaQj29Q== X-Received: by 10.25.152.135 with SMTP id a129mr3909455lfe.226.1469274101848; Sat, 23 Jul 2016 04:41:41 -0700 (PDT) Received: from [192.168.1.2] ([89.169.173.68]) by smtp.gmail.com with ESMTPSA id w16sm3837739lfd.29.2016.07.23.04.41.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 23 Jul 2016 04:41:41 -0700 (PDT) Subject: Re: svn commit: r303218 - head/tools/tools/locale/tools To: Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201607231124.u6NBO5aJ003824@repo.freebsd.org> From: Andrey Chernov Message-ID: <97566d46-1d37-8c95-f276-f55b190bddbb@freebsd.org> Date: Sat, 23 Jul 2016 14:41:39 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <201607231124.u6NBO5aJ003824@repo.freebsd.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 11:41:50 -0000 On 23.07.2016 14:24, Baptiste Daroussin wrote: > Author: bapt > Date: Sat Jul 23 11:24:05 2016 > New Revision: 303218 > URL: https://svnweb.freebsd.org/changeset/base/303218 > > Log: > Add another hack to add weekday to date format to more locales > > While here only initialize the iconv converter when needed > > Modified: > head/tools/tools/locale/tools/cldr2def.pl BTW, is there any progress in generating all collates with -m ${area} as you planned? From owner-svn-src-all@freebsd.org Sat Jul 23 11:45:43 2016 Return-Path: Delivered-To: svn-src-all@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 AC843BA2DA0; Sat, 23 Jul 2016 11:45:43 +0000 (UTC) (envelope-from bapt@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 75D7211DF; Sat, 23 Jul 2016 11:45:43 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NBjgPP011145; Sat, 23 Jul 2016 11:45:42 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NBjg5O011136; Sat, 23 Jul 2016 11:45:42 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201607231145.u6NBjg5O011136@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sat, 23 Jul 2016 11:45:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303221 - vendor/mdocml/dist X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 11:45:43 -0000 Author: bapt Date: Sat Jul 23 11:45:42 2016 New Revision: 303221 URL: https://svnweb.freebsd.org/changeset/base/303221 Log: Update to mdocml 1.13.4 Added: vendor/mdocml/dist/man.cgi.3 (contents, props changed) Modified: vendor/mdocml/dist/INSTALL vendor/mdocml/dist/LICENSE vendor/mdocml/dist/Makefile vendor/mdocml/dist/NEWS vendor/mdocml/dist/TODO vendor/mdocml/dist/cgi.c vendor/mdocml/dist/cgi.h.example vendor/mdocml/dist/configure vendor/mdocml/dist/configure.local.example vendor/mdocml/dist/demandoc.c vendor/mdocml/dist/libmandoc.h vendor/mdocml/dist/main.c vendor/mdocml/dist/main.h vendor/mdocml/dist/man.1 vendor/mdocml/dist/man.cgi.8 vendor/mdocml/dist/mandoc.3 vendor/mdocml/dist/mandoc.css vendor/mdocml/dist/mandoc.db.5 vendor/mdocml/dist/mandoc_headers.3 vendor/mdocml/dist/mandoc_malloc.3 vendor/mdocml/dist/mandocdb.c vendor/mdocml/dist/manpage.c vendor/mdocml/dist/manpath.c vendor/mdocml/dist/mansearch.c vendor/mdocml/dist/mchars_alloc.3 vendor/mdocml/dist/read.c vendor/mdocml/dist/tag.c vendor/mdocml/dist/term.c vendor/mdocml/dist/term_ascii.c vendor/mdocml/dist/test-rewb-bsd.c vendor/mdocml/dist/test-rewb-sysv.c Modified: vendor/mdocml/dist/INSTALL ============================================================================== --- vendor/mdocml/dist/INSTALL Sat Jul 23 11:26:24 2016 (r303220) +++ vendor/mdocml/dist/INSTALL Sat Jul 23 11:45:42 2016 (r303221) @@ -1,4 +1,4 @@ -$Id: INSTALL,v 1.13 2015/11/07 14:01:16 schwarze Exp $ +$Id: INSTALL,v 1.15 2016/07/14 11:09:06 schwarze Exp $ About mdocml, the portable mandoc distribution ---------------------------------------------- @@ -16,7 +16,7 @@ tech@ mailing list, too. Enjoy using the mandoc toolset! -Ingo Schwarze, Karlsruhe, March 2015 +Ingo Schwarze, Karlsruhe, July 2016 Installation @@ -52,7 +52,7 @@ and go back to step 2. 4. Run "make -n install" and check whether everything will be installed to the intended places. Otherwise, put some *DIR or *NM* -variables into "configure.local" and go back to step 2. +variables into "configure.local" and go back to step 2. 5. Run "sudo make install". If you intend to build a binary package using some kind of fake root mechanism, you may need a @@ -63,7 +63,7 @@ in the "Makefile" to understand how DEST manpath(1), make sure it is configured correctly, in particular, it returns all directory trees where manual pages are installed. Otherwise, if your system uses man.conf(5), make sure it contains -a "_whatdb" line for each directory tree, and the order of these +a "manpath" line for each directory tree, and the order of these lines meets your wishes. 7. If you compiled with database support, run the command "sudo Modified: vendor/mdocml/dist/LICENSE ============================================================================== --- vendor/mdocml/dist/LICENSE Sat Jul 23 11:26:24 2016 (r303220) +++ vendor/mdocml/dist/LICENSE Sat Jul 23 11:45:42 2016 (r303221) @@ -1,11 +1,11 @@ -$Id: LICENSE,v 1.11 2015/11/07 17:58:55 schwarze Exp $ +$Id: LICENSE,v 1.12 2016/07/07 23:46:36 schwarze Exp $ With the exceptions noted below, all code and documentation contained in the mdocml toolkit is protected by the Copyright of the following developers: Copyright (c) 2008-2012, 2014 Kristaps Dzonsons -Copyright (c) 2010-2015 Ingo Schwarze +Copyright (c) 2010-2016 Ingo Schwarze Copyright (c) 2009, 2010, 2011, 2012 Joerg Sonnenberger Copyright (c) 2013 Franco Fichtner Copyright (c) 2014 Baptiste Daroussin Modified: vendor/mdocml/dist/Makefile ============================================================================== --- vendor/mdocml/dist/Makefile Sat Jul 23 11:26:24 2016 (r303220) +++ vendor/mdocml/dist/Makefile Sat Jul 23 11:45:42 2016 (r303221) @@ -1,7 +1,7 @@ -# $Id: Makefile,v 1.480 2015/11/07 21:53:14 schwarze Exp $ +# $Id: Makefile,v 1.488 2016/07/12 05:18:38 kristaps Exp $ # # Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons -# Copyright (c) 2011, 2013, 2014, 2015 Ingo Schwarze +# Copyright (c) 2011, 2013-2016 Ingo Schwarze # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -15,7 +15,7 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -VERSION = 1.13.3 +VERSION = 1.13.4 # === LIST OF FILES ==================================================== @@ -31,6 +31,9 @@ TESTSRCS = test-dirent-namlen.c \ test-pledge.c \ test-progname.c \ test-reallocarray.c \ + test-rewb-bsd.c \ + test-rewb-sysv.c \ + test-sandbox_init.c \ test-sqlite3.c \ test-sqlite3_errstr.c \ test-strcasestr.c \ @@ -138,6 +141,7 @@ DISTFILES = INSTALL \ makewhatis.8 \ man.1 \ man.7 \ + man.cgi.3 \ man.cgi.8 \ man.conf.5 \ man.h \ @@ -164,6 +168,7 @@ DISTFILES = INSTALL \ predefs.in \ roff.7 \ roff.h \ + roff_int.h \ soelim.1 \ st.in \ tag.h \ @@ -293,6 +298,7 @@ WWW_MANS = apropos.1.html \ roff.7.html \ tbl.7.html \ makewhatis.8.html \ + man.cgi.3.html \ man.cgi.8.html \ man.h.html \ manconf.h.html \ @@ -392,34 +398,30 @@ db-install: base-build cgi-install: cgi-build mkdir -p $(DESTDIR)$(CGIBINDIR) mkdir -p $(DESTDIR)$(HTDOCDIR) - mkdir -p $(DESTDIR)$(WWWPREFIX)/man/mandoc/man1 - mkdir -p $(DESTDIR)$(WWWPREFIX)/man/mandoc/man8 $(INSTALL_PROGRAM) man.cgi $(DESTDIR)$(CGIBINDIR) $(INSTALL_DATA) mandoc.css $(DESTDIR)$(HTDOCDIR) - $(INSTALL_MAN) apropos.1 $(DESTDIR)$(WWWPREFIX)/man/mandoc/man1/ - $(INSTALL_MAN) man.cgi.8 $(DESTDIR)$(WWWPREFIX)/man/mandoc/man8/ Makefile.local config.h: configure ${TESTSRCS} @echo "$@ is out of date; please run ./configure" @exit 1 libmandoc.a: $(COMPAT_OBJS) $(LIBMANDOC_OBJS) - $(AR) rs $@ $(COMPAT_OBJS) $(LIBMANDOC_OBJS) + ar rs $@ $(COMPAT_OBJS) $(LIBMANDOC_OBJS) mandoc: $(MAIN_OBJS) libmandoc.a - $(CC) $(LDFLAGS) -o $@ $(MAIN_OBJS) libmandoc.a $(DBLIB) + $(CC) -o $@ $(LDFLAGS) $(MAIN_OBJS) libmandoc.a $(LDADD) manpage: $(MANPAGE_OBJS) libmandoc.a - $(CC) $(LDFLAGS) -o $@ $(MANPAGE_OBJS) libmandoc.a $(DBLIB) + $(CC) -o $@ $(LDFLAGS) $(MANPAGE_OBJS) libmandoc.a $(LDADD) man.cgi: $(CGI_OBJS) libmandoc.a - $(CC) $(LDFLAGS) $(STATIC) -o $@ $(CGI_OBJS) libmandoc.a $(DBLIB) + $(CC) $(STATIC) -o $@ $(LDFLAGS) $(CGI_OBJS) libmandoc.a $(LDADD) demandoc: $(DEMANDOC_OBJS) libmandoc.a - $(CC) $(LDFLAGS) -o $@ $(DEMANDOC_OBJS) libmandoc.a $(DBLIB) + $(CC) -o $@ $(LDFLAGS) $(DEMANDOC_OBJS) libmandoc.a $(LDADD) soelim: $(SOELIM_OBJS) - $(CC) $(LDFLAGS) -o $@ $(SOELIM_OBJS) + $(CC) -o $@ $(LDFLAGS) $(SOELIM_OBJS) # --- maintainer targets --- @@ -439,6 +441,8 @@ depend: config.h Makefile.depend > Makefile.tmp mv Makefile.tmp Makefile.depend +dist: mdocml.sha256 + mdocml.sha256: mdocml.tar.gz sha256 mdocml.tar.gz > $@ Modified: vendor/mdocml/dist/NEWS ============================================================================== --- vendor/mdocml/dist/NEWS Sat Jul 23 11:26:24 2016 (r303220) +++ vendor/mdocml/dist/NEWS Sat Jul 23 11:45:42 2016 (r303221) @@ -1,7 +1,140 @@ -$Id: NEWS,v 1.10 2015/11/05 16:58:20 schwarze Exp $ +$Id: NEWS,v 1.12 2016/07/14 11:09:06 schwarze Exp $ This file lists the most important changes in the mdocml.bsd.lv distribution. +Changes in version 1.13.4, released on July 14, 2016 + + --- MAJOR NEW FEATURES --- + * man.conf(5): Design and implement a simpler configuration file format. + * man(1): Leverage less(1) -T and :t in a way resembling ctags(1) + to jump to the definitions of various terms inside manual pages. + * soelim(1): New implementation by Baptiste Daroussin. + * privilege limitation: Use OpenBSD pledge(2) or OS X sandbox_init(3) + when available. + * man.cgi(8): Support short URIs like http://man.openbsd.org/mdoc . + * mandoc.css: Use one unified stylesheet rather than three different ones. + --- MAJOR FUNCTIONALLY RELEVANT BUGFIXES --- + * mdoc(7): Fix multiple aspects of SYNOPSIS .Nm formatting. + * man(1): Fix process group handling, avoiding unclean shutdowns. + --- PORTABILITY IMPROVEMENTS --- + * Correctly use the ohash(3) compatibility implementation + even when building without SQLite support. + * Add compat glue for building on Solaris 9 and 10. + * Let ./configure select a supported RE syntax for word boundaries. + * Support LDFLAGS, to be used for example for hardening options. + * Avoid mixing putchar(3) and putwchar(3) on the same file descriptor, + it resulted in output corruption on some platforms. + * Avoid reusing va_lists, use va_copy(3) for better portability. + * Do not hardcode the path to the more(1) program. + --- MINOR NEW FEATURES --- + * roff(7): Implement \n(.$ (number of macro arguments). + * roff(7): Fully implement \z (do not advance cursor). + * roff(7): Implement the `r' conditional (register exists). + * roff(7): Implement \\$* (interpolate all arguments). + * roff(7): Parse and ignore \, and \/ (italic corrections). + * When there is no -m, no -M, no MANPATH and no /etc/man.conf, + fall back to /usr/share/man:/usr/X11R6/man:/usr/local/man. + * man(1): Give manuals in purely numerical sections priority over + manuals of the same name in sections with an alphabetical suffix. + * man.cgi(8): Support "header.html" and "footer.html". + * man.cgi(8): Set the "autofocus" attribute on the query text box. + * man.cgi(8): Simplify the search form, drop two useless buttons. + * man.cgi(8): Delete the pseudo-manpath "mandoc", assume that + apropos(1) and man.cgi(8) are installed in the default manpath. + --- RELIABILITY BUGFIXES --- + * mdoc(7): Avoid a use after free and an assertion failure when nodes + are deleted during validation. + * mdoc(7): Avoid a NULL pointer access when .Bd has no arguments. + * mdoc(7): Avoid a NULL pointer access triggered by mismatching end macros. + * mdoc(7): Avoid an assertion when .Fo has no argument. + * mdoc(7): Avoid an assertion when .Ta occurs in .Bl -column. + * mdoc(7): Avoid an assertion when a body gets broken and has a tail. + * roff(7): Avoid an assertion caused by blanks inside \o. + * roff(7): Make .so links to gziped manuals work without mandoc.db(5). + * tbl(7): Avoid a use after free when the last line of a layout is empty. + * eqn(7): Avoid an infinite loop caused by recursive "define". + * makewhatis(8): Avoid a segfault caused by unusual directory structures. + * Fix handling of leading, trailing, and double colons in MANPATH and -m. + --- MINOR BUGFIXES --- + * mdoc(7): Put arguments to end macros of broken partial explicit blocks + inside the breaking block. + * mdoc(7): Let .Dv force normal font. + * mdoc(7): Make trailing whitespace significant in .Bl -tag widths. + * mdoc(7): Fix macro interpretation around tabs in .Bl -column. + * man(7): Use the default width for .RS without arguments. + * man(7): On a new RS nesting level, the saved width starts from + the default width, not from the saved width of the previous level. + * man(7): Allow .PD in next-line scope. + * man(7): Improve handling of empty .HP. + * man(7): Improve formatting of .br and .sp inside .HP. + * man(7): Do not mistreat empty arguments to font alternating + macros as vertical spacing requests. + * man(7): Allow fill mode changes in tagged paragraph next-line scope. + * man(7): Fix minor bugs in block rewinding and simplify the related code. + * man(7): Add missing line breaks before subsection headers. + * man(7): Give section and subsection headers hanging indentation. + * man(7): Make trailing whitespace significant in .TP widths. + * roff(7): Don't allow breaking the output line after hyphens + that immediately follow escape sequences. + * roff(7): Ignore blank characters at the beginning of conditional blocks. + * roff(7): Escape breakable hyphens only after handling input line traps. + * roff(7): Reject \[uD800] to \[uDFFF] (surrogates) in the parser. + * tbl(7): Allow more than one data field after T} on the same input line. + * terminal output: Apply bold and italic to non-ASCII Unicode codepoints. + * terminal output: Improve rounding rules for horizontal scaling widths. + * HTML output: Render ASCII_NBRSP as " ", not "-". + * man(1): Do not match the first part of a name if it continues with a dot. + * man(1): Keep working even if the current directory is unusable. + * man(1): Better error message when $PAGER is invalid. + * makewhatis(8): Improve handling of .Va and .Vt macros. + * apropos(1): Print "nothing appropriate" to stderr when appropriate. + * apropos(1): Abort with a useful error message when elementary + database operations like preparing queries or binding variables fail. + --- STRUCTURAL CHANGES, no functional change --- + * mdoc(7) and man(7): Unified data structures struct roff_node etc. + * mdoc(7) and man(7): Unified node handling library in roff.c. + * mdoc(7) and man(7): Seperate validation phase from parsing. + * roff(7): Major character table cleanup. + * Link with libz rather than forking gunzip(1). + --- THANKS TO --- + * Baptiste Daroussin (FreeBSD) for the new soelim(1) + and for release testing. + * Anthony Bentley (OpenBSD) for unifying mandoc.css, two nice + patches for man.cgi(8), some documentation patches, some bug + reports, and various useful discussions. + * Todd Miller (OpenBSD) for lots of help with process group and + signal handling, a few patches, some bug reports and some useful + discussions. + * Jonathan Gray (OpenBSD) for yet more testing with afl(1) + again resulting in more than half a dozen important bug reports. + * Svyatoslav Mishyn (Crux Linux) for some patches, several bug + reports, and extensive release testing. + * Christian Neukirchen (void Linux) for a number of compatibility + patches and suggestions and several bug reports. + * Christos Zoulas (NetBSD) for a bug fix patch and some useful + suggestions for cleanup. + * Florian Obser (OpenBSD) for a bugfix patch and some bug reports. + * Sevan Janiyan for help with Solaris compatibility and release + testing on many platforms. + * Jan Holzhueter and OpenCSW in general for help with Solaris + compatibility, and for providing me with a Solaris 9/10/11 testing + environment. + * Michael McConville (OpenBSD) for some simple cleanup patches. + * Thomas Klausner (NetBSD) for some bug reports and release testing. + * Christian Weisgerber, Dmitrij Czarkoff, Igor Sobrado, + Ken Westerback, Marc Espie, Mike Belopuhov, Rafael Neves, + Ted Unangst, Tim van der Molen, Theo Buehler, Theo de Raadt + (OpenBSD), Kurt Jaeger, Dag Erling Smoergrav (FreeBSD), + Joerg Sonnenberger (NetBSD), Carsten Kunze (Heirloom troff), + Daniel Levai, Fabian Raetz, Jan Stary, Jean-Yves Migeon, + Lorenzo Beretta, Markus Waldeck, Maxim Belooussov, Michael Reed, + Peter Bray, and Serguey Parkhomovsky for bug reports and feature + suggestions. + * Alexander Hall, Andrew Fresh, Antoine Jacoutot, Doug Hogan, + Jason McIntyre, Jasper Lievisse Adriaanse, Kent Spillner, + Nicholas Marriott, Peter Hessler, Sebastien Marie, Stefan Sperling, + and Theo de Raadt (OpenBSD) for helpful discussions and feedback. + Changes in version 1.13.3, released on March 13, 2015 --- MAJOR NEW FEATURES --- Modified: vendor/mdocml/dist/TODO ============================================================================== --- vendor/mdocml/dist/TODO Sat Jul 23 11:26:24 2016 (r303220) +++ vendor/mdocml/dist/TODO Sat Jul 23 11:45:42 2016 (r303221) @@ -1,6 +1,6 @@ ************************************************************************ * Official mandoc TODO. -* $Id: TODO,v 1.216 2016/01/08 01:37:32 schwarze Exp $ +* $Id: TODO,v 1.218 2016/06/05 21:06:04 schwarze Exp $ ************************************************************************ Many issues are annotated for difficulty as follows: @@ -416,6 +416,11 @@ are mere guesses, and some may be wrong. see also matthew@ Fri, 18 Jul 2014 19:25:12 -0700 loc * exist * algo ** size * imp *** +- In -man -Thtml, .nf does not preserve indentation. + It should either convert blanks to   + or use
 rather than 
(like .Bd -literal does). + Reported by afresh1@ 12 Apr 2016 14:35:45 -0700 + - .Bf at the beginning of a paragraph inserts a bogus 1ex horizontal space, see for example random(3). Introduced in http://mdocml.bsd.lv/cgi-bin/cvsweb/mdoc_html.c.diff?r1=1.91&r2=1.92 @@ -583,8 +588,6 @@ are mere guesses, and some may be wrong. to tech@mdocml, naddy@ Wed, 28 Sep 2011 11:21:46 +0200 wait! kristaps@ Sun, 02 Oct 2011 17:12:52 +0200 -- for system errors, use errno/strerror/warn/err - ************************************************************************ * documentation issues ************************************************************************ @@ -628,9 +631,6 @@ Several areas can be cleaned up to make * structural issues ************************************************************************ -- Use libz directly instead of forking gunzip(1). - Suggested by bapt at FreeBSD among others. - - We use the input line number at several places to distinguish same-line from different-line input. That plainly doesn't work with user-defined macros, leading to random breakage. Modified: vendor/mdocml/dist/cgi.c ============================================================================== --- vendor/mdocml/dist/cgi.c Sat Jul 23 11:26:24 2016 (r303220) +++ vendor/mdocml/dist/cgi.c Sat Jul 23 11:45:42 2016 (r303221) @@ -1,7 +1,7 @@ -/* $Id: cgi.c,v 1.116 2016/01/04 12:36:26 schwarze Exp $ */ +/* $Id: cgi.c,v 1.135 2016/07/11 22:48:37 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons - * Copyright (c) 2014, 2015 Ingo Schwarze + * Copyright (c) 2014, 2015, 2016 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -55,15 +56,20 @@ struct req { struct query q; char **p; /* array of available manpaths */ size_t psz; /* number of available manpaths */ + int isquery; /* QUERY_STRING used, not PATH_INFO */ +}; + +enum focus { + FOCUS_NONE = 0, + FOCUS_QUERY }; -static void catman(const struct req *, const char *); -static void format(const struct req *, const char *); static void html_print(const char *); static void html_putchar(char); static int http_decode(char *); -static void http_parse(struct req *, const char *); -static void pathgen(struct req *); +static void parse_manpath_conf(struct req *); +static void parse_path_info(struct req *req, const char *path); +static void parse_query_string(struct req *, const char *); static void pg_error_badrequest(const char *); static void pg_error_internal(void); static void pg_index(const struct req *); @@ -74,16 +80,18 @@ static void pg_searchres(const struct static void pg_show(struct req *, const char *); static void resp_begin_html(int, const char *); static void resp_begin_http(int, const char *); +static void resp_catman(const struct req *, const char *); static void resp_copy(const char *); static void resp_end_html(void); -static void resp_searchform(const struct req *); +static void resp_format(const struct req *, const char *); +static void resp_searchform(const struct req *, enum focus); static void resp_show(const struct req *, const char *); static void set_query_attr(char **, char **); static int validate_filename(const char *); static int validate_manpath(const struct req *, const char *); static int validate_urifrag(const char *); -static const char *scriptname; /* CGI script name */ +static const char *scriptname = SCRIPT_NAME; static const int sec_prios[] = {1, 4, 5, 8, 6, 3, 7, 2, 9}; static const char *const sec_numbers[] = { @@ -106,16 +114,16 @@ static const int sec_MAX = sizeof(sec_na static const char *const arch_names[] = { "amd64", "alpha", "armish", "armv7", - "aviion", "hppa", "hppa64", "i386", - "ia64", "landisk", "loongson", "luna88k", - "macppc", "mips64", "octeon", "sgi", - "socppc", "solbourne", "sparc", "sparc64", - "vax", "zaurus", + "hppa", "hppa64", "i386", "landisk", + "loongson", "luna88k", "macppc", "mips64", + "octeon", "sgi", "socppc", "sparc", + "sparc64", "zaurus", "amiga", "arc", "arm32", "atari", - "beagle", "cats", "hp300", "mac68k", - "mvme68k", "mvme88k", "mvmeppc", "palm", - "pc532", "pegasos", "pmax", "powerpc", - "sun3", "wgrisc", "x68k" + "aviion", "beagle", "cats", "hp300", + "ia64", "mac68k", "mvme68k", "mvme88k", + "mvmeppc", "palm", "pc532", "pegasos", + "pmax", "powerpc", "solbourne", "sun3", + "vax", "wgrisc", "x68k" }; static const int arch_MAX = sizeof(arch_names) / sizeof(char *); @@ -182,11 +190,12 @@ set_query_attr(char **attr, char **val) * and store the values into the query structure. */ static void -http_parse(struct req *req, const char *qs) +parse_query_string(struct req *req, const char *qs) { char *key, *val; size_t keysz, valsz; + req->isquery = 1; req->q.manpath = NULL; req->q.arch = NULL; req->q.sec = NULL; @@ -338,14 +347,14 @@ resp_begin_html(int code, const char *ms resp_begin_http(code, msg); printf("\n" - "\n" - "\n" - "\n" - "\n" - "%s\n" - "\n" - "\n" + "\n" + "\n" + "\n" + "\n" + "%s\n" + "\n" + "\n" "\n", CSS_DIR, CUSTOMIZE_TITLE); @@ -358,103 +367,87 @@ resp_end_html(void) resp_copy(MAN_DIR "/footer.html"); - puts("\n" - ""); + puts("\n" + ""); } static void -resp_searchform(const struct req *req) +resp_searchform(const struct req *req, enum focus focus) { int i; puts(""); - printf("
\n" - "
\n" - "
\n" - "Manual Page Search Parameters\n", + printf("
\n" + "\n" + "
\n" + "Manual Page Search Parameters\n", scriptname); /* Write query input box. */ - printf( "
\n" - "q.query) + printf("q.query != NULL) html_print(req->q.query); - puts("\" SIZE=\"40\">"); - - /* Write submission and reset buttons. */ - - printf( "\n" - "\n"); - - /* Write show radio button */ - - printf( "\n" - "q.equal) - printf("CHECKED=\"checked\" "); - printf( "NAME=\"apropos\" ID=\"show\" VALUE=\"0\">\n" - "\n"); + printf( "\" size=\"40\""); + if (focus == FOCUS_QUERY) + printf(" autofocus"); + puts(">"); + + /* Write submission buttons. */ + + printf( "\n" + "\n
\n"); /* Write section selector. */ - puts( "
\n" - ""); for (i = 0; i < sec_MAX; i++) { - printf("\n", sec_names[i]); + printf(" selected=\"selected\""); + printf(">%s\n", sec_names[i]); } - puts(""); + puts(""); /* Write architecture selector. */ - printf( ""); + puts(""); /* Write manpath selector. */ if (req->psz > 1) { - puts(""); for (i = 0; i < (int)req->psz; i++) { - printf(""); + puts(""); } - puts(""); + puts(""); } - /* Write search radio button */ - - printf( "\n" - "q.equal) - printf("CHECKED=\"checked\" "); - printf( "NAME=\"apropos\" ID=\"search\" VALUE=\"1\">\n" - "\n"); - - puts("
\n" - "
\n" - "\n" - "
"); + puts("
\n" + "\n" + "
"); puts(""); } @@ -477,9 +470,6 @@ validate_manpath(const struct req *req, { size_t i; - if ( ! strcmp(manpath, "mandoc")) - return 1; - for (i = 0; i < req->psz; i++) if ( ! strcmp(manpath, req->p[i])) return 1; @@ -503,15 +493,16 @@ pg_index(const struct req *req) { resp_begin_html(200, NULL); - resp_searchform(req); - printf("

\n" + resp_searchform(req, FOCUS_QUERY); + printf("

\n" "This web interface is documented in the\n" - "man.cgi\n" + "man.cgi(8)\n" "manual, and the\n" - "apropos\n" + "apropos(1)\n" "manual explains the query syntax.\n" - "

\n", - scriptname, scriptname); + "

\n", + scriptname, *scriptname == '\0' ? "" : "/", + scriptname, *scriptname == '\0' ? "" : "/"); resp_end_html(); } @@ -519,10 +510,10 @@ static void pg_noresult(const struct req *req, const char *msg) { resp_begin_html(200, NULL); - resp_searchform(req); - puts("

"); + resp_searchform(req, FOCUS_QUERY); + puts("

"); puts(msg); - puts("

"); + puts("

"); resp_end_html(); } @@ -531,12 +522,12 @@ pg_error_badrequest(const char *msg) { resp_begin_html(400, "Bad Request"); - puts("

Bad Request

\n" - "

\n"); + puts("

Bad Request

\n" + "

\n"); puts(msg); printf("Try again from the\n" - "main page.\n" - "

", scriptname); + "main page.\n" + "

", scriptname); resp_end_html(); } @@ -544,7 +535,7 @@ static void pg_error_internal(void) { resp_begin_html(500, "Internal Server Error"); - puts("

Internal Server Error

"); + puts("

Internal Server Error

"); resp_end_html(); } @@ -552,28 +543,30 @@ static void pg_searchres(const struct req *req, struct manpage *r, size_t sz) { char *arch, *archend; - size_t i, iuse, isec; + const char *sec; + size_t i, iuse; int archprio, archpriouse; int prio, priouse; - char sec; for (i = 0; i < sz; i++) { if (validate_filename(r[i].file)) continue; - fprintf(stderr, "invalid filename %s in %s database\n", + warnx("invalid filename %s in %s database", r[i].file, req->q.manpath); pg_error_internal(); return; } - if (1 == sz) { + if (req->isquery && sz == 1) { /* * If we have just one result, then jump there now * without any delay. */ printf("Status: 303 See Other\r\n"); - printf("Location: http://%s%s/%s/%s", - HTTP_HOST, scriptname, req->q.manpath, r[0].file); + printf("Location: http://%s/%s%s%s/%s", + HTTP_HOST, scriptname, + *scriptname == '\0' ? "" : "/", + req->q.manpath, r[0].file); printf("\r\n" "Content-Type: text/html; charset=utf-8\r\n" "\r\n"); @@ -581,50 +574,57 @@ pg_searchres(const struct req *req, stru } resp_begin_html(200, NULL); - resp_searchform(req); - puts("
"); - puts(""); + resp_searchform(req, + req->q.equal || sz == 1 ? FOCUS_NONE : FOCUS_QUERY); - for (i = 0; i < sz; i++) { - printf("\n" - "\n" - "\n" - ""); - } + if (sz > 1) { + puts("
"); + puts("
\n" - "q.manpath, r[i].file); - printf("\">"); - html_print(r[i].names); - printf("\n" - ""); - html_print(r[i].output); - puts("
"); - puts("
\n" - "
"); + for (i = 0; i < sz; i++) { + printf("\n" + "\n" + "q.manpath, r[i].file); + printf("\">"); + html_print(r[i].names); + printf("\n" + "\n" + ""); + html_print(r[i].output); + puts("\n" + ""); + } + + puts("\n" + "
"); + } /* * In man(1) mode, show one of the pages * even if more than one is found. */ - if (req->q.equal) { - puts("
"); + if (req->q.equal || sz == 1) { + puts("
"); iuse = 0; - priouse = 10; + priouse = 20; archpriouse = 3; for (i = 0; i < sz; i++) { - isec = strcspn(r[i].file, "123456789"); - sec = r[i].file[isec]; - if ('\0' == sec) + sec = r[i].file; + sec += strcspn(sec, "123456789"); + if (sec[0] == '\0') continue; - prio = sec_prios[sec - '1']; - if (NULL == req->q.arch) { + prio = sec_prios[sec[0] - '1']; + if (sec[1] != '/') + prio += 10; + if (req->q.arch == NULL) { archprio = - (NULL == (arch = strchr( - r[i].file + isec, '/'))) ? 3 : - (NULL == (archend = strchr( - arch + 1, '/'))) ? 0 : + ((arch = strchr(sec + 1, '/')) + == NULL) ? 3 : + ((archend = strchr(arch + 1, '/')) + == NULL) ? 0 : strncmp(arch, "amd64/", archend - arch) ? 2 : 1; if (archprio < archpriouse) { @@ -648,7 +648,7 @@ pg_searchres(const struct req *req, stru } static void -catman(const struct req *req, const char *file) +resp_catman(const struct req *req, const char *file) { FILE *f; char *p; @@ -658,12 +658,12 @@ catman(const struct req *req, const char int italic, bold; if ((f = fopen(file, "r")) == NULL) { - puts("

You specified an invalid manual file.

"); + puts("

You specified an invalid manual file.

"); return; } - puts("
\n" - "
");
+	puts("
\n" + "
");
 
 	p = NULL;
 	sz = 0;
@@ -689,9 +689,9 @@ catman(const struct req *req, const char
 
 			if ('\b' != p[i + 1]) {
 				if (italic)
-					printf("");
+					printf("");
 				if (bold)
-					printf("");
+					printf("");
 				italic = bold = 0;
 				html_putchar(p[i]);
 				continue;
@@ -702,9 +702,9 @@ catman(const struct req *req, const char
 
 			if ('_' == p[i]) {
 				if (bold)
-					printf("");
+					printf("");
 				if ( ! italic)
-					printf("");
+					printf("");
 				bold = 0;
 				italic = 1;
 				i += 2;
@@ -726,9 +726,9 @@ catman(const struct req *req, const char
 					('*' == p[i] && '|' == p[i + 2]) ||
 					('|' == p[i] && '*' == p[i + 2]))  {
 				if (italic)
-					printf("");
+					printf("");
 				if (bold)
-					printf("");
+					printf("");
 				italic = bold = 0;
 				putchar('*');
 				i += 2;
@@ -740,9 +740,9 @@ catman(const struct req *req, const char
 					('+' == p[i] && '|' == p[i + 1]) ||
 					('|' == p[i] && '+' == p[i + 1]))  {
 				if (italic)
-					printf("");
+					printf("");
 				if (bold)
-					printf("");
+					printf("");
 				italic = bold = 0;
 				putchar('+');
 				i += 2;
@@ -752,9 +752,9 @@ catman(const struct req *req, const char
 			/* Bold mode. */
 
 			if (italic)
-				printf("");
+				printf("");
 			if ( ! bold)
-				printf("");
+				printf("");
 			bold = 1;
 			italic = 0;
 			i += 2;
@@ -767,9 +767,9 @@ catman(const struct req *req, const char
 		 */
 
 		if (italic)
-			printf("");
+			printf("");
 		if (bold)
-			printf("");
+			printf("");
 
 		if (i == len - 1 && p[i] != '\n')
 			html_putchar(p[i]);
@@ -778,14 +778,14 @@ catman(const struct req *req, const char
 	}
 	free(p);
 
-	puts("
\n" - "
"); + puts("
\n" + "
"); fclose(f); } static void -format(const struct req *req, const char *file) +resp_format(const struct req *req, const char *file) { struct manoutput conf; struct mparse *mp; @@ -795,7 +795,7 @@ format(const struct req *req, const char int usepath; if (-1 == (fd = open(file, O_RDONLY, 0))) { - puts("

You specified an invalid manual file.

"); + puts("

You specified an invalid manual file.

"); return; } @@ -807,17 +807,12 @@ format(const struct req *req, const char memset(&conf, 0, sizeof(conf)); conf.fragment = 1; usepath = strcmp(req->q.manpath, req->p[0]); - mandoc_asprintf(&conf.man, "%s?query=%%N&sec=%%S%s%s%s%s", - scriptname, - req->q.arch ? "&arch=" : "", - req->q.arch ? req->q.arch : "", - usepath ? "&manpath=" : "", - usepath ? req->q.manpath : ""); + mandoc_asprintf(&conf.man, "/%s%s%%N.%%S", + usepath ? req->q.manpath : "", usepath ? "/" : ""); mparse_result(mp, &man, NULL); if (man == NULL) { - fprintf(stderr, "fatal mandoc error: %s/%s\n", - req->q.manpath, file); + warnx("fatal mandoc error: %s/%s", req->q.manpath, file); pg_error_internal(); mparse_free(mp); mchars_free(); @@ -848,9 +843,9 @@ resp_show(const struct req *req, const c file += 2; if ('c' == *file) - catman(req, file); + resp_catman(req, file); else - format(req, file); + resp_format(req, file); } static void @@ -881,18 +876,12 @@ pg_show(struct req *req, const char *ful */ if (chdir(manpath) == -1) { - fprintf(stderr, "chdir %s: %s\n", - manpath, strerror(errno)); + warn("chdir %s", manpath); pg_error_internal(); free(manpath); return; } - - if (strcmp(manpath, "mandoc")) { - free(req->q.manpath); - req->q.manpath = manpath; - } else - free(manpath); + free(manpath); if ( ! validate_filename(file)) { pg_error_badrequest( @@ -901,7 +890,7 @@ pg_show(struct req *req, const char *ful } resp_begin_html(200, NULL); - resp_searchform(req); + resp_searchform(req, FOCUS_NONE); resp_show(req, file); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sat Jul 23 11:47:05 2016 Return-Path: Delivered-To: svn-src-all@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 85ED9BA2E19; Sat, 23 Jul 2016 11:47:05 +0000 (UTC) (envelope-from bapt@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 401861347; Sat, 23 Jul 2016 11:47:05 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NBl4C8011240; Sat, 23 Jul 2016 11:47:04 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NBl4Xl011239; Sat, 23 Jul 2016 11:47:04 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201607231147.u6NBl4Xl011239@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sat, 23 Jul 2016 11:47:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303222 - vendor/mdocml/1.13.4 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 11:47:05 -0000 Author: bapt Date: Sat Jul 23 11:47:04 2016 New Revision: 303222 URL: https://svnweb.freebsd.org/changeset/base/303222 Log: Tag import of mdocml 1.13.4 Added: vendor/mdocml/1.13.4/ - copied from r303221, vendor/mdocml/dist/ From owner-svn-src-all@freebsd.org Sat Jul 23 11:52:47 2016 Return-Path: Delivered-To: svn-src-all@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 A4783BA2F95; Sat, 23 Jul 2016 11:52:47 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: from mail-wm0-x22b.google.com (mail-wm0-x22b.google.com [IPv6:2a00:1450:400c:c09::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2F2AB186F; Sat, 23 Jul 2016 11:52:47 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: by mail-wm0-x22b.google.com with SMTP id o80so97667581wme.1; Sat, 23 Jul 2016 04:52:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=tqSu/i5wN6MLqswUedDvm3dwCsXrtJnRK+Uj9ZD3VXs=; b=b6LhAxEhhhKS7/hVgL4ZzxFOxxEgRTyCjMEkn3OVnWUPXu0scoWPkcP8tlME9Rr1eM 23fvIaiyd4QykRlzE5t1JWX9svfNSFIYJhf/FV7GNfOcy4YUtwQnplN2HNdq+vUeN5RC euFVt5r9K+6wADUD5tV8lDqZmgneO/l0g9GWN7eXQ20G5TumeUF8JYZTEp2GDPagl+WZ SPGvmPwR2gCyBXSKSwWjY6IvowOJn2eugQtb4ZpU+t9yCXonZR2DIJYd6tRBhLP0xGxL fLoREmUeJ0SkZBp95SM2FTf8mugXtSMcQUaR7LmPbE6Lm522SEDbFf99NQb7v6QOLN+Y cHxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=tqSu/i5wN6MLqswUedDvm3dwCsXrtJnRK+Uj9ZD3VXs=; b=lAkOb4AzHypKxyj02RI55owvgQRjUiG+lkvPR1N2NNVW/XTH1fzKK6E5THmnrnOD77 +22aK9wllbfSX403RxEMiLIxN2CztFUiVKaA8DGqIMuq+fVEFYHGj1sSUVZZzXMlDDPr GP0zRH+8fkG4ATfkr+9rx7Mx0gWhRearXn1fDHvXcehPfn2N48PyAFXr1HuMSWdxx4cr z/yU3pvbVf5DEsKnv/UP9zu+Jm5Dpi+RQCS0nBB3S5FhBpS4uAiTxWGTS+oy1lZjtsNE 4xz4Wm+SPMnbvidOKeUcPkE0BUqZidUvAW4wkVxhrdN00IItTey6kwuzKBOVi9ovsAz7 nxEg== X-Gm-Message-State: ALyK8tISpVMB7LBhDuMrmCRH9kRsfYVVXcS9U+iuCVa5FBo6q+UqTzQcZxVwdsj+hBd68g== X-Received: by 10.28.185.202 with SMTP id j193mr31232396wmf.78.1469274765491; Sat, 23 Jul 2016 04:52:45 -0700 (PDT) Received: from ivaldir.etoilebsd.net ([2001:41d0:8:db4c::1]) by smtp.gmail.com with ESMTPSA id u125sm17134869wmg.22.2016.07.23.04.52.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 23 Jul 2016 04:52:44 -0700 (PDT) Sender: Baptiste Daroussin Date: Sat, 23 Jul 2016 13:52:44 +0200 From: Baptiste Daroussin To: Andrey Chernov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303218 - head/tools/tools/locale/tools Message-ID: <20160723115244.76vhhzl55qoyw4kf@ivaldir.etoilebsd.net> References: <201607231124.u6NBO5aJ003824@repo.freebsd.org> <97566d46-1d37-8c95-f276-f55b190bddbb@freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="zphgh5vkc6b3wmb6" Content-Disposition: inline In-Reply-To: <97566d46-1d37-8c95-f276-f55b190bddbb@freebsd.org> User-Agent: Mutt/1.6.1-neo (2016-06-11) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 11:52:47 -0000 --zphgh5vkc6b3wmb6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Jul 23, 2016 at 02:41:39PM +0300, Andrey Chernov wrote: > On 23.07.2016 14:24, Baptiste Daroussin wrote: > > Author: bapt > > Date: Sat Jul 23 11:24:05 2016 > > New Revision: 303218 > > URL: https://svnweb.freebsd.org/changeset/base/303218 > >=20 > > Log: > > Add another hack to add weekday to date format to more locales > > > > While here only initialize the iconv converter when needed > > > > Modified: > > head/tools/tools/locale/tools/cldr2def.pl >=20 > BTW, is there any progress in generating all collates with -m ${area} as > you planned? >=20 you mean the @modifier? Bapt --zphgh5vkc6b3wmb6 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXk1qLAAoJEGOJi9zxtz5awD8P/R7+vKd8EUgw0X11jvQZtezj nRk5hs2SR5X9Ebx5mQKEzzqHdEM3cL0FbOXu+bqXJJ0IF50YY5BbXjYlts9ZpMyz 6KLJMcM/ruATalK6GgDdPdqDpSBrdIjf6HTB22YSMldpFO/iGizh51IJ/aXBep/a fjkoTmbfyC9h91DXjR3e2vLd2bc2TbE51IIkbTF1NlHwcFev80wzjwNaSmHQ5pJM t+Aki8L6W1Hy9Ub/jtWdxJMiUciG5wEzx6e7gyq0gG9rQy3h8xMhLwHF+V+yv0/C R265E1hJryvYvkJrV5bYY2c7KeFazNYCg9+VxG3o7LF5Yzo42pGtCybdiz73ty5u PYHHVvkRbWwBWj/nyEgM3aCQgNNYQZPIbni2sXhMQatd94U7y5DKD8bUoxMRnqRu BU2j2F9Wja9ecoqJsQRZKuz/0cXDnlQoh1RfNjFAmYMZYAiGUCHUCeTkqf2PYtjk AfLcjeaTdqM1/LUkteVd2sDvRyUrfefPpeUxw3+/JW61NnaIh+cbwiE7xEPIUZIA AqH7iI9W2vIv0WnUsP/fQ/yWmQrYAUgXh/P3FOrEpAaBKjMlawkZPIe/fje26Et0 oXsHLBrw/cxiHXkz76VGrnubwWV3jnDT7EoPHiMNTsRFb8NUG01ouvY0MO0VNnmD UO+li5GBC9LpNcKqmeu9 =lY89 -----END PGP SIGNATURE----- --zphgh5vkc6b3wmb6-- From owner-svn-src-all@freebsd.org Sat Jul 23 11:55:17 2016 Return-Path: Delivered-To: svn-src-all@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 A2893BA201C; Sat, 23 Jul 2016 11:55:17 +0000 (UTC) (envelope-from bapt@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 3E5A81A28; Sat, 23 Jul 2016 11:55:17 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NBtGGV014806; Sat, 23 Jul 2016 11:55:16 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NBtF03014799; Sat, 23 Jul 2016 11:55:15 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201607231155.u6NBtF03014799@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sat, 23 Jul 2016 11:55:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303223 - head/contrib/mdocml X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 11:55:17 -0000 Author: bapt Date: Sat Jul 23 11:55:15 2016 New Revision: 303223 URL: https://svnweb.freebsd.org/changeset/base/303223 Log: Update mandoc to 1.13.4 release Added: head/contrib/mdocml/man.cgi.3 - copied unchanged from r303222, vendor/mdocml/dist/man.cgi.3 Modified: head/contrib/mdocml/INSTALL head/contrib/mdocml/LICENSE head/contrib/mdocml/Makefile head/contrib/mdocml/NEWS head/contrib/mdocml/TODO head/contrib/mdocml/cgi.c head/contrib/mdocml/cgi.h.example head/contrib/mdocml/configure head/contrib/mdocml/configure.local.example head/contrib/mdocml/demandoc.c head/contrib/mdocml/libmandoc.h head/contrib/mdocml/main.c head/contrib/mdocml/main.h head/contrib/mdocml/man.1 head/contrib/mdocml/man.cgi.8 head/contrib/mdocml/mandoc.3 head/contrib/mdocml/mandoc.css head/contrib/mdocml/mandoc.db.5 head/contrib/mdocml/mandoc_headers.3 head/contrib/mdocml/mandoc_malloc.3 head/contrib/mdocml/mandocdb.c head/contrib/mdocml/manpage.c head/contrib/mdocml/manpath.c head/contrib/mdocml/mansearch.c head/contrib/mdocml/mchars_alloc.3 head/contrib/mdocml/read.c head/contrib/mdocml/tag.c head/contrib/mdocml/term.c head/contrib/mdocml/term_ascii.c head/contrib/mdocml/test-rewb-bsd.c head/contrib/mdocml/test-rewb-sysv.c Directory Properties: head/contrib/mdocml/ (props changed) Modified: head/contrib/mdocml/INSTALL ============================================================================== --- head/contrib/mdocml/INSTALL Sat Jul 23 11:47:04 2016 (r303222) +++ head/contrib/mdocml/INSTALL Sat Jul 23 11:55:15 2016 (r303223) @@ -1,4 +1,4 @@ -$Id: INSTALL,v 1.13 2015/11/07 14:01:16 schwarze Exp $ +$Id: INSTALL,v 1.15 2016/07/14 11:09:06 schwarze Exp $ About mdocml, the portable mandoc distribution ---------------------------------------------- @@ -16,7 +16,7 @@ tech@ mailing list, too. Enjoy using the mandoc toolset! -Ingo Schwarze, Karlsruhe, March 2015 +Ingo Schwarze, Karlsruhe, July 2016 Installation @@ -52,7 +52,7 @@ and go back to step 2. 4. Run "make -n install" and check whether everything will be installed to the intended places. Otherwise, put some *DIR or *NM* -variables into "configure.local" and go back to step 2. +variables into "configure.local" and go back to step 2. 5. Run "sudo make install". If you intend to build a binary package using some kind of fake root mechanism, you may need a @@ -63,7 +63,7 @@ in the "Makefile" to understand how DEST manpath(1), make sure it is configured correctly, in particular, it returns all directory trees where manual pages are installed. Otherwise, if your system uses man.conf(5), make sure it contains -a "_whatdb" line for each directory tree, and the order of these +a "manpath" line for each directory tree, and the order of these lines meets your wishes. 7. If you compiled with database support, run the command "sudo Modified: head/contrib/mdocml/LICENSE ============================================================================== --- head/contrib/mdocml/LICENSE Sat Jul 23 11:47:04 2016 (r303222) +++ head/contrib/mdocml/LICENSE Sat Jul 23 11:55:15 2016 (r303223) @@ -1,11 +1,11 @@ -$Id: LICENSE,v 1.11 2015/11/07 17:58:55 schwarze Exp $ +$Id: LICENSE,v 1.12 2016/07/07 23:46:36 schwarze Exp $ With the exceptions noted below, all code and documentation contained in the mdocml toolkit is protected by the Copyright of the following developers: Copyright (c) 2008-2012, 2014 Kristaps Dzonsons -Copyright (c) 2010-2015 Ingo Schwarze +Copyright (c) 2010-2016 Ingo Schwarze Copyright (c) 2009, 2010, 2011, 2012 Joerg Sonnenberger Copyright (c) 2013 Franco Fichtner Copyright (c) 2014 Baptiste Daroussin Modified: head/contrib/mdocml/Makefile ============================================================================== --- head/contrib/mdocml/Makefile Sat Jul 23 11:47:04 2016 (r303222) +++ head/contrib/mdocml/Makefile Sat Jul 23 11:55:15 2016 (r303223) @@ -1,7 +1,7 @@ -# $Id: Makefile,v 1.480 2015/11/07 21:53:14 schwarze Exp $ +# $Id: Makefile,v 1.488 2016/07/12 05:18:38 kristaps Exp $ # # Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons -# Copyright (c) 2011, 2013, 2014, 2015 Ingo Schwarze +# Copyright (c) 2011, 2013-2016 Ingo Schwarze # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -15,7 +15,7 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -VERSION = 1.13.3 +VERSION = 1.13.4 # === LIST OF FILES ==================================================== @@ -31,6 +31,9 @@ TESTSRCS = test-dirent-namlen.c \ test-pledge.c \ test-progname.c \ test-reallocarray.c \ + test-rewb-bsd.c \ + test-rewb-sysv.c \ + test-sandbox_init.c \ test-sqlite3.c \ test-sqlite3_errstr.c \ test-strcasestr.c \ @@ -138,6 +141,7 @@ DISTFILES = INSTALL \ makewhatis.8 \ man.1 \ man.7 \ + man.cgi.3 \ man.cgi.8 \ man.conf.5 \ man.h \ @@ -164,6 +168,7 @@ DISTFILES = INSTALL \ predefs.in \ roff.7 \ roff.h \ + roff_int.h \ soelim.1 \ st.in \ tag.h \ @@ -293,6 +298,7 @@ WWW_MANS = apropos.1.html \ roff.7.html \ tbl.7.html \ makewhatis.8.html \ + man.cgi.3.html \ man.cgi.8.html \ man.h.html \ manconf.h.html \ @@ -392,34 +398,30 @@ db-install: base-build cgi-install: cgi-build mkdir -p $(DESTDIR)$(CGIBINDIR) mkdir -p $(DESTDIR)$(HTDOCDIR) - mkdir -p $(DESTDIR)$(WWWPREFIX)/man/mandoc/man1 - mkdir -p $(DESTDIR)$(WWWPREFIX)/man/mandoc/man8 $(INSTALL_PROGRAM) man.cgi $(DESTDIR)$(CGIBINDIR) $(INSTALL_DATA) mandoc.css $(DESTDIR)$(HTDOCDIR) - $(INSTALL_MAN) apropos.1 $(DESTDIR)$(WWWPREFIX)/man/mandoc/man1/ - $(INSTALL_MAN) man.cgi.8 $(DESTDIR)$(WWWPREFIX)/man/mandoc/man8/ Makefile.local config.h: configure ${TESTSRCS} @echo "$@ is out of date; please run ./configure" @exit 1 libmandoc.a: $(COMPAT_OBJS) $(LIBMANDOC_OBJS) - $(AR) rs $@ $(COMPAT_OBJS) $(LIBMANDOC_OBJS) + ar rs $@ $(COMPAT_OBJS) $(LIBMANDOC_OBJS) mandoc: $(MAIN_OBJS) libmandoc.a - $(CC) $(LDFLAGS) -o $@ $(MAIN_OBJS) libmandoc.a $(DBLIB) + $(CC) -o $@ $(LDFLAGS) $(MAIN_OBJS) libmandoc.a $(LDADD) manpage: $(MANPAGE_OBJS) libmandoc.a - $(CC) $(LDFLAGS) -o $@ $(MANPAGE_OBJS) libmandoc.a $(DBLIB) + $(CC) -o $@ $(LDFLAGS) $(MANPAGE_OBJS) libmandoc.a $(LDADD) man.cgi: $(CGI_OBJS) libmandoc.a - $(CC) $(LDFLAGS) $(STATIC) -o $@ $(CGI_OBJS) libmandoc.a $(DBLIB) + $(CC) $(STATIC) -o $@ $(LDFLAGS) $(CGI_OBJS) libmandoc.a $(LDADD) demandoc: $(DEMANDOC_OBJS) libmandoc.a - $(CC) $(LDFLAGS) -o $@ $(DEMANDOC_OBJS) libmandoc.a $(DBLIB) + $(CC) -o $@ $(LDFLAGS) $(DEMANDOC_OBJS) libmandoc.a $(LDADD) soelim: $(SOELIM_OBJS) - $(CC) $(LDFLAGS) -o $@ $(SOELIM_OBJS) + $(CC) -o $@ $(LDFLAGS) $(SOELIM_OBJS) # --- maintainer targets --- @@ -439,6 +441,8 @@ depend: config.h Makefile.depend > Makefile.tmp mv Makefile.tmp Makefile.depend +dist: mdocml.sha256 + mdocml.sha256: mdocml.tar.gz sha256 mdocml.tar.gz > $@ Modified: head/contrib/mdocml/NEWS ============================================================================== --- head/contrib/mdocml/NEWS Sat Jul 23 11:47:04 2016 (r303222) +++ head/contrib/mdocml/NEWS Sat Jul 23 11:55:15 2016 (r303223) @@ -1,7 +1,140 @@ -$Id: NEWS,v 1.10 2015/11/05 16:58:20 schwarze Exp $ +$Id: NEWS,v 1.12 2016/07/14 11:09:06 schwarze Exp $ This file lists the most important changes in the mdocml.bsd.lv distribution. +Changes in version 1.13.4, released on July 14, 2016 + + --- MAJOR NEW FEATURES --- + * man.conf(5): Design and implement a simpler configuration file format. + * man(1): Leverage less(1) -T and :t in a way resembling ctags(1) + to jump to the definitions of various terms inside manual pages. + * soelim(1): New implementation by Baptiste Daroussin. + * privilege limitation: Use OpenBSD pledge(2) or OS X sandbox_init(3) + when available. + * man.cgi(8): Support short URIs like http://man.openbsd.org/mdoc . + * mandoc.css: Use one unified stylesheet rather than three different ones. + --- MAJOR FUNCTIONALLY RELEVANT BUGFIXES --- + * mdoc(7): Fix multiple aspects of SYNOPSIS .Nm formatting. + * man(1): Fix process group handling, avoiding unclean shutdowns. + --- PORTABILITY IMPROVEMENTS --- + * Correctly use the ohash(3) compatibility implementation + even when building without SQLite support. + * Add compat glue for building on Solaris 9 and 10. + * Let ./configure select a supported RE syntax for word boundaries. + * Support LDFLAGS, to be used for example for hardening options. + * Avoid mixing putchar(3) and putwchar(3) on the same file descriptor, + it resulted in output corruption on some platforms. + * Avoid reusing va_lists, use va_copy(3) for better portability. + * Do not hardcode the path to the more(1) program. + --- MINOR NEW FEATURES --- + * roff(7): Implement \n(.$ (number of macro arguments). + * roff(7): Fully implement \z (do not advance cursor). + * roff(7): Implement the `r' conditional (register exists). + * roff(7): Implement \\$* (interpolate all arguments). + * roff(7): Parse and ignore \, and \/ (italic corrections). + * When there is no -m, no -M, no MANPATH and no /etc/man.conf, + fall back to /usr/share/man:/usr/X11R6/man:/usr/local/man. + * man(1): Give manuals in purely numerical sections priority over + manuals of the same name in sections with an alphabetical suffix. + * man.cgi(8): Support "header.html" and "footer.html". + * man.cgi(8): Set the "autofocus" attribute on the query text box. + * man.cgi(8): Simplify the search form, drop two useless buttons. + * man.cgi(8): Delete the pseudo-manpath "mandoc", assume that + apropos(1) and man.cgi(8) are installed in the default manpath. + --- RELIABILITY BUGFIXES --- + * mdoc(7): Avoid a use after free and an assertion failure when nodes + are deleted during validation. + * mdoc(7): Avoid a NULL pointer access when .Bd has no arguments. + * mdoc(7): Avoid a NULL pointer access triggered by mismatching end macros. + * mdoc(7): Avoid an assertion when .Fo has no argument. + * mdoc(7): Avoid an assertion when .Ta occurs in .Bl -column. + * mdoc(7): Avoid an assertion when a body gets broken and has a tail. + * roff(7): Avoid an assertion caused by blanks inside \o. + * roff(7): Make .so links to gziped manuals work without mandoc.db(5). + * tbl(7): Avoid a use after free when the last line of a layout is empty. + * eqn(7): Avoid an infinite loop caused by recursive "define". + * makewhatis(8): Avoid a segfault caused by unusual directory structures. + * Fix handling of leading, trailing, and double colons in MANPATH and -m. + --- MINOR BUGFIXES --- + * mdoc(7): Put arguments to end macros of broken partial explicit blocks + inside the breaking block. + * mdoc(7): Let .Dv force normal font. + * mdoc(7): Make trailing whitespace significant in .Bl -tag widths. + * mdoc(7): Fix macro interpretation around tabs in .Bl -column. + * man(7): Use the default width for .RS without arguments. + * man(7): On a new RS nesting level, the saved width starts from + the default width, not from the saved width of the previous level. + * man(7): Allow .PD in next-line scope. + * man(7): Improve handling of empty .HP. + * man(7): Improve formatting of .br and .sp inside .HP. + * man(7): Do not mistreat empty arguments to font alternating + macros as vertical spacing requests. + * man(7): Allow fill mode changes in tagged paragraph next-line scope. + * man(7): Fix minor bugs in block rewinding and simplify the related code. + * man(7): Add missing line breaks before subsection headers. + * man(7): Give section and subsection headers hanging indentation. + * man(7): Make trailing whitespace significant in .TP widths. + * roff(7): Don't allow breaking the output line after hyphens + that immediately follow escape sequences. + * roff(7): Ignore blank characters at the beginning of conditional blocks. + * roff(7): Escape breakable hyphens only after handling input line traps. + * roff(7): Reject \[uD800] to \[uDFFF] (surrogates) in the parser. + * tbl(7): Allow more than one data field after T} on the same input line. + * terminal output: Apply bold and italic to non-ASCII Unicode codepoints. + * terminal output: Improve rounding rules for horizontal scaling widths. + * HTML output: Render ASCII_NBRSP as " ", not "-". + * man(1): Do not match the first part of a name if it continues with a dot. + * man(1): Keep working even if the current directory is unusable. + * man(1): Better error message when $PAGER is invalid. + * makewhatis(8): Improve handling of .Va and .Vt macros. + * apropos(1): Print "nothing appropriate" to stderr when appropriate. + * apropos(1): Abort with a useful error message when elementary + database operations like preparing queries or binding variables fail. + --- STRUCTURAL CHANGES, no functional change --- + * mdoc(7) and man(7): Unified data structures struct roff_node etc. + * mdoc(7) and man(7): Unified node handling library in roff.c. + * mdoc(7) and man(7): Seperate validation phase from parsing. + * roff(7): Major character table cleanup. + * Link with libz rather than forking gunzip(1). + --- THANKS TO --- + * Baptiste Daroussin (FreeBSD) for the new soelim(1) + and for release testing. + * Anthony Bentley (OpenBSD) for unifying mandoc.css, two nice + patches for man.cgi(8), some documentation patches, some bug + reports, and various useful discussions. + * Todd Miller (OpenBSD) for lots of help with process group and + signal handling, a few patches, some bug reports and some useful + discussions. + * Jonathan Gray (OpenBSD) for yet more testing with afl(1) + again resulting in more than half a dozen important bug reports. + * Svyatoslav Mishyn (Crux Linux) for some patches, several bug + reports, and extensive release testing. + * Christian Neukirchen (void Linux) for a number of compatibility + patches and suggestions and several bug reports. + * Christos Zoulas (NetBSD) for a bug fix patch and some useful + suggestions for cleanup. + * Florian Obser (OpenBSD) for a bugfix patch and some bug reports. + * Sevan Janiyan for help with Solaris compatibility and release + testing on many platforms. + * Jan Holzhueter and OpenCSW in general for help with Solaris + compatibility, and for providing me with a Solaris 9/10/11 testing + environment. + * Michael McConville (OpenBSD) for some simple cleanup patches. + * Thomas Klausner (NetBSD) for some bug reports and release testing. + * Christian Weisgerber, Dmitrij Czarkoff, Igor Sobrado, + Ken Westerback, Marc Espie, Mike Belopuhov, Rafael Neves, + Ted Unangst, Tim van der Molen, Theo Buehler, Theo de Raadt + (OpenBSD), Kurt Jaeger, Dag Erling Smoergrav (FreeBSD), + Joerg Sonnenberger (NetBSD), Carsten Kunze (Heirloom troff), + Daniel Levai, Fabian Raetz, Jan Stary, Jean-Yves Migeon, + Lorenzo Beretta, Markus Waldeck, Maxim Belooussov, Michael Reed, + Peter Bray, and Serguey Parkhomovsky for bug reports and feature + suggestions. + * Alexander Hall, Andrew Fresh, Antoine Jacoutot, Doug Hogan, + Jason McIntyre, Jasper Lievisse Adriaanse, Kent Spillner, + Nicholas Marriott, Peter Hessler, Sebastien Marie, Stefan Sperling, + and Theo de Raadt (OpenBSD) for helpful discussions and feedback. + Changes in version 1.13.3, released on March 13, 2015 --- MAJOR NEW FEATURES --- Modified: head/contrib/mdocml/TODO ============================================================================== --- head/contrib/mdocml/TODO Sat Jul 23 11:47:04 2016 (r303222) +++ head/contrib/mdocml/TODO Sat Jul 23 11:55:15 2016 (r303223) @@ -1,6 +1,6 @@ ************************************************************************ * Official mandoc TODO. -* $Id: TODO,v 1.216 2016/01/08 01:37:32 schwarze Exp $ +* $Id: TODO,v 1.218 2016/06/05 21:06:04 schwarze Exp $ ************************************************************************ Many issues are annotated for difficulty as follows: @@ -416,6 +416,11 @@ are mere guesses, and some may be wrong. see also matthew@ Fri, 18 Jul 2014 19:25:12 -0700 loc * exist * algo ** size * imp *** +- In -man -Thtml, .nf does not preserve indentation. + It should either convert blanks to   + or use
 rather than 
(like .Bd -literal does). + Reported by afresh1@ 12 Apr 2016 14:35:45 -0700 + - .Bf at the beginning of a paragraph inserts a bogus 1ex horizontal space, see for example random(3). Introduced in http://mdocml.bsd.lv/cgi-bin/cvsweb/mdoc_html.c.diff?r1=1.91&r2=1.92 @@ -583,8 +588,6 @@ are mere guesses, and some may be wrong. to tech@mdocml, naddy@ Wed, 28 Sep 2011 11:21:46 +0200 wait! kristaps@ Sun, 02 Oct 2011 17:12:52 +0200 -- for system errors, use errno/strerror/warn/err - ************************************************************************ * documentation issues ************************************************************************ @@ -628,9 +631,6 @@ Several areas can be cleaned up to make * structural issues ************************************************************************ -- Use libz directly instead of forking gunzip(1). - Suggested by bapt at FreeBSD among others. - - We use the input line number at several places to distinguish same-line from different-line input. That plainly doesn't work with user-defined macros, leading to random breakage. Modified: head/contrib/mdocml/cgi.c ============================================================================== --- head/contrib/mdocml/cgi.c Sat Jul 23 11:47:04 2016 (r303222) +++ head/contrib/mdocml/cgi.c Sat Jul 23 11:55:15 2016 (r303223) @@ -1,7 +1,7 @@ -/* $Id: cgi.c,v 1.116 2016/01/04 12:36:26 schwarze Exp $ */ +/* $Id: cgi.c,v 1.135 2016/07/11 22:48:37 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons - * Copyright (c) 2014, 2015 Ingo Schwarze + * Copyright (c) 2014, 2015, 2016 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -55,15 +56,20 @@ struct req { struct query q; char **p; /* array of available manpaths */ size_t psz; /* number of available manpaths */ + int isquery; /* QUERY_STRING used, not PATH_INFO */ +}; + +enum focus { + FOCUS_NONE = 0, + FOCUS_QUERY }; -static void catman(const struct req *, const char *); -static void format(const struct req *, const char *); static void html_print(const char *); static void html_putchar(char); static int http_decode(char *); -static void http_parse(struct req *, const char *); -static void pathgen(struct req *); +static void parse_manpath_conf(struct req *); +static void parse_path_info(struct req *req, const char *path); +static void parse_query_string(struct req *, const char *); static void pg_error_badrequest(const char *); static void pg_error_internal(void); static void pg_index(const struct req *); @@ -74,16 +80,18 @@ static void pg_searchres(const struct static void pg_show(struct req *, const char *); static void resp_begin_html(int, const char *); static void resp_begin_http(int, const char *); +static void resp_catman(const struct req *, const char *); static void resp_copy(const char *); static void resp_end_html(void); -static void resp_searchform(const struct req *); +static void resp_format(const struct req *, const char *); +static void resp_searchform(const struct req *, enum focus); static void resp_show(const struct req *, const char *); static void set_query_attr(char **, char **); static int validate_filename(const char *); static int validate_manpath(const struct req *, const char *); static int validate_urifrag(const char *); -static const char *scriptname; /* CGI script name */ +static const char *scriptname = SCRIPT_NAME; static const int sec_prios[] = {1, 4, 5, 8, 6, 3, 7, 2, 9}; static const char *const sec_numbers[] = { @@ -106,16 +114,16 @@ static const int sec_MAX = sizeof(sec_na static const char *const arch_names[] = { "amd64", "alpha", "armish", "armv7", - "aviion", "hppa", "hppa64", "i386", - "ia64", "landisk", "loongson", "luna88k", - "macppc", "mips64", "octeon", "sgi", - "socppc", "solbourne", "sparc", "sparc64", - "vax", "zaurus", + "hppa", "hppa64", "i386", "landisk", + "loongson", "luna88k", "macppc", "mips64", + "octeon", "sgi", "socppc", "sparc", + "sparc64", "zaurus", "amiga", "arc", "arm32", "atari", - "beagle", "cats", "hp300", "mac68k", - "mvme68k", "mvme88k", "mvmeppc", "palm", - "pc532", "pegasos", "pmax", "powerpc", - "sun3", "wgrisc", "x68k" + "aviion", "beagle", "cats", "hp300", + "ia64", "mac68k", "mvme68k", "mvme88k", + "mvmeppc", "palm", "pc532", "pegasos", + "pmax", "powerpc", "solbourne", "sun3", + "vax", "wgrisc", "x68k" }; static const int arch_MAX = sizeof(arch_names) / sizeof(char *); @@ -182,11 +190,12 @@ set_query_attr(char **attr, char **val) * and store the values into the query structure. */ static void -http_parse(struct req *req, const char *qs) +parse_query_string(struct req *req, const char *qs) { char *key, *val; size_t keysz, valsz; + req->isquery = 1; req->q.manpath = NULL; req->q.arch = NULL; req->q.sec = NULL; @@ -338,14 +347,14 @@ resp_begin_html(int code, const char *ms resp_begin_http(code, msg); printf("\n" - "\n" - "\n" - "\n" - "\n" - "%s\n" - "\n" - "\n" + "\n" + "\n" + "\n" + "\n" + "%s\n" + "\n" + "\n" "\n", CSS_DIR, CUSTOMIZE_TITLE); @@ -358,103 +367,87 @@ resp_end_html(void) resp_copy(MAN_DIR "/footer.html"); - puts("\n" - ""); + puts("\n" + ""); } static void -resp_searchform(const struct req *req) +resp_searchform(const struct req *req, enum focus focus) { int i; puts(""); - printf("
\n" - "
\n" - "
\n" - "Manual Page Search Parameters\n", + printf("
\n" + "\n" + "
\n" + "Manual Page Search Parameters\n", scriptname); /* Write query input box. */ - printf( "
\n" - "q.query) + printf("q.query != NULL) html_print(req->q.query); - puts("\" SIZE=\"40\">"); - - /* Write submission and reset buttons. */ - - printf( "\n" - "\n"); - - /* Write show radio button */ - - printf( "\n" - "q.equal) - printf("CHECKED=\"checked\" "); - printf( "NAME=\"apropos\" ID=\"show\" VALUE=\"0\">\n" - "\n"); + printf( "\" size=\"40\""); + if (focus == FOCUS_QUERY) + printf(" autofocus"); + puts(">"); + + /* Write submission buttons. */ + + printf( "\n" + "\n
\n"); /* Write section selector. */ - puts( "
\n" - ""); for (i = 0; i < sec_MAX; i++) { - printf("\n", sec_names[i]); + printf(" selected=\"selected\""); + printf(">%s\n", sec_names[i]); } - puts(""); + puts(""); /* Write architecture selector. */ - printf( ""); + puts(""); /* Write manpath selector. */ if (req->psz > 1) { - puts(""); for (i = 0; i < (int)req->psz; i++) { - printf(""); + puts(""); } - puts(""); + puts(""); } - /* Write search radio button */ - - printf( "\n" - "q.equal) - printf("CHECKED=\"checked\" "); - printf( "NAME=\"apropos\" ID=\"search\" VALUE=\"1\">\n" - "\n"); - - puts("
\n" - "
\n" - "\n" - "
"); + puts("
\n" + "\n" + "
"); puts(""); } @@ -477,9 +470,6 @@ validate_manpath(const struct req *req, { size_t i; - if ( ! strcmp(manpath, "mandoc")) - return 1; - for (i = 0; i < req->psz; i++) if ( ! strcmp(manpath, req->p[i])) return 1; @@ -503,15 +493,16 @@ pg_index(const struct req *req) { resp_begin_html(200, NULL); - resp_searchform(req); - printf("

\n" + resp_searchform(req, FOCUS_QUERY); + printf("

\n" "This web interface is documented in the\n" - "man.cgi\n" + "man.cgi(8)\n" "manual, and the\n" - "apropos\n" + "apropos(1)\n" "manual explains the query syntax.\n" - "

\n", - scriptname, scriptname); + "

\n", + scriptname, *scriptname == '\0' ? "" : "/", + scriptname, *scriptname == '\0' ? "" : "/"); resp_end_html(); } @@ -519,10 +510,10 @@ static void pg_noresult(const struct req *req, const char *msg) { resp_begin_html(200, NULL); - resp_searchform(req); - puts("

"); + resp_searchform(req, FOCUS_QUERY); + puts("

"); puts(msg); - puts("

"); + puts("

"); resp_end_html(); } @@ -531,12 +522,12 @@ pg_error_badrequest(const char *msg) { resp_begin_html(400, "Bad Request"); - puts("

Bad Request

\n" - "

\n"); + puts("

Bad Request

\n" + "

\n"); puts(msg); printf("Try again from the\n" - "main page.\n" - "

", scriptname); + "main page.\n" + "

", scriptname); resp_end_html(); } @@ -544,7 +535,7 @@ static void pg_error_internal(void) { resp_begin_html(500, "Internal Server Error"); - puts("

Internal Server Error

"); + puts("

Internal Server Error

"); resp_end_html(); } @@ -552,28 +543,30 @@ static void pg_searchres(const struct req *req, struct manpage *r, size_t sz) { char *arch, *archend; - size_t i, iuse, isec; + const char *sec; + size_t i, iuse; int archprio, archpriouse; int prio, priouse; - char sec; for (i = 0; i < sz; i++) { if (validate_filename(r[i].file)) continue; - fprintf(stderr, "invalid filename %s in %s database\n", + warnx("invalid filename %s in %s database", r[i].file, req->q.manpath); pg_error_internal(); return; } - if (1 == sz) { + if (req->isquery && sz == 1) { /* * If we have just one result, then jump there now * without any delay. */ printf("Status: 303 See Other\r\n"); - printf("Location: http://%s%s/%s/%s", - HTTP_HOST, scriptname, req->q.manpath, r[0].file); + printf("Location: http://%s/%s%s%s/%s", + HTTP_HOST, scriptname, + *scriptname == '\0' ? "" : "/", + req->q.manpath, r[0].file); printf("\r\n" "Content-Type: text/html; charset=utf-8\r\n" "\r\n"); @@ -581,50 +574,57 @@ pg_searchres(const struct req *req, stru } resp_begin_html(200, NULL); - resp_searchform(req); - puts("
"); - puts(""); + resp_searchform(req, + req->q.equal || sz == 1 ? FOCUS_NONE : FOCUS_QUERY); - for (i = 0; i < sz; i++) { - printf("\n" - "\n" - "\n" - ""); - } + if (sz > 1) { + puts("
"); + puts("
\n" - "q.manpath, r[i].file); - printf("\">"); - html_print(r[i].names); - printf("\n" - ""); - html_print(r[i].output); - puts("
"); - puts("
\n" - "
"); + for (i = 0; i < sz; i++) { + printf("\n" + "\n" + "q.manpath, r[i].file); + printf("\">"); + html_print(r[i].names); + printf("\n" + "\n" + ""); + html_print(r[i].output); + puts("\n" + ""); + } + + puts("\n" + "
"); + } /* * In man(1) mode, show one of the pages * even if more than one is found. */ - if (req->q.equal) { - puts("
"); + if (req->q.equal || sz == 1) { + puts("
"); iuse = 0; - priouse = 10; + priouse = 20; archpriouse = 3; for (i = 0; i < sz; i++) { - isec = strcspn(r[i].file, "123456789"); - sec = r[i].file[isec]; - if ('\0' == sec) + sec = r[i].file; + sec += strcspn(sec, "123456789"); + if (sec[0] == '\0') continue; - prio = sec_prios[sec - '1']; - if (NULL == req->q.arch) { + prio = sec_prios[sec[0] - '1']; + if (sec[1] != '/') + prio += 10; + if (req->q.arch == NULL) { archprio = - (NULL == (arch = strchr( - r[i].file + isec, '/'))) ? 3 : - (NULL == (archend = strchr( - arch + 1, '/'))) ? 0 : + ((arch = strchr(sec + 1, '/')) + == NULL) ? 3 : + ((archend = strchr(arch + 1, '/')) + == NULL) ? 0 : strncmp(arch, "amd64/", archend - arch) ? 2 : 1; if (archprio < archpriouse) { @@ -648,7 +648,7 @@ pg_searchres(const struct req *req, stru } static void -catman(const struct req *req, const char *file) +resp_catman(const struct req *req, const char *file) { FILE *f; char *p; @@ -658,12 +658,12 @@ catman(const struct req *req, const char int italic, bold; if ((f = fopen(file, "r")) == NULL) { - puts("

You specified an invalid manual file.

"); + puts("

You specified an invalid manual file.

"); return; } - puts("
\n" - "
");
+	puts("
\n" + "
");
 
 	p = NULL;
 	sz = 0;
@@ -689,9 +689,9 @@ catman(const struct req *req, const char
 
 			if ('\b' != p[i + 1]) {
 				if (italic)
-					printf("");
+					printf("");
 				if (bold)
-					printf("");
+					printf("");
 				italic = bold = 0;
 				html_putchar(p[i]);
 				continue;
@@ -702,9 +702,9 @@ catman(const struct req *req, const char
 
 			if ('_' == p[i]) {
 				if (bold)
-					printf("");
+					printf("");
 				if ( ! italic)
-					printf("");
+					printf("");
 				bold = 0;
 				italic = 1;
 				i += 2;
@@ -726,9 +726,9 @@ catman(const struct req *req, const char
 					('*' == p[i] && '|' == p[i + 2]) ||
 					('|' == p[i] && '*' == p[i + 2]))  {
 				if (italic)
-					printf("");
+					printf("");
 				if (bold)
-					printf("");
+					printf("");
 				italic = bold = 0;
 				putchar('*');
 				i += 2;
@@ -740,9 +740,9 @@ catman(const struct req *req, const char
 					('+' == p[i] && '|' == p[i + 1]) ||
 					('|' == p[i] && '+' == p[i + 1]))  {
 				if (italic)
-					printf("");
+					printf("");
 				if (bold)
-					printf("");
+					printf("");
 				italic = bold = 0;
 				putchar('+');
 				i += 2;
@@ -752,9 +752,9 @@ catman(const struct req *req, const char
 			/* Bold mode. */
 
 			if (italic)
-				printf("");
+				printf("");
 			if ( ! bold)
-				printf("");
+				printf("");
 			bold = 1;
 			italic = 0;
 			i += 2;
@@ -767,9 +767,9 @@ catman(const struct req *req, const char
 		 */
 
 		if (italic)
-			printf("");
+			printf("");
 		if (bold)
-			printf("");
+			printf("");
 
 		if (i == len - 1 && p[i] != '\n')
 			html_putchar(p[i]);
@@ -778,14 +778,14 @@ catman(const struct req *req, const char
 	}
 	free(p);
 
-	puts("
\n" - "
"); + puts("
\n" + "
"); fclose(f); } static void -format(const struct req *req, const char *file) +resp_format(const struct req *req, const char *file) { struct manoutput conf; struct mparse *mp; @@ -795,7 +795,7 @@ format(const struct req *req, const char int usepath; if (-1 == (fd = open(file, O_RDONLY, 0))) { - puts("

You specified an invalid manual file.

"); + puts("

You specified an invalid manual file.

"); return; } @@ -807,17 +807,12 @@ format(const struct req *req, const char memset(&conf, 0, sizeof(conf)); conf.fragment = 1; usepath = strcmp(req->q.manpath, req->p[0]); - mandoc_asprintf(&conf.man, "%s?query=%%N&sec=%%S%s%s%s%s", - scriptname, - req->q.arch ? "&arch=" : "", - req->q.arch ? req->q.arch : "", - usepath ? "&manpath=" : "", - usepath ? req->q.manpath : ""); + mandoc_asprintf(&conf.man, "/%s%s%%N.%%S", + usepath ? req->q.manpath : "", usepath ? "/" : ""); mparse_result(mp, &man, NULL); if (man == NULL) { - fprintf(stderr, "fatal mandoc error: %s/%s\n", - req->q.manpath, file); + warnx("fatal mandoc error: %s/%s", req->q.manpath, file); pg_error_internal(); mparse_free(mp); mchars_free(); @@ -848,9 +843,9 @@ resp_show(const struct req *req, const c file += 2; if ('c' == *file) - catman(req, file); + resp_catman(req, file); else - format(req, file); + resp_format(req, file); } static void @@ -881,18 +876,12 @@ pg_show(struct req *req, const char *ful */ if (chdir(manpath) == -1) { - fprintf(stderr, "chdir %s: %s\n", - manpath, strerror(errno)); + warn("chdir %s", manpath); pg_error_internal(); free(manpath); return; } - - if (strcmp(manpath, "mandoc")) { - free(req->q.manpath); - req->q.manpath = manpath; - } else - free(manpath); + free(manpath); if ( ! validate_filename(file)) { pg_error_badrequest( @@ -901,7 +890,7 @@ pg_show(struct req *req, const char *ful } resp_begin_html(200, NULL); - resp_searchform(req); + resp_searchform(req, FOCUS_NONE); resp_show(req, file); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sat Jul 23 12:05:51 2016 Return-Path: Delivered-To: svn-src-all@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 E0464BA288A for ; Sat, 23 Jul 2016 12:05:51 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mail-lf0-f47.google.com (mail-lf0-f47.google.com [209.85.215.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6190C1372 for ; Sat, 23 Jul 2016 12:05:51 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mail-lf0-f47.google.com with SMTP id b199so101450240lfe.0 for ; Sat, 23 Jul 2016 05:05:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to; bh=XcOD73ngZ0WvoMbGTmuJTnOYJC5YUnmqG4MmqwS+lZk=; b=MZZqP1/QUXI/HxI3cIHPJfM4R6B4JQ0HJDKp/1Zma+bpKiX9AL8h7kC80Nx8zLBGqJ iWOqQqhu7p6T5u54Ta40lFPc+O9p40ALUxahNOjzihVS5N3jh/IC6Wc5R3KfhpeEwOqF xXfguvpYAxinzK27vzJpIPvklobISjsrQdz83ybKU4Ad264qdxhHDG9pCf3k+Bs70ihW 1h6dSbmKpNlMgcSKdEzb9Ax9GHOAeqjkJs+Hi1X1ax1GeQI8GcmWEzpbQi/vWsLo3DlX Z0DVmhgSm3vkv5WLy8EYcvkrpTUtwCxBGaAf78QXMjuLk8Cr3Uy6AjD2ppD4ORhazulv OQ1g== X-Gm-Message-State: AEkooutZ4VLwCXG2UUKApyVXr3wybdw1ynv1StJxt+f9LDQGRayQeOcgJgEgttJtLdb/Pw== X-Received: by 10.46.71.134 with SMTP id u128mr4325959lja.67.1469275113848; Sat, 23 Jul 2016 04:58:33 -0700 (PDT) Received: from [192.168.1.2] ([89.169.173.68]) by smtp.gmail.com with ESMTPSA id 88sm3822753lfr.23.2016.07.23.04.58.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 23 Jul 2016 04:58:33 -0700 (PDT) Subject: Re: svn commit: r303218 - head/tools/tools/locale/tools To: Baptiste Daroussin References: <201607231124.u6NBO5aJ003824@repo.freebsd.org> <97566d46-1d37-8c95-f276-f55b190bddbb@freebsd.org> <20160723115244.76vhhzl55qoyw4kf@ivaldir.etoilebsd.net> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org From: Andrey Chernov Message-ID: <2ddb2814-9edf-82a9-350c-aebf34cdb4ab@freebsd.org> Date: Sat, 23 Jul 2016 14:58:31 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20160723115244.76vhhzl55qoyw4kf@ivaldir.etoilebsd.net> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="c719DQnWuwRDbuGWadllGI5ds0xRVXSk1" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 12:05:52 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --c719DQnWuwRDbuGWadllGI5ds0xRVXSk1 Content-Type: multipart/mixed; boundary="QGlqblNLqdwlrsXHVr44uwFH7Jr9wgQr7" From: Andrey Chernov To: Baptiste Daroussin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <2ddb2814-9edf-82a9-350c-aebf34cdb4ab@freebsd.org> Subject: Re: svn commit: r303218 - head/tools/tools/locale/tools References: <201607231124.u6NBO5aJ003824@repo.freebsd.org> <97566d46-1d37-8c95-f276-f55b190bddbb@freebsd.org> <20160723115244.76vhhzl55qoyw4kf@ivaldir.etoilebsd.net> In-Reply-To: <20160723115244.76vhhzl55qoyw4kf@ivaldir.etoilebsd.net> --QGlqblNLqdwlrsXHVr44uwFH7Jr9wgQr7 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 23.07.2016 14:52, Baptiste Daroussin wrote: > On Sat, Jul 23, 2016 at 02:41:39PM +0300, Andrey Chernov wrote: >> On 23.07.2016 14:24, Baptiste Daroussin wrote: >>> Author: bapt >>> Date: Sat Jul 23 11:24:05 2016 >>> New Revision: 303218 >>> URL: https://svnweb.freebsd.org/changeset/base/303218 >>> >>> Log: >>> Add another hack to add weekday to date format to more locales >>> >>> While here only initialize the iconv converter when needed >>> >>> Modified: >>> head/tools/tools/locale/tools/cldr2def.pl >> >> BTW, is there any progress in generating all collates with -m ${area} = as >> you planned? >> > you mean the @modifier? No, I mean that: >> Perhaps all uk_UA should be generated with -m ${area} too - Ukrainians= >> have extended Cyrillics in their alphabet and I am not sure that their= >> order match default Unicode order for Cyrillic. The same about be_BY, >> bg_BG and sr_Cyrl_RS. They may match or may not, I don't check such >deeply. >> >> It seems the safest side will be to generate all with -m ${area} >> >Yes that is my plan, except for the 1 or 2 that cannot be generated >from cldr >directly --QGlqblNLqdwlrsXHVr44uwFH7Jr9wgQr7-- --c719DQnWuwRDbuGWadllGI5ds0xRVXSk1 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEcBAEBCAAGBQJXk1vnAAoJEKUckv0MjfbKT44H/2btp8AhZ8B/vZJbtSnf90HP xRIDLOsCzGPiZb7AS+K8gvET1CrayExyQ8WBor8bilGYO297er/JP3PDEGQ4FKC0 5D0Q6g4JwWoIZSdQVgXk6f4vrIeZ3DF+gK1j4GU1rPX7WGbUhNJPemubZQ6GvHJD XiVKh96NrcaowFj7lYHGkmeQvLU8Ir0XE2vBNc53Y4wFH4HC0cYks/CCwBy8O9CW 0YEmtGT4XeQeghoP4g9QyR1FcG/+S5REKxKFrNoNNo8BpV4yXZ+immWhzOk9liln LzhDU/dP07uyg4ZUM/IAo/0jpumL8yPuCtBA9XLjRoZ2e/syhov40tgDjvzbvqs= =moAl -----END PGP SIGNATURE----- --c719DQnWuwRDbuGWadllGI5ds0xRVXSk1-- From owner-svn-src-all@freebsd.org Sat Jul 23 12:32:33 2016 Return-Path: Delivered-To: svn-src-all@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 44200BA1280; Sat, 23 Jul 2016 12:32:33 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: from mail-wm0-x230.google.com (mail-wm0-x230.google.com [IPv6:2a00:1450:400c:c09::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C1E091355; Sat, 23 Jul 2016 12:32:32 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: by mail-wm0-x230.google.com with SMTP id i5so98327481wmg.0; Sat, 23 Jul 2016 05:32:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=YiY5mmwzoPunz1HiFMlxrC46ks+QBQ3LeuTziKq2ZlA=; b=dteWADFzg6TvV36pJGJTrGegHB8mbpeJ+zlq3wjR9mKcwIDPKVJL1UKJNlzk9zuTd8 kXmhvmPAl8k98FUfP9TRCoCEQHnTctD2Jr1qw8cSJBOb0mxIFJIYt2RzLgS8Whq+T5Id KxAHPOt6HtjC7dRdq+vYtvvIFcWFuHIn1+xFnCF1mXgiHv1U9KOc2UufJvTwqgV8tjZT P+ljeA5RcKhSlgEvcUir2GFDagn4ux1GF/YA1cpQxmsCc03zABya4X6rggcf+N/ZfjBh r41ZwPI/hbwMT8+MWcHjDnWzZj7Zk2zhjmyH0/A2Gk20yUKt7t6eZpZm/3BwvTduYrVe fuoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=YiY5mmwzoPunz1HiFMlxrC46ks+QBQ3LeuTziKq2ZlA=; b=Rrm+KudbeZ4BWQeZRV+j84qwcO3xj7TaZU9U/bfbNte3odqTH0zu+o9Mkb/eO/k7G0 EbCn9Zs3rj1s/oydCkHpg18s9CaZgKvjgsAGvJnuojFBRL+CVdlQphDpsazJXSOv4Pkm An07vkQJPtstbzy1ecuKQaWepDC4KVW5MJBzbTinrYnrP0H+Dzg6QQvHUT9JLhPAPNsJ /Kj/9ZhgkaUeimdFduHAnSNaxOg66rsZOaxeNBDC/yBBRiI1Ejxadj4S8/FtsTEXhBVa 50J0xXyUrGG/tMzrrYoXw7w712FChqI8AiZIMO5rmtJrGdA/wrGpWkJAHMmtiSLKvoKP 0JMA== X-Gm-Message-State: AEkoouun4MYh0+y9TIRyR0yFU/XH82dKMp1vgswAo9hCxHtiN6bvtevERMYthel4K8ztiQ== X-Received: by 10.194.178.102 with SMTP id cx6mr6137713wjc.58.1469277150399; Sat, 23 Jul 2016 05:32:30 -0700 (PDT) Received: from ivaldir.etoilebsd.net ([2001:41d0:8:db4c::1]) by smtp.gmail.com with ESMTPSA id t188sm17330818wme.19.2016.07.23.05.32.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 23 Jul 2016 05:32:29 -0700 (PDT) Sender: Baptiste Daroussin Date: Sat, 23 Jul 2016 14:32:29 +0200 From: Baptiste Daroussin To: Andrey Chernov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303218 - head/tools/tools/locale/tools Message-ID: <20160723123228.i2tmxaklkoad6vkh@ivaldir.etoilebsd.net> References: <201607231124.u6NBO5aJ003824@repo.freebsd.org> <97566d46-1d37-8c95-f276-f55b190bddbb@freebsd.org> <20160723115244.76vhhzl55qoyw4kf@ivaldir.etoilebsd.net> <2ddb2814-9edf-82a9-350c-aebf34cdb4ab@freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="mkz54hc4x5cp7rya" Content-Disposition: inline In-Reply-To: <2ddb2814-9edf-82a9-350c-aebf34cdb4ab@freebsd.org> User-Agent: Mutt/1.6.1-neo (2016-06-11) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 12:32:33 -0000 --mkz54hc4x5cp7rya Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Jul 23, 2016 at 02:58:31PM +0300, Andrey Chernov wrote: > On 23.07.2016 14:52, Baptiste Daroussin wrote: > > On Sat, Jul 23, 2016 at 02:41:39PM +0300, Andrey Chernov wrote: > >> On 23.07.2016 14:24, Baptiste Daroussin wrote: > >>> Author: bapt > >>> Date: Sat Jul 23 11:24:05 2016 > >>> New Revision: 303218 > >>> URL: https://svnweb.freebsd.org/changeset/base/303218 > >>> > >>> Log: > >>> Add another hack to add weekday to date format to more locales > >>> > >>> While here only initialize the iconv converter when needed > >>> > >>> Modified: > >>> head/tools/tools/locale/tools/cldr2def.pl > >> > >> BTW, is there any progress in generating all collates with -m ${area} = as > >> you planned? > >> > > you mean the @modifier? >=20 > No, I mean that: > >> Perhaps all uk_UA should be generated with -m ${area} too - Ukrainians > >> have extended Cyrillics in their alphabet and I am not sure that their > >> order match default Unicode order for Cyrillic. The same about be_BY, > >> bg_BG and sr_Cyrl_RS. They may match or may not, I don't check such > >deeply. > >> > >> It seems the safest side will be to generate all with -m ${area} > >> > >Yes that is my plan, except for the 1 or 2 that cannot be generated > >from cldr > >directly >=20 Nope I haven't made any progress, and I actually did a bunch of tests of so= me (honnestly not all locales) trying to get a representative set and could not find differnce in ordering between locales generated with -m ${area}. It would also needs lots of work on the generation tools. I first need to write a tool that compares collation rules for various ${ar= ea} (not done yet) to see how much this is really needed and use it in the generation tools. I will try to do that for 12 if it is really worth it (based on the result = =66rom that comparison tools) Best regards, Bapt --mkz54hc4x5cp7rya Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXk2PaAAoJEGOJi9zxtz5a/ywQAJqKPdKwDY+TLBb8P9viypoK JmZu57T2eB6uXN8cviu3uZ5h9leG079fsQX/vaeWkKhHcDlWSDXMkKpv8aK9bvZk 1VcSIdqX/kmadVcyBkKJ5K5GRR1I1ZCcFmlx78myKoSEmvjhdRUHMWrPOhoXK8mk f7XmBv7sACKikf4MN5Mxv4OiOfm42nViZoNlNgu/1BqLOGX5Z8RjojCjZ2B5I80c BdiGbeMQ2MHw3MTqNTM4gSgjW9/4r3Pdb+zx964I95q5L+WfrUsUAMrT2TIZ60ud JgILKuSLFC0NkG79mHNHkWhx5jH6lIf22W9LcbssxsMhqqh1qo+ykQ+900mAF2gQ lYvUn6uZu9udAKtP47HcJ++SkuLNt/hjJYlKq+BeyzQtPKrjhNUkhNES4nQ1SsJO BeOpxUx8bmGKEJ7oVN5Q7YqTdhXDl6k2HIYxKCA5JXVVjEmVW5MR3uHyW29AdS7v Q9kMyxTyFRFTgaYm1zNkCnx8qhXeAcQrfgjT6dIuzNC72n6HXRhfP/ZQrLUje+Xb 6r+bCDzV95OZMsrCr8aQNUYWb/q7CXtgjyCWMLObFwbfN+U7banONoWhEv+Og4ms RaOQl071/syCHuweNRfik9675FUkcp2i6YgAz5BKaaFaXW7CBGv9Piav+s9tYW/i d96JaXXhVc1vvU9M1X7J =XQyw -----END PGP SIGNATURE----- --mkz54hc4x5cp7rya-- From owner-svn-src-all@freebsd.org Sat Jul 23 12:34:33 2016 Return-Path: Delivered-To: svn-src-all@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 71B08BA1353; Sat, 23 Jul 2016 12:34:33 +0000 (UTC) (envelope-from bapt@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 449A0154E; Sat, 23 Jul 2016 12:34:33 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NCYW9r029825; Sat, 23 Jul 2016 12:34:32 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NCYWkH029824; Sat, 23 Jul 2016 12:34:32 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201607231234.u6NCYWkH029824@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Sat, 23 Jul 2016 12:34:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303224 - head/tools/tools/locale X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 12:34:33 -0000 Author: bapt Date: Sat Jul 23 12:34:32 2016 New Revision: 303224 URL: https://svnweb.freebsd.org/changeset/base/303224 Log: Recode the new dependency on converters/p5-Text-Iconv Modified: head/tools/tools/locale/README Modified: head/tools/tools/locale/README ============================================================================== --- head/tools/tools/locale/README Sat Jul 23 11:55:15 2016 (r303223) +++ head/tools/tools/locale/README Sat Jul 23 12:34:32 2016 (r303224) @@ -2,7 +2,7 @@ To generate the locales: -Tools needed: java, perl and devel/p5-Tie-IxHash +Tools needed: java, perl, devel/p5-Tie-IxHash and converters/p5-Text-Iconv fetch cldr data from: http://cldr.unicode.org extract in a directory ~/unicode/cldr/v27.0.1 for example From owner-svn-src-all@freebsd.org Sat Jul 23 14:38:10 2016 Return-Path: Delivered-To: svn-src-all@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 C51DABA2143; Sat, 23 Jul 2016 14:38:10 +0000 (UTC) (envelope-from jhb@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 7D0B41BC2; Sat, 23 Jul 2016 14:38:10 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NEc99F075709; Sat, 23 Jul 2016 14:38:09 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NEc9fG075708; Sat, 23 Jul 2016 14:38:09 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607231438.u6NEc9fG075708@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 23 Jul 2016 14:38:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303225 - head/sys/dev/fb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 14:38:10 -0000 Author: jhb Date: Sat Jul 23 14:38:09 2016 New Revision: 303225 URL: https://svnweb.freebsd.org/changeset/base/303225 Log: Use MTX_SYSINIT for the VESA lock. vesa_init_done isn't a reliable guard for the mutex init. If vesa_configure() doesn't find valid VESA info it will not set vesa_init_done, but the lock will remain initialized. Revert r303076 and use MTX_SYSINIT to deterministically init the lock. Reviewed by: royger MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D7290 Modified: head/sys/dev/fb/vesa.c Modified: head/sys/dev/fb/vesa.c ============================================================================== --- head/sys/dev/fb/vesa.c Sat Jul 23 12:34:32 2016 (r303224) +++ head/sys/dev/fb/vesa.c Sat Jul 23 14:38:09 2016 (r303225) @@ -79,6 +79,7 @@ struct adp_state { typedef struct adp_state adp_state_t; static struct mtx vesa_lock; +MTX_SYSINIT(vesa_lock, &vesa_lock, "VESA lock", MTX_DEF); static int vesa_state; static void *vesa_state_buf; @@ -134,7 +135,6 @@ static vi_fill_rect_t vesa_fill_rect; static vi_bitblt_t vesa_bitblt; static vi_diag_t vesa_diag; static int vesa_bios_info(int level); -static int vesa_late_load(int flags); static video_switch_t vesavidsw = { vesa_probe, @@ -1142,7 +1142,7 @@ vesa_configure(int flags) * initialization for now and try again later. */ if (adp == NULL) { - vga_sub_configure = vesa_late_load; + vga_sub_configure = vesa_configure; return (ENODEV); } @@ -1910,27 +1910,14 @@ vesa_bios_info(int level) static int vesa_load(void) { - - return (vesa_late_load(0)); -} - -/* - * To be called from the vga_sub_configure hook in case the VGA adapter is - * not found when VESA is loaded. - */ -static int -vesa_late_load(int flags) -{ int error; if (vesa_init_done) return (0); - mtx_init(&vesa_lock, "VESA lock", NULL, MTX_DEF); - /* locate a VGA adapter */ vesa_adp = NULL; - error = vesa_configure(flags); + error = vesa_configure(0); if (error == 0) vesa_bios_info(bootverbose); @@ -1966,7 +1953,6 @@ vesa_unload(void) } vesa_bios_uninit(); - mtx_destroy(&vesa_lock); return (error); } From owner-svn-src-all@freebsd.org Sat Jul 23 15:12:04 2016 Return-Path: Delivered-To: svn-src-all@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 8EEF1BA29DB; Sat, 23 Jul 2016 15:12:04 +0000 (UTC) (envelope-from np@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 58FDF1AE7; Sat, 23 Jul 2016 15:12:04 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NFC3dP089401; Sat, 23 Jul 2016 15:12:03 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NFC3DD089400; Sat, 23 Jul 2016 15:12:03 GMT (envelope-from np@FreeBSD.org) Message-Id: <201607231512.u6NFC3DD089400@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Sat, 23 Jul 2016 15:12:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303226 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 15:12:04 -0000 Author: np Date: Sat Jul 23 15:12:03 2016 New Revision: 303226 URL: https://svnweb.freebsd.org/changeset/base/303226 Log: Fix kernel builds with "device cxgbe". Modified: head/sys/conf/files Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sat Jul 23 14:38:09 2016 (r303225) +++ head/sys/conf/files Sat Jul 23 15:12:03 2016 (r303226) @@ -1243,6 +1243,7 @@ dev/cxgb/sys/uipc_mvec.c optional cxgb p compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/cxgb_t3fw.c optional cxgb cxgb_t3fw \ compile-with "${NORMAL_C} -I$S/dev/cxgb" +dev/cxgbe/t4_if.m optional cxgbe pci dev/cxgbe/t4_iov.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_mp_ring.c optional cxgbe pci \ From owner-svn-src-all@freebsd.org Sat Jul 23 17:36:19 2016 Return-Path: Delivered-To: svn-src-all@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 28B33BA1964; Sat, 23 Jul 2016 17:36:19 +0000 (UTC) (envelope-from loos@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 EDDA218F7; Sat, 23 Jul 2016 17:36:18 +0000 (UTC) (envelope-from loos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NHaIwN042072; Sat, 23 Jul 2016 17:36:18 GMT (envelope-from loos@FreeBSD.org) Received: (from loos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NHaISG042071; Sat, 23 Jul 2016 17:36:18 GMT (envelope-from loos@FreeBSD.org) Message-Id: <201607231736.u6NHaISG042071@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: loos set sender to loos@FreeBSD.org using -f From: Luiz Otavio O Souza Date: Sat, 23 Jul 2016 17:36:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303227 - head/sys/arm/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 17:36:19 -0000 Author: loos Date: Sat Jul 23 17:36:17 2016 New Revision: 303227 URL: https://svnweb.freebsd.org/changeset/base/303227 Log: Remove unused USB ethernet driver from BEAGLEBONE/AM335x kernel. Modified: head/sys/arm/conf/BEAGLEBONE Modified: head/sys/arm/conf/BEAGLEBONE ============================================================================== --- head/sys/arm/conf/BEAGLEBONE Sat Jul 23 15:12:03 2016 (r303226) +++ head/sys/arm/conf/BEAGLEBONE Sat Jul 23 17:36:17 2016 (r303227) @@ -113,7 +113,6 @@ device bpf # USB Ethernet support, requires miibus device miibus -device axe # ASIX Electronics USB Ethernet # Device mode support and USFS template device usb_template # Control of the gadget From owner-svn-src-all@freebsd.org Sat Jul 23 17:38:00 2016 Return-Path: Delivered-To: svn-src-all@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 2E705BA1AF4; Sat, 23 Jul 2016 17:38:00 +0000 (UTC) (envelope-from jhb@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 005F11B09; Sat, 23 Jul 2016 17:37:59 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NHbx3Q042164; Sat, 23 Jul 2016 17:37:59 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NHbx9j042163; Sat, 23 Jul 2016 17:37:59 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607231737.u6NHbx9j042163@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 23 Jul 2016 17:37:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303228 - stable/11/sys/sys X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 17:38:00 -0000 Author: jhb Date: Sat Jul 23 17:37:59 2016 New Revision: 303228 URL: https://svnweb.freebsd.org/changeset/base/303228 Log: MFC 302858: Move nested include of inside _KERNEL. This removes namespace pollution for userland brought in by r299122. PR: 210319 Approved by: re (kib) Modified: stable/11/sys/sys/cpuset.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/sys/cpuset.h ============================================================================== --- stable/11/sys/sys/cpuset.h Sat Jul 23 17:36:17 2016 (r303227) +++ stable/11/sys/sys/cpuset.h Sat Jul 23 17:37:59 2016 (r303228) @@ -35,7 +35,6 @@ #include #include -#include #define _NCPUBITS _BITSET_BITS #define _NCPUWORDS __bitset_words(CPU_SETSIZE) @@ -92,6 +91,8 @@ #define CPUSET_DEFAULT 0 #ifdef _KERNEL +#include + LIST_HEAD(setlist, cpuset); /* From owner-svn-src-all@freebsd.org Sat Jul 23 17:41:48 2016 Return-Path: Delivered-To: svn-src-all@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 CFC11BA1CB3; Sat, 23 Jul 2016 17:41:48 +0000 (UTC) (envelope-from jhb@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 AD7341E44; Sat, 23 Jul 2016 17:41:48 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NHfl4o045571; Sat, 23 Jul 2016 17:41:47 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NHflan045567; Sat, 23 Jul 2016 17:41:47 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607231741.u6NHflan045567@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 23 Jul 2016 17:41:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303229 - stable/10/sys/dev/acpica X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 17:41:48 -0000 Author: jhb Date: Sat Jul 23 17:41:47 2016 New Revision: 303229 URL: https://svnweb.freebsd.org/changeset/base/303229 Log: MFC 298370,298372,298377,298379,298380,298484: Abstract out _OSC handling and invoke it for PCI bridges. r298370: Add a wrapper for evaluating _OSC methods. This wrapper does not translate errors in the first word to ACPI error status returns. Use this wrapper in the acpi_cpu(4) driver in place of the existing _OSC code. While here, fix a bug where the wrong count of words was passed when invoking _OSC. r298372: Invoke _OSC on Host-PCI bridges. Tell the firmware that we support PCI-express config space access and MSI. r298377: Remove query flag from acpi_EvaluateOSC(). This function does not support return buffer (yet). r298379: There is no need to use array any more. No functional change. r298380: Prefer sizeof(*pointer) over sizeof(type). No funtional change. r298484: Optionally return the output capabilities list from _OSC. Both of the callers were expecting the input cap_set to be modified. This fixes them to request cap_set to be updated with the returned buffer. Modified: stable/10/sys/dev/acpica/acpi.c stable/10/sys/dev/acpica/acpi_cpu.c stable/10/sys/dev/acpica/acpi_pcib_acpi.c stable/10/sys/dev/acpica/acpivar.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/acpica/acpi.c ============================================================================== --- stable/10/sys/dev/acpica/acpi.c Sat Jul 23 17:37:59 2016 (r303228) +++ stable/10/sys/dev/acpica/acpi.c Sat Jul 23 17:41:47 2016 (r303229) @@ -2451,6 +2451,46 @@ acpi_AppendBufferResource(ACPI_BUFFER *b return (AE_OK); } +ACPI_STATUS +acpi_EvaluateOSC(ACPI_HANDLE handle, uint8_t *uuid, int revision, int count, + uint32_t *caps_in, uint32_t *caps_out, bool query) +{ + ACPI_OBJECT arg[4], *ret; + ACPI_OBJECT_LIST arglist; + ACPI_BUFFER buf; + ACPI_STATUS status; + + arglist.Pointer = arg; + arglist.Count = 4; + arg[0].Type = ACPI_TYPE_BUFFER; + arg[0].Buffer.Length = ACPI_UUID_LENGTH; + arg[0].Buffer.Pointer = uuid; + arg[1].Type = ACPI_TYPE_INTEGER; + arg[1].Integer.Value = revision; + arg[2].Type = ACPI_TYPE_INTEGER; + arg[2].Integer.Value = count; + arg[3].Type = ACPI_TYPE_BUFFER; + arg[3].Buffer.Length = count * sizeof(*caps_in); + arg[3].Buffer.Pointer = (uint8_t *)caps_in; + caps_in[0] = query ? 1 : 0; + buf.Pointer = NULL; + buf.Length = ACPI_ALLOCATE_BUFFER; + status = AcpiEvaluateObjectTyped(handle, "_OSC", &arglist, &buf, + ACPI_TYPE_BUFFER); + if (ACPI_FAILURE(status)) + return (status); + if (caps_out != NULL) { + ret = buf.Pointer; + if (ret->Buffer.Length != count * sizeof(*caps_out)) { + AcpiOsFree(buf.Pointer); + return (AE_BUFFER_OVERFLOW); + } + bcopy(ret->Buffer.Pointer, caps_out, ret->Buffer.Length); + } + AcpiOsFree(buf.Pointer); + return (status); +} + /* * Set interrupt model. */ Modified: stable/10/sys/dev/acpica/acpi_cpu.c ============================================================================== --- stable/10/sys/dev/acpica/acpi_cpu.c Sat Jul 23 17:37:59 2016 (r303228) +++ stable/10/sys/dev/acpica/acpi_cpu.c Sat Jul 23 17:41:47 2016 (r303229) @@ -275,7 +275,7 @@ static int acpi_cpu_attach(device_t dev) { ACPI_BUFFER buf; - ACPI_OBJECT arg[4], *obj; + ACPI_OBJECT arg, *obj; ACPI_OBJECT_LIST arglist; struct pcpu *pcpu_data; struct acpi_cpu_softc *sc; @@ -359,31 +359,19 @@ acpi_cpu_attach(device_t dev) * Intel Processor Vendor-Specific ACPI Interface Specification. */ if (sc->cpu_features) { - arglist.Pointer = arg; - arglist.Count = 4; - arg[0].Type = ACPI_TYPE_BUFFER; - arg[0].Buffer.Length = sizeof(cpu_oscuuid); - arg[0].Buffer.Pointer = cpu_oscuuid; /* UUID */ - arg[1].Type = ACPI_TYPE_INTEGER; - arg[1].Integer.Value = 1; /* revision */ - arg[2].Type = ACPI_TYPE_INTEGER; - arg[2].Integer.Value = 1; /* count */ - arg[3].Type = ACPI_TYPE_BUFFER; - arg[3].Buffer.Length = sizeof(cap_set); /* Capabilities buffer */ - arg[3].Buffer.Pointer = (uint8_t *)cap_set; - cap_set[0] = 0; /* status */ cap_set[1] = sc->cpu_features; - status = AcpiEvaluateObject(sc->cpu_handle, "_OSC", &arglist, NULL); + status = acpi_EvaluateOSC(sc->cpu_handle, cpu_oscuuid, 1, 2, cap_set, + cap_set, false); if (ACPI_SUCCESS(status)) { if (cap_set[0] != 0) device_printf(dev, "_OSC returned status %#x\n", cap_set[0]); } else { - arglist.Pointer = arg; + arglist.Pointer = &arg; arglist.Count = 1; - arg[0].Type = ACPI_TYPE_BUFFER; - arg[0].Buffer.Length = sizeof(cap_set); - arg[0].Buffer.Pointer = (uint8_t *)cap_set; + arg.Type = ACPI_TYPE_BUFFER; + arg.Buffer.Length = sizeof(cap_set); + arg.Buffer.Pointer = (uint8_t *)cap_set; cap_set[0] = 1; /* revision */ cap_set[1] = 1; /* number of capabilities integers */ cap_set[2] = sc->cpu_features; Modified: stable/10/sys/dev/acpica/acpi_pcib_acpi.c ============================================================================== --- stable/10/sys/dev/acpica/acpi_pcib_acpi.c Sat Jul 23 17:37:59 2016 (r303228) +++ stable/10/sys/dev/acpica/acpi_pcib_acpi.c Sat Jul 23 17:41:47 2016 (r303229) @@ -295,6 +295,39 @@ first_decoded_bus(struct acpi_hpcib_soft } #endif +static void +acpi_pcib_osc(struct acpi_hpcib_softc *sc) +{ + ACPI_STATUS status; + uint32_t cap_set[3]; + + static uint8_t pci_host_bridge_uuid[ACPI_UUID_LENGTH] = { + 0x5b, 0x4d, 0xdb, 0x33, 0xf7, 0x1f, 0x1c, 0x40, + 0x96, 0x57, 0x74, 0x41, 0xc0, 0x3d, 0xd7, 0x66 + }; + + /* Support Field: Extended PCI Config Space, MSI */ + cap_set[1] = 0x11; + + /* Control Field */ + cap_set[2] = 0; + + status = acpi_EvaluateOSC(sc->ap_handle, pci_host_bridge_uuid, 1, + nitems(cap_set), cap_set, cap_set, false); + if (ACPI_FAILURE(status)) { + if (status == AE_NOT_FOUND) + return; + device_printf(sc->ap_dev, "_OSC failed: %s\n", + AcpiFormatException(status)); + return; + } + + if (cap_set[0] != 0) { + device_printf(sc->ap_dev, "_OSC returned error %#x\n", + cap_set[0]); + } +} + static int acpi_pcib_acpi_attach(device_t dev) { @@ -321,6 +354,8 @@ acpi_pcib_acpi_attach(device_t dev) if (!acpi_DeviceIsPresent(dev)) return (ENXIO); + acpi_pcib_osc(sc); + /* * Get our segment number by evaluating _SEG. * It's OK for this to not exist. Modified: stable/10/sys/dev/acpica/acpivar.h ============================================================================== --- stable/10/sys/dev/acpica/acpivar.h Sat Jul 23 17:37:59 2016 (r303228) +++ stable/10/sys/dev/acpica/acpivar.h Sat Jul 23 17:41:47 2016 (r303229) @@ -335,6 +335,9 @@ ACPI_STATUS acpi_FindIndexedResource(ACP ACPI_RESOURCE **resp); ACPI_STATUS acpi_AppendBufferResource(ACPI_BUFFER *buf, ACPI_RESOURCE *res); +ACPI_STATUS acpi_EvaluateOSC(ACPI_HANDLE handle, uint8_t *uuid, + int revision, int count, uint32_t *caps_in, + uint32_t *caps_out, bool query); ACPI_STATUS acpi_OverrideInterruptLevel(UINT32 InterruptNumber); ACPI_STATUS acpi_SetIntrModel(int model); int acpi_ReqSleepState(struct acpi_softc *sc, int state); From owner-svn-src-all@freebsd.org Sat Jul 23 18:16:41 2016 Return-Path: Delivered-To: svn-src-all@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 C5719BA23D7; Sat, 23 Jul 2016 18:16:41 +0000 (UTC) (envelope-from loos@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 95C9B1C0C; Sat, 23 Jul 2016 18:16:41 +0000 (UTC) (envelope-from loos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NIGefM056931; Sat, 23 Jul 2016 18:16:40 GMT (envelope-from loos@FreeBSD.org) Received: (from loos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NIGeXm056929; Sat, 23 Jul 2016 18:16:40 GMT (envelope-from loos@FreeBSD.org) Message-Id: <201607231816.u6NIGeXm056929@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: loos set sender to loos@FreeBSD.org using -f From: Luiz Otavio O Souza Date: Sat, 23 Jul 2016 18:16:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303230 - head/sys/dev/mii X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 18:16:41 -0000 Author: loos Date: Sat Jul 23 18:16:40 2016 New Revision: 303230 URL: https://svnweb.freebsd.org/changeset/base/303230 Log: Add support for the Microchip/Micrel KSZ9031 Gigabit Ethernet PHY. Tested on uBMC and uFW. Sponsored by: Rubicon Communications (Netgate) Modified: head/sys/dev/mii/micphy.c head/sys/dev/mii/miidevs Modified: head/sys/dev/mii/micphy.c ============================================================================== --- head/sys/dev/mii/micphy.c Sat Jul 23 17:41:47 2016 (r303229) +++ head/sys/dev/mii/micphy.c Sat Jul 23 18:16:40 2016 (r303230) @@ -67,6 +67,14 @@ __FBSDID("$FreeBSD$"); #define MII_KSZPHY_CLK_CONTROL_PAD_SKEW 0x104 #define MII_KSZPHY_RX_DATA_PAD_SKEW 0x105 #define MII_KSZPHY_TX_DATA_PAD_SKEW 0x106 +/* KSZ9031 */ +#define MII_KSZ9031_MMD_ACCESS_CTRL 0x0d +#define MII_KSZ9031_MMD_ACCESS_DATA 0x0e +#define MII_KSZ9031_MMD_DATA_NOINC (1 << 14) +#define MII_KSZ9031_CONTROL_PAD_SKEW 0x4 +#define MII_KSZ9031_RX_DATA_PAD_SKEW 0x5 +#define MII_KSZ9031_TX_DATA_PAD_SKEW 0x6 +#define MII_KSZ9031_CLOCK_PAD_SKEW 0x8 #define PS_TO_REG(p) ((p) / 200) @@ -95,6 +103,7 @@ DRIVER_MODULE(micphy, miibus, micphy_dri static const struct mii_phydesc micphys[] = { MII_PHY_DESC(MICREL, KSZ9021), + MII_PHY_DESC(MICREL, KSZ9031), MII_PHY_END }; @@ -104,48 +113,128 @@ static const struct mii_phy_funcs micphy mii_phy_reset }; +static uint32_t +ksz9031_read(struct mii_softc *sc, uint32_t devaddr, uint32_t reg) +{ + /* Set up device address and register. */ + PHY_WRITE(sc, MII_KSZ9031_MMD_ACCESS_CTRL, devaddr); + PHY_WRITE(sc, MII_KSZ9031_MMD_ACCESS_DATA, reg); + + /* Select register data for MMD and read the value. */ + PHY_WRITE(sc, MII_KSZ9031_MMD_ACCESS_CTRL, + MII_KSZ9031_MMD_DATA_NOINC | devaddr); + + return (PHY_READ(sc, MII_KSZ9031_MMD_ACCESS_DATA)); +} + +static void +ksz9031_write(struct mii_softc *sc, uint32_t devaddr, uint32_t reg, + uint32_t val) +{ + + /* Set up device address and register. */ + PHY_WRITE(sc, MII_KSZ9031_MMD_ACCESS_CTRL, devaddr); + PHY_WRITE(sc, MII_KSZ9031_MMD_ACCESS_DATA, reg); + + /* Select register data for MMD and write the value. */ + PHY_WRITE(sc, MII_KSZ9031_MMD_ACCESS_CTRL, + MII_KSZ9031_MMD_DATA_NOINC | devaddr); + PHY_WRITE(sc, MII_KSZ9031_MMD_ACCESS_DATA, val); +} + +static uint32_t +ksz9021_read(struct mii_softc *sc, uint32_t reg) +{ + + PHY_WRITE(sc, MII_KSZPHY_EXTREG, reg); + + return (PHY_READ(sc, MII_KSZPHY_EXTREG_READ)); +} + static void -micphy_write(struct mii_softc *sc, uint32_t reg, uint32_t val) +ksz9021_write(struct mii_softc *sc, uint32_t reg, uint32_t val) { PHY_WRITE(sc, MII_KSZPHY_EXTREG, KSZPHY_EXTREG_WRITE | reg); PHY_WRITE(sc, MII_KSZPHY_EXTREG_WRITE, val); } -static int -ksz9021_load_values(struct mii_softc *sc, phandle_t node, uint32_t reg, - char *field1, char *field2, - char *field3, char *field4) +static void +ksz90x1_load_values(struct mii_softc *sc, phandle_t node, + uint32_t dev, uint32_t reg, char *field1, uint32_t f1mask, int f1off, + char *field2, uint32_t f2mask, int f2off, char *field3, uint32_t f3mask, + int f3off, char *field4, uint32_t f4mask, int f4off) { pcell_t dts_value[1]; int len; int val; - val = 0; + if (sc->mii_mpd_model == MII_MODEL_MICREL_KSZ9031) + val = ksz9031_read(sc, dev, reg); + else + val = ksz9021_read(sc, reg); if ((len = OF_getproplen(node, field1)) > 0) { OF_getencprop(node, field1, dts_value, len); - val = PS_TO_REG(dts_value[0]); + val &= ~(f1mask << f1off); + val |= (PS_TO_REG(dts_value[0]) & f1mask) << f1off; } - if ((len = OF_getproplen(node, field2)) > 0) { + if (field2 != NULL && (len = OF_getproplen(node, field2)) > 0) { OF_getencprop(node, field2, dts_value, len); - val |= PS_TO_REG(dts_value[0]) << 4; + val &= ~(f2mask << f2off); + val |= (PS_TO_REG(dts_value[0]) & f2mask) << f2off; } - if ((len = OF_getproplen(node, field3)) > 0) { + if (field3 != NULL && (len = OF_getproplen(node, field3)) > 0) { OF_getencprop(node, field3, dts_value, len); - val |= PS_TO_REG(dts_value[0]) << 8; + val &= ~(f3mask << f3off); + val |= (PS_TO_REG(dts_value[0]) & f3mask) << f3off; } - if ((len = OF_getproplen(node, field4)) > 0) { + if (field4 != NULL && (len = OF_getproplen(node, field4)) > 0) { OF_getencprop(node, field4, dts_value, len); - val |= PS_TO_REG(dts_value[0]) << 12; + val &= ~(f4mask << f4off); + val |= (PS_TO_REG(dts_value[0]) & f4mask) << f4off; } - micphy_write(sc, reg, val); + if (sc->mii_mpd_model == MII_MODEL_MICREL_KSZ9031) + ksz9031_write(sc, dev, reg, val); + else + ksz9021_write(sc, reg, val); +} - return (0); +static void +ksz9031_load_values(struct mii_softc *sc, phandle_t node) +{ + + ksz90x1_load_values(sc, node, 2, MII_KSZ9031_CONTROL_PAD_SKEW, + "txen-skew-ps", 0xf, 0, "rxdv-skew-ps", 0xf, 4, + NULL, 0, 0, NULL, 0, 0); + ksz90x1_load_values(sc, node, 2, MII_KSZ9031_RX_DATA_PAD_SKEW, + "rxd0-skew-ps", 0xf, 0, "rxd1-skew-ps", 0xf, 4, + "rxd2-skew-ps", 0xf, 8, "rxd3-skew-ps", 0xf, 12); + ksz90x1_load_values(sc, node, 2, MII_KSZ9031_TX_DATA_PAD_SKEW, + "txd0-skew-ps", 0xf, 0, "txd1-skew-ps", 0xf, 4, + "txd2-skew-ps", 0xf, 8, "txd3-skew-ps", 0xf, 12); + ksz90x1_load_values(sc, node, 2, MII_KSZ9031_CLOCK_PAD_SKEW, + "rxc-skew-ps", 0x1f, 0, "txc-skew-ps", 0x1f, 5, + NULL, 0, 0, NULL, 0, 0); +} + +static void +ksz9021_load_values(struct mii_softc *sc, phandle_t node) +{ + + ksz90x1_load_values(sc, node, 0, MII_KSZPHY_CLK_CONTROL_PAD_SKEW, + "txen-skew-ps", 0xf, 0, "txc-skew-ps", 0xf, 4, + "rxdv-skew-ps", 0xf, 8, "rxc-skew-ps", 0xf, 12); + ksz90x1_load_values(sc, node, 0, MII_KSZPHY_RX_DATA_PAD_SKEW, + "rxd0-skew-ps", 0xf, 0, "rxd1-skew-ps", 0xf, 4, + "rxd2-skew-ps", 0xf, 8, "rxd3-skew-ps", 0xf, 12); + ksz90x1_load_values(sc, node, 0, MII_KSZPHY_TX_DATA_PAD_SKEW, + "txd0-skew-ps", 0xf, 0, "txd1-skew-ps", 0xf, 4, + "txd2-skew-ps", 0xf, 8, "txd3-skew-ps", 0xf, 12); } static int @@ -174,17 +263,10 @@ micphy_attach(device_t dev) if ((node = ofw_bus_get_node(parent)) == -1) return (ENXIO); - ksz9021_load_values(sc, node, MII_KSZPHY_CLK_CONTROL_PAD_SKEW, - "txen-skew-ps", "txc-skew-ps", - "rxdv-skew-ps", "rxc-skew-ps"); - - ksz9021_load_values(sc, node, MII_KSZPHY_RX_DATA_PAD_SKEW, - "rxd0-skew-ps", "rxd1-skew-ps", - "rxd2-skew-ps", "rxd3-skew-ps"); - - ksz9021_load_values(sc, node, MII_KSZPHY_TX_DATA_PAD_SKEW, - "txd0-skew-ps", "txd1-skew-ps", - "txd2-skew-ps", "txd3-skew-ps"); + if (sc->mii_mpd_model == MII_MODEL_MICREL_KSZ9031) + ksz9031_load_values(sc, node); + else + ksz9021_load_values(sc, node); return (0); } Modified: head/sys/dev/mii/miidevs ============================================================================== --- head/sys/dev/mii/miidevs Sat Jul 23 17:41:47 2016 (r303229) +++ head/sys/dev/mii/miidevs Sat Jul 23 18:16:40 2016 (r303230) @@ -283,6 +283,7 @@ model MARVELL E1111 0x000c Marvell 88E1 /* Micrel PHYs */ model MICREL KSZ9021 0x0021 Micrel KSZ9021 10/100/1000 PHY +model MICREL KSZ9031 0x0022 Micrel KSZ9031 10/100/1000 PHY /* Myson Technology PHYs */ model xxMYSON MTD972 0x0000 MTD972 10/100 media interface From owner-svn-src-all@freebsd.org Sat Jul 23 18:35:46 2016 Return-Path: Delivered-To: svn-src-all@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 37B20BA2760; Sat, 23 Jul 2016 18:35:46 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from d.mail.sonic.net (d.mail.sonic.net [64.142.111.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1F35C1708; Sat, 23 Jul 2016 18:35:45 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from zeppelin.tachypleus.net (75-101-50-44.static.sonic.net [75.101.50.44]) (authenticated bits=0) by d.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6NIZeSY028874 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Sat, 23 Jul 2016 11:35:41 -0700 Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Michal Meloun , Svatopluk Kraus , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578E0B5D.3070105@FreeBSD.org> <578F6075.7010500@FreeBSD.org> <05a80ac6-4285-ec9d-36e9-2f92c609f746@freebsd.org> <57907B0F.9070204@FreeBSD.org> <9d2a224c-b787-2875-5984-a7a2354e8695@freebsd.org> <57934ABD.6010807@FreeBSD.org> From: Nathan Whitehorn Message-ID: <4e7a3e8f-cc21-f5f2-e3e0-4dbd554a4cd0@freebsd.org> Date: Sat, 23 Jul 2016 11:35:40 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <57934ABD.6010807@FreeBSD.org> X-Sonic-CAuth: UmFuZG9tSVYYrYWhzVAAn8xzx+7OfzqbRxvYg0t+VLfN/Rm73SUmdhq48vGTVVEVFJMVuIr5eCdLMjJpwACwzxBSCz2IOla/OiZZVsxy5NI= X-Sonic-ID: C;HBzGQQRR5hGwZpNwxPCmMQ== M;xFwFQgRR5hGwZpNwxPCmMQ== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 18:35:46 -0000 On 07/23/16 03:45, Michal Meloun wrote: > Dne 21.07.2016 v 17:53 Nathan Whitehorn napsal(a): >> >> On PowerPC, GENERIC64 supports FDT systems (some IBM hardware), OFW >> systems (Macs, some IBM hardware), systems with no device trees at >> all (old-style PS3), and systems with a mixture of device tree and no >> device tree (new-style PS3). On these, there is a mixture of "real" >> interrupts and GPIO-type interrupts. There is no limitation that this >> be used only for device-tree-type systems. >> >> The system requires two things: an interrupt domain key and an >> arbitrary unique byte string describing the interrupt. When running >> with a device tree, these are set to the phandle of the >> interrupt-parent and the contents of the device tree interrupt >> specifier, respectively, and the system was of course developed with >> that in mind. But they don't need to be, and often aren't. You could >> make the domain an element of an enum (where "ACPI" is a choice, for >> instance -- this is what PS3 does), or set it to a pointer to a >> device_t, or really anything you like. Similarly, the interrupt >> specifier is totally free-form. > > Yes, I agree. and i think that we followed the same direction. But i > see two problems with this approach. > - in some cases (OFW, device_t) you don't have control over domain > key value, so you cannot guarantee its uniqueness. > Of course, probability of collision is low, but it is. We could solve this in a number of ways, for example widening to 64 bits, or adding another value (domain type, for example). You could also make an acpi_bus_map_intr() to go with the OFW one that connect in some machine-dependent code if you have fundamentally incompatible bus enumeration mechanisms that you expect to exist simultaneously -- but, of course, no systems like this seem to actually exist, so the problem is both easily solved and totally theoretical. > - within ofw_bus_map_intr() (or later - at the time when byte string > must be decoded) you are not able (easily) to differentiate > between different formats, thus you are not able to select > appropriate decoder. The GPIO controller, for example, > must be able to handle interrupts defined by standard OFW property, > or by pair concurrently. In principle, you could solve that as above, or by registering a second interrupt domain for the same controller. In practice, it doesn't matter since, in the GPIO case, for example, the GPIO controller is never itself also a normal interrupt controller (i.e. the GIC and GPIO controller are always different devices). As such, the theoretical does not occur in practice. > For this reason we makes domain key composite, in our model, the > domain key consist of "domain key type" > and "domain key value". This composite key guarantees uniqueness and > it also allows to select proper parser for byte string. Yes, but this solves what is a nonexistant problem by making the system substantially less flexible and more invasive. Which is not a good tradeoff. > This is, imho, only one difference between us. One of many, yes. > >> You could, for instance, set it to one of the structures introduced >> in r301453 if you wanted to. >> >> I would have zero problems with changing the prototype of the >> existing dev/ofw function to something more generic in name, like: >> >> bus_map_intr(device_t dev, uintptr_t iparent, size_t intrlen, void *intr) >> >> instead of the existing equivalent: >> >> ofw_bus_map_intr(device_t dev, phandle_t iparent, int icells, pcell_t >> *intr) >> > Our bus_map_intr() method is not indeed as replacement of > ofw_bus_map_intr(). Its evolution of "how we can store more complex > data to resource list (from bus enumerator) and transfer it to > bus_allocate_resource() and/or to bus_setup_intr()" in driver > independent way. We found no reasonable way to do it, so we postponed > reading of properties to bus_allocate_resource() time. Right, but that is (a) a solved problem with ofw_bus_map_intr() and (b) this code doesn't solve it as completely. What does it let you do that the existing code does not? There has not been a single concrete example of something anyone wants to do on actual hardware so far in this discussion. > But now jhb@ gives us alternative and I must say that this looks like > a clean and elegant way how to make this (assuming that we can expand > resource_list_entry by pointer to alloc_resource_args) Except that jhb@'s suggestion doesn't actually work for interrupts for the reasons I and others have pointed out. We could make such a system, but it would be a different one. > >>> By this, one byte string in OFW encoding can describe one IRQ and >>> exactly same string in UEFI encoding can describe different IRQ. >>> Or, in reverse, OFW and UEFI can describe same (and compatible) IRQ >>> by two different strings. >>> This is exact reason, why we discards virtual IRQ idea and I think >>> that this fact is root issue of this clash. >>> Probably it doesn't make sense to talk about others, unless we can >>> find consensus on this. >> >> You have the larger problem if you end up in this situation that you >> are enumerating the hardware by two different and incompatible >> techniques. There simply is no way to solve this unless you either >> (a) segregate the system into an ACPI-enumerated domain and an >> OF-enumerated domain, in which case the problem vanishes, (b) discard >> one enumeration, which is what arm64 does and will always do, >> according to Andrew in another post, or (c) make some incredibly >> complex merging code that would naturally handle interrupts with >> everything else. So I don't think this is an actual, real problem. >> > I think that above proposed solution resolves this gracefully. Assuming you are talking about jhb's decoration plan in the bus hierarchy, it doesn't actually work for interrupts at all because of lateral connections and circular dependencies. > >> >>>> >>>>> >>>>>> 2. It partially duplicates the functionality of >>>>>> OFW_BUS_MAP_INTR(), but is both problematically more general and >>>>>> less flexible (it has requirements on timing of PIC attachment >>>>>> vs. driver resource allocation) >>>>> OFW_BUS_MAP_INTR() can parse only OFW based data and expect that >>>>> parsed data are magicaly stored within the call. >>>>> The new method, bus_map_intr(), can parse data from multiple >>>>> sources (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). >>>>> It also returns parsed data back to caller. >>>> >>>> That is not true. It works as long as you can specify the interrupt >>>> state as a 32-bit key of some kind for the PIC and a string of >>>> arbitrary data, which works with all of those. You could even make >>>> the interrupt data be a pointer to exactly the structs you have >>>> chosen to define here. >>> Nope, in heterogeneous world, same string can describe two different >>> IRQs and/or two different strings can describe single IRQ in >>> compatible manner. >> >> Can you give *any* concrete example of this that doesn't involve >> mixed ACPI/FDT enumeration of a single system where devices appear in >> both trees, which doesn't actually ever happen? > GPIO - its interrupt function can be accessed by regular "interrupts" > property, or it can be derived from GPIO pin. The GPIO controller has one or more interrupts assigned to it that are part of its parent's interrupt domain. It cascades them to one or more virtual interrupts that belong to its own domain. Where is the ambiguity or complication here? >> >>>> >>>>> >>>>>> 3. It is not fully transparent to end code. Since it happens at >>>>>> bus_alloc_resource() time, it is complicated to get the >>>>>> appropriate values for IRQs constructed by composite techniques >>>>>> (interrupt-map vs. interrupts vs. hand allocation vs. PCI >>>>>> routing, for example). >>>>> I don't see any limitation - can you be more exact? Why is not >>>>> transparent? Why is more complicated ? >>>> >>>> Suppose that a PCI device adds more IRQs to its resource list or >>>> modifies the ordering. How is whatever bus layer supposed to do >>>> something sensible at allocation time? It requires that RID numbers >>>> mean something to the parent bus after assignment, which is not >>>> guaranteed by anything and is, in more than handful of cases I >>>> think of, not true in practice. >>> Sure. And since the new code allows delivering resources in RL, so I >>> don't see any limitation here. >> >> It indexed mapping by RID and then searches interrupt lists by that >> to get the interrupt-parent. This is fundamentally a broken design if >> the child needs to, say, add a second interrupt to its RL on a >> different interrupt-parent. > ?? I don't understand. The new code doesn't need this. int bus_generic_map_intr(device_t dev, device_t child, int *rid, rman_res_t *start, rman_res_t *end, rman_res_t *count, struct intr_map_data **imd); This works either by rid or by rman_res_t. In the event of a self-assigned interrupt from the child, which is a fairly common case, neither of these values are meaningfully parseable by the bus parent, especially if the interrupt is on a different controller. The main issue is that this code goes back to the device tree according to the *parent*'s idea of how it should be parsed and there are many cases (GPIO interrupts, for example) when the *child* needs to amend the list in a different way. > >> >>> >>>> >>>>>> It is much easier to do this correctly at bus attach time when >>>>>> the resource lists are made (how PPC does it). >>>>>> >>>>> I don't agree. I don't agree. Making this at bus attach time leads >>>>> into complicated 'virtual' IRQ infrastructure, with many >>>>> unresolved corner cases. >>>> >>>> Which unresolved corner cases? This has been working correctly on a >>>> number of platforms in both FreeBSD and Linux for many years. >>> Nope, it doesn't work for ARM yet (for GPIO interrupts for example) >>> and Linux uses EPROBE_DEFER mechanism for a long time. >>> See: http://lxr.free-electrons.com/source/drivers/base/platform.c#L87 >> >> There is some missing code on ARM (probably about 30 minutes of work >> to make it match PowerPC) to make it work in an ideal case, sure, but >> there is no reason you could not go out right now, with the existing >> code, and implement GPIO interrupts by declaring the GPIO driver as >> an interrupt controller. >> >> Can you give any concrete case of something that doesn't work? > GPIO again. How you can allocate interrupt associated with given gpio > pin installed by "cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;" You parse that as an interrupt on a interrupt domain associated with the GPIO controller referenced by &gpio. In pseudo-code: int irq = ofw_bus_map_intr(dev, <&gpio>, ncells, ); The GPIO controller, meanwhile, has registered an interrupt domain for <&gpio> and is asked to decode and configure the interrupt defined by , which it knows how to parse. This is simple and straightforward. > >>> >>>> >>>>> >>>>>> (1) is easy to fix without API changes, but (2) and (3) are >>>>>> fundamental architectural problems that will bite us immediately >>>>>> down the road and cause a permanent schism between OF support on >>>>>> different platforms. >>>>>> >>>>>> Let me describe how this is handled on PowerPC (Linux on PPC >>>>>> solves the problem the same way). When constructing a resource >>>>>> list, bus drivers that construct them from OF properties call >>>>>> ofw_bus_map_intr() with the interrupt parent phandle and the >>>>>> array of cells corresponding to the interrupt. This thunks >>>>>> immediately to nexus, which connects to code in intr_machdep.c. >>>>>> Code there assigns a unique made-up virtual IRQ and returns it, >>>>>> caching the interrupt parent ID and opaque interrupt data (if the >>>>>> same string of data reappears later, you get back the same >>>>>> virtual IRQ of course). >>>>>> >>>>>> When PIC drivers attach and register themselves with the >>>>>> interrupt handling layer, all the interrupts for that PIC are >>>>>> passed to it along with the virtual IRQ. The PIC driver is >>>>>> supposed to know what its interrupt data mean, which can be >>>>>> safely guaranteed, and it presents the assigned virtual IRQ >>>>>> number to the kernel when dispatching interrupts. (IRQs >>>>>> configured after PIC attachment are passed through immediately). >>>>>> >>>>>> This accomplishes the following things: >>>>>> 1. Parsing interrupt data is moved to the PIC driver, which is >>>>>> the only place it can be done safely. >>>>> I don't see anything different comparing with INTRNG. >>>> >>>> What I am advocating *is* INTRNG, at least as originally conceived >>>> and implemented. >>>> >>>>>> 2. There is no ordering requirement on PIC attachment vs. the >>>>>> attachment of anything else. >>>>> I think thats is not a true - PIC must exist before >>>>> bus_alloc_resource() / bus_setup_intr() is called. >>>> >>>> It does not with the IRQ mapping infrastructure. Interrupts are set >>>> up at PIC attachment, whenever that occurs. >>>> >>> Assuming that bus_alloc_resource and bus_setup_intr() are close >>> thorougher and in linear piece of code, can i assume that you can >>> call bus_setup_intr() >>> without PIC attached ? >> >> Yes. > So driver can request and/or setup any random IRQ and gets success > from bus_alloc_resource() or bus_setup_intr()? > Do you think that is this right behavior? Yes. And it is a behavior required by newbus. >> >>>>> >>>>>> 3. Changes are extremely minimal relative to the "standard" >>>>>> interrupt flow: you only have to patch code that is already >>>>>> directly dealing with OF interrupts. >>>>> I don't see anything different comparing with INTRNG. >>>> >>>> Again, this was the original INTRNG architecture and is already >>>> implemented. As such, there are *no* changes required on ARM to get >>>> it. bus_map_intr() adds a bunch of new code, in parallel with the >>>> old code that also solves the problem, to no purpose. >>> So, on PPC, how i can get interrupt for GPIO pin described by this >>> property: >>> https://svnweb.freebsd.org/base/head/sys/gnu/dts/arm/tegra124-jetson-tk1.dts?revision=295436&view=markup#l1691 >>> >> >> The GPIO controller registers itself as an interrupt domain and >> decodes those strings as IRQ specifiers. When interrupts are >> configured, it does whatever it needs to do to configure them >> appropriately and dispatches them to the kernel when they occur. It's >> a pretty trivial cascaded interrupt configuration. And, since the >> VIRQ code does not need the interrupt controller attached in advance, >> you don't need to worry about attach order of wherever &gpio points >> and the SDHCI driver. >> >>>> >>>>>> 4. It happens at bus enumeration time, when results can be >>>>>> guaranteed self-consistent. >>>>> Where do you see any potential source of inconsistency in INTRNG? >>>> >>>> See the example above about modified interrupt lists. There is also >>>> no obvious way for a child device to construct an interrupt not >>>> assigned to it by the parent device from device tree properties >>>> without knowing in some detail what kind of interrupt needs to be >>>> built. >>>> >>>>> >>>>>> 5. It combines naturally with ofw_bus_lookup_imap() and friends >>>>>> in the interrupt-map case (e.g. for PCI). >>>>> Again, I don't see anything different. Proper parsing of interrupt >>>>> property is not a problem of INTRNG (but must be fixed, of course). >>>> >>>> But it is *already* fixed by the standard code that already exists. >>>> You are introducing a less-functional parallel code path here. >>> NO, its not fixed, at least not for ARM. >> >> Why not, concretely? I'm happy to write whatever code is missing if >> there's a bug. It can't be more than a few tens of lines in arm/intr.c. > Interrupt maps are not covered by current ARM code. This suggests otherwise: files.arm:dev/ofw/ofwpci.c optional fdt pci But it's quite possible that code is not being used as widely as it should, since it's a new introduction to the ARM tree. That the existing code is not being used broadly enough is hardly a reasonable to invent something new. >>>> >>>>>> >>>>>> I'm not sure what the right path forward is, but this code needs >>>>>> to be fixed. The PowerPC code is fully MI, and was the template >>>>>> for the original INTRNG, so it shouldn't be too bad to replace. >>>>>> -Nathan >>>>>> >>>>> >>>>> So, new INTRNG: >>>>> - Introduces new more general bus method that can parse interrupt >>>>> configuration >>>>> data from any source. Is this step backward? >>>> >>>> Yes, since it is more general in some sense, while simultaneously >>>> handling fewer cases than code that already exists and is implemented. >>>> >>>>> >>>>> - Old INTRNG and PPC code stores unparsed and/or parsed interrupt >>>>> data in >>>>> INTRNG and each consumer must query for them. This data sharing >>>>> also causes >>>>> significant locking issues. New INTRNG stores interrupt >>>>> configuration data into >>>>> given resource, so each relevant bus method can access it >>>>> immediately. >>>>> Is this step backward? >>>> >>>> Which locking issues? And yes, it is. >>>> >>>>> >>>>> - New INTRNG is not OFW centric, it can works with virtually >>>>> unlimited number >>>>> of configuration data sources. Is this step backward? >>>> >>>> Also yes, because it makes the interrupt handles less opaque, which >>>> makes the infrastructure less flexible. >>>> >>>>> - New INTRNG correctly uses standard system infrastructure. Real >>>>> IRQ number >>>>> is reserved in rman within bus_alloc_resource() call, interrupt >>>>> HW is >>>>> configured (only!) within bus_setup_intr() call. Is this step >>>>> backward? >>>> >>>> The "real" IRQ number is not well defined always, so requiring that >>>> is a step backwards, yes. >>>> >>>>> - New INTRNG completely eliminates huge and not always working virtual >>>>> IRQ concept. >>>> >>>> When does it "not always work"? It seems to, in fact, always work >>>> on multiple platforms and have for a long time in the face of all >>>> kinds of totally bizarre topologies and system architectures. >>>> >>>>> >>>>> >>>>> Don’t take me bad, I’m open to any change. But no, at this time, >>>>> I’m not ready to completely revert someone else's work – although >>>>> I am a co-author. >>>> >>>> I would urge, in the strongest possible terms, that this be backed >>>> out from stable/11 at least. We can add the new API back for 11.1 >>>> if we want it, but we totally lose the ability to change it later >>>> in the stable/11 cycle if it stays in now. >>>> -Nathan >>>> >>> The API is part of still unstable, experimental INTRNG, so its not >>> fixed we we can change it at any time, I think. >>> But yes, we forget to wrap new bus_map_intr() method (and >>> associated code) by #ifdef INTRNG. Is this sufficient for you? >> >> For HEAD, yes. I would like it out of stable/11 entirely until this >> discussion converges. >> -Nathan > The current code (in stable/11) works and is tested. I simple cannot > commit any untested change for stable tree mainly if is in BETA2 > stage. And I cannot fully test the requested change, at this time i > have access to single ARM platform. > But we're in the same situation - both have the same commit bit, > neither one of us is the author of the disputed commit and neither of > us are not able to fully test it. > So feel free to commit what you want, if you have courage to commit > untested code. I haven't it...\ > Michal > Well, the code isn't actually used anywhere in stable/11, or HEAD, so it can't possibly be either tested or important for the functionality of any current code. As such, I will revert from HEAD on Monday and request an MFC from re@ following that if the author has not appeared by that time. -Nathan From owner-svn-src-all@freebsd.org Sat Jul 23 18:36:48 2016 Return-Path: Delivered-To: svn-src-all@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 C07CDBA27CE; Sat, 23 Jul 2016 18:36:48 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from d.mail.sonic.net (d.mail.sonic.net [64.142.111.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ABF0118B3; Sat, 23 Jul 2016 18:36:48 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from zeppelin.tachypleus.net (75-101-50-44.static.sonic.net [75.101.50.44]) (authenticated bits=0) by d.mail.sonic.net (8.15.1/8.15.1) with ESMTPSA id u6NIakko030364 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Sat, 23 Jul 2016 11:36:46 -0700 Subject: Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys To: Michal Meloun , John Baldwin , Andrew Turner References: <201606051620.u55GKD5S066398@repo.freebsd.org> <578F6075.7010500@FreeBSD.org> <20160721133742.05f0e045@zapp> <13301107.Hm25rxUxW2@ralph.baldwin.cx> <57934F27.9070800@FreeBSD.org> Cc: Svatopluk Kraus , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org From: Nathan Whitehorn Message-ID: <2d0b7e5f-bdd8-095e-dd1f-1044164edc40@freebsd.org> Date: Sat, 23 Jul 2016 11:36:46 -0700 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <57934F27.9070800@FreeBSD.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Sonic-CAuth: UmFuZG9tSVY/tYnEpPkDU6/jsU+yO6cmoPh93qmLkCJo28VH+hU8C1XJd//sH23km3K8X3A+/L/jh7NmXT6PtozP5seFc5Ui2TOr1hxas40= X-Sonic-ID: C;DsrWaARR5hGeK5NwxPCmMQ== M;YGcUaQRR5hGeK5NwxPCmMQ== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 18:36:48 -0000 On 07/23/16 04:04, Michal Meloun wrote: > Dne 21.07.2016 v 23:35 John Baldwin napsal(a): >> On Thursday, July 21, 2016 01:37:42 PM Andrew Turner wrote: >>> On Wed, 20 Jul 2016 13:28:53 +0200 >>> Michal Meloun wrote: >>>> Dne 19.07.2016 v 17:06 Nathan Whitehorn napsal(a): >>>>> 2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), >>>>> but is both problematically more general and less flexible (it has >>>>> requirements on timing of PIC attachment vs. driver resource >>>>> allocation) >>>> OFW_BUS_MAP_INTR() can parse only OFW based data and expect that >>>> parsed data are magicaly stored within the call. >>>> The new method, bus_map_intr(), can parse data from multiple sources >>>> (OFW, UEFI / ACPI, synthetic[gpio device + pin number]). It also >>>> returns parsed data back to caller. >>>> And no, it doesn't add any additional timing requirements . >>> I've been looking at ACPI on arm64. So far I have not found the need >>> for this with ACPI as we don't need to send the data to the interrupt >>> controller driver to be parsed in the way OFW/FDT needs to. >> ACPI though has a gross hack where we call BUS_CONFIG_INTR on the IRQ >> in bus_alloc_resource(). What I had advocated in the discussions >> leading up to this was to have some sort of opaque structure containing >> a set of properties (the sort of thing bus_map_resource and make_dev_s >> use) that was passed up at bus_setup_intr() time. I think it should now >> be passed up at bus_alloc_resource() time instead, but it would allow bus >> drivers to "decorate" a SYS_RES_IRQ request as it goes up the device tree >> with properties that the interrupt controller can then associate with >> the IRQ cookie it allocates in its own code. I would let the particular >> structure have different layouts for different resource types. On x86 we >> would replace bus_config_intr by passing the level and trigger-mode in >> this structure. However, I could also see allowing the memattr to be >> set for a SYS_RES_MEMORY resource so you could have a much shorter way >> than an explicit bus_map_resource to map an entire BAR as WC for example: >> >> struct alloc_resource_args { >> size_t len; >> union { >> struct { >> enum intr_trigger trigger; >> enum intr_polarity polarity; >> } irq; >> struct { >> vm_memattr_t memattr; >> } memory; >> } >> } >> >> ... >> >> union alloc_resource_args args; >> >> init_alloc_resource_args(&args, sizeof(args)); >> args.memattr = VM_MEMATTR_WRITE_COMBINING; >> >> /* Uses WC for the implicit mapping. */ >> res = bus_alloc_resource(...., &args); >> >> ... >> >> foobus_alloc_resource(..., union alloc_resource_args *args) >> { >> union alloc_resource_args args2; >> >> switch (type) { >> case SYS_RES_IRQ: >> if (args == NULL) { >> init_alloc_resource_args(&args2, sizeof(args2)); >> args = &args2; >> } >> /* Replace call to BUS_CONFIG_INTR on ACPI: */ >> if (args->irq.polarity == INTR_POLARITY_CONFORMING && >> device_has_polarity_from_CRS) >> args->irq.polarity = polarity_from_CRS; >> ... >> } >> >> However, you could associate arbitrary data with a resource request by >> adding more members to the approriate struct in the union. >> > I like this idea. Mainly if we can add 'struct alloc_resource_args' into > 'struct resource_list_entry' and, eventually, also into struct resource_i. > Inability to pass something more complex as single integer between bus > enumerator (aka resource_list_entry creator) and bus_alloc_resource() > (aka resource_list_entry consumer) is serious limitation. At lest for me :) > Michal > > Unfortunately, it doesn't actually work for resources that don't follow the bus hierarchy, however (see earlier follow-up emails to jhb from myself and others). -Nathan From owner-svn-src-all@freebsd.org Sat Jul 23 20:41:15 2016 Return-Path: Delivered-To: svn-src-all@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 2F7AEBA26CC; Sat, 23 Jul 2016 20:41: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 8FA791CEA; Sat, 23 Jul 2016 20:41:13 +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 u6NKfC9C008462; Sat, 23 Jul 2016 20:41:12 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKfAHZ008439; Sat, 23 Jul 2016 20:41:10 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232041.u6NKfAHZ008439@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:41:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303231 - in vendor/llvm/dist: . autoconf bindings bindings/go/llvm bindings/ocaml bindings/ocaml/all_backends bindings/ocaml/analysis bindings/ocaml/backends bindings/ocaml/bitreader b... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:41:15 -0000 Author: dim Date: Sat Jul 23 20:41:05 2016 New Revision: 303231 URL: https://svnweb.freebsd.org/changeset/base/303231 Log: Vendor import of llvm release_39 branch r276489: https://llvm.org/svn/llvm-project/llvm/branches/release_39@276489 Added: vendor/llvm/dist/cmake/config.guess vendor/llvm/dist/cmake/modules/CheckCompilerVersion.cmake vendor/llvm/dist/cmake/modules/GenerateVersionFromCVS.cmake vendor/llvm/dist/docs/AdvancedBuilds.rst vendor/llvm/dist/docs/CMakePrimer.rst vendor/llvm/dist/docs/CodeOfConduct.rst vendor/llvm/dist/docs/ReportingGuide.rst vendor/llvm/dist/docs/ScudoHardenedAllocator.rst vendor/llvm/dist/docs/TypeMetadata.rst vendor/llvm/dist/docs/doxygen-mainpage.dox vendor/llvm/dist/docs/tutorial/BuildingAJIT1.rst vendor/llvm/dist/docs/tutorial/BuildingAJIT2.rst vendor/llvm/dist/docs/tutorial/BuildingAJIT3.rst vendor/llvm/dist/docs/tutorial/BuildingAJIT4.rst vendor/llvm/dist/docs/tutorial/BuildingAJIT5.rst vendor/llvm/dist/docs/tutorial/LangImpl01.rst vendor/llvm/dist/docs/tutorial/LangImpl02.rst vendor/llvm/dist/docs/tutorial/LangImpl03.rst vendor/llvm/dist/docs/tutorial/LangImpl04.rst vendor/llvm/dist/docs/tutorial/LangImpl05-cfg.png (contents, props changed) vendor/llvm/dist/docs/tutorial/LangImpl05.rst vendor/llvm/dist/docs/tutorial/LangImpl06.rst vendor/llvm/dist/docs/tutorial/LangImpl07.rst vendor/llvm/dist/docs/tutorial/LangImpl08.rst vendor/llvm/dist/docs/tutorial/LangImpl09.rst vendor/llvm/dist/docs/tutorial/LangImpl10.rst vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/ vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/CMakeLists.txt (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter1/ vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter1/CMakeLists.txt (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.h (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter1/toy.cpp (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter2/ vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter2/CMakeLists.txt (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.h (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter2/toy.cpp (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter3/ vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter3/CMakeLists.txt (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter3/KaleidoscopeJIT.h (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter3/toy.cpp (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter4/ vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter4/CMakeLists.txt (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter4/KaleidoscopeJIT.h (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter4/toy.cpp (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter5/ vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter5/CMakeLists.txt (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter5/KaleidoscopeJIT.h (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter5/RemoteJITUtils.h (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter5/Server/ vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter5/Server/CMakeLists.txt (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter5/Server/server.cpp (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/BuildingAJIT/Chapter5/toy.cpp (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/Chapter9/ vendor/llvm/dist/examples/Kaleidoscope/Chapter9/CMakeLists.txt (contents, props changed) vendor/llvm/dist/examples/Kaleidoscope/Chapter9/toy.cpp (contents, props changed) vendor/llvm/dist/include/llvm/ADT/BitmaskEnum.h (contents, props changed) vendor/llvm/dist/include/llvm/ADT/PriorityWorklist.h (contents, props changed) vendor/llvm/dist/include/llvm/ADT/Sequence.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/AliasAnalysisEvaluator.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/CFLAndersAliasAnalysis.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/CFLSteensAliasAnalysis.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/IndirectCallPromotionAnalysis.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/IndirectCallSiteVisitor.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/LazyBlockFrequencyInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/LoopPassManager.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/LoopUnrollAnalyzer.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/ModuleSummaryAnalysis.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/OptimizationDiagnosticInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/ProfileSummaryInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/Analysis/TypeMetadataUtils.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/ vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/CallLowering.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/GISelAccessor.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/IRTranslator.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegBankSelect.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBank.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/Types.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/MachineInstrBundleIterator.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/PreISelIntrinsicLowering.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/RegisterUsageInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAGMutation.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGTargetInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/TailDuplicator.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/TargetPassConfig.h (contents, props changed) vendor/llvm/dist/include/llvm/CodeGen/UnreachableBlockElim.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ByteStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVRecord.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVSymbolTypes.def vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewError.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/EnumTables.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleSubstream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleSubstreamVisitor.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/RecordSerialization.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/StreamArray.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/StreamInterface.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/StreamReader.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/StreamRef.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/StreamWriter.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDumper.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolRecord.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDumper.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecords.def vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAError.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/GenericError.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/ vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/DbiStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/DirectoryStreamData.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/EnumTables.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/Hash.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/IPDBFile.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/IPDBStreamData.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/ISectionContribVisitor.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/IndexedStreamData.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/InfoStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/InfoStreamBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/MappedBlockStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/ModInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/ModStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/MsfBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/MsfCommon.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/NameHashTable.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/NameMap.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/NameMapBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/PDBFile.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/PDBFileBuilder.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/PublicsStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/RawConstants.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/RawError.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/RawSession.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/RawTypes.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/SymbolStream.h (contents, props changed) vendor/llvm/dist/include/llvm/DebugInfo/PDB/Raw/TpiStream.h (contents, props changed) vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcABISupport.h (contents, props changed) vendor/llvm/dist/include/llvm/IR/GlobalIFunc.h (contents, props changed) vendor/llvm/dist/include/llvm/IR/GlobalIndirectSymbol.h (contents, props changed) vendor/llvm/dist/include/llvm/IR/ModuleSummaryIndex.h (contents, props changed) vendor/llvm/dist/include/llvm/IR/OptBisect.h (contents, props changed) vendor/llvm/dist/include/llvm/IR/ProfileSummary.h (contents, props changed) vendor/llvm/dist/include/llvm/LTO/LTO.h (contents, props changed) vendor/llvm/dist/include/llvm/LTO/legacy/ vendor/llvm/dist/include/llvm/LTO/legacy/LTOCodeGenerator.h (contents, props changed) vendor/llvm/dist/include/llvm/LTO/legacy/LTOModule.h (contents, props changed) vendor/llvm/dist/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h (contents, props changed) vendor/llvm/dist/include/llvm/LTO/legacy/UpdateCompilerUsed.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCCodeView.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCDisassembler/ vendor/llvm/dist/include/llvm/MC/MCDisassembler/MCDisassembler.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCDisassembler/MCRelocationInfo.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCDisassembler/MCSymbolizer.h (contents, props changed) vendor/llvm/dist/include/llvm/MC/MCParser/MCTargetAsmParser.h (contents, props changed) vendor/llvm/dist/include/llvm/Object/ModuleSummaryIndexObjectFile.h (contents, props changed) vendor/llvm/dist/include/llvm/ObjectYAML/ vendor/llvm/dist/include/llvm/ObjectYAML/COFFYAML.h (contents, props changed) vendor/llvm/dist/include/llvm/ObjectYAML/ELFYAML.h (contents, props changed) vendor/llvm/dist/include/llvm/ObjectYAML/MachOYAML.h (contents, props changed) vendor/llvm/dist/include/llvm/ObjectYAML/ObjectYAML.h (contents, props changed) vendor/llvm/dist/include/llvm/ObjectYAML/YAML.h (contents, props changed) vendor/llvm/dist/include/llvm/ProfileData/Coverage/ vendor/llvm/dist/include/llvm/ProfileData/Coverage/CoverageMapping.h (contents, props changed) vendor/llvm/dist/include/llvm/ProfileData/Coverage/CoverageMappingReader.h (contents, props changed) vendor/llvm/dist/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h (contents, props changed) vendor/llvm/dist/include/llvm/ProfileData/ProfileCommon.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/AArch64TargetParser.def vendor/llvm/dist/include/llvm/Support/AtomicOrdering.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/CachePruning.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/CodeGenCWrappers.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/ELFRelocs/AMDGPU.def vendor/llvm/dist/include/llvm/Support/ELFRelocs/BPF.def vendor/llvm/dist/include/llvm/Support/ELFRelocs/Lanai.def vendor/llvm/dist/include/llvm/Support/Error.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/MachO.def vendor/llvm/dist/include/llvm/Support/SHA1.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/ScopedPrinter.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/TypeName.h (contents, props changed) vendor/llvm/dist/include/llvm/Support/raw_sha1_ostream.h (contents, props changed) vendor/llvm/dist/include/llvm/TableGen/SearchableTable.td vendor/llvm/dist/include/llvm/Target/GenericOpcodes.td vendor/llvm/dist/include/llvm/Target/TargetOpcodes.def vendor/llvm/dist/include/llvm/Transforms/GCOVProfiler.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/ConstantMerge.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/CrossDSOCFI.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/DeadArgumentElimination.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/ElimAvailExtern.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/FunctionAttrs.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/GlobalDCE.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/GlobalOpt.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/Internalize.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/LowerTypeTests.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/PartialInlining.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/SCCP.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/IPO/WholeProgramDevirt.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/InstrProfiling.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/PGOInstrumentation.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/SampleProfile.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/BDCE.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/ConstantHoisting.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/DCE.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/DeadStoreElimination.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/Float2Int.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/GVN.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/GuardWidening.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/IndVarSimplify.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/JumpThreading.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/LICM.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopDeletion.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopDistribute.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopInstSimplify.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopRotation.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/LowerAtomic.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/MemCpyOptimizer.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/Reassociate.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/SCCP.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/Sink.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Scalar/TailRecursionElimination.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/AddDiscriminators.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/Evaluator.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/FunctionImportUtils.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/LCSSA.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/LoopSimplify.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/Mem2Reg.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/MemorySSA.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/SanitizerStats.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Utils/SimplifyInstructions.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Vectorize/ vendor/llvm/dist/include/llvm/Transforms/Vectorize/LoopVectorize.h (contents, props changed) vendor/llvm/dist/include/llvm/Transforms/Vectorize/SLPVectorizer.h (contents, props changed) vendor/llvm/dist/lib/Analysis/AliasAnalysisSummary.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/AliasAnalysisSummary.h (contents, props changed) vendor/llvm/dist/lib/Analysis/CFLAndersAliasAnalysis.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/CFLGraph.h (contents, props changed) vendor/llvm/dist/lib/Analysis/CFLSteensAliasAnalysis.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/IndirectCallPromotionAnalysis.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/LazyBlockFrequencyInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/LoopPassManager.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/LoopUnrollAnalyzer.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/ModuleSummaryAnalysis.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/OptimizationDiagnosticInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/ProfileSummaryInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Analysis/TypeMetadataUtils.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/AsmPrinter/CodeViewDebug.h (contents, props changed) vendor/llvm/dist/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/AsmPrinter/DebugHandlerBase.h (contents, props changed) vendor/llvm/dist/lib/CodeGen/BuiltinGCs.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/DetectDeadLanes.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/GlobalISel/ vendor/llvm/dist/lib/CodeGen/GlobalISel/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/CodeGen/GlobalISel/GlobalISel.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/GlobalISel/IRTranslator.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/GlobalISel/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/GlobalISel/RegBankSelect.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/GlobalISel/RegisterBank.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/LiveRangeUtils.h (contents, props changed) vendor/llvm/dist/lib/CodeGen/LowerEmuTLS.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/PatchableFunction.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/PostRAHazardRecognizer.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/PreISelIntrinsicLowering.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/RegUsageInfoCollector.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/RegUsageInfoPropagate.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/RegisterUsageInfo.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/RenameIndependentSubregs.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/SafeStack.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/SafeStackColoring.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/SafeStackColoring.h (contents, props changed) vendor/llvm/dist/lib/CodeGen/SafeStackLayout.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/SafeStackLayout.h (contents, props changed) vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/TailDuplicator.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/TargetPassConfig.cpp (contents, props changed) vendor/llvm/dist/lib/CodeGen/XRayInstrumentation.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/ByteStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/CVTypeVisitor.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/CodeViewError.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/EnumTables.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleSubstream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleSubstreamVisitor.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/RecordSerialization.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/StreamReader.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/StreamWriter.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolDumper.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDumper.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/TypeRecord.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/CodeView/TypeStreamMerger.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAError.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/GenericError.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/ vendor/llvm/dist/lib/DebugInfo/PDB/Raw/DbiStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/EnumTables.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/Hash.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/IndexedStreamData.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/InfoStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/InfoStreamBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/MappedBlockStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/ModInfo.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/ModStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/MsfBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/MsfCommon.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/NameHashTable.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/NameMap.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/NameMapBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/PDBFile.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/PDBFileBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/PublicsStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/RawError.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/RawSession.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/SymbolStream.cpp (contents, props changed) vendor/llvm/dist/lib/DebugInfo/PDB/Raw/TpiStream.cpp (contents, props changed) vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcABISupport.cpp (contents, props changed) vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerExtFunctions.def vendor/llvm/dist/lib/Fuzzer/FuzzerExtFunctions.h (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerExtFunctionsDlsym.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerExtFunctionsWeak.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerFnAdapter.h (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerTracePC.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/FuzzerTracePC.h (contents, props changed) vendor/llvm/dist/lib/Fuzzer/afl/ vendor/llvm/dist/lib/Fuzzer/afl/afl_driver.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/AFLDriverTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/AccumulateAllocationsTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/BufferOverflowOnInput.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/CustomCrossOverTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/CustomMutatorTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/EmptyTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/FuzzerFnAdapterUnittest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/InitializeTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/LeakTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/LeakTimeoutTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/NthRunCrashTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/NullDerefOnEmptyTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/OneHugeAllocTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/OutOfMemoryTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/RepeatedMemcmp.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/SignedIntOverflowTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/SimpleFnAdapterTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/SimpleThreadedTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/SpamyTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/StrstrTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/ThreadedLeakTest.cpp (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/afl-driver-extra-stats.test vendor/llvm/dist/lib/Fuzzer/test/afl-driver-stderr.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-customcrossover.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-custommutator.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-dirs.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-fdmask.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-finalstats.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-flags.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-fn-adapter.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-leak.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-oom-with-profile.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-oom.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-printcovpcs.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-prunecorpus.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-runs.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-seed.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-segv.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-singleinputs.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-trace-pc.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-traces-hooks.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-trunc.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-ubsan.test vendor/llvm/dist/lib/Fuzzer/test/no-coverage/ vendor/llvm/dist/lib/Fuzzer/test/no-coverage/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/trace-pc/ vendor/llvm/dist/lib/Fuzzer/test/trace-pc/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/ubsan/ vendor/llvm/dist/lib/Fuzzer/test/ubsan/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/IR/ModuleSummaryIndex.cpp (contents, props changed) vendor/llvm/dist/lib/IR/OptBisect.cpp (contents, props changed) vendor/llvm/dist/lib/IR/ProfileSummary.cpp (contents, props changed) vendor/llvm/dist/lib/LTO/LTO.cpp (contents, props changed) vendor/llvm/dist/lib/LTO/ThinLTOCodeGenerator.cpp (contents, props changed) vendor/llvm/dist/lib/LTO/UpdateCompilerUsed.cpp (contents, props changed) vendor/llvm/dist/lib/MC/MCCodeView.cpp (contents, props changed) vendor/llvm/dist/lib/MC/MCDisassembler/MCSymbolizer.cpp (contents, props changed) vendor/llvm/dist/lib/Object/ModuleSummaryIndexObjectFile.cpp (contents, props changed) vendor/llvm/dist/lib/ObjectYAML/ vendor/llvm/dist/lib/ObjectYAML/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/ObjectYAML/COFFYAML.cpp (contents, props changed) vendor/llvm/dist/lib/ObjectYAML/ELFYAML.cpp (contents, props changed) vendor/llvm/dist/lib/ObjectYAML/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/ObjectYAML/MachOYAML.cpp (contents, props changed) vendor/llvm/dist/lib/ObjectYAML/ObjectYAML.cpp (contents, props changed) vendor/llvm/dist/lib/ObjectYAML/YAML.cpp (contents, props changed) vendor/llvm/dist/lib/ProfileData/Coverage/ vendor/llvm/dist/lib/ProfileData/Coverage/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/ProfileData/Coverage/CoverageMapping.cpp (contents, props changed) vendor/llvm/dist/lib/ProfileData/Coverage/CoverageMappingReader.cpp (contents, props changed) vendor/llvm/dist/lib/ProfileData/Coverage/CoverageMappingWriter.cpp (contents, props changed) vendor/llvm/dist/lib/ProfileData/Coverage/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/ProfileData/ProfileSummaryBuilder.cpp (contents, props changed) vendor/llvm/dist/lib/Support/CachePruning.cpp (contents, props changed) vendor/llvm/dist/lib/Support/Error.cpp (contents, props changed) vendor/llvm/dist/lib/Support/SHA1.cpp (contents, props changed) vendor/llvm/dist/lib/Support/ScopedPrinter.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AArch64/AArch64CallLowering.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AArch64/AArch64CallLowering.h (contents, props changed) vendor/llvm/dist/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterBankInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterBankInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/AArch64/AArch64SchedKryo.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedKryoDetails.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedVulcan.td vendor/llvm/dist/lib/Target/AArch64/AArch64SystemOperands.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCallLowering.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCallLowering.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURuntimeMetadata.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/ vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/GCNHazardRecognizer.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/GCNHazardRecognizer.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/R600FrameLowering.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/R600FrameLowering.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/SIDebuggerInsertNops.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/SIWholeQuadMode.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDKernelCodeTInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/AVRFrameLowering.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/AVRISelLowering.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/AVRInstrFormats.td vendor/llvm/dist/lib/Target/AVR/AVRInstrInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AVR/AVRInstrInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/AVRInstrInfo.td vendor/llvm/dist/lib/Target/AVR/AVRRegisterInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AVR/AVRRegisterInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/AVRSubtarget.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AVR/AVRSubtarget.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/AVRTargetMachine.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/ vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.h (contents, props changed) vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/Target/AVR/TODO.md vendor/llvm/dist/lib/Target/Hexagon/HexagonBlockRanges.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonBlockRanges.h (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonBranchRelaxation.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Hexagon/HexagonOptAddrMode.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/ vendor/llvm/dist/lib/Target/Lanai/AsmParser/ vendor/llvm/dist/lib/Target/Lanai/AsmParser/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/AsmParser/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/Disassembler/ vendor/llvm/dist/lib/Target/Lanai/Disassembler/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/Disassembler/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/Disassembler/LanaiDisassembler.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/InstPrinter/ vendor/llvm/dist/lib/Target/Lanai/InstPrinter/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/InstPrinter/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/InstPrinter/LanaiInstPrinter.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/InstPrinter/LanaiInstPrinter.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/Lanai.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/Lanai.td vendor/llvm/dist/lib/Target/Lanai/LanaiAluCode.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiAsmPrinter.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiCallingConv.td vendor/llvm/dist/lib/Target/Lanai/LanaiCondCode.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiDelaySlotFiller.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiFrameLowering.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiFrameLowering.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiISelDAGToDAG.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiISelLowering.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiISelLowering.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiInstrFormats.td vendor/llvm/dist/lib/Target/Lanai/LanaiInstrInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiInstrInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiInstrInfo.td vendor/llvm/dist/lib/Target/Lanai/LanaiMCInstLower.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiMCInstLower.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiMachineFunctionInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiMachineFunctionInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiMemAluCombiner.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiRegisterInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiRegisterInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiRegisterInfo.td vendor/llvm/dist/lib/Target/Lanai/LanaiSchedule.td vendor/llvm/dist/lib/Target/Lanai/LanaiSelectionDAGInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiSelectionDAGInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiSubtarget.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiSubtarget.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiTargetMachine.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiTargetMachine.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiTargetObjectFile.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiTargetObjectFile.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/LanaiTargetTransformInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/ vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiBaseInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiFixupKinds.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/TargetInfo/ vendor/llvm/dist/lib/Target/Lanai/TargetInfo/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/TargetInfo/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Mips/MipsHazardSchedule.cpp (contents, props changed) vendor/llvm/dist/lib/Target/NVPTX/NVPTXInferAddressSpaces.cpp (contents, props changed) vendor/llvm/dist/lib/Target/NVPTX/NVVMIntrRange.cpp (contents, props changed) vendor/llvm/dist/lib/Target/PowerPC/PPCCCState.cpp (contents, props changed) vendor/llvm/dist/lib/Target/PowerPC/PPCCCState.h (contents, props changed) vendor/llvm/dist/lib/Target/PowerPC/PPCQPXLoadSplat.cpp (contents, props changed) vendor/llvm/dist/lib/Target/PowerPC/README_P9.txt (contents, props changed) vendor/llvm/dist/lib/Target/PowerPC/p9-instrs.txt (contents, props changed) vendor/llvm/dist/lib/Target/Sparc/LeonFeatures.td (contents, props changed) vendor/llvm/dist/lib/Target/Sparc/LeonPasses.cpp (contents, props changed) vendor/llvm/dist/lib/Target/Sparc/LeonPasses.h (contents, props changed) vendor/llvm/dist/lib/Target/Sparc/SparcSchedule.td (contents, props changed) vendor/llvm/dist/lib/Target/SystemZ/SystemZTDC.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyReplacePhysRegs.cpp (contents, props changed) vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86FixupBWInsts.cpp (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86FixupSetCC.cpp (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86WinAllocaExpander.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/IPO/LowerTypeTests.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/IPO/WholeProgramDevirt.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Scalar/GVNHoist.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Scalar/GuardWidening.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Scalar/LoopDataPrefetch.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Scalar/LoopSimplifyCFG.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Scalar/LoopVersioningLICM.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Utils/Evaluator.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Utils/FunctionImportUtils.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Utils/MemorySSA.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Utils/NameAnonFunctions.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Utils/SanitizerStats.cpp (contents, props changed) vendor/llvm/dist/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp (contents, props changed) vendor/llvm/dist/runtimes/ vendor/llvm/dist/runtimes/CMakeLists.txt (contents, props changed) vendor/llvm/dist/test/Analysis/BasicAA/guards.ll vendor/llvm/dist/test/Analysis/BasicAA/negoffset.ll vendor/llvm/dist/test/Analysis/BasicAA/noalias-wraparound-bug.ll vendor/llvm/dist/test/Analysis/BasicAA/returned.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/deopt-intrinsic.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Andersen/ vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Andersen/assign.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Andersen/assign2.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Andersen/attrs-below.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Andersen/attrs.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Andersen/cycle.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Andersen/memalias.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/ vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/arguments-globals.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/arguments.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/asm-global-bugfix.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/attr-escape.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/basic-interproc.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/branch-alias.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/const-expr-gep.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/constant-over-index.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/empty.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/full-store-partial-alias.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/gep-index-no-alias.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/gep-signed-arithmetic.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-arg-deref-escape.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-arg-escape.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-arg.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-deref-arg-multilevel.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-deref-arg.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-escape.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-ref-arg-multilevel.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-ref-arg.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-ret-unknown.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-store-arg-multilevel.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-store-arg-unknown.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/interproc-store-arg.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/malloc-and-free.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/multilevel-combine.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/multilevel.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/must-and-partial.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/opaque-call-alias.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/phi-and-select.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/pr27213.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/simple.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/stratified-attrs-indexing.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/Steensgaard/va.ll vendor/llvm/dist/test/Analysis/CostModel/AArch64/kryo.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/add-sub.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/addrspacecast.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/bit-ops.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/fabs.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/fadd.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/fdiv.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/fmul.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/fsub.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/insertelement.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/mul.ll vendor/llvm/dist/test/Analysis/CostModel/AMDGPU/shifts.ll vendor/llvm/dist/test/Analysis/CostModel/PowerPC/popcnt.ll vendor/llvm/dist/test/Analysis/CostModel/X86/bitreverse.ll vendor/llvm/dist/test/Analysis/CostModel/X86/bswap.ll vendor/llvm/dist/test/Analysis/CostModel/X86/ctbits-cost.ll vendor/llvm/dist/test/Analysis/DependenceAnalysis/MIVCheckConst.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/atomics.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/interp-intrinsics.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/llvm.amdgcn.buffer.atomic.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/llvm.amdgcn.image.atomic.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/no-return-blocks.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/phi-undef.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/unreachable-loop-block.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/workitem-intrinsics.ll vendor/llvm/dist/test/Analysis/DominanceFrontier/ vendor/llvm/dist/test/Analysis/DominanceFrontier/new_pm_test.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/comdat-ipo.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/func-memattributes.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/no-escape.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/independent-interleaved.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/memcheck-for-loop-invariant.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/multiple-strides-rt-memory-checks.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/safe-with-dep-distance.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/wrapping-pointer-versioning.ll vendor/llvm/dist/test/Analysis/ProfileSummary/ vendor/llvm/dist/test/Analysis/ProfileSummary/basic.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/exhaustive-trip-counts.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/expander-replace-congruent-ivs.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/flags-from-poison-dbg.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/guards.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/incorrect-offset-scaling.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/increasing-or-decreasing-iv.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/no-wrap-unknown-becount.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/overflow-intrinsics.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/pr27315.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/predicated-trip-count.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/returned.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/scev-canonical-mode.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/scev-dispositions.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/scev-expander-existing-value.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/sext-to-zext.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/trip-count13.ll vendor/llvm/dist/test/Analysis/ValueTracking/deref-bitcast-of-gep.ll vendor/llvm/dist/test/Analysis/alias-analysis-uses.ll vendor/llvm/dist/test/Assembler/autoupgrade-thread-pointer.ll vendor/llvm/dist/test/Assembler/dicompositetype-members.ll vendor/llvm/dist/test/Assembler/ifunc-asm.ll vendor/llvm/dist/test/Assembler/ifunc-use-list-order.ll vendor/llvm/dist/test/Assembler/invalid-dicompileunit-emissionkind-bad.ll vendor/llvm/dist/test/Assembler/local-unnamed-addr.ll vendor/llvm/dist/test/Assembler/metadata-decl.ll vendor/llvm/dist/test/Assembler/missing-tbaa.ll vendor/llvm/dist/test/Assembler/no-mdstring-upgrades.ll vendor/llvm/dist/test/Assembler/source-filename-backslash.ll vendor/llvm/dist/test/Assembler/source-filename.ll vendor/llvm/dist/test/Bindings/OCaml/diagnostic_handler.ml vendor/llvm/dist/test/Bindings/llvm-c/atomics.ll vendor/llvm/dist/test/Bindings/llvm-c/echo.ll vendor/llvm/dist/test/Bindings/llvm-c/empty.ll vendor/llvm/dist/test/Bindings/llvm-c/invoke.ll vendor/llvm/dist/test/Bindings/llvm-c/memops.ll vendor/llvm/dist/test/Bitcode/Inputs/invalid-gep-no-operands.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/Inputs/invalid-nonpointer-atomicrmw.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/Inputs/invalid-nonpointer-storeatomic.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/Inputs/invalid-void-constant.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/Inputs/module_hash.ll vendor/llvm/dist/test/Bitcode/Inputs/source-filename.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/Inputs/thinlto-alias.ll vendor/llvm/dist/test/Bitcode/Inputs/thinlto-function-summary-callgraph-pgo.ll vendor/llvm/dist/test/Bitcode/Inputs/thinlto-function-summary-callgraph.ll vendor/llvm/dist/test/Bitcode/auto_upgrade_intrinsics.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/avr-calling-conventions.ll vendor/llvm/dist/test/Bitcode/avr-calling-conventions.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/bitcode-wrapper-header-armv7m.ll vendor/llvm/dist/test/Bitcode/bitcode-wrapper-header-x86_64.ll vendor/llvm/dist/test/Bitcode/compatibility-3.8.ll vendor/llvm/dist/test/Bitcode/compatibility-3.8.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/dityperefs-3.8.ll vendor/llvm/dist/test/Bitcode/dityperefs-3.8.ll.bc (contents, props changed) vendor/llvm/dist/test/Bitcode/mdnodes-distinct-in-post-order.ll vendor/llvm/dist/test/Bitcode/mdnodes-distinct-nodes-break-cycles.ll vendor/llvm/dist/test/Bitcode/mdnodes-distinct-nodes-first.ll vendor/llvm/dist/test/Bitcode/mdnodes-in-post-order.ll vendor/llvm/dist/test/Bitcode/metadata-function-blocks.ll vendor/llvm/dist/test/Bitcode/metadata-only-empty-string.ll vendor/llvm/dist/test/Bitcode/metadata-strings.ll vendor/llvm/dist/test/Bitcode/module_hash.ll vendor/llvm/dist/test/Bitcode/operand-bundles-bc-analyzer.ll vendor/llvm/dist/test/Bitcode/source-filename.test vendor/llvm/dist/test/Bitcode/summary_version.ll vendor/llvm/dist/test/Bitcode/thinlto-alias.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary-callgraph-pgo.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary-callgraph.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary-originalnames.ll vendor/llvm/dist/test/Bitcode/thinlto-function-summary-refgraph.ll vendor/llvm/dist/test/Bitcode/thinlto-summary-globalvar.ll vendor/llvm/dist/test/Bitcode/thinlto-summary-linkage-types.ll vendor/llvm/dist/test/Bitcode/thinlto-summary-section.ll vendor/llvm/dist/test/Bitcode/upgrade-module-flag.ll vendor/llvm/dist/test/Bitcode/upgrade-subprogram-this.ll vendor/llvm/dist/test/Bitcode/upgrade-subprogram-this.ll.bc (contents, props changed) vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/ vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/arm64-regbankselect.mir vendor/llvm/dist/test/CodeGen/AArch64/aarch64-DAGCombine-findBetterNeighborChains-crash.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-interleaved-accesses-extract-user.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-stp-cluster.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-tbz.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-tryBitfieldInsertOpFromOr-crash.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-csldst-mmo.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-detect-vec-redux.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fma-combines.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fml-combines.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-ldp-cluster.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-misched-multimmo.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-regress-opt-cmp.mir vendor/llvm/dist/test/CodeGen/AArch64/bitfield-extract.ll vendor/llvm/dist/test/CodeGen/AArch64/bswap-known-bits.ll vendor/llvm/dist/test/CodeGen/AArch64/cmpxchg-O0.ll vendor/llvm/dist/test/CodeGen/AArch64/div_minsize.ll vendor/llvm/dist/test/CodeGen/AArch64/gep-nullptr.ll vendor/llvm/dist/test/CodeGen/AArch64/inlineasm-X-allocation.ll vendor/llvm/dist/test/CodeGen/AArch64/inlineasm-X-constraint.ll vendor/llvm/dist/test/CodeGen/AArch64/ldp-stp-scaled-unscaled-pairs.ll vendor/llvm/dist/test/CodeGen/AArch64/lower-range-metadata-func-call.ll vendor/llvm/dist/test/CodeGen/AArch64/machine-copy-remove.ll vendor/llvm/dist/test/CodeGen/AArch64/merge-store-dependency.ll vendor/llvm/dist/test/CodeGen/AArch64/movimm-wzr.mir vendor/llvm/dist/test/CodeGen/AArch64/neg-imm.ll vendor/llvm/dist/test/CodeGen/AArch64/no-quad-ldp-stp.ll vendor/llvm/dist/test/CodeGen/AArch64/optimize-cond-branch.ll vendor/llvm/dist/test/CodeGen/AArch64/pie.ll vendor/llvm/dist/test/CodeGen/AArch64/preferred-alignment.ll vendor/llvm/dist/test/CodeGen/AArch64/preserve_mostcc.ll vendor/llvm/dist/test/CodeGen/AArch64/recp-fastmath.ll vendor/llvm/dist/test/CodeGen/AArch64/rem_crash.ll vendor/llvm/dist/test/CodeGen/AArch64/sqrt-fastmath.ll vendor/llvm/dist/test/CodeGen/AArch64/stack-protector-target.ll vendor/llvm/dist/test/CodeGen/AArch64/subs-to-sub-opt.ll vendor/llvm/dist/test/CodeGen/AArch64/swifterror.ll vendor/llvm/dist/test/CodeGen/AArch64/swiftself.ll vendor/llvm/dist/test/CodeGen/AArch64/tailcall-ccmismatch.ll vendor/llvm/dist/test/CodeGen/AArch64/tailmerging_in_mbp.ll vendor/llvm/dist/test/CodeGen/AArch64/vector_merge_dep_check.ll vendor/llvm/dist/test/CodeGen/AMDGPU/GlobalISel/ vendor/llvm/dist/test/CodeGen/AMDGPU/GlobalISel/amdgpu-irtranslator.ll vendor/llvm/dist/test/CodeGen/AMDGPU/addrspacecast-constantexpr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgcn.private-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgcn.work-item-intrinsics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu-codegenprepare.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu-shader-calling-convention.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu.private-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/amdgpu.work-item-intrinsics.deprecated.ll vendor/llvm/dist/test/CodeGen/AMDGPU/and-gcn.ll vendor/llvm/dist/test/CodeGen/AMDGPU/annotate-kernel-features-hsa.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bfm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bitreverse-inline-immediates.ll vendor/llvm/dist/test/CodeGen/AMDGPU/branch-uniformity.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bug-vopc-commute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/captured-frame-index.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cf-loop-on-constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cgp-bitfield-extract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cndmask-no-def-vcc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/coalescer_distribute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/convergent-inlineasm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cube.ll vendor/llvm/dist/test/CodeGen/AMDGPU/dagcombine-reassociate-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/debugger-emit-prologue.ll vendor/llvm/dist/test/CodeGen/AMDGPU/debugger-insert-nops.ll vendor/llvm/dist/test/CodeGen/AMDGPU/debugger-reserve-regs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/detect-dead-lanes.mir vendor/llvm/dist/test/CodeGen/AMDGPU/extract-vector-elt-build-vector-combine.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extractelt-to-trunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcanonicalize.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat_atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat_atomics_i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmed3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fract.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsqrt.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-variable-relocs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global_atomics_i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/gv-offset-folding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-default-device.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-fp-mode.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-func.ll vendor/llvm/dist/test/CodeGen/AMDGPU/indirect-addressing-undef.mir vendor/llvm/dist/test/CodeGen/AMDGPU/invalid-addrspacecast.ll vendor/llvm/dist/test/CodeGen/AMDGPU/kernarg-stack-alignment.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-work-group-promote-alloca.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-work-group-registers.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-alignment.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-m0-init-in-loop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/liveness.mir vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.image.sample-masked.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.dec.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.atomic.inc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.atomic.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.load.format.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.load.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.store.format.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.class.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cos.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cubeid.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cubema.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cubesc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.cubetc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.div.fmas.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.div.scale.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bpermute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ds.permute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ds.swizzle.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.fract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.exp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.mant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.groupstaticgroup.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.image.atomic.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.image.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.kernarg.segment.ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ldexp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.lerp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.log.clamp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.mov.dpp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ps.live.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.queue.ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.read.workdim.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.clamp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.legacy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.getreg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.memrealtime.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.memtime.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.sleep.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.waitcnt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.sin.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.trig.preop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.workgroup.id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.workitem.id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.dot4.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.group.barrier.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.read.workdim.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.recipsqrt.clamped.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.recipsqrt.ieee.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.r600.tex.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-constant-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-global-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-f32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-local-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-weird-sizes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-memory.amdgcn.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-memory.r600.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-stack-slot-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lower-range-metadata-intrinsic-call.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mad24-get-global-id.ll vendor/llvm/dist/test/CodeGen/AMDGPU/multilevel-break.ll vendor/llvm/dist/test/CodeGen/AMDGPU/over-max-lds-size.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-element-size.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-memory-r600.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-array-allocation.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-globals.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-invariant-markers.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-lifetime.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-mem-intrinsics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-no-opts.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-padding-size-estimate.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-shaders.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-to-lds-icmp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-to-lds-phi.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-to-lds-select.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-unhandled-intrinsic.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-volatile.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600.private-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600.work-item-intrinsics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rcp-pattern.ll vendor/llvm/dist/test/CodeGen/AMDGPU/read-register-invalid-subtarget.ll vendor/llvm/dist/test/CodeGen/AMDGPU/read-register-invalid-type-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/read-register-invalid-type-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/read_register.ll vendor/llvm/dist/test/CodeGen/AMDGPU/readcyclecounter.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reduce-load-width-alignment.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reduce-store-width-alignment.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reg-coalescer-sched-crash.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rename-disconnected-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rename-independent-subregs.mir vendor/llvm/dist/test/CodeGen/AMDGPU/ret_jump.ll vendor/llvm/dist/test/CodeGen/AMDGPU/runtime-metadata.ll vendor/llvm/dist/test/CodeGen/AMDGPU/s_addk_i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/s_mulk_i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/selected-stack-object.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sext-in-reg-failure-r600.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shift-and-i128-ubfe.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shift-and-i64-ubfe.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shift-i64-opts.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-annotate-cfg-loop-assert.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-lower-control-flow-unreachable-block.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-spill-sgpr-stack.ll vendor/llvm/dist/test/CodeGen/AMDGPU/skip-if-dead.ll vendor/llvm/dist/test/CodeGen/AMDGPU/smed3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/smrd-vccz-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/split-smrd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/target-cpu.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trap.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-bitcast-vector.ll vendor/llvm/dist/test/CodeGen/AMDGPU/umed3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/undefined-subreg-liverange.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uniform-branch-intrinsic-cond.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uniform-cfg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uniform-crash.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uniform-loop-inside-nonuniform.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unknown-processor.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vector-extract-insert.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vi-removed-intrinsics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/waitcnt-flat.ll vendor/llvm/dist/test/CodeGen/AMDGPU/wqm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/write-register-vgpr-into-sgpr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/write_register.ll vendor/llvm/dist/test/CodeGen/AMDGPU/zext-i64-bit-operand.ll vendor/llvm/dist/test/CodeGen/ARM/2016-05-01-RegScavengerAssert.ll vendor/llvm/dist/test/CodeGen/ARM/ARMLoadStoreDBG.mir vendor/llvm/dist/test/CodeGen/ARM/Windows/builtin_longjmp.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/dbzchk.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/dllexport.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/tls.ll vendor/llvm/dist/test/CodeGen/ARM/arm-interleaved-accesses-extract-user.ll vendor/llvm/dist/test/CodeGen/ARM/cdp.ll vendor/llvm/dist/test/CodeGen/ARM/cdp2.ll vendor/llvm/dist/test/CodeGen/ARM/cmpxchg-O0.ll vendor/llvm/dist/test/CodeGen/ARM/default-reloc.ll vendor/llvm/dist/test/CodeGen/ARM/fast-isel-pie.ll vendor/llvm/dist/test/CodeGen/ARM/inlineasm-X-allocation.ll vendor/llvm/dist/test/CodeGen/ARM/inlineasm-X-constraint.ll vendor/llvm/dist/test/CodeGen/ARM/interval-update-remat.ll vendor/llvm/dist/test/CodeGen/ARM/intrinsics-coprocessor.ll vendor/llvm/dist/test/CodeGen/ARM/invalidated-save-point.ll vendor/llvm/dist/test/CodeGen/ARM/ldc2l.ll vendor/llvm/dist/test/CodeGen/ARM/ldm-base-writeback.ll vendor/llvm/dist/test/CodeGen/ARM/litpool-licm.ll vendor/llvm/dist/test/CodeGen/ARM/local-call.ll vendor/llvm/dist/test/CodeGen/ARM/macho-frame-offset.ll vendor/llvm/dist/test/CodeGen/ARM/memcpy-no-inline.ll vendor/llvm/dist/test/CodeGen/ARM/minsize-call-cse.ll vendor/llvm/dist/test/CodeGen/ARM/msr-it-block.ll vendor/llvm/dist/test/CodeGen/ARM/pie.ll vendor/llvm/dist/test/CodeGen/ARM/plt-relative-reloc.ll vendor/llvm/dist/test/CodeGen/ARM/pr26669.ll vendor/llvm/dist/test/CodeGen/ARM/rem_crash.ll vendor/llvm/dist/test/CodeGen/ARM/special-reg-v8m-base.ll vendor/llvm/dist/test/CodeGen/ARM/special-reg-v8m-main.ll vendor/llvm/dist/test/CodeGen/ARM/ssat.ll vendor/llvm/dist/test/CodeGen/ARM/static-addr-hoisting.ll vendor/llvm/dist/test/CodeGen/ARM/stc2.ll vendor/llvm/dist/test/CodeGen/ARM/swift-ios.ll vendor/llvm/dist/test/CodeGen/ARM/swift-return.ll vendor/llvm/dist/test/CodeGen/ARM/swifterror.ll vendor/llvm/dist/test/CodeGen/ARM/swiftself.ll vendor/llvm/dist/test/CodeGen/ARM/t2-shrink-ldrpost.ll vendor/llvm/dist/test/CodeGen/ARM/tail-call-builtin.ll vendor/llvm/dist/test/CodeGen/ARM/thumb-stub.ll vendor/llvm/dist/test/CodeGen/ARM/urem-opt-size.ll vendor/llvm/dist/test/CodeGen/ARM/wide-compares.ll vendor/llvm/dist/test/CodeGen/BPF/sdiv_error.ll vendor/llvm/dist/test/CodeGen/Generic/dont-remove-empty-preheader.ll vendor/llvm/dist/test/CodeGen/Generic/vector-redux.ll vendor/llvm/dist/test/CodeGen/Hexagon/avoid-predspill-calleesaved.ll vendor/llvm/dist/test/CodeGen/Hexagon/avoid-predspill.ll vendor/llvm/dist/test/CodeGen/Hexagon/bit-extractu-half.ll vendor/llvm/dist/test/CodeGen/Hexagon/bitconvert-vector.ll vendor/llvm/dist/test/CodeGen/Hexagon/block-ranges-nodef.ll vendor/llvm/dist/test/CodeGen/Hexagon/branch-non-mbb.ll vendor/llvm/dist/test/CodeGen/Hexagon/builtin-prefetch-offset.ll vendor/llvm/dist/test/CodeGen/Hexagon/builtin-prefetch.ll vendor/llvm/dist/test/CodeGen/Hexagon/callr-dep-edge.ll vendor/llvm/dist/test/CodeGen/Hexagon/cfi-offset.ll vendor/llvm/dist/test/CodeGen/Hexagon/circ-load-isel.ll vendor/llvm/dist/test/CodeGen/Hexagon/const64.ll vendor/llvm/dist/test/CodeGen/Hexagon/csr-func-usedef.ll vendor/llvm/dist/test/CodeGen/Hexagon/eliminate-pred-spill.ll vendor/llvm/dist/test/CodeGen/Hexagon/expand-condsets-pred-undef.ll vendor/llvm/dist/test/CodeGen/Hexagon/ifcvt-diamond-bad.ll vendor/llvm/dist/test/CodeGen/Hexagon/inline-asm-qv.ll vendor/llvm/dist/test/CodeGen/Hexagon/insert4.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/system_user.ll vendor/llvm/dist/test/CodeGen/Hexagon/memops-stack.ll vendor/llvm/dist/test/CodeGen/Hexagon/misched-top-rptracker-sync.ll vendor/llvm/dist/test/CodeGen/Hexagon/opt-addr-mode.ll vendor/llvm/dist/test/CodeGen/Hexagon/packetize-tailcall-arg.ll vendor/llvm/dist/test/CodeGen/Hexagon/peephole-op-swap.ll vendor/llvm/dist/test/CodeGen/Hexagon/pic-local.ll vendor/llvm/dist/test/CodeGen/Hexagon/pic-regusage.ll vendor/llvm/dist/test/CodeGen/Hexagon/rdf-copy-undef2.ll vendor/llvm/dist/test/CodeGen/Hexagon/rdf-inline-asm-fixed.ll vendor/llvm/dist/test/CodeGen/Hexagon/rdf-inline-asm.ll vendor/llvm/dist/test/CodeGen/Hexagon/rdf-reset-kills.ll vendor/llvm/dist/test/CodeGen/Hexagon/reg-scavengebug-3.ll vendor/llvm/dist/test/CodeGen/Hexagon/reg-scavenger-valid-slot.ll vendor/llvm/dist/test/CodeGen/Hexagon/restore-single-reg.ll vendor/llvm/dist/test/CodeGen/Hexagon/ret-struct-by-val.ll vendor/llvm/dist/test/CodeGen/Hexagon/runtime-stkchk.ll vendor/llvm/dist/test/CodeGen/Hexagon/sdata-array.ll vendor/llvm/dist/test/CodeGen/Hexagon/sdata-basic.ll vendor/llvm/dist/test/CodeGen/Hexagon/section_7275.ll vendor/llvm/dist/test/CodeGen/Hexagon/select-instr-align.ll vendor/llvm/dist/test/CodeGen/Hexagon/store-shift.ll vendor/llvm/dist/test/CodeGen/Hexagon/storerinewabs.ll vendor/llvm/dist/test/CodeGen/Hexagon/tail-dup-subreg-map.ll vendor/llvm/dist/test/CodeGen/Hexagon/tls_pic.ll vendor/llvm/dist/test/CodeGen/Hexagon/tls_static.ll vendor/llvm/dist/test/CodeGen/Hexagon/v60-cur.ll vendor/llvm/dist/test/CodeGen/Hexagon/vec-pred-spill1.ll vendor/llvm/dist/test/CodeGen/Hexagon/vector-align.ll vendor/llvm/dist/test/CodeGen/Hexagon/vload-postinc-sel.ll vendor/llvm/dist/test/CodeGen/Hexagon/vselect-pseudo.ll vendor/llvm/dist/test/CodeGen/Hexagon/vsplat-isel.ll vendor/llvm/dist/test/CodeGen/Lanai/ vendor/llvm/dist/test/CodeGen/Lanai/codemodel.ll vendor/llvm/dist/test/CodeGen/Lanai/comparisons_i32.ll vendor/llvm/dist/test/CodeGen/Lanai/comparisons_i64.ll vendor/llvm/dist/test/CodeGen/Lanai/constant_multiply.ll vendor/llvm/dist/test/CodeGen/Lanai/delay_filler.ll vendor/llvm/dist/test/CodeGen/Lanai/i32.ll vendor/llvm/dist/test/CodeGen/Lanai/lanai-misched-trivial-disjoint.ll vendor/llvm/dist/test/CodeGen/Lanai/lit.local.cfg vendor/llvm/dist/test/CodeGen/Lanai/mem_alu_combiner.ll vendor/llvm/dist/test/CodeGen/Lanai/multiply.ll vendor/llvm/dist/test/CodeGen/Lanai/rshift64.ll vendor/llvm/dist/test/CodeGen/Lanai/select.ll vendor/llvm/dist/test/CodeGen/Lanai/set_and_hi.ll vendor/llvm/dist/test/CodeGen/Lanai/shift.ll vendor/llvm/dist/test/CodeGen/Lanai/stack-frame.ll vendor/llvm/dist/test/CodeGen/Lanai/sub-cmp-peephole.ll vendor/llvm/dist/test/CodeGen/Lanai/subword.ll vendor/llvm/dist/test/CodeGen/MIR/AArch64/generic-virtual-registers-error.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/machine-dead-copy.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/machine-scheduler.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/imm-peephole-arm.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/imm-peephole-thumb.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/multiRunPass.mir vendor/llvm/dist/test/CodeGen/MIR/Hexagon/ vendor/llvm/dist/test/CodeGen/MIR/Hexagon/anti-dep-partial.mir vendor/llvm/dist/test/CodeGen/MIR/Hexagon/lit.local.cfg vendor/llvm/dist/test/CodeGen/MIR/Lanai/ vendor/llvm/dist/test/CodeGen/MIR/Lanai/lit.local.cfg vendor/llvm/dist/test/CodeGen/MIR/Lanai/peephole-compare.mir vendor/llvm/dist/test/CodeGen/MIR/X86/generic-instr-type-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/generic-virtual-registers.mir vendor/llvm/dist/test/CodeGen/MIR/X86/subreg-on-physreg.mir vendor/llvm/dist/test/CodeGen/MIR/X86/subregister-index-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-subregister-index-op.mir vendor/llvm/dist/test/CodeGen/MSP430/spill-to-stack.ll vendor/llvm/dist/test/CodeGen/Mips/assertzext-trunc.ll vendor/llvm/dist/test/CodeGen/Mips/atomicCmpSwapPW.ll vendor/llvm/dist/test/CodeGen/Mips/cannot-copy-registers.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/roundl-call.ll vendor/llvm/dist/test/CodeGen/Mips/compactbranches/ vendor/llvm/dist/test/CodeGen/Mips/compactbranches/beqc-bnec-register-constraint.ll vendor/llvm/dist/test/CodeGen/Mips/compactbranches/compact-branch-policy.ll vendor/llvm/dist/test/CodeGen/Mips/compactbranches/compact-branches.ll vendor/llvm/dist/test/CodeGen/Mips/compactbranches/no-beqzc-bnezc.ll vendor/llvm/dist/test/CodeGen/Mips/cstmaterialization/ vendor/llvm/dist/test/CodeGen/Mips/cstmaterialization/stack.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm-constraint_ZC_2.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/lh_lhu.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/not.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/select-dbl.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/select-flt.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/select-int.ll vendor/llvm/dist/test/CodeGen/Mips/lw16-base-reg.ll vendor/llvm/dist/test/CodeGen/Mips/micromips-lwc1-swc1.ll vendor/llvm/dist/test/CodeGen/Mips/mips-shf-gprel.s (contents, props changed) vendor/llvm/dist/test/CodeGen/Mips/private-addr.ll vendor/llvm/dist/test/CodeGen/Mips/selectiondag-optlevel.ll vendor/llvm/dist/test/CodeGen/Mips/thread-pointer.ll vendor/llvm/dist/test/CodeGen/NVPTX/MachineSink-call.ll vendor/llvm/dist/test/CodeGen/NVPTX/MachineSink-convergent.ll vendor/llvm/dist/test/CodeGen/NVPTX/TailDuplication-convergent.ll vendor/llvm/dist/test/CodeGen/NVPTX/alias.ll vendor/llvm/dist/test/CodeGen/NVPTX/bug26185-2.ll vendor/llvm/dist/test/CodeGen/NVPTX/bug26185.ll vendor/llvm/dist/test/CodeGen/NVPTX/convergent-mir-call.ll vendor/llvm/dist/test/CodeGen/NVPTX/debug-file-loc.ll vendor/llvm/dist/test/CodeGen/NVPTX/disable-opt.ll vendor/llvm/dist/test/CodeGen/NVPTX/global-ctor-empty.ll vendor/llvm/dist/test/CodeGen/NVPTX/global-ctor.ll vendor/llvm/dist/test/CodeGen/NVPTX/global-dtor.ll vendor/llvm/dist/test/CodeGen/NVPTX/global-visibility.ll vendor/llvm/dist/test/CodeGen/NVPTX/nvvm-reflect-module-flag.ll vendor/llvm/dist/test/CodeGen/NVPTX/shfl.ll vendor/llvm/dist/test/CodeGen/NVPTX/sm-version-60.ll vendor/llvm/dist/test/CodeGen/NVPTX/sm-version-61.ll vendor/llvm/dist/test/CodeGen/NVPTX/sm-version-62.ll vendor/llvm/dist/test/CodeGen/NVPTX/speculative-execution-divergent-target.ll vendor/llvm/dist/test/CodeGen/NVPTX/zeroext-32bit.ll vendor/llvm/dist/test/CodeGen/PowerPC/2016-04-16-ADD8TLS.ll vendor/llvm/dist/test/CodeGen/PowerPC/2016-04-17-combine.ll vendor/llvm/dist/test/CodeGen/PowerPC/2016-04-28-setjmp.ll vendor/llvm/dist/test/CodeGen/PowerPC/aggressive-anti-dep-breaker-subreg.ll vendor/llvm/dist/test/CodeGen/PowerPC/andc.ll vendor/llvm/dist/test/CodeGen/PowerPC/asm-printer-topological-order.ll vendor/llvm/dist/test/CodeGen/PowerPC/cannonicalize-vector-shifts.ll vendor/llvm/dist/test/CodeGen/PowerPC/combine-to-pre-index-store-crash.ll vendor/llvm/dist/test/CodeGen/PowerPC/ctr-minmaxnum.ll vendor/llvm/dist/test/CodeGen/PowerPC/ctrloops-softfloat.ll vendor/llvm/dist/test/CodeGen/PowerPC/cxx_tlscc64.ll vendor/llvm/dist/test/CodeGen/PowerPC/direct-move-profit.ll vendor/llvm/dist/test/CodeGen/PowerPC/ext-bool-trunc-repl.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-fcmp-nan.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-fpconv.ll vendor/llvm/dist/test/CodeGen/PowerPC/fast-isel-i64offset.ll vendor/llvm/dist/test/CodeGen/PowerPC/fma-mutate-duplicate-vreg.ll vendor/llvm/dist/test/CodeGen/PowerPC/indirect-hidden.ll vendor/llvm/dist/test/CodeGen/PowerPC/inline-asm-scalar-to-vector-error.ll vendor/llvm/dist/test/CodeGen/PowerPC/load-two-flts.ll vendor/llvm/dist/test/CodeGen/PowerPC/load-v4i8-improved.ll vendor/llvm/dist/test/CodeGen/PowerPC/multi-return.ll vendor/llvm/dist/test/CodeGen/PowerPC/opt-cmp-inst-cr0-live.ll vendor/llvm/dist/test/CodeGen/PowerPC/opt-sub-inst-cr0-live.mir vendor/llvm/dist/test/CodeGen/PowerPC/p9-xxinsertw-xxextractuw.ll vendor/llvm/dist/test/CodeGen/PowerPC/pie.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc32-align-long-double-sf.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc32-constant-BE-ppcf128.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-sibcall-shrinkwrap.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-sibcall.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppcf128sf.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr26180.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr26378.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr26617.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr27078.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr27350.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr28130.ll vendor/llvm/dist/test/CodeGen/PowerPC/qpx-load-splat.ll vendor/llvm/dist/test/CodeGen/PowerPC/remove-redundant-moves.ll vendor/llvm/dist/test/CodeGen/PowerPC/rlwinm-zero-ext.ll vendor/llvm/dist/test/CodeGen/PowerPC/swaps-le-7.ll vendor/llvm/dist/test/CodeGen/PowerPC/tailcall-string-rvo.ll vendor/llvm/dist/test/CodeGen/PowerPC/thread-pointer.ll vendor/llvm/dist/test/CodeGen/PowerPC/vec_abs.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx-word-splats.ll vendor/llvm/dist/test/CodeGen/SPARC/LeonFixCALLPassUT.ll vendor/llvm/dist/test/CodeGen/SPARC/LeonFixFSMULDPassUT.ll (contents, props changed) vendor/llvm/dist/test/CodeGen/SPARC/LeonInsertNOPLoad.ll vendor/llvm/dist/test/CodeGen/SPARC/LeonInsertNOPLoadPassUT.ll (contents, props changed) vendor/llvm/dist/test/CodeGen/SPARC/LeonInsertNOPsDoublePrecision.ll vendor/llvm/dist/test/CodeGen/SPARC/LeonItinerariesUT.ll vendor/llvm/dist/test/CodeGen/SPARC/LeonPreventRoundChangePassUT.ll vendor/llvm/dist/test/CodeGen/SPARC/LeonReplaceFMULSPassUT.ll (contents, props changed) vendor/llvm/dist/test/CodeGen/SPARC/LeonReplaceSDIVPassUT.ll vendor/llvm/dist/test/CodeGen/SPARC/LeonSMACUMACInstructionUT.ll (contents, props changed) vendor/llvm/dist/test/CodeGen/SPARC/func-addr.ll vendor/llvm/dist/test/CodeGen/SPARC/sjlj.ll (contents, props changed) vendor/llvm/dist/test/CodeGen/SPARC/soft-float.ll vendor/llvm/dist/test/CodeGen/SPARC/stack-protector.ll vendor/llvm/dist/test/CodeGen/SPARC/thread-pointer.ll vendor/llvm/dist/test/CodeGen/SPARC/vector-call.ll vendor/llvm/dist/test/CodeGen/SPARC/zerostructcall.ll vendor/llvm/dist/test/CodeGen/SystemZ/and-xor-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/args-09.ll vendor/llvm/dist/test/CodeGen/SystemZ/args-10.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomic-fence-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomic-fence-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/backchain.ll vendor/llvm/dist/test/CodeGen/SystemZ/bswap-06.ll vendor/llvm/dist/test/CodeGen/SystemZ/bswap-07.ll vendor/llvm/dist/test/CodeGen/SystemZ/builtins.ll vendor/llvm/dist/test/CodeGen/SystemZ/call-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/call-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/cmpxchg-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/cond-li.ll vendor/llvm/dist/test/CodeGen/SystemZ/dyn-alloca-offset.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-move-12.ll vendor/llvm/dist/test/CodeGen/SystemZ/frameaddr-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/memchr-nobuiltin.ll vendor/llvm/dist/test/CodeGen/SystemZ/memcmp-nobuiltin.ll vendor/llvm/dist/test/CodeGen/SystemZ/pie.ll vendor/llvm/dist/test/CodeGen/SystemZ/ret-addr-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/rot-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/rot-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/shift-11.ll vendor/llvm/dist/test/CodeGen/SystemZ/shift-12.ll vendor/llvm/dist/test/CodeGen/SystemZ/stack-guard.ll vendor/llvm/dist/test/CodeGen/SystemZ/strcmp-nobuiltin.ll vendor/llvm/dist/test/CodeGen/SystemZ/strcpy-nobuiltin.ll vendor/llvm/dist/test/CodeGen/SystemZ/strlen-nobuiltin.ll vendor/llvm/dist/test/CodeGen/SystemZ/swift-return.ll vendor/llvm/dist/test/CodeGen/SystemZ/swifterror.ll vendor/llvm/dist/test/CodeGen/SystemZ/swiftself.ll vendor/llvm/dist/test/CodeGen/SystemZ/tdc-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/tdc-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/tdc-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/tdc-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/tdc-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/tdc-06.ll vendor/llvm/dist/test/CodeGen/SystemZ/trap-01.ll vendor/llvm/dist/test/CodeGen/Thumb/and_neg.ll vendor/llvm/dist/test/CodeGen/Thumb/bic_imm.ll vendor/llvm/dist/test/CodeGen/Thumb/constants.ll vendor/llvm/dist/test/CodeGen/Thumb/ldm-stm-postinc.ll vendor/llvm/dist/test/CodeGen/Thumb2/bicbfi.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-cpsr-liveness.ll vendor/llvm/dist/test/CodeGen/WebAssembly/address-offsets.ll vendor/llvm/dist/test/CodeGen/WebAssembly/byval.ll vendor/llvm/dist/test/CodeGen/WebAssembly/divrem-constant.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i128.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i32-load-store-alignment.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i64-load-store-alignment.ll vendor/llvm/dist/test/CodeGen/WebAssembly/indirect-import.ll vendor/llvm/dist/test/CodeGen/WebAssembly/irreducible-cfg.ll vendor/llvm/dist/test/CodeGen/WebAssembly/mem-intrinsics.ll vendor/llvm/dist/test/CodeGen/WebAssembly/non-executable-stack.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-asm.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-nested-unwind.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-setjmp.ll vendor/llvm/dist/test/CodeGen/X86/AppendingLinkage.ll vendor/llvm/dist/test/CodeGen/X86/alias-gep.ll vendor/llvm/dist/test/CodeGen/X86/atomic-eflags-reuse.ll vendor/llvm/dist/test/CodeGen/X86/avx-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/avx-vbroadcastf128.ll vendor/llvm/dist/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/avx2-pmovxrm.ll vendor/llvm/dist/test/CodeGen/X86/avx2-vbroadcasti128.ll vendor/llvm/dist/test/CodeGen/X86/avx512-any_extend_load.ll vendor/llvm/dist/test/CodeGen/X86/avx512-bugfix-26264.ll vendor/llvm/dist/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/avx512-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx512-mask-spills.ll vendor/llvm/dist/test/CodeGen/X86/avx512-scalarIntrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512-unsafe-fp-math.ll vendor/llvm/dist/test/CodeGen/X86/avx512bw-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/avx512bw-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx512bwvl-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/avx512bwvl-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx512ifma-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512ifmavl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512vbmi-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512vbmivl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/base-pointer-and-cmpxchg.ll vendor/llvm/dist/test/CodeGen/X86/bmi-intrinsics-fast-isel-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/bmi-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/catchpad-dynamic-alloca.ll vendor/llvm/dist/test/CodeGen/X86/catchret-regmask.ll vendor/llvm/dist/test/CodeGen/X86/clear_upper_vector_element_bits.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_loop_rotation3.ll vendor/llvm/dist/test/CodeGen/X86/combine-testm-and.ll vendor/llvm/dist/test/CodeGen/X86/crash-lre-eliminate-dead-def.ll vendor/llvm/dist/test/CodeGen/X86/deopt-bundles.ll vendor/llvm/dist/test/CodeGen/X86/deopt-intrinsic-cconv.ll vendor/llvm/dist/test/CodeGen/X86/deopt-intrinsic.ll vendor/llvm/dist/test/CodeGen/X86/eflags-copy-expansion.mir vendor/llvm/dist/test/CodeGen/X86/f16c-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/fixup-bw-copy.ll vendor/llvm/dist/test/CodeGen/X86/fixup-bw-copy.mir vendor/llvm/dist/test/CodeGen/X86/fixup-bw-inst.ll vendor/llvm/dist/test/CodeGen/X86/fp128-select.ll vendor/llvm/dist/test/CodeGen/X86/frame-order.ll vendor/llvm/dist/test/CodeGen/X86/ga-offset2.ll vendor/llvm/dist/test/CodeGen/X86/global-access-pie.ll vendor/llvm/dist/test/CodeGen/X86/hoist-spill-lpad.ll vendor/llvm/dist/test/CodeGen/X86/hoist-spill.ll vendor/llvm/dist/test/CodeGen/X86/i16lshr8pat.ll vendor/llvm/dist/test/CodeGen/X86/i386-setjmp-pic.ll vendor/llvm/dist/test/CodeGen/X86/i686-win-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/X86/ifunc-asm.ll vendor/llvm/dist/test/CodeGen/X86/implicit-null-checks.mir vendor/llvm/dist/test/CodeGen/X86/interval-update-remat.ll vendor/llvm/dist/test/CodeGen/X86/ipra-inline-asm.ll vendor/llvm/dist/test/CodeGen/X86/ipra-local-linkage.ll vendor/llvm/dist/test/CodeGen/X86/ipra-reg-usage.ll vendor/llvm/dist/test/CodeGen/X86/ipra-transform.ll vendor/llvm/dist/test/CodeGen/X86/lakemont.ll vendor/llvm/dist/test/CodeGen/X86/lea-opt-memop-check-1.ll vendor/llvm/dist/test/CodeGen/X86/lea-opt-memop-check-2.ll vendor/llvm/dist/test/CodeGen/X86/loc-remat.ll vendor/llvm/dist/test/CodeGen/X86/local_stack_symbol_ordering.ll vendor/llvm/dist/test/CodeGen/X86/machine-copy-prop.mir vendor/llvm/dist/test/CodeGen/X86/machine-sink-and-implicit-null-checks.ll vendor/llvm/dist/test/CodeGen/X86/materialize.ll vendor/llvm/dist/test/CodeGen/X86/mbp-false-cfg-break.ll vendor/llvm/dist/test/CodeGen/X86/memcpy-from-string.ll vendor/llvm/dist/test/CodeGen/X86/memset-nonzero.ll vendor/llvm/dist/test/CodeGen/X86/merge-consecutive-loads-128.ll vendor/llvm/dist/test/CodeGen/X86/merge-consecutive-loads-256.ll vendor/llvm/dist/test/CodeGen/X86/merge-consecutive-loads-512.ll vendor/llvm/dist/test/CodeGen/X86/merge-sp-update-lea.ll vendor/llvm/dist/test/CodeGen/X86/mmx-bitcast-fold.ll vendor/llvm/dist/test/CodeGen/X86/movtopush64.ll vendor/llvm/dist/test/CodeGen/X86/mul-i256.ll vendor/llvm/dist/test/CodeGen/X86/mwaitx.ll vendor/llvm/dist/test/CodeGen/X86/negative-offset.ll vendor/llvm/dist/test/CodeGen/X86/new-remat.ll vendor/llvm/dist/test/CodeGen/X86/no-prolog-kill.ll vendor/llvm/dist/test/CodeGen/X86/no-sse2-avg.ll vendor/llvm/dist/test/CodeGen/X86/nontemporal-loads.ll vendor/llvm/dist/test/CodeGen/X86/noreturn-call.ll vendor/llvm/dist/test/CodeGen/X86/patchable-prologue.ll vendor/llvm/dist/test/CodeGen/X86/pie.ll vendor/llvm/dist/test/CodeGen/X86/post-ra-sched.ll vendor/llvm/dist/test/CodeGen/X86/pr2585.ll vendor/llvm/dist/test/CodeGen/X86/pr26350.ll vendor/llvm/dist/test/CodeGen/X86/pr26652.ll vendor/llvm/dist/test/CodeGen/X86/pr26757.ll vendor/llvm/dist/test/CodeGen/X86/pr26835.ll vendor/llvm/dist/test/CodeGen/X86/pr26870.ll vendor/llvm/dist/test/CodeGen/X86/pr27071.ll vendor/llvm/dist/test/CodeGen/X86/pr27501.ll vendor/llvm/dist/test/CodeGen/X86/pr27591.ll vendor/llvm/dist/test/CodeGen/X86/pr27681.mir vendor/llvm/dist/test/CodeGen/X86/pr28173.ll vendor/llvm/dist/test/CodeGen/X86/pr28444.ll vendor/llvm/dist/test/CodeGen/X86/pr28472.ll vendor/llvm/dist/test/CodeGen/X86/pr28489.ll vendor/llvm/dist/test/CodeGen/X86/pr28515.ll vendor/llvm/dist/test/CodeGen/X86/pr28560.ll vendor/llvm/dist/test/CodeGen/X86/ps4-noreturn.ll vendor/llvm/dist/test/CodeGen/X86/reduce-trunc-shl.ll vendor/llvm/dist/test/CodeGen/X86/return-ext.ll vendor/llvm/dist/test/CodeGen/X86/sad.ll vendor/llvm/dist/test/CodeGen/X86/safestack_ssp.ll vendor/llvm/dist/test/CodeGen/X86/shrink_vmul.ll vendor/llvm/dist/test/CodeGen/X86/sjlj-eh.ll vendor/llvm/dist/test/CodeGen/X86/sqrt-fastmath-mir.ll vendor/llvm/dist/test/CodeGen/X86/sse-intrinsics-fast-isel-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/sse-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/sse-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/sse2-intrinsics-fast-isel-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/sse41-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/sse41-pmovxrm.ll vendor/llvm/dist/test/CodeGen/X86/sse42-intrinsics-fast-isel-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/sse42-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/sse4a-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/ssp-guard-spill.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-fp-avx512vl.ll vendor/llvm/dist/test/CodeGen/X86/stack-protector-msvc.ll vendor/llvm/dist/test/CodeGen/X86/stack-protector-target.ll vendor/llvm/dist/test/CodeGen/X86/stackguard-internal.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-uniqueing.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-vector-bad-spill.ll vendor/llvm/dist/test/CodeGen/X86/store-zero-and-minus-one.ll vendor/llvm/dist/test/CodeGen/X86/swift-return.ll vendor/llvm/dist/test/CodeGen/X86/swifterror.ll vendor/llvm/dist/test/CodeGen/X86/swiftself.ll vendor/llvm/dist/test/CodeGen/X86/switch-density.ll vendor/llvm/dist/test/CodeGen/X86/tail-call-casts.ll vendor/llvm/dist/test/CodeGen/X86/tail-call-parameter-attrs-mismatch.ll vendor/llvm/dist/test/CodeGen/X86/tail-merge-unreachable.ll vendor/llvm/dist/test/CodeGen/X86/tbm-intrinsics-fast-isel-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/tbm-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/tls-windows-itanium.ll vendor/llvm/dist/test/CodeGen/X86/unreachableblockelim.ll vendor/llvm/dist/test/CodeGen/X86/unused_stackslots.ll vendor/llvm/dist/test/CodeGen/X86/update-terminator.mir vendor/llvm/dist/test/CodeGen/X86/urem-power-of-two.ll vendor/llvm/dist/test/CodeGen/X86/vec_fptrunc.ll vendor/llvm/dist/test/CodeGen/X86/vector-bitreverse.ll vendor/llvm/dist/test/CodeGen/X86/vector-compare-combines.ll vendor/llvm/dist/test/CodeGen/X86/vector-compare-results.ll vendor/llvm/dist/test/CodeGen/X86/vector-half-conversions.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-sdiv-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-sdiv-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-sdiv-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-udiv-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-udiv-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-udiv-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-pcmp.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-512-v64.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-avx.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-avx2.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-ssse3.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-xop.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-sse41.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-variable-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-variable-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-trunc-math.ll vendor/llvm/dist/test/CodeGen/X86/vzero-excess.ll vendor/llvm/dist/test/CodeGen/X86/widen_bitops-0.ll vendor/llvm/dist/test/CodeGen/X86/widen_bitops-1.ll vendor/llvm/dist/test/CodeGen/X86/widen_compare-1.ll vendor/llvm/dist/test/CodeGen/X86/win-alloca-expander.ll vendor/llvm/dist/test/CodeGen/X86/x86-16.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-pic.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-plt-relative-reloc.ll vendor/llvm/dist/test/CodeGen/X86/x86-big-ret.ll vendor/llvm/dist/test/CodeGen/X86/x86-interrupt_cc.ll vendor/llvm/dist/test/CodeGen/X86/x86-interrupt_cld.ll vendor/llvm/dist/test/CodeGen/X86/x86-interrupt_vzeroupper.ll vendor/llvm/dist/test/CodeGen/X86/x86-plt-relative-reloc.ll vendor/llvm/dist/test/CodeGen/X86/x87.ll vendor/llvm/dist/test/CodeGen/X86/xop-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/xop-intrinsics-x86_64-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/xop-mask-comments.ll vendor/llvm/dist/test/CodeGen/X86/xray-attribute-instrumentation.ll vendor/llvm/dist/test/CodeGen/X86/xray-selective-instrumentation-miss.ll vendor/llvm/dist/test/CodeGen/X86/xray-selective-instrumentation.ll vendor/llvm/dist/test/DebugInfo/AArch64/line-header.ll vendor/llvm/dist/test/DebugInfo/ARM/big-endian-bitfield.ll vendor/llvm/dist/test/DebugInfo/ARM/split-complex.ll vendor/llvm/dist/test/DebugInfo/ARM/sroa-complex.ll vendor/llvm/dist/test/DebugInfo/COFF/anonymous-struct.ll vendor/llvm/dist/test/DebugInfo/COFF/big-type.ll vendor/llvm/dist/test/DebugInfo/COFF/bitfields.ll vendor/llvm/dist/test/DebugInfo/COFF/comdat.ll vendor/llvm/dist/test/DebugInfo/COFF/defer-complete-type.ll vendor/llvm/dist/test/DebugInfo/COFF/enum.ll vendor/llvm/dist/test/DebugInfo/COFF/fp-stack.ll vendor/llvm/dist/test/DebugInfo/COFF/global-dllimport.ll vendor/llvm/dist/test/DebugInfo/COFF/globals-discarded.ll vendor/llvm/dist/test/DebugInfo/COFF/globals.ll vendor/llvm/dist/test/DebugInfo/COFF/inheritance.ll vendor/llvm/dist/test/DebugInfo/COFF/inlining-files.ll vendor/llvm/dist/test/DebugInfo/COFF/inlining-header.ll vendor/llvm/dist/test/DebugInfo/COFF/inlining-levels.ll vendor/llvm/dist/test/DebugInfo/COFF/inlining-padding.ll vendor/llvm/dist/test/DebugInfo/COFF/inlining-same-name.ll vendor/llvm/dist/test/DebugInfo/COFF/inlining.ll vendor/llvm/dist/test/DebugInfo/COFF/local-constant.ll vendor/llvm/dist/test/DebugInfo/COFF/local-variables.ll vendor/llvm/dist/test/DebugInfo/COFF/parameter-order.ll vendor/llvm/dist/test/DebugInfo/COFF/register-variables.ll vendor/llvm/dist/test/DebugInfo/COFF/retained-types.ll vendor/llvm/dist/test/DebugInfo/COFF/scopes.ll vendor/llvm/dist/test/DebugInfo/COFF/typedef.ll vendor/llvm/dist/test/DebugInfo/COFF/types-array-advanced.ll vendor/llvm/dist/test/DebugInfo/COFF/types-array.ll vendor/llvm/dist/test/DebugInfo/COFF/types-basic.ll vendor/llvm/dist/test/DebugInfo/COFF/types-calling-conv.ll vendor/llvm/dist/test/DebugInfo/COFF/types-data-members.ll vendor/llvm/dist/test/DebugInfo/COFF/types-nested-class.ll vendor/llvm/dist/test/DebugInfo/COFF/types-non-virtual-methods.ll vendor/llvm/dist/test/DebugInfo/COFF/types-ptr-to-member.ll vendor/llvm/dist/test/DebugInfo/COFF/types-recursive-struct.ll vendor/llvm/dist/test/DebugInfo/COFF/udts.ll vendor/llvm/dist/test/DebugInfo/COFF/virtual-method-kinds.ll vendor/llvm/dist/test/DebugInfo/COFF/virtual-methods.ll vendor/llvm/dist/test/DebugInfo/Generic/linkage-name-abstract.ll vendor/llvm/dist/test/DebugInfo/Generic/virtual-index.ll vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-test-zlibgnu.elf-x86-64 (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/split-dwarf-empty.dwo (contents, props changed) vendor/llvm/dist/test/DebugInfo/Inputs/split-dwarf-test-nogmlt (contents, props changed) vendor/llvm/dist/test/DebugInfo/Lanai/ vendor/llvm/dist/test/DebugInfo/Lanai/lit.local.cfg vendor/llvm/dist/test/DebugInfo/Lanai/processes-relocations.ll vendor/llvm/dist/test/DebugInfo/PDB/DIA/pdbdump-linenumbers.test vendor/llvm/dist/test/DebugInfo/PDB/Inputs/bad-block-size.pdb (contents, props changed) vendor/llvm/dist/test/DebugInfo/PDB/Inputs/big-read.pdb (contents, props changed) vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-write.test vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-yaml.test vendor/llvm/dist/test/DebugInfo/X86/DW_AT_calling-convention.ll vendor/llvm/dist/test/DebugInfo/X86/abstract_origin.ll vendor/llvm/dist/test/DebugInfo/X86/bitfields-dwarf4.ll vendor/llvm/dist/test/DebugInfo/X86/constant-loclist.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-regmask-clobber.ll vendor/llvm/dist/test/DebugInfo/X86/discriminator2.ll vendor/llvm/dist/test/DebugInfo/X86/discriminator3.ll vendor/llvm/dist/test/DebugInfo/X86/dllimport.ll vendor/llvm/dist/test/DebugInfo/X86/float_const_loclist.ll vendor/llvm/dist/test/DebugInfo/X86/inline-asm-locs.ll vendor/llvm/dist/test/DebugInfo/X86/isel-cse-line.ll vendor/llvm/dist/test/DebugInfo/X86/lexical-block-file-inline.ll vendor/llvm/dist/test/DebugInfo/X86/mixed-nodebug-cu.ll vendor/llvm/dist/test/DebugInfo/X86/pr28270.ll vendor/llvm/dist/test/DebugInfo/X86/single-dbg_value.ll vendor/llvm/dist/test/DebugInfo/llvm-symbolizer-split-dwarf-empty.test vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/eh.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/eh.ll vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/ARM/COFF_Thumb.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/SystemZ/ vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/SystemZ/Inputs/ vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/SystemZ/Inputs/rtdyld-globals.ll vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/SystemZ/cfi-relo-pc64.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/SystemZ/lit.local.cfg vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/ELF-relaxed.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/ELF_x86-64_PIC-small-relocations.s (contents, props changed) vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/MachO_empty_ehframe.s (contents, props changed) vendor/llvm/dist/test/Feature/OperandBundles/pr26510.ll vendor/llvm/dist/test/Feature/strip_names.ll vendor/llvm/dist/test/FileCheck/no-multi-suffixes.txt (contents, props changed) vendor/llvm/dist/test/Instrumentation/AddressSanitizer/asan_address_space_attr.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/do-not-instrument-profiling-globals.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/global_metadata_darwin.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/lifetime-uar-uas.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/local_alias.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/scale-offset.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/str-nobuiltin.ll vendor/llvm/dist/test/Instrumentation/EfficiencySanitizer/ vendor/llvm/dist/test/Instrumentation/EfficiencySanitizer/str-nobuiltin.ll vendor/llvm/dist/test/Instrumentation/EfficiencySanitizer/struct_field_count_basic.ll vendor/llvm/dist/test/Instrumentation/EfficiencySanitizer/struct_field_gep.ll vendor/llvm/dist/test/Instrumentation/EfficiencySanitizer/struct_field_small.ll vendor/llvm/dist/test/Instrumentation/EfficiencySanitizer/working_set_basic.ll vendor/llvm/dist/test/Instrumentation/EfficiencySanitizer/working_set_slow.ll vendor/llvm/dist/test/Instrumentation/EfficiencySanitizer/working_set_strict.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/X86/ vendor/llvm/dist/test/Instrumentation/InstrProfiling/X86/alloc.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/X86/lit.local.cfg vendor/llvm/dist/test/Instrumentation/InstrProfiling/icall.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/Mips/ vendor/llvm/dist/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/Mips/vararg-mips64el.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/PowerPC/ vendor/llvm/dist/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/PowerPC/vararg-ppc64le.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/global_ctors_2to3.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/str-nobuiltin.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/vector_cmp.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/with-call-type-size.ll (contents, props changed) vendor/llvm/dist/test/Instrumentation/ThreadSanitizer/do-not-instrument-memory-access.ll vendor/llvm/dist/test/Instrumentation/ThreadSanitizer/str-nobuiltin.ll vendor/llvm/dist/test/Instrumentation/ThreadSanitizer/tsan_address_space_attr.ll vendor/llvm/dist/test/LTO/X86/Inputs/remangle_intrinsics.ll vendor/llvm/dist/test/LTO/X86/Inputs/strip-debug-info.bc (contents, props changed) vendor/llvm/dist/test/LTO/X86/objc-detection-i386.ll vendor/llvm/dist/test/LTO/X86/objc-detection.ll vendor/llvm/dist/test/LTO/X86/pr25919.ll vendor/llvm/dist/test/LTO/X86/remangle_intrinsics.ll vendor/llvm/dist/test/LTO/X86/restore-externals.ll vendor/llvm/dist/test/LTO/X86/strip-debug-info.ll vendor/llvm/dist/test/LTO/X86/unnamed.ll vendor/llvm/dist/test/LibDriver/no-inputs.test vendor/llvm/dist/test/Linker/Inputs/alias-2.ll vendor/llvm/dist/test/Linker/Inputs/comdat-rm-dst.ll vendor/llvm/dist/test/Linker/Inputs/comdat16.ll vendor/llvm/dist/test/Linker/Inputs/dicompositetype-unique.ll vendor/llvm/dist/test/Linker/Inputs/funcimport2.ll vendor/llvm/dist/test/Linker/Inputs/funcimport_comdat.ll vendor/llvm/dist/test/Linker/Inputs/odr.ll vendor/llvm/dist/test/Linker/Inputs/only-needed-recurse.ll vendor/llvm/dist/test/Linker/Inputs/pr27044.ll vendor/llvm/dist/test/Linker/alias-2.ll vendor/llvm/dist/test/Linker/alias-3.ll vendor/llvm/dist/test/Linker/comdat-rm-dst.ll vendor/llvm/dist/test/Linker/comdat16.ll vendor/llvm/dist/test/Linker/dicompositetype-unique.ll vendor/llvm/dist/test/Linker/funcimport2.ll vendor/llvm/dist/test/Linker/funcimport_comdat.ll vendor/llvm/dist/test/Linker/metadata-attach.ll vendor/llvm/dist/test/Linker/null_mapping_constant.ll vendor/llvm/dist/test/Linker/odr.ll vendor/llvm/dist/test/Linker/only-needed-recurse.ll vendor/llvm/dist/test/Linker/pr27044.ll vendor/llvm/dist/test/MC/AArch64/cyclone-crc.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/directive-arch-negative.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/directive-arch.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/directive-cpu.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/fixup-out-of-range.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/ras-extension.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/expressions.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/hsa-exp.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/labels-branch.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/macro-examples.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/mimg.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/reg-syntax-extra.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/regression/ vendor/llvm/dist/test/MC/AMDGPU/regression/bug28413.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/regression/bug28538.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/regression/lit.local.cfg vendor/llvm/dist/test/MC/AMDGPU/reloc.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/sopk-err.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/sopp-err.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/symbol_special.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/trap.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vop_dpp.s (contents, props changed) vendor/llvm/dist/test/MC/AMDGPU/vop_sdwa.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/aligned-blx.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/arm-branch-errors.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/arm-branches.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/directive-arch-mode-switch.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/fullfp16-neg.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/fullfp16.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/ldr-pseudo-cond-darwin.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/ldr-pseudo-cond.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/ldr-pseudo-unpredictable.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/macho-movwt.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/misaligned-blx.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/modified-immediate-fixup-error.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/modified-immediate-fixup.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/ras-extension.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/thumb-branch-errors.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/thumb-movwt-reloc.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/thumb1-relax-8m-baseline.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/thumbv8m.s (contents, props changed) vendor/llvm/dist/test/MC/ARM/tls-directives.s (contents, props changed) vendor/llvm/dist/test/MC/AsmParser/directive_file-2.s (contents, props changed) vendor/llvm/dist/test/MC/AsmParser/hash-directive.s (contents, props changed) vendor/llvm/dist/test/MC/AsmParser/inline-comments.ll vendor/llvm/dist/test/MC/AsmParser/macro_parsing.s (contents, props changed) vendor/llvm/dist/test/MC/AsmParser/preserve-comments.s (contents, props changed) vendor/llvm/dist/test/MC/AsmParser/uppercase-hex.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/cv-def-range.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/cv-empty-file-table.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/cv-empty-linetable.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/cv-inline-linetable-infloop.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/cv-inline-linetable-unreachable.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/cv-inline-linetable.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/cv-loc.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/pr28462.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/relax-reloc.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/seh-section-2.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/weak-alias-local.s (contents, props changed) vendor/llvm/dist/test/MC/COFF/weak-val.s (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AArch64/ras-extension.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/ vendor/llvm/dist/test/MC/Disassembler/AMDGPU/dpp_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/ds_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/flat_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/lit.local.cfg vendor/llvm/dist/test/MC/Disassembler/AMDGPU/mov.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/mubuf_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/nop.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/sdwa_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/smem_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/smrd_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/sop1_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/sop2_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/sopc_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/sopk_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/sopp_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/trap_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/vop1.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/vop1_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/vop2_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/vop3_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/AMDGPU/vopc_vi.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/ARM/fullfp16-arm-neg.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/ARM/fullfp16-arm.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/ARM/fullfp16-thumb-neg.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/ARM/fullfp16-thumb.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/ARM/ras-extension-arm.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/ARM/ras-extension-thumb.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/ARM/thumb2-v8m.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Lanai/ vendor/llvm/dist/test/MC/Disassembler/Lanai/lit.local.cfg vendor/llvm/dist/test/MC/Disassembler/Lanai/v11.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/micromips-dsp/valid-micromips32r3.txt (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/Mips/micromips-dspr3/ vendor/llvm/dist/test/MC/Disassembler/Mips/micromips-dspr3/valid.txt (contents, props changed) vendor/llvm/dist/test/MC/ELF/got-relaxed-i386.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/got-relaxed-no-relax.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/got-relaxed-rex.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/got-relaxed.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/relocation-tls.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/section-sym-redefine.s (contents, props changed) vendor/llvm/dist/test/MC/ELF/undefined-directional.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/align.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/double-vector-producer.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/duplex-registers.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/elf-flags.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/fixups.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/iconst.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/lcomm.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/register-alt-names.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/relocations.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/tprel_noextend.s (contents, props changed) vendor/llvm/dist/test/MC/Hexagon/v60-misc.s (contents, props changed) vendor/llvm/dist/test/MC/Lanai/ vendor/llvm/dist/test/MC/Lanai/conditional_inst.s (contents, props changed) vendor/llvm/dist/test/MC/Lanai/ctrl-instructions.s (contents, props changed) vendor/llvm/dist/test/MC/Lanai/lit.local.cfg vendor/llvm/dist/test/MC/Lanai/memory.s (contents, props changed) vendor/llvm/dist/test/MC/Lanai/v11.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/AArch64/data-in-code.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/altentry.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/undefined-directional.s (contents, props changed) vendor/llvm/dist/test/MC/MachO/x86-data-in-code.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/cprestore-noreorder-noat.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/double-expand.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/elf_eflags_micromips2.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/got-rel-expr.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/hex-immediates.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/init-order-bug.ll vendor/llvm/dist/test/MC/Mips/instr-analysis.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-abs.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-dla-32bit.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/macro-la-pic.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips-dsp/valid-micromips32r3.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips-dspr3/ vendor/llvm/dist/test/MC/Mips/micromips-dspr3/valid.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips/invalid-wrong-error.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips32r6/invalid-wrong-error.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips32r6/relocations.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips64r6/invalid-wrong-error.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/micromips64r6/relocations.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/mips64extins.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/reloc-directive-negative.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/relocation-n64.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/relocation-xfail.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/section-size.s (contents, props changed) vendor/llvm/dist/test/MC/Mips/user-macro-argument-separation.s (contents, props changed) vendor/llvm/dist/test/MC/Sparc/leon-instructions.s (contents, props changed) vendor/llvm/dist/test/MC/Sparc/sparc-coproc.s (contents, props changed) vendor/llvm/dist/test/MC/Sparc/sparc-traps.s (contents, props changed) vendor/llvm/dist/test/MC/Sparc/sparc-v9-traps.s (contents, props changed) vendor/llvm/dist/test/MC/SystemZ/word.s (contents, props changed) vendor/llvm/dist/test/MC/X86/avx512ifma-encoding.s (contents, props changed) vendor/llvm/dist/test/MC/X86/avx512ifmavl-encoding.s (contents, props changed) vendor/llvm/dist/test/MC/X86/avx512vbmi-encoding.s (contents, props changed) vendor/llvm/dist/test/MC/X86/error-reloc.s (contents, props changed) vendor/llvm/dist/test/MC/X86/imm-comments.s (contents, props changed) vendor/llvm/dist/test/MC/X86/intel-syntax-x86-64-avx.s (contents, props changed) vendor/llvm/dist/test/MC/X86/invalid_opcode.s (contents, props changed) vendor/llvm/dist/test/MC/X86/pr28547.s (contents, props changed) vendor/llvm/dist/test/MC/X86/reloc-directive.s (contents, props changed) vendor/llvm/dist/test/MC/X86/x86-branch-relaxation.s (contents, props changed) vendor/llvm/dist/test/Object/AMDGPU/elf32-unknown.yaml vendor/llvm/dist/test/Object/AMDGPU/elf64-relocs.yaml vendor/llvm/dist/test/Object/AMDGPU/elf64-unknown.yaml vendor/llvm/dist/test/Object/AMDGPU/lit.local.cfg vendor/llvm/dist/test/Object/AMDGPU/objdump.s (contents, props changed) vendor/llvm/dist/test/Object/Inputs/COFF/weak-externals.yaml vendor/llvm/dist/test/Object/Inputs/dyn-rel.so.elf-mips (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho-invalid-fat (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho-invalid-fat.obj.elf-x86_64 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho-invalid-too-small-segment-load-command.1 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho-universal-archive-bad1.x86_64.i386 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho-universal-archive-bad2.x86_64.i386 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho-universal-bad1.x86_64.i386 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho-universal-bad2.x86_64.i386 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho-universal64-archive.x86_64.i386 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho-universal64.x86_64.i386 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho-valid-0-nsyms (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho64-invalid-incomplete-load-command.1 (contents, props changed) vendor/llvm/dist/test/Object/Inputs/macho64-invalid-too-small-load-command.1 (contents, props changed) vendor/llvm/dist/test/Object/Lanai/ vendor/llvm/dist/test/Object/Lanai/lit.local.cfg vendor/llvm/dist/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml vendor/llvm/dist/test/Object/X86/nm-bitcodeweak.test vendor/llvm/dist/test/Object/archive-thin-read.test vendor/llvm/dist/test/Object/coff-weak-externals.test vendor/llvm/dist/test/Object/dyn-rel-relocation.test vendor/llvm/dist/test/Object/dynamic-reloc.test vendor/llvm/dist/test/Object/yaml2obj-coff-invalid-alignment.test vendor/llvm/dist/test/ObjectYAML/ vendor/llvm/dist/test/ObjectYAML/MachO/ vendor/llvm/dist/test/ObjectYAML/MachO/bind_opcode.yaml vendor/llvm/dist/test/ObjectYAML/MachO/bogus_load_command.yaml vendor/llvm/dist/test/ObjectYAML/MachO/dylib_dylinker_command.yaml vendor/llvm/dist/test/ObjectYAML/MachO/export_trie.yaml vendor/llvm/dist/test/ObjectYAML/MachO/fat_macho_i386_x86_64.yaml vendor/llvm/dist/test/ObjectYAML/MachO/lazy_bind_opcode.yaml vendor/llvm/dist/test/ObjectYAML/MachO/load_commands.yaml vendor/llvm/dist/test/ObjectYAML/MachO/mach_header.yaml vendor/llvm/dist/test/ObjectYAML/MachO/mach_header_32_malformed.yaml vendor/llvm/dist/test/ObjectYAML/MachO/mach_header_64.yaml vendor/llvm/dist/test/ObjectYAML/MachO/out_of_order_linkedit.yaml vendor/llvm/dist/test/ObjectYAML/MachO/rebase_opcode.yaml vendor/llvm/dist/test/ObjectYAML/MachO/sections.yaml vendor/llvm/dist/test/ObjectYAML/MachO/symtab.yaml vendor/llvm/dist/test/ObjectYAML/MachO/weak_bind_opcode.yaml vendor/llvm/dist/test/ObjectYAML/lit.local.cfg vendor/llvm/dist/test/Other/X86/opt-bisect-isel.ll vendor/llvm/dist/test/Other/cleanup-lcssa.ll vendor/llvm/dist/test/Other/loop-pass-ordering.ll vendor/llvm/dist/test/Other/opt-bisect-helper.py (contents, props changed) vendor/llvm/dist/test/Other/opt-bisect-legacy-pass-manager.ll vendor/llvm/dist/test/Other/pass-pipelines.ll vendor/llvm/dist/test/Other/statistic.ll vendor/llvm/dist/test/ThinLTO/ vendor/llvm/dist/test/ThinLTO/Inputs/ vendor/llvm/dist/test/ThinLTO/X86/ vendor/llvm/dist/test/ThinLTO/X86/Inputs/ vendor/llvm/dist/test/ThinLTO/X86/Inputs/alias_import.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/alias_resolution.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/cache.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/distributed_indexes.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/drop-debug-info.bc (contents, props changed) vendor/llvm/dist/test/ThinLTO/X86/Inputs/drop-debug-info.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/emit_imports.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/funcimport.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/llvm.used.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/referenced_by_constant.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/section.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/select_right_alias_definition1.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/select_right_alias_definition2.ll vendor/llvm/dist/test/ThinLTO/X86/Inputs/weak_resolution.ll vendor/llvm/dist/test/ThinLTO/X86/alias_import.ll vendor/llvm/dist/test/ThinLTO/X86/alias_resolution.ll vendor/llvm/dist/test/ThinLTO/X86/cache.ll vendor/llvm/dist/test/ThinLTO/X86/distributed_indexes.ll vendor/llvm/dist/test/ThinLTO/X86/drop-debug-info.ll vendor/llvm/dist/test/ThinLTO/X86/emit_imports.ll vendor/llvm/dist/test/ThinLTO/X86/funcimport.ll vendor/llvm/dist/test/ThinLTO/X86/internalize.ll vendor/llvm/dist/test/ThinLTO/X86/lit.local.cfg vendor/llvm/dist/test/ThinLTO/X86/llvm.used.ll vendor/llvm/dist/test/ThinLTO/X86/prefix_replace.ll vendor/llvm/dist/test/ThinLTO/X86/referenced_by_constant.ll vendor/llvm/dist/test/ThinLTO/X86/section.ll vendor/llvm/dist/test/ThinLTO/X86/select_right_alias_definition.ll vendor/llvm/dist/test/ThinLTO/X86/weak_resolution.ll vendor/llvm/dist/test/ThinLTO/X86/weak_resolution_single.ll vendor/llvm/dist/test/Transforms/ADCE/debug-info-intrinsic.ll vendor/llvm/dist/test/Transforms/ADCE/delete-profiling-calls-to-constant.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/call-nested.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/pr27568.ll vendor/llvm/dist/test/Transforms/AtomicExpand/SPARC/ vendor/llvm/dist/test/Transforms/AtomicExpand/SPARC/libcalls.ll vendor/llvm/dist/test/Transforms/AtomicExpand/SPARC/lit.local.cfg vendor/llvm/dist/test/Transforms/AtomicExpand/SPARC/partword.ll vendor/llvm/dist/test/Transforms/BBVectorize/vector-sel.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/fcmp-sinking.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/pr27536.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/sink-addrmode.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/builtin-condition.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/dom-tree.ll vendor/llvm/dist/test/Transforms/ConstantHoisting/ARM/ vendor/llvm/dist/test/Transforms/ConstantHoisting/ARM/bad-cases.ll vendor/llvm/dist/test/Transforms/ConstantHoisting/ARM/const-addr-no-neg-offset.ll vendor/llvm/dist/test/Transforms/ConstantHoisting/ARM/lit.local.cfg vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/conflict.ll vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/sdiv.ll vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/srem.ll vendor/llvm/dist/test/Transforms/DCE/ vendor/llvm/dist/test/Transforms/DCE/basic.ll vendor/llvm/dist/test/Transforms/DCE/guards.ll vendor/llvm/dist/test/Transforms/DeadArgElim/comdat.ll vendor/llvm/dist/test/Transforms/DeadArgElim/funclet.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/OverwriteStoreBegin.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/combined-partial-overwrites.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/fence.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/operand-bundles.ll vendor/llvm/dist/test/Transforms/EarlyCSE/flags.ll vendor/llvm/dist/test/Transforms/EarlyCSE/guards.ll vendor/llvm/dist/test/Transforms/EarlyCSE/invariant-loads.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/assume.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/comdat-ipo.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/convergent.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/operand-bundles-scc.ll vendor/llvm/dist/test/Transforms/FunctionImport/Inputs/adjustable_threshold.ll vendor/llvm/dist/test/Transforms/FunctionImport/Inputs/inlineasm.ll vendor/llvm/dist/test/Transforms/FunctionImport/adjustable_threshold.ll vendor/llvm/dist/test/Transforms/FunctionImport/inlineasm.ll vendor/llvm/dist/test/Transforms/GVN/PRE/ vendor/llvm/dist/test/Transforms/GVN/PRE/2009-02-17-LoadPRECrash.ll vendor/llvm/dist/test/Transforms/GVN/PRE/2009-06-17-InvalidPRE.ll vendor/llvm/dist/test/Transforms/GVN/PRE/2011-06-01-NonLocalMemdepMiscompile.ll vendor/llvm/dist/test/Transforms/GVN/PRE/atomic.ll vendor/llvm/dist/test/Transforms/GVN/PRE/invariant-load.ll vendor/llvm/dist/test/Transforms/GVN/PRE/load-metadata.ll vendor/llvm/dist/test/Transforms/GVN/PRE/load-pre-align.ll vendor/llvm/dist/test/Transforms/GVN/PRE/load-pre-licm.ll vendor/llvm/dist/test/Transforms/GVN/PRE/load-pre-nonlocal.ll vendor/llvm/dist/test/Transforms/GVN/PRE/local-pre.ll vendor/llvm/dist/test/Transforms/GVN/PRE/lpre-call-wrap-2.ll vendor/llvm/dist/test/Transforms/GVN/PRE/lpre-call-wrap.ll vendor/llvm/dist/test/Transforms/GVN/PRE/phi-translate.ll vendor/llvm/dist/test/Transforms/GVN/PRE/pre-basic-add.ll vendor/llvm/dist/test/Transforms/GVN/PRE/pre-gep-load.ll vendor/llvm/dist/test/Transforms/GVN/PRE/pre-load.ll vendor/llvm/dist/test/Transforms/GVN/PRE/pre-no-cost-phi.ll vendor/llvm/dist/test/Transforms/GVN/PRE/pre-single-pred.ll vendor/llvm/dist/test/Transforms/GVN/PRE/preserve-tbaa.ll vendor/llvm/dist/test/Transforms/GVN/PRE/rle-phi-translate.ll vendor/llvm/dist/test/Transforms/GVN/PRE/rle-semidominated.ll vendor/llvm/dist/test/Transforms/GVN/PRE/rle.ll vendor/llvm/dist/test/Transforms/GVN/PRE/volatile.ll vendor/llvm/dist/test/Transforms/GVN/big-endian.ll vendor/llvm/dist/test/Transforms/GVN/fence.ll vendor/llvm/dist/test/Transforms/GVN/flags.ll vendor/llvm/dist/test/Transforms/GVN/fold-const-expr.ll vendor/llvm/dist/test/Transforms/GVN/hoist-pr20242.ll vendor/llvm/dist/test/Transforms/GVN/hoist-pr22005.ll vendor/llvm/dist/test/Transforms/GVN/hoist-pr28606.ll vendor/llvm/dist/test/Transforms/GVN/hoist.ll vendor/llvm/dist/test/Transforms/GVN/pr28562.ll vendor/llvm/dist/test/Transforms/GVN/pr28626.ll vendor/llvm/dist/test/Transforms/GVN/volatile-nonvolatile.ll vendor/llvm/dist/test/Transforms/GlobalDCE/global-ifunc.ll vendor/llvm/dist/test/Transforms/GlobalMerge/ vendor/llvm/dist/test/Transforms/GlobalMerge/basic.ll vendor/llvm/dist/test/Transforms/GlobalOpt/GSROA-section.ll vendor/llvm/dist/test/Transforms/GlobalOpt/MallocSROA-section.ll vendor/llvm/dist/test/Transforms/GlobalOpt/SROA-section.ll vendor/llvm/dist/test/Transforms/GuardWidening/ vendor/llvm/dist/test/Transforms/GuardWidening/basic.ll vendor/llvm/dist/test/Transforms/GuardWidening/range-check-merging.ll vendor/llvm/dist/test/Transforms/IPConstantProp/comdat-ipo.ll vendor/llvm/dist/test/Transforms/IPConstantProp/fp-bc-icmp-const-fold.ll vendor/llvm/dist/test/Transforms/IRCE/conjunctive-checks.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/AMDGPU/ vendor/llvm/dist/test/Transforms/IndVarSimplify/AMDGPU/lit.local.cfg vendor/llvm/dist/test/Transforms/IndVarSimplify/AMDGPU/no-widen-to-i64.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/overflow-intrinsics.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr25576.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr26973.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr26974.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr27133.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/rewrite-loop-exit-value.ll vendor/llvm/dist/test/Transforms/InferFunctionAttrs/no-proto.ll vendor/llvm/dist/test/Transforms/Inline/array-alloca.ll vendor/llvm/dist/test/Transforms/Inline/comdat-ipo.ll vendor/llvm/dist/test/Transforms/Inline/deoptimize-intrinsic-cconv.ll vendor/llvm/dist/test/Transforms/Inline/deoptimize-intrinsic.ll vendor/llvm/dist/test/Transforms/Inline/guard-intrinsic.ll vendor/llvm/dist/test/Transforms/Inline/inline-hot-callsite.ll vendor/llvm/dist/test/Transforms/Inline/inline-threshold.ll vendor/llvm/dist/test/Transforms/Inline/inline_unreachable-2.ll vendor/llvm/dist/test/Transforms/Inline/inline_unreachable.ll vendor/llvm/dist/test/Transforms/Inline/local-as-metadata-undominated-use.ll vendor/llvm/dist/test/Transforms/Inline/parallel-loop-md.ll vendor/llvm/dist/test/Transforms/Inline/pr26698.ll vendor/llvm/dist/test/Transforms/Inline/pr28298.ll vendor/llvm/dist/test/Transforms/Inline/profile-meta.ll vendor/llvm/dist/test/Transforms/InstCombine/allocsize-32.ll vendor/llvm/dist/test/Transforms/InstCombine/allocsize.ll vendor/llvm/dist/test/Transforms/InstCombine/amdgcn-intrinsics.ll vendor/llvm/dist/test/Transforms/InstCombine/and-or-icmps.ll vendor/llvm/dist/test/Transforms/InstCombine/apint-add.ll vendor/llvm/dist/test/Transforms/InstCombine/assoc-cast-assoc.ll vendor/llvm/dist/test/Transforms/InstCombine/builtin-object-size-offset.ll vendor/llvm/dist/test/Transforms/InstCombine/builtin-object-size-ptr.ll vendor/llvm/dist/test/Transforms/InstCombine/compare-udiv.ll vendor/llvm/dist/test/Transforms/InstCombine/compare-unescaped.ll vendor/llvm/dist/test/Transforms/InstCombine/convergent.ll vendor/llvm/dist/test/Transforms/InstCombine/cos-intrinsic.ll vendor/llvm/dist/test/Transforms/InstCombine/fast-math-scalarization.ll vendor/llvm/dist/test/Transforms/InstCombine/fputs-opt-size.ll vendor/llvm/dist/test/Transforms/InstCombine/getelementptr-folding.ll vendor/llvm/dist/test/Transforms/InstCombine/icmp-vec.ll vendor/llvm/dist/test/Transforms/InstCombine/indexed-gep-compares.ll vendor/llvm/dist/test/Transforms/InstCombine/insert-val-extract-elem.ll vendor/llvm/dist/test/Transforms/InstCombine/masked_intrinsics.ll vendor/llvm/dist/test/Transforms/InstCombine/min-positive.ll vendor/llvm/dist/test/Transforms/InstCombine/misc-2002.ll vendor/llvm/dist/test/Transforms/InstCombine/opaque.ll vendor/llvm/dist/test/Transforms/InstCombine/phi-preserve-ir-flags.ll vendor/llvm/dist/test/Transforms/InstCombine/pr20678.ll vendor/llvm/dist/test/Transforms/InstCombine/pr26992.ll vendor/llvm/dist/test/Transforms/InstCombine/pr26993.ll vendor/llvm/dist/test/Transforms/InstCombine/pr27236.ll vendor/llvm/dist/test/Transforms/InstCombine/pr27332.ll vendor/llvm/dist/test/Transforms/InstCombine/pr28143.ll vendor/llvm/dist/test/Transforms/InstCombine/prevent-cmp-merge.ll vendor/llvm/dist/test/Transforms/InstCombine/select-implied.ll vendor/llvm/dist/test/Transforms/InstCombine/shift-shift.ll vendor/llvm/dist/test/Transforms/InstCombine/sink-into-catchswitch.ll vendor/llvm/dist/test/Transforms/InstCombine/tbaa-store-to-load.ll vendor/llvm/dist/test/Transforms/InstCombine/vararg.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-avx.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-avx2.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-masked-memops.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-movmsk.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-sse.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-sse2.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-sse41.ll vendor/llvm/dist/test/Transforms/InstMerge/exceptions.ll vendor/llvm/dist/test/Transforms/InstSimplify/load-relative-32.ll vendor/llvm/dist/test/Transforms/InstSimplify/load-relative.ll vendor/llvm/dist/test/Transforms/InstSimplify/returned.ll vendor/llvm/dist/test/Transforms/InstSimplify/shift-knownbits.ll vendor/llvm/dist/test/Transforms/InstSimplify/vec-cmp.ll vendor/llvm/dist/test/Transforms/Internalize/stackguard.ll vendor/llvm/dist/test/Transforms/JumpThreading/crash-assertingvh.ll vendor/llvm/dist/test/Transforms/JumpThreading/induction.ll vendor/llvm/dist/test/Transforms/LICM/AliasSetMemSet.ll vendor/llvm/dist/test/Transforms/LICM/alias-set-tracker-loss.ll vendor/llvm/dist/test/Transforms/LICM/assume.ll vendor/llvm/dist/test/Transforms/LICM/hoist-nounwind.ll vendor/llvm/dist/test/Transforms/LICM/hoist-round.ll vendor/llvm/dist/test/Transforms/LICM/pr26843.ll vendor/llvm/dist/test/Transforms/LICM/pr27262.ll vendor/llvm/dist/test/Transforms/LICM/promote-tls.ll vendor/llvm/dist/test/Transforms/LICM/scalar_promote-unwind.ll vendor/llvm/dist/test/Transforms/LICM/update-scev.ll vendor/llvm/dist/test/Transforms/LoadCombine/load-combine-negativegep.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/ vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/ vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/aa-metadata.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/extended-index.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/insertion-point.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/interleaved-mayalias-store.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/lit.local.cfg vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/merge-stores-private.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/merge-stores.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/merge-vectors.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/missing-alignment.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/no-implicit-float.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/optnone.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/pointer-elements.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/AMDGPU/weird-type-accesses.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/X86/ vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/X86/correct-order.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/X86/lit.local.cfg vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/X86/preserve-order32.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/X86/preserve-order64.ll vendor/llvm/dist/test/Transforms/LoadStoreVectorizer/X86/subchain-interleaved.ll vendor/llvm/dist/test/Transforms/LoopDataPrefetch/ vendor/llvm/dist/test/Transforms/LoopDataPrefetch/AArch64/ vendor/llvm/dist/test/Transforms/LoopDataPrefetch/AArch64/kryo-large-stride.ll vendor/llvm/dist/test/Transforms/LoopDataPrefetch/AArch64/large-stride.ll vendor/llvm/dist/test/Transforms/LoopDataPrefetch/AArch64/lit.local.cfg vendor/llvm/dist/test/Transforms/LoopDataPrefetch/AArch64/opt-remark.ll vendor/llvm/dist/test/Transforms/LoopDataPrefetch/PowerPC/ vendor/llvm/dist/test/Transforms/LoopDataPrefetch/PowerPC/basic.ll vendor/llvm/dist/test/Transforms/LoopDataPrefetch/PowerPC/lit.local.cfg vendor/llvm/dist/test/Transforms/LoopDeletion/update-scev.ll vendor/llvm/dist/test/Transforms/LoopDistribute/diagnostics-with-hotness-lazy-BFI.ll vendor/llvm/dist/test/Transforms/LoopDistribute/diagnostics-with-hotness.ll vendor/llvm/dist/test/Transforms/LoopDistribute/diagnostics.ll vendor/llvm/dist/test/Transforms/LoopDistribute/metadata.ll vendor/llvm/dist/test/Transforms/LoopDistribute/pr28443.ll vendor/llvm/dist/test/Transforms/LoopDistribute/symbolic-stride.ll vendor/llvm/dist/test/Transforms/LoopIdiom/nontemporal_store.ll vendor/llvm/dist/test/Transforms/LoopIdiom/pr28196.ll vendor/llvm/dist/test/Transforms/LoopIdiom/struct.ll vendor/llvm/dist/test/Transforms/LoopIdiom/struct_pattern.ll vendor/llvm/dist/test/Transforms/LoopIdiom/unroll.ll vendor/llvm/dist/test/Transforms/LoopIdiom/unwind.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/cond-load.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/loop-simplify-dep.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/non-consecutive.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/opt-size.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/symbolic-stride.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/type-mismatch.ll vendor/llvm/dist/test/Transforms/LoopReroll/basic32iters.ll vendor/llvm/dist/test/Transforms/LoopReroll/complex_reroll.ll vendor/llvm/dist/test/Transforms/LoopReroll/indvar_with_ext.ll vendor/llvm/dist/test/Transforms/LoopReroll/ptrindvar.ll vendor/llvm/dist/test/Transforms/LoopRotate/convergent.ll vendor/llvm/dist/test/Transforms/LoopSimplify/pr26682.ll vendor/llvm/dist/test/Transforms/LoopSimplifyCFG/ vendor/llvm/dist/test/Transforms/LoopSimplifyCFG/merge-header.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/AArch64/lsr-reuse.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/pr27056.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/scev-insertpt-bug.ll vendor/llvm/dist/test/Transforms/LoopUnroll/convergent.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-dce.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-geps.ll vendor/llvm/dist/test/Transforms/LoopUnroll/partial-unroll-const-bounds.ll vendor/llvm/dist/test/Transforms/LoopUnroll/pr27157.ll vendor/llvm/dist/test/Transforms/LoopUnroll/pr28132.ll vendor/llvm/dist/test/Transforms/LoopUnroll/unroll-cleanuppad.ll vendor/llvm/dist/test/Transforms/LoopUnroll/unroll-count.ll vendor/llvm/dist/test/Transforms/LoopUnroll/unroll-opt-attribute.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/exponential-behavior.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/guards.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/msan.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/backedge-overflow.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/first-order-recurrence.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/max-vf-for-interleaved.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/type-shrinkage-insertelt.ll vendor/llvm/dist/test/Transforms/LoopVectorize/ARM/arm-ieee-vectorize.ll vendor/llvm/dist/test/Transforms/LoopVectorize/PowerPC/vectorize-only-for-real.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/force-ifcvt.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/funclet.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/gather_scatter.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/imprecise-through-phis.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/max-mstore.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/propagate-metadata.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/reg-usage.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/register-assumption.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/scatter_crash.ll (contents, props changed) vendor/llvm/dist/test/Transforms/LoopVectorize/X86/uniform-phi.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/uniform_load.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vectorization-remarks-loopid-dbg.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vectorize-only-for-real.ll vendor/llvm/dist/test/Transforms/LoopVectorize/hints-trans.ll vendor/llvm/dist/test/Transforms/LoopVectorize/induction-step.ll vendor/llvm/dist/test/Transforms/LoopVectorize/interleaved-accesses-pred-stores.ll vendor/llvm/dist/test/Transforms/LoopVectorize/iv_outside_user.ll vendor/llvm/dist/test/Transforms/LoopVectorize/multiple-strides-vectorization.ll vendor/llvm/dist/test/Transforms/LoopVectorize/noalias-md-licm.ll vendor/llvm/dist/test/Transforms/LoopVectorize/noalias-md.ll vendor/llvm/dist/test/Transforms/LoopVectorize/pr25281.ll vendor/llvm/dist/test/Transforms/LoopVectorize/unsafe-dep-remark.ll vendor/llvm/dist/test/Transforms/LoopVersioning/ vendor/llvm/dist/test/Transforms/LoopVersioning/basic.ll vendor/llvm/dist/test/Transforms/LoopVersioning/incorrect-phi.ll vendor/llvm/dist/test/Transforms/LoopVersioning/lcssa.ll vendor/llvm/dist/test/Transforms/LoopVersioning/noalias-version-twice.ll vendor/llvm/dist/test/Transforms/LoopVersioning/noalias.ll vendor/llvm/dist/test/Transforms/LoopVersioningLICM/ vendor/llvm/dist/test/Transforms/LoopVersioningLICM/loopversioningLICM1.ll vendor/llvm/dist/test/Transforms/LoopVersioningLICM/loopversioningLICM2.ll vendor/llvm/dist/test/Transforms/LoopVersioningLICM/loopversioningLICM3.ll vendor/llvm/dist/test/Transforms/LoopVersioningLICM/metadata.ll vendor/llvm/dist/test/Transforms/LowerGuardIntrinsic/ vendor/llvm/dist/test/Transforms/LowerGuardIntrinsic/basic.ll vendor/llvm/dist/test/Transforms/LowerGuardIntrinsic/with-calling-conv.ll (contents, props changed) vendor/llvm/dist/test/Transforms/LowerTypeTests/ vendor/llvm/dist/test/Transforms/LowerTypeTests/constant.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/function-ext.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/function.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/layout.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/nonstring.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/pr25902.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/section.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/simple.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/single-offset.ll vendor/llvm/dist/test/Transforms/LowerTypeTests/unnamed.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/callslot_throw.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/lifetime.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/profitable-memset.ll vendor/llvm/dist/test/Transforms/MergeFunc/merge-weak-crash.ll vendor/llvm/dist/test/Transforms/MergeFunc/phi-check-blocks.ll vendor/llvm/dist/test/Transforms/NameAnonFunctions/ vendor/llvm/dist/test/Transforms/NameAnonFunctions/rename.ll vendor/llvm/dist/test/Transforms/ObjCARC/comdat-ipo.ll vendor/llvm/dist/test/Transforms/ObjCARC/unsafe-claim-rv.ll vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/PR28219.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/diag_FE.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/indirect_call.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/thinlto_indirect_call_promotion.ll vendor/llvm/dist/test/Transforms/PGOProfile/PR28219.ll vendor/llvm/dist/test/Transforms/PGOProfile/X86/ vendor/llvm/dist/test/Transforms/PGOProfile/X86/lit.local.cfg vendor/llvm/dist/test/Transforms/PGOProfile/X86/macho.ll vendor/llvm/dist/test/Transforms/PGOProfile/comdat_internal.ll vendor/llvm/dist/test/Transforms/PGOProfile/diag_FE_profile.ll vendor/llvm/dist/test/Transforms/PGOProfile/do-not-instrument.ll vendor/llvm/dist/test/Transforms/PGOProfile/icp_covariant_call_return.ll vendor/llvm/dist/test/Transforms/PGOProfile/icp_covariant_invoke_return.ll vendor/llvm/dist/test/Transforms/PGOProfile/icp_invoke.ll vendor/llvm/dist/test/Transforms/PGOProfile/icp_mismatch_msg.ll vendor/llvm/dist/test/Transforms/PGOProfile/icp_vararg.ll vendor/llvm/dist/test/Transforms/PGOProfile/indirect_call_annotation.ll vendor/llvm/dist/test/Transforms/PGOProfile/indirect_call_profile.ll vendor/llvm/dist/test/Transforms/PGOProfile/indirect_call_promotion.ll vendor/llvm/dist/test/Transforms/PGOProfile/preinline.ll vendor/llvm/dist/test/Transforms/PGOProfile/statics_counter_naming.ll vendor/llvm/dist/test/Transforms/PGOProfile/thinlto_indirect_call_promotion.ll vendor/llvm/dist/test/Transforms/PhaseOrdering/globalaa-retained.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/no-statepoints.ll vendor/llvm/dist/test/Transforms/PreISelIntrinsicLowering/ vendor/llvm/dist/test/Transforms/PreISelIntrinsicLowering/load-relative.ll vendor/llvm/dist/test/Transforms/Reassociate/prev_insts_canonicalized.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/basic.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/call-gc-result.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-intrinsic-cconv.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-intrinsic.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/gc-relocate-creation.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/invokes.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/leaf-function.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/live-vector-nosplit.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/patchable-statepoints.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/relocate-invoke-result.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/rewrite-invoke.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/statepoint-calling-conventions.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/statepoint-coreclr.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/statepoint-format.ll vendor/llvm/dist/test/Transforms/SCCP/bitcast.ll vendor/llvm/dist/test/Transforms/SCCP/comdat-ipo.ll vendor/llvm/dist/test/Transforms/SCCP/constant-struct.ll vendor/llvm/dist/test/Transforms/SCCP/pr27712.ll vendor/llvm/dist/test/Transforms/SCCP/ub-shift.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/AArch64/gather-reduce.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/AArch64/getelementptr.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/AArch64/minimum-sizes.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/PowerPC/ vendor/llvm/dist/test/Transforms/SLPVectorizer/PowerPC/lit.local.cfg vendor/llvm/dist/test/Transforms/SLPVectorizer/PowerPC/pr27897.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/bitreverse.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/bswap.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/ctlz.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/ctpop.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/cttz.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/fma.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/fround.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/funclet.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/gep_mismatch.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/insertvalue.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/pr27163.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/sqrt.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/vector_gep.ll vendor/llvm/dist/test/Transforms/SROA/dbg-single-piece.ll vendor/llvm/dist/test/Transforms/SROA/pr26972.ll vendor/llvm/dist/test/Transforms/SafeStack/AArch64/abi_ssp.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/abi_ssp.ll vendor/llvm/dist/test/Transforms/SafeStack/X86/ssp.ll vendor/llvm/dist/test/Transforms/SafeStack/coloring.ll vendor/llvm/dist/test/Transforms/SafeStack/coloring2.ll vendor/llvm/dist/test/Transforms/SafeStack/debug-loc-dynamic.ll vendor/llvm/dist/test/Transforms/SafeStack/debug-loc2.ll vendor/llvm/dist/test/Transforms/SafeStack/phi.ll vendor/llvm/dist/test/Transforms/SafeStack/sink-to-use.ll vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/inline-act.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/inline-combine.prof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/summary.prof vendor/llvm/dist/test/Transforms/SampleProfile/inline-act.ll vendor/llvm/dist/test/Transforms/SampleProfile/inline-combine.ll vendor/llvm/dist/test/Transforms/SampleProfile/summary.ll vendor/llvm/dist/test/Transforms/Scalarizer/crash-bug.ll vendor/llvm/dist/test/Transforms/Scalarizer/dbgloc-bug.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/InfLoop.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/PR27615-simplify-cond-br.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/attr-convergent.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/combine-parallel-mem-md.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/guards.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/implied-cond-matching-false-dest.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/implied-cond-matching-imm.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/implied-cond-matching.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/merge-cleanuppads.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/unreachable-cleanuppad.ll vendor/llvm/dist/test/Transforms/Sink/call.ll vendor/llvm/dist/test/Transforms/StructurizeCFG/invert-constantexpr.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/ vendor/llvm/dist/test/Transforms/Util/MemorySSA/assume.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/atomic-clobber.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/cyclicphi.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/forward-unreachable.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/function-clobber.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/function-mem-attrs.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/livein.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/load-invariant.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/many-dom-backedge.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/many-doms.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/multi-edges.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/multiple-backedges-hal.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/multiple-locations.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/no-disconnected.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/optimize-use.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/phi-translation.ll vendor/llvm/dist/test/Transforms/Util/MemorySSA/volatile-clobber.ll vendor/llvm/dist/test/Transforms/Util/store-first-op.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/ vendor/llvm/dist/test/Transforms/WholeProgramDevirt/bad-read-from-vtable.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/constant-arg.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/devirt-single-impl-check.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/devirt-single-impl.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/expand-check.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/non-array-vtable.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/non-constant-vtable.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/uniform-retval-invoke.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/uniform-retval.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/unique-retval.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-accesses-memory.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-no-this.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-non-constant-arg.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-too-wide-ints.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-type-mismatch.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/vcp-uses-this.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/virtual-const-prop-begin.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/virtual-const-prop-check.ll vendor/llvm/dist/test/Transforms/WholeProgramDevirt/virtual-const-prop-end.ll vendor/llvm/dist/test/Verifier/alloc-size-failedparse.ll vendor/llvm/dist/test/Verifier/allocsize.ll vendor/llvm/dist/test/Verifier/callsite-dbgloc.ll vendor/llvm/dist/test/Verifier/dbg-difile-crash.ll vendor/llvm/dist/test/Verifier/dbg-invalid-compileunit.ll vendor/llvm/dist/test/Verifier/dbg-invalid-retaintypes.ll vendor/llvm/dist/test/Verifier/dbg-orphaned-compileunit.ll vendor/llvm/dist/test/Verifier/deoptimize-intrinsic.ll vendor/llvm/dist/test/Verifier/guard-intrinsic.ll vendor/llvm/dist/test/Verifier/metadata-function-prof.ll vendor/llvm/dist/test/Verifier/swifterror.ll vendor/llvm/dist/test/Verifier/swifterror2.ll vendor/llvm/dist/test/Verifier/swifterror3.ll vendor/llvm/dist/test/Verifier/swiftself.ll vendor/llvm/dist/test/Verifier/unsized-types.ll vendor/llvm/dist/test/Verifier/writeonly.ll vendor/llvm/dist/test/tools/dsymutil/ARM/dummy-debug-map.map vendor/llvm/dist/test/tools/dsymutil/ARM/scattered.c (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/ARM/thumb.c (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/basic-with-libfat-test.macho.x86_64 (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/common.macho.x86_64 (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/module-warnings/ vendor/llvm/dist/test/tools/dsymutil/Inputs/module-warnings/1.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/module-warnings/Bar.pcm (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/module-warnings/Foo.pcm (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/module-warnings/libstatic.a (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/scattered-reloc/ vendor/llvm/dist/test/tools/dsymutil/Inputs/scattered-reloc/1.o (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/scattered-reloc/1.s (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/Inputs/thumb.armv7m (contents, props changed) vendor/llvm/dist/test/tools/dsymutil/X86/basic-with-libfat-test.test vendor/llvm/dist/test/tools/dsymutil/X86/common-sym.test vendor/llvm/dist/test/tools/dsymutil/X86/module-warnings.test vendor/llvm/dist/test/tools/gold/X86/Inputs/common2.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/common3.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/irmover-error.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/start-lib-common.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/thinlto_alias.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/thinlto_archive1.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/thinlto_archive2.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/thinlto_internalize.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/thinlto_linkonceresolution.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/thinlto_weak_resolution.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/visibility.ll vendor/llvm/dist/test/tools/gold/X86/irmover-error.ll vendor/llvm/dist/test/tools/gold/X86/pr19901_thinlto.ll vendor/llvm/dist/test/tools/gold/X86/relax-relocs.ll vendor/llvm/dist/test/tools/gold/X86/start-lib-common.ll vendor/llvm/dist/test/tools/gold/X86/strip_names.ll vendor/llvm/dist/test/tools/gold/X86/thinlto_alias.ll vendor/llvm/dist/test/tools/gold/X86/thinlto_archive.ll vendor/llvm/dist/test/tools/gold/X86/thinlto_emit_imports.ll vendor/llvm/dist/test/tools/gold/X86/thinlto_internalize.ll vendor/llvm/dist/test/tools/gold/X86/thinlto_linkonceresolution.ll vendor/llvm/dist/test/tools/gold/X86/thinlto_prefix_replace.ll vendor/llvm/dist/test/tools/gold/X86/thinlto_weak_resolution.ll vendor/llvm/dist/test/tools/gold/X86/visibility.ll vendor/llvm/dist/test/tools/llvm-ar/ vendor/llvm/dist/test/tools/llvm-ar/Inputs/ vendor/llvm/dist/test/tools/llvm-ar/Inputs/coff.yaml vendor/llvm/dist/test/tools/llvm-ar/Inputs/elf.yaml vendor/llvm/dist/test/tools/llvm-ar/Inputs/macho.yaml vendor/llvm/dist/test/tools/llvm-ar/Inputs/msvc-import.lib (contents, props changed) vendor/llvm/dist/test/tools/llvm-ar/default-add.test vendor/llvm/dist/test/tools/llvm-ar/default-coff.test vendor/llvm/dist/test/tools/llvm-ar/default-elf.test vendor/llvm/dist/test/tools/llvm-ar/default-macho.test vendor/llvm/dist/test/tools/llvm-ar/empty-uid-gid.test vendor/llvm/dist/test/tools/llvm-ar/override.test vendor/llvm/dist/test/tools/llvm-config/ vendor/llvm/dist/test/tools/llvm-config/cflags.test vendor/llvm/dist/test/tools/llvm-config/ldflags.test vendor/llvm/dist/test/tools/llvm-config/libs.test vendor/llvm/dist/test/tools/llvm-config/lit.local.cfg vendor/llvm/dist/test/tools/llvm-config/system-libs.windows.test vendor/llvm/dist/test/tools/llvm-cov/Inputs/binary-formats.v1.linux64l (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/binary-formats.v2.linux32l (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/binary-formats.v2.linux64l (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/combine_expansions.covmapping (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/combine_expansions.proftext vendor/llvm/dist/test/tools/llvm-cov/Inputs/double_dots.covmapping (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/double_dots.proftext vendor/llvm/dist/test/tools/llvm-cov/Inputs/elf_binary_comdat.profdata (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/gcov47_compatibility.gcda (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/gcov47_compatibility.gcno (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/instrprof-comdat.h (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/prefer_used_to_unused.covmapping (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/prefer_used_to_unused.cpp (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/prefer_used_to_unused.proftext vendor/llvm/dist/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmapping (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/prevent_false_instantiations.cpp (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/Inputs/prevent_false_instantiations.proftext vendor/llvm/dist/test/tools/llvm-cov/combine_expansions.cpp (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/cov-comdat.test vendor/llvm/dist/test/tools/llvm-cov/demangle.test vendor/llvm/dist/test/tools/llvm-cov/double_dots.c (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/gcov47_compatibility.cpp (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/prefer_used_to_unused.h (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/prevent_false_instantiations.h (contents, props changed) vendor/llvm/dist/test/tools/llvm-cov/warnings.h (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/compress/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/compress/a.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/compressfail/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/compressfail/a.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/compressfail/compress.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/compressfail/compress.o (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/duplicate/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/duplicate/ac.dwp (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/duplicate/bc.dwp (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/duplicate/c.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/duplicate_dwo_name/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/duplicate_dwo_name/ac.dwp (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/duplicate_dwo_name/bc.dwp (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/duplicate_dwo_name/c.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/empty.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/empty_compressed_section.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/gcc_type/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/gcc_type/a.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/invalid_compressed.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/invalid_cu_index/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/invalid_cu_index/x.dwp (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/invalid_string_form.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/merge/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/merge/notypes/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/merge/notypes/ab.dwp (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/merge/notypes/c.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/missing_tu_index/ vendor/llvm/dist/test/tools/llvm-dwp/Inputs/missing_tu_index/x.dwp (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/multiple_type_sections.dwp (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/Inputs/non_cu_top_level.dwo (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwp/X86/compress.test vendor/llvm/dist/test/tools/llvm-dwp/X86/compressfail.test vendor/llvm/dist/test/tools/llvm-dwp/X86/duplicate.test vendor/llvm/dist/test/tools/llvm-dwp/X86/empty.test vendor/llvm/dist/test/tools/llvm-dwp/X86/gcc_type.test vendor/llvm/dist/test/tools/llvm-dwp/X86/invalid_cu_index.test vendor/llvm/dist/test/tools/llvm-dwp/X86/invalid_string_form.test vendor/llvm/dist/test/tools/llvm-dwp/X86/merge.test vendor/llvm/dist/test/tools/llvm-dwp/X86/missing_tu_index.test vendor/llvm/dist/test/tools/llvm-dwp/X86/multiple_type_sections.test vendor/llvm/dist/test/tools/llvm-dwp/X86/nocompress.test vendor/llvm/dist/test/tools/llvm-dwp/X86/non_cu_top_level.test vendor/llvm/dist/test/tools/llvm-lto/Inputs/empty.bc vendor/llvm/dist/test/tools/llvm-nm/X86/Inputs/hello.obj.elf-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-nm/X86/Inputs/libExample.a.macho-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-nm/X86/posixArchiveMachO.test vendor/llvm/dist/test/tools/llvm-nm/X86/posixELF.test vendor/llvm/dist/test/tools/llvm-nm/X86/radix/ vendor/llvm/dist/test/tools/llvm-nm/X86/radix.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-nm/X86/radix/Inputs/ vendor/llvm/dist/test/tools/llvm-nm/invalid-input.test vendor/llvm/dist/test/tools/llvm-objdump/ARM/Inputs/mh_dylib_header.macho-arm (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/ARM/macho-v7m.test vendor/llvm/dist/test/tools/llvm-objdump/ARM/mh_dylib_header.test vendor/llvm/dist/test/tools/llvm-objdump/Inputs/LLVM-bundle.macho-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/eh_frame.elf-mipsel (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/empty.macho-armv7 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/section.macho-armv7 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/Inputs/tls.exe.coff-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/codesig.macho-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/hello.exe.stripped.macho-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/macho-universal64.x86_64.i386 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/stubbed.dylib.macho-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/Inputs/truncated-section.dylib.macho-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/X86/hex-displacement.test vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-disassembly-stripped.test vendor/llvm/dist/test/tools/llvm-objdump/X86/stubbed-dylib.test vendor/llvm/dist/test/tools/llvm-objdump/X86/truncated-section.test vendor/llvm/dist/test/tools/llvm-objdump/eh_frame-mipsel.test vendor/llvm/dist/test/tools/llvm-objdump/eh_frame_zero_cie.test vendor/llvm/dist/test/tools/llvm-objdump/macho-LLVM-bundle.test vendor/llvm/dist/test/tools/llvm-objdump/macho-objc-meta-data.test vendor/llvm/dist/test/tools/llvm-profdata/Inputs/compat.profdata.v4 (contents, props changed) vendor/llvm/dist/test/tools/llvm-profdata/input-filenames.test vendor/llvm/dist/test/tools/llvm-readobj/Inputs/codeview-inlining.obj.coff (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/codeview-merging-1.obj (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/codeview-merging-2.obj (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/codeview-types.obj (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/codeview-vftable.obj.coff (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/compression.zlib.style.elf-x86-64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/dynamic-table-so.aarch64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/elf-groups.x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/got-over.exe.elf-mips (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/has_pdb.exe (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/options.obj.elf-mipsel (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/phdrs-elf.exe-i386 (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/phdrs-elf.exe-x86_64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/relocs.obj.elf-lanai (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/st-other.obj.elf-mips (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/st-other.obj.elf-mips16 (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/symbols-proc-specific.elf-hexagon (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/trivial.obj.elf-lanai (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/Inputs/verneed.elf-x86-64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-readobj/codeview-inlining.test vendor/llvm/dist/test/tools/llvm-readobj/codeview-merging.test vendor/llvm/dist/test/tools/llvm-readobj/codeview-types.test vendor/llvm/dist/test/tools/llvm-readobj/codeview-vftable.test vendor/llvm/dist/test/tools/llvm-readobj/coff-debug-directory.test vendor/llvm/dist/test/tools/llvm-readobj/elf-groups.test vendor/llvm/dist/test/tools/llvm-readobj/elf-hash-histogram.test vendor/llvm/dist/test/tools/llvm-readobj/elf-sec-compressed.test vendor/llvm/dist/test/tools/llvm-readobj/elf-sec-flags.test vendor/llvm/dist/test/tools/llvm-readobj/gnu-file-headers.test vendor/llvm/dist/test/tools/llvm-readobj/gnu-phdrs.test vendor/llvm/dist/test/tools/llvm-readobj/gnu-relocations.test vendor/llvm/dist/test/tools/llvm-readobj/gnu-sections.test vendor/llvm/dist/test/tools/llvm-readobj/gnu-symbols.test vendor/llvm/dist/test/tools/llvm-readobj/mips-got-overlapped.test vendor/llvm/dist/test/tools/llvm-readobj/mips-options-sec.test vendor/llvm/dist/test/tools/llvm-readobj/mips-st-other.test vendor/llvm/dist/test/tools/llvm-size/Inputs/ vendor/llvm/dist/test/tools/llvm-size/Inputs/darwin-m.o (contents, props changed) vendor/llvm/dist/test/tools/llvm-size/X86/ vendor/llvm/dist/test/tools/llvm-size/X86/ignore-sections.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-size/X86/lit.local.cfg vendor/llvm/dist/test/tools/llvm-size/X86/test-common.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-size/darwin-m.test vendor/llvm/dist/test/tools/llvm-split/blockaddress.ll vendor/llvm/dist/test/tools/llvm-split/extern_linkage.ll vendor/llvm/dist/test/tools/llvm-split/personality.ll vendor/llvm/dist/test/tools/llvm-split/preserve-locals.ll vendor/llvm/dist/test/tools/llvm-split/scc-alias.ll vendor/llvm/dist/test/tools/llvm-split/scc-callchain.ll vendor/llvm/dist/test/tools/llvm-split/scc-comdat.ll vendor/llvm/dist/test/tools/llvm-split/scc-const-alias.ll (contents, props changed) vendor/llvm/dist/test/tools/llvm-split/scc-constants.ll vendor/llvm/dist/test/tools/llvm-split/scc-cycle.ll vendor/llvm/dist/test/tools/llvm-split/scc-global-alias.ll vendor/llvm/dist/test/tools/llvm-split/scc-global2global.ll vendor/llvm/dist/test/tools/llvm-symbolizer/pdb/Inputs/missing_pdb.exe (contents, props changed) vendor/llvm/dist/test/tools/llvm-symbolizer/pdb/missing_pdb.test vendor/llvm/dist/test/tools/lto/hide-linkonce-odr.ll vendor/llvm/dist/test/tools/lto/print-stats.ll vendor/llvm/dist/test/tools/sancov/Inputs/fun_blacklist.txt (contents, props changed) vendor/llvm/dist/test/tools/sancov/Inputs/src_blacklist.txt (contents, props changed) vendor/llvm/dist/test/tools/sancov/Inputs/test-linux_x86_64.0.sancov (contents, props changed) vendor/llvm/dist/test/tools/sancov/Inputs/test-linux_x86_64.1.sancov (contents, props changed) vendor/llvm/dist/test/tools/sancov/html-report.test vendor/llvm/dist/test/tools/sancov/lit.local.cfg vendor/llvm/dist/test/tools/sancov/print_coverage_pcs.test vendor/llvm/dist/test/tools/sancov/stats.test vendor/llvm/dist/test/tools/sanstats/ vendor/llvm/dist/test/tools/sanstats/elf.test vendor/llvm/dist/test/tools/yaml2obj/ vendor/llvm/dist/test/tools/yaml2obj/missing_document_tag.yaml vendor/llvm/dist/test/tools/yaml2obj/unsupported_document_tag.yaml vendor/llvm/dist/tools/llvm-c-test/diagnostic.c (contents, props changed) vendor/llvm/dist/tools/llvm-c-test/echo.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-cov/SourceCoverageViewHTML.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-cov/SourceCoverageViewHTML.h (contents, props changed) vendor/llvm/dist/tools/llvm-cov/SourceCoverageViewText.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-cov/SourceCoverageViewText.h (contents, props changed) vendor/llvm/dist/tools/llvm-dwp/DWPError.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-dwp/DWPError.h (contents, props changed) vendor/llvm/dist/tools/llvm-dwp/DWPStringPool.h (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/LLVMOutputStyle.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/LLVMOutputStyle.h (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/OutputStyle.h (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/PdbYaml.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/PdbYaml.h (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/YAMLOutputStyle.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/YAMLOutputStyle.h (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/fuzzer/ vendor/llvm/dist/tools/llvm-pdbdump/fuzzer/CMakeLists.txt (contents, props changed) vendor/llvm/dist/tools/llvm-pdbdump/fuzzer/llvm-pdbdump-fuzzer.cpp (contents, props changed) vendor/llvm/dist/tools/llvm-readobj/CodeView.h (contents, props changed) vendor/llvm/dist/tools/obj2yaml/macho2yaml.cpp (contents, props changed) vendor/llvm/dist/tools/sanstats/ vendor/llvm/dist/tools/sanstats/CMakeLists.txt (contents, props changed) vendor/llvm/dist/tools/sanstats/sanstats.cpp (contents, props changed) vendor/llvm/dist/tools/yaml2obj/yaml2macho.cpp (contents, props changed) vendor/llvm/dist/unittests/ADT/BitmaskEnumTest.cpp (contents, props changed) vendor/llvm/dist/unittests/ADT/PriorityWorklistTest.cpp (contents, props changed) vendor/llvm/dist/unittests/ADT/SequenceTest.cpp (contents, props changed) vendor/llvm/dist/unittests/ADT/SetVectorTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Analysis/BlockFrequencyInfoTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Analysis/CGSCCPassManagerTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Analysis/LoopPassManagerTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Analysis/UnrollAnalyzer.cpp (contents, props changed) vendor/llvm/dist/unittests/Bitcode/BitstreamWriterTest.cpp (contents, props changed) vendor/llvm/dist/unittests/DebugInfo/PDB/ErrorChecking.h (contents, props changed) vendor/llvm/dist/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp (contents, props changed) vendor/llvm/dist/unittests/DebugInfo/PDB/MsfBuilderTest.cpp (contents, props changed) vendor/llvm/dist/unittests/IR/DebugTypeODRUniquingTest.cpp (contents, props changed) vendor/llvm/dist/unittests/IR/FunctionTest.cpp (contents, props changed) vendor/llvm/dist/unittests/IR/IntrinsicsTest.cpp (contents, props changed) vendor/llvm/dist/unittests/MC/DwarfLineTables.cpp (contents, props changed) vendor/llvm/dist/unittests/MC/TargetRegistry.cpp (contents, props changed) vendor/llvm/dist/unittests/MI/ vendor/llvm/dist/unittests/MI/CMakeLists.txt (contents, props changed) vendor/llvm/dist/unittests/MI/LiveIntervalTest.cpp (contents, props changed) vendor/llvm/dist/unittests/ObjectYAML/ vendor/llvm/dist/unittests/ObjectYAML/CMakeLists.txt (contents, props changed) vendor/llvm/dist/unittests/ObjectYAML/YAMLTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/ErrorTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/StreamingMemoryObjectTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/TargetParserTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/TypeNameTest.cpp (contents, props changed) vendor/llvm/dist/unittests/Support/raw_sha1_ostream_test.cpp (contents, props changed) vendor/llvm/dist/unittests/Transforms/IPO/LowerTypeTests.cpp (contents, props changed) vendor/llvm/dist/unittests/Transforms/IPO/WholeProgramDevirt.cpp (contents, props changed) vendor/llvm/dist/unittests/Transforms/Utils/MemorySSA.cpp (contents, props changed) vendor/llvm/dist/utils/LLVMVisualizers/ vendor/llvm/dist/utils/LLVMVisualizers/CMakeLists.txt (contents, props changed) vendor/llvm/dist/utils/LLVMVisualizers/llvm.natvis vendor/llvm/dist/utils/TableGen/SearchableTableEmitter.cpp (contents, props changed) vendor/llvm/dist/utils/abtest/ vendor/llvm/dist/utils/abtest/abtest.py (contents, props changed) vendor/llvm/dist/utils/abtest/mark_aarch64fns.py (contents, props changed) vendor/llvm/dist/utils/abtest/mark_armfns.py (contents, props changed) vendor/llvm/dist/utils/extract_symbols.py (contents, props changed) vendor/llvm/dist/utils/gdb-scripts/ vendor/llvm/dist/utils/gdb-scripts/prettyprinters.py (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/googletest-upstream-format/ vendor/llvm/dist/utils/lit/tests/Inputs/googletest-upstream-format/DummySubDir/ vendor/llvm/dist/utils/lit/tests/Inputs/googletest-upstream-format/DummySubDir/OneTest (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/googletest-upstream-format/lit.cfg vendor/llvm/dist/utils/lit/tests/Inputs/shtest-format/requires-any-missing.txt (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-format/requires-any-present.txt (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-output-printing/ vendor/llvm/dist/utils/lit/tests/Inputs/shtest-output-printing/basic.txt (contents, props changed) vendor/llvm/dist/utils/lit/tests/Inputs/shtest-output-printing/lit.cfg vendor/llvm/dist/utils/lit/tests/googletest-upstream-format.py (contents, props changed) vendor/llvm/dist/utils/lit/tests/shtest-output-printing.py (contents, props changed) vendor/llvm/dist/utils/prepare-code-coverage-artifact.py (contents, props changed) vendor/llvm/dist/utils/update_test_checks.py (contents, props changed) Deleted: vendor/llvm/dist/Makefile vendor/llvm/dist/Makefile.common vendor/llvm/dist/Makefile.config.in vendor/llvm/dist/Makefile.rules vendor/llvm/dist/autoconf/ vendor/llvm/dist/bindings/Makefile vendor/llvm/dist/bindings/ocaml/Makefile vendor/llvm/dist/bindings/ocaml/Makefile.ocaml vendor/llvm/dist/bindings/ocaml/all_backends/Makefile vendor/llvm/dist/bindings/ocaml/analysis/Makefile vendor/llvm/dist/bindings/ocaml/backends/Makefile vendor/llvm/dist/bindings/ocaml/backends/Makefile.common vendor/llvm/dist/bindings/ocaml/bitreader/Makefile vendor/llvm/dist/bindings/ocaml/bitwriter/Makefile vendor/llvm/dist/bindings/ocaml/executionengine/Makefile vendor/llvm/dist/bindings/ocaml/irreader/Makefile vendor/llvm/dist/bindings/ocaml/linker/Makefile vendor/llvm/dist/bindings/ocaml/llvm/Makefile vendor/llvm/dist/bindings/ocaml/target/Makefile vendor/llvm/dist/bindings/ocaml/transforms/Makefile vendor/llvm/dist/bindings/ocaml/transforms/ipo/Makefile vendor/llvm/dist/bindings/ocaml/transforms/passmgr_builder/Makefile vendor/llvm/dist/bindings/ocaml/transforms/scalar_opts/Makefile vendor/llvm/dist/bindings/ocaml/transforms/utils/Makefile vendor/llvm/dist/bindings/ocaml/transforms/vectorize/Makefile vendor/llvm/dist/cmake/Makefile vendor/llvm/dist/cmake/modules/Makefile vendor/llvm/dist/docs/BitSets.rst vendor/llvm/dist/docs/BuildingLLVMWithAutotools.rst vendor/llvm/dist/docs/Makefile vendor/llvm/dist/docs/MakefileGuide.rst vendor/llvm/dist/docs/doxygen.intro vendor/llvm/dist/docs/tutorial/LangImpl1.rst vendor/llvm/dist/docs/tutorial/LangImpl2.rst vendor/llvm/dist/docs/tutorial/LangImpl3.rst vendor/llvm/dist/docs/tutorial/LangImpl4.rst vendor/llvm/dist/docs/tutorial/LangImpl5-cfg.png vendor/llvm/dist/docs/tutorial/LangImpl5.rst vendor/llvm/dist/docs/tutorial/LangImpl6.rst vendor/llvm/dist/docs/tutorial/LangImpl7.rst vendor/llvm/dist/docs/tutorial/LangImpl8.rst vendor/llvm/dist/docs/tutorial/LangImpl9.rst vendor/llvm/dist/examples/BrainF/Makefile vendor/llvm/dist/examples/ExceptionDemo/Makefile vendor/llvm/dist/examples/Fibonacci/Makefile vendor/llvm/dist/examples/HowToUseJIT/Makefile vendor/llvm/dist/examples/Kaleidoscope/Chapter2/Makefile vendor/llvm/dist/examples/Kaleidoscope/Chapter3/Makefile vendor/llvm/dist/examples/Kaleidoscope/Chapter4/Makefile vendor/llvm/dist/examples/Kaleidoscope/Chapter5/Makefile vendor/llvm/dist/examples/Kaleidoscope/Chapter6/Makefile vendor/llvm/dist/examples/Kaleidoscope/Chapter7/Makefile vendor/llvm/dist/examples/Kaleidoscope/Chapter8/Makefile vendor/llvm/dist/examples/Kaleidoscope/MCJIT/cached/Makefile vendor/llvm/dist/examples/Kaleidoscope/MCJIT/complete/Makefile vendor/llvm/dist/examples/Kaleidoscope/MCJIT/initial/Makefile vendor/llvm/dist/examples/Kaleidoscope/MCJIT/lazy/Makefile vendor/llvm/dist/examples/Kaleidoscope/Makefile vendor/llvm/dist/examples/Kaleidoscope/Orc/ vendor/llvm/dist/examples/Makefile vendor/llvm/dist/examples/ModuleMaker/Makefile vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter2/Makefile vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter3/Makefile vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter4/Makefile vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter5/Makefile vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter6/Makefile vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter7/Makefile vendor/llvm/dist/examples/OCaml-Kaleidoscope/Makefile vendor/llvm/dist/examples/ParallelJIT/Makefile vendor/llvm/dist/include/llvm/Analysis/CFLAliasAnalysis.h vendor/llvm/dist/include/llvm/Config/config.h.in vendor/llvm/dist/include/llvm/Config/llvm-config.h.in vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcArchitectureSupport.h vendor/llvm/dist/include/llvm/IR/FunctionInfo.h vendor/llvm/dist/include/llvm/LTO/LTOCodeGenerator.h vendor/llvm/dist/include/llvm/LTO/LTOModule.h vendor/llvm/dist/include/llvm/MC/MCCodeGenInfo.h vendor/llvm/dist/include/llvm/MC/MCDisassembler.h vendor/llvm/dist/include/llvm/MC/MCExternalSymbolizer.h vendor/llvm/dist/include/llvm/MC/MCRelocationInfo.h vendor/llvm/dist/include/llvm/MC/MCSymbolizer.h vendor/llvm/dist/include/llvm/MC/MCTargetAsmParser.h vendor/llvm/dist/include/llvm/MC/YAML.h vendor/llvm/dist/include/llvm/Object/COFFYAML.h vendor/llvm/dist/include/llvm/Object/ELFYAML.h vendor/llvm/dist/include/llvm/Object/FunctionIndexObjectFile.h vendor/llvm/dist/include/llvm/ProfileData/CoverageMapping.h vendor/llvm/dist/include/llvm/ProfileData/CoverageMappingReader.h vendor/llvm/dist/include/llvm/ProfileData/CoverageMappingWriter.h vendor/llvm/dist/include/llvm/Support/AIXDataTypesFix.h vendor/llvm/dist/include/llvm/Support/DataTypes.h.in vendor/llvm/dist/include/llvm/Support/RegistryParser.h vendor/llvm/dist/include/llvm/Target/TargetSelectionDAGInfo.h vendor/llvm/dist/include/llvm/Transforms/IPO/LowerBitSets.h vendor/llvm/dist/lib/Analysis/CFLAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/Makefile vendor/llvm/dist/lib/AsmParser/Makefile vendor/llvm/dist/lib/AsmParser/module.modulemap vendor/llvm/dist/lib/Bitcode/Makefile vendor/llvm/dist/lib/Bitcode/Reader/Makefile vendor/llvm/dist/lib/Bitcode/Writer/Makefile vendor/llvm/dist/lib/Bitcode/module.modulemap vendor/llvm/dist/lib/CodeGen/AsmPrinter/Makefile vendor/llvm/dist/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.h vendor/llvm/dist/lib/CodeGen/CoreCLRGC.cpp vendor/llvm/dist/lib/CodeGen/ErlangGC.cpp vendor/llvm/dist/lib/CodeGen/MIRParser/Makefile vendor/llvm/dist/lib/CodeGen/Makefile vendor/llvm/dist/lib/CodeGen/OcamlGC.cpp vendor/llvm/dist/lib/CodeGen/Passes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/Makefile vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetSelectionDAGInfo.cpp vendor/llvm/dist/lib/CodeGen/ShadowStackGC.cpp vendor/llvm/dist/lib/CodeGen/StatepointExampleGC.cpp vendor/llvm/dist/lib/CodeGen/module.modulemap vendor/llvm/dist/lib/DebugInfo/CodeView/Makefile vendor/llvm/dist/lib/DebugInfo/DWARF/Makefile vendor/llvm/dist/lib/DebugInfo/DWARF/module.modulemap vendor/llvm/dist/lib/DebugInfo/Makefile vendor/llvm/dist/lib/DebugInfo/PDB/Makefile vendor/llvm/dist/lib/DebugInfo/Symbolize/Makefile vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/Makefile vendor/llvm/dist/lib/ExecutionEngine/Interpreter/Makefile vendor/llvm/dist/lib/ExecutionEngine/MCJIT/Makefile vendor/llvm/dist/lib/ExecutionEngine/Makefile vendor/llvm/dist/lib/ExecutionEngine/OProfileJIT/Makefile vendor/llvm/dist/lib/ExecutionEngine/Orc/Makefile vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcArchitectureSupport.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcCBindingsStack.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Makefile vendor/llvm/dist/lib/Fuzzer/FuzzerInterface.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerSanitizerOptions.cpp vendor/llvm/dist/lib/Fuzzer/pull_and_push_fuzz_corpus.sh vendor/llvm/dist/lib/Fuzzer/test/UserSuppliedFuzzerTest.cpp vendor/llvm/dist/lib/IR/FunctionInfo.cpp vendor/llvm/dist/lib/IR/Makefile vendor/llvm/dist/lib/IR/module.modulemap vendor/llvm/dist/lib/IRReader/Makefile vendor/llvm/dist/lib/LTO/Makefile vendor/llvm/dist/lib/LibDriver/Makefile vendor/llvm/dist/lib/LineEditor/Makefile vendor/llvm/dist/lib/Linker/Makefile vendor/llvm/dist/lib/MC/MCCodeGenInfo.cpp vendor/llvm/dist/lib/MC/MCDisassembler/Makefile vendor/llvm/dist/lib/MC/MCParser/Makefile vendor/llvm/dist/lib/MC/MCSymbolizer.cpp vendor/llvm/dist/lib/MC/Makefile vendor/llvm/dist/lib/MC/YAML.cpp vendor/llvm/dist/lib/Makefile vendor/llvm/dist/lib/Object/COFFYAML.cpp vendor/llvm/dist/lib/Object/ELFYAML.cpp vendor/llvm/dist/lib/Object/FunctionIndexObjectFile.cpp vendor/llvm/dist/lib/Object/Makefile vendor/llvm/dist/lib/Option/Makefile vendor/llvm/dist/lib/Passes/Makefile vendor/llvm/dist/lib/ProfileData/CoverageMapping.cpp vendor/llvm/dist/lib/ProfileData/CoverageMappingReader.cpp vendor/llvm/dist/lib/ProfileData/CoverageMappingWriter.cpp vendor/llvm/dist/lib/ProfileData/Makefile vendor/llvm/dist/lib/Support/Makefile vendor/llvm/dist/lib/TableGen/Makefile vendor/llvm/dist/lib/TableGen/module.modulemap vendor/llvm/dist/lib/Target/AArch64/AsmParser/Makefile vendor/llvm/dist/lib/Target/AArch64/Disassembler/Makefile vendor/llvm/dist/lib/Target/AArch64/InstPrinter/Makefile vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/AArch64/Makefile vendor/llvm/dist/lib/Target/AArch64/TargetInfo/Makefile vendor/llvm/dist/lib/Target/AArch64/Utils/Makefile vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUDiagnosticInfoUnsupported.h vendor/llvm/dist/lib/Target/AMDGPU/AsmParser/Makefile vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/Makefile vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/AMDGPU/Makefile vendor/llvm/dist/lib/Target/AMDGPU/R600TextureIntrinsicsReplacer.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFixSGPRLiveRanges.cpp vendor/llvm/dist/lib/Target/AMDGPU/TargetInfo/Makefile vendor/llvm/dist/lib/Target/AMDGPU/Utils/Makefile vendor/llvm/dist/lib/Target/ARM/AsmParser/Makefile vendor/llvm/dist/lib/Target/ARM/Disassembler/Makefile vendor/llvm/dist/lib/Target/ARM/InstPrinter/Makefile vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/ARM/Makefile vendor/llvm/dist/lib/Target/ARM/TargetInfo/Makefile vendor/llvm/dist/lib/Target/AVR/AVRConfig.h vendor/llvm/dist/lib/Target/AVR/Makefile vendor/llvm/dist/lib/Target/AVR/TargetInfo/Makefile vendor/llvm/dist/lib/Target/BPF/InstPrinter/Makefile vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/BPF/Makefile vendor/llvm/dist/lib/Target/BPF/TargetInfo/Makefile vendor/llvm/dist/lib/Target/CppBackend/ vendor/llvm/dist/lib/Target/Hexagon/AsmParser/Makefile vendor/llvm/dist/lib/Target/Hexagon/Disassembler/Makefile vendor/llvm/dist/lib/Target/Hexagon/HexagonExpandPredSpillCode.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/Hexagon/Makefile vendor/llvm/dist/lib/Target/Hexagon/TargetInfo/Makefile vendor/llvm/dist/lib/Target/MSP430/InstPrinter/Makefile vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/MSP430/Makefile vendor/llvm/dist/lib/Target/MSP430/TargetInfo/Makefile vendor/llvm/dist/lib/Target/Makefile vendor/llvm/dist/lib/Target/Mips/AsmParser/Makefile vendor/llvm/dist/lib/Target/Mips/Disassembler/Makefile vendor/llvm/dist/lib/Target/Mips/InstPrinter/Makefile vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/Mips/Makefile vendor/llvm/dist/lib/Target/Mips/TargetInfo/Makefile vendor/llvm/dist/lib/Target/NVPTX/InstPrinter/Makefile vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/NVPTX/Makefile vendor/llvm/dist/lib/Target/NVPTX/TargetInfo/Makefile vendor/llvm/dist/lib/Target/PowerPC/AsmParser/Makefile vendor/llvm/dist/lib/Target/PowerPC/Disassembler/Makefile vendor/llvm/dist/lib/Target/PowerPC/InstPrinter/Makefile vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/PowerPC/Makefile vendor/llvm/dist/lib/Target/PowerPC/PPCLoopDataPrefetch.cpp vendor/llvm/dist/lib/Target/PowerPC/TargetInfo/Makefile vendor/llvm/dist/lib/Target/Sparc/AsmParser/Makefile vendor/llvm/dist/lib/Target/Sparc/Disassembler/Makefile vendor/llvm/dist/lib/Target/Sparc/InstPrinter/Makefile vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/Sparc/Makefile vendor/llvm/dist/lib/Target/Sparc/TargetInfo/Makefile vendor/llvm/dist/lib/Target/SystemZ/AsmParser/Makefile vendor/llvm/dist/lib/Target/SystemZ/Disassembler/Makefile vendor/llvm/dist/lib/Target/SystemZ/InstPrinter/Makefile vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/SystemZ/Makefile vendor/llvm/dist/lib/Target/SystemZ/TargetInfo/Makefile vendor/llvm/dist/lib/Target/WebAssembly/Disassembler/Makefile vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/Makefile vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/WebAssembly/Makefile vendor/llvm/dist/lib/Target/WebAssembly/Relooper.cpp vendor/llvm/dist/lib/Target/WebAssembly/Relooper.h vendor/llvm/dist/lib/Target/WebAssembly/TargetInfo/Makefile vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyPEI.cpp vendor/llvm/dist/lib/Target/X86/AsmParser/Makefile vendor/llvm/dist/lib/Target/X86/Disassembler/Makefile vendor/llvm/dist/lib/Target/X86/Disassembler/X86Disassembler.h vendor/llvm/dist/lib/Target/X86/InstPrinter/Makefile vendor/llvm/dist/lib/Target/X86/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86ELFRelocationInfo.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MachORelocationInfo.cpp vendor/llvm/dist/lib/Target/X86/Makefile vendor/llvm/dist/lib/Target/X86/TargetInfo/Makefile vendor/llvm/dist/lib/Target/X86/Utils/Makefile vendor/llvm/dist/lib/Target/XCore/Disassembler/Makefile vendor/llvm/dist/lib/Target/XCore/InstPrinter/Makefile vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/Makefile vendor/llvm/dist/lib/Target/XCore/Makefile vendor/llvm/dist/lib/Target/XCore/TargetInfo/Makefile vendor/llvm/dist/lib/Transforms/Hello/Makefile vendor/llvm/dist/lib/Transforms/IPO/LowerBitSets.cpp vendor/llvm/dist/lib/Transforms/IPO/Makefile vendor/llvm/dist/lib/Transforms/InstCombine/Makefile vendor/llvm/dist/lib/Transforms/Instrumentation/Makefile vendor/llvm/dist/lib/Transforms/Instrumentation/SafeStack.cpp vendor/llvm/dist/lib/Transforms/Makefile vendor/llvm/dist/lib/Transforms/ObjCARC/Makefile vendor/llvm/dist/lib/Transforms/Scalar/Makefile vendor/llvm/dist/lib/Transforms/Scalar/ScalarReplAggregates.cpp vendor/llvm/dist/lib/Transforms/Utils/Makefile vendor/llvm/dist/lib/Transforms/Vectorize/Makefile vendor/llvm/dist/projects/Makefile vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/arguments-globals.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/arguments.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/asm-global-bugfix.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/basic-interproc-ret.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/basic-interproc.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/branch-alias.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/const-expr-gep.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/constant-over-index.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/empty.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/full-store-partial-alias.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/gep-signed-arithmetic.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/multilevel-combine.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/multilevel.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/must-and-partial.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/opaque-call-alias.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/phi-and-select.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/simple.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/stratified-attrs-indexing.ll vendor/llvm/dist/test/Analysis/CFLAliasAnalysis/va.ll vendor/llvm/dist/test/Analysis/ValueTracking/dom-cond.ll vendor/llvm/dist/test/Analysis/ValueTracking/pr24866.ll vendor/llvm/dist/test/Assembler/upgrade-loop-metadata.ll vendor/llvm/dist/test/Bitcode/Inputs/invalid-fixme-streaming-blob.bc vendor/llvm/dist/test/CodeGen/AArch64/aarch64-deferred-spilling.ll vendor/llvm/dist/test/CodeGen/AMDGPU/address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/dot4-folding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract-vector-elt-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extract_vector_elt_i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-extload-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-extload-i16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-extload-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-extload-i8.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-zero-initializer.ll vendor/llvm/dist/test/CodeGen/AMDGPU/gv-const-addrspace-fail.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.abs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.barrier.global.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.barrier.local.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.bfi.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.bfm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.class.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.cvt_f32_ubyte.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.div_fixup.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.div_fmas.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.div_scale.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.fract.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.fract.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.imad24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.imax.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.imin.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.imul24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.ldexp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.legacy.rsq.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.mul.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.rcp.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.rcp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.read.workdim.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.rsq.clamped.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.rsq.clamped.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.rsq.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.tex.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.trig_preop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.trunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.umad24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.umax.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.umin.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.umul24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.imageload.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.resinfo.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.sample-masked.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.sample.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.sampled.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.tid.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgpu.dp4.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgpu.lrp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.sqrt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load.vec.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-memory-two-objects.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-annotate-cf-assertion.ll vendor/llvm/dist/test/CodeGen/AMDGPU/work-item-intrinsics.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/overflow.ll vendor/llvm/dist/test/CodeGen/ARM/intrinsics.ll vendor/llvm/dist/test/CodeGen/ARM/smulw.ll vendor/llvm/dist/test/CodeGen/CPP/ vendor/llvm/dist/test/CodeGen/Generic/Makefile vendor/llvm/dist/test/CodeGen/Generic/run-pass.ll vendor/llvm/dist/test/CodeGen/MIR/ARM/ARMLoadStoreDBG.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-from-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/lit.local.cfg vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/select.ll vendor/llvm/dist/test/CodeGen/Mips/micromips-zero-mat-uses.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr25802.ll vendor/llvm/dist/test/CodeGen/PowerPC/subsumes-pred-regs.ll vendor/llvm/dist/test/CodeGen/WebAssembly/loop-idiom.ll vendor/llvm/dist/test/CodeGen/X86/2007-08-13-AppendingLinkage.ll vendor/llvm/dist/test/CodeGen/X86/2008-08-19-SubAndFetch.ll vendor/llvm/dist/test/CodeGen/X86/avx2-pmovxrm-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/darwin-stub.ll vendor/llvm/dist/test/CodeGen/X86/lock-inst-encoding.ll vendor/llvm/dist/test/CodeGen/X86/materialize-one.ll vendor/llvm/dist/test/CodeGen/X86/sse41-pmovxrm-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/vec-sign.ll vendor/llvm/dist/test/DebugInfo/Generic/Inputs/gmlt.ll vendor/llvm/dist/test/DebugInfo/X86/debug-loc-empty-entries.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/lifetime-uar.ll vendor/llvm/dist/test/MC/AsmParser/directive_file-errors.s vendor/llvm/dist/test/MC/ELF/section-sym-err.s vendor/llvm/dist/test/MC/MachO/x86-data-in-code.ll vendor/llvm/dist/test/MC/Mips/mips32r6/valid-xfail.s vendor/llvm/dist/test/MC/Mips/mips64extins.ll vendor/llvm/dist/test/MC/Mips/mips64r6/valid-xfail.s vendor/llvm/dist/test/Makefile vendor/llvm/dist/test/Makefile.tests vendor/llvm/dist/test/TableGen/intrinsic-order.td vendor/llvm/dist/test/Transforms/FunctionAttrs/noreturn.ll vendor/llvm/dist/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll vendor/llvm/dist/test/Transforms/GVN/2009-06-17-InvalidPRE.ll vendor/llvm/dist/test/Transforms/GVN/2011-06-01-NonLocalMemdepMiscompile.ll vendor/llvm/dist/test/Transforms/GVN/atomic.ll vendor/llvm/dist/test/Transforms/GVN/invariant-load.ll vendor/llvm/dist/test/Transforms/GVN/load-pre-align.ll vendor/llvm/dist/test/Transforms/GVN/load-pre-licm.ll vendor/llvm/dist/test/Transforms/GVN/load-pre-nonlocal.ll vendor/llvm/dist/test/Transforms/GVN/local-pre.ll vendor/llvm/dist/test/Transforms/GVN/lpre-call-wrap-2.ll vendor/llvm/dist/test/Transforms/GVN/lpre-call-wrap.ll vendor/llvm/dist/test/Transforms/GVN/phi-translate.ll vendor/llvm/dist/test/Transforms/GVN/pre-basic-add.ll vendor/llvm/dist/test/Transforms/GVN/pre-gep-load.ll vendor/llvm/dist/test/Transforms/GVN/pre-load.ll vendor/llvm/dist/test/Transforms/GVN/pre-no-cost-phi.ll vendor/llvm/dist/test/Transforms/GVN/pre-single-pred.ll vendor/llvm/dist/test/Transforms/GVN/preserve-tbaa.ll vendor/llvm/dist/test/Transforms/GVN/rle-phi-translate.ll vendor/llvm/dist/test/Transforms/GVN/rle-semidominated.ll vendor/llvm/dist/test/Transforms/GVN/rle.ll vendor/llvm/dist/test/Transforms/GVN/volatile.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/overflowcheck.ll vendor/llvm/dist/test/Transforms/InstCombine/2002-03-11-InstCombineHang.ll vendor/llvm/dist/test/Transforms/InstCombine/2002-05-14-SubFailure.ll vendor/llvm/dist/test/Transforms/InstCombine/2002-08-02-CastTest.ll vendor/llvm/dist/test/Transforms/InstCombine/2002-12-05-MissedConstProp.ll vendor/llvm/dist/test/Transforms/InstCombine/2007-01-27-AndICmp.ll vendor/llvm/dist/test/Transforms/InstCombine/2007-11-22-IcmpCrash.ll vendor/llvm/dist/test/Transforms/InstCombine/2008-07-08-AndICmp.ll vendor/llvm/dist/test/Transforms/InstCombine/2008-07-16-sse2_storel_dq.ll vendor/llvm/dist/test/Transforms/InstCombine/2012-05-27-Negative-Shift-Crash.ll vendor/llvm/dist/test/Transforms/InstCombine/apint-add1.ll vendor/llvm/dist/test/Transforms/InstCombine/apint-add2.ll vendor/llvm/dist/test/Transforms/InstCombine/dom-conditions.ll vendor/llvm/dist/test/Transforms/InstCombine/pr8547.ll vendor/llvm/dist/test/Transforms/InstCombine/r600-intrinsics.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-pmovsx.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-pmovzx.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-cast.ll vendor/llvm/dist/test/Transforms/LoopUnroll/nsw-tripcount.ll vendor/llvm/dist/test/Transforms/LoopUnroll/partial-unroll-optsize.ll vendor/llvm/dist/test/Transforms/LowerBitSets/constant.ll vendor/llvm/dist/test/Transforms/LowerBitSets/function-ext.ll vendor/llvm/dist/test/Transforms/LowerBitSets/function.ll vendor/llvm/dist/test/Transforms/LowerBitSets/layout.ll vendor/llvm/dist/test/Transforms/LowerBitSets/nonglobal.ll vendor/llvm/dist/test/Transforms/LowerBitSets/nonstring.ll vendor/llvm/dist/test/Transforms/LowerBitSets/pr25902.ll vendor/llvm/dist/test/Transforms/LowerBitSets/simple.ll vendor/llvm/dist/test/Transforms/LowerBitSets/single-offset.ll vendor/llvm/dist/test/Transforms/LowerBitSets/unnamed.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/call_gc_result.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/invokes.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/leaf-function.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/patchable-statepoints.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/statepoint-calling-conventions.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/statepoint-format.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-1.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-10.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-11.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-2.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-3.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-4.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-5.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-6.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-7.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-8.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-9.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-vector.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/basic.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/basics.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/codegen-cond.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/constants.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/deref-pointers.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/gc-relocate-creation.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/live-vector-nosplit.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/live-vector.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/liveness-basics.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/patchable-statepoints.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/preprocess.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/relocate-invoke-result.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/relocation.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/rematerialize-derived-pointers.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/rewrite-invoke.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/gc_relocate_creation.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/live-vector.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/relocate_invoke_result.ll vendor/llvm/dist/test/Transforms/SampleProfile/inline-hint.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2008-06-22-LargeArray.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2010-01-18-SelfCopy.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2011-05-06-CapturedAlloca.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2011-06-17-VectorPartialMemset.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2011-09-22-PHISpeculateInvoke.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2011-10-11-VectorMemset.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2011-10-22-VectorCrash.ll vendor/llvm/dist/test/Transforms/ScalarRepl/2011-11-11-EmptyStruct.ll vendor/llvm/dist/test/Transforms/ScalarRepl/AggregatePromote.ll vendor/llvm/dist/test/Transforms/ScalarRepl/DifferingTypes.ll vendor/llvm/dist/test/Transforms/ScalarRepl/address-space.ll vendor/llvm/dist/test/Transforms/ScalarRepl/arraytest.ll vendor/llvm/dist/test/Transforms/ScalarRepl/badarray.ll vendor/llvm/dist/test/Transforms/ScalarRepl/basictest.ll vendor/llvm/dist/test/Transforms/ScalarRepl/bitfield-sroa.ll vendor/llvm/dist/test/Transforms/ScalarRepl/copy-aggregate.ll vendor/llvm/dist/test/Transforms/ScalarRepl/crash.ll vendor/llvm/dist/test/Transforms/ScalarRepl/debuginfo-preserved.ll vendor/llvm/dist/test/Transforms/ScalarRepl/inline-vector.ll vendor/llvm/dist/test/Transforms/ScalarRepl/lifetime.ll vendor/llvm/dist/test/Transforms/ScalarRepl/load-store-aggregate.ll vendor/llvm/dist/test/Transforms/ScalarRepl/memcpy-align.ll vendor/llvm/dist/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll vendor/llvm/dist/test/Transforms/ScalarRepl/memset-aggregate.ll vendor/llvm/dist/test/Transforms/ScalarRepl/negative-memset.ll vendor/llvm/dist/test/Transforms/ScalarRepl/nonzero-first-index.ll vendor/llvm/dist/test/Transforms/ScalarRepl/not-a-vector.ll vendor/llvm/dist/test/Transforms/ScalarRepl/only-memcpy-uses.ll vendor/llvm/dist/test/Transforms/ScalarRepl/phi-cycle.ll vendor/llvm/dist/test/Transforms/ScalarRepl/phi-select.ll vendor/llvm/dist/test/Transforms/ScalarRepl/phinodepromote.ll vendor/llvm/dist/test/Transforms/ScalarRepl/select_promote.ll vendor/llvm/dist/test/Transforms/ScalarRepl/sroa-fca.ll vendor/llvm/dist/test/Transforms/ScalarRepl/sroa_two.ll vendor/llvm/dist/test/Transforms/ScalarRepl/union-fp-int.ll vendor/llvm/dist/test/Transforms/ScalarRepl/union-packed.ll vendor/llvm/dist/test/Transforms/ScalarRepl/union-pointer.ll vendor/llvm/dist/test/Transforms/ScalarRepl/vector_memcpy.ll vendor/llvm/dist/test/Transforms/ScalarRepl/vector_promote.ll vendor/llvm/dist/test/Transforms/ScalarRepl/vectors-with-mismatched-elements.ll vendor/llvm/dist/test/Transforms/ScalarRepl/volatile.ll vendor/llvm/dist/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/value-tracking-domtree.ll vendor/llvm/dist/test/Transforms/TailDup/2008-06-11-AvoidDupLoopHeader.ll vendor/llvm/dist/test/Transforms/TailDup/X86/lit.local.cfg vendor/llvm/dist/test/Transforms/TailDup/lit.local.cfg vendor/llvm/dist/test/tools/sancov/Inputs/blacklist.txt vendor/llvm/dist/test/tools/sancov/Inputs/test-linux_x86_64-1.sancov vendor/llvm/dist/test/tools/sancov/Inputs/test-linux_x86_64.sancov vendor/llvm/dist/tools/Makefile vendor/llvm/dist/tools/bugpoint-passes/Makefile vendor/llvm/dist/tools/bugpoint/Makefile vendor/llvm/dist/tools/dsymutil/Makefile vendor/llvm/dist/tools/gold/Makefile vendor/llvm/dist/tools/llc/Makefile vendor/llvm/dist/tools/lli/ChildTarget/Makefile vendor/llvm/dist/tools/lli/Makefile vendor/llvm/dist/tools/llvm-ar/Makefile vendor/llvm/dist/tools/llvm-as/Makefile vendor/llvm/dist/tools/llvm-bcanalyzer/Makefile vendor/llvm/dist/tools/llvm-c-test/Makefile vendor/llvm/dist/tools/llvm-config/Makefile vendor/llvm/dist/tools/llvm-cov/Makefile vendor/llvm/dist/tools/llvm-cxxdump/Makefile vendor/llvm/dist/tools/llvm-diff/Makefile vendor/llvm/dist/tools/llvm-dis/Makefile vendor/llvm/dist/tools/llvm-dwarfdump/Makefile vendor/llvm/dist/tools/llvm-dwp/Makefile vendor/llvm/dist/tools/llvm-extract/Makefile vendor/llvm/dist/tools/llvm-go/Makefile vendor/llvm/dist/tools/llvm-jitlistener/Makefile vendor/llvm/dist/tools/llvm-link/Makefile vendor/llvm/dist/tools/llvm-lto/Makefile vendor/llvm/dist/tools/llvm-mc/Makefile vendor/llvm/dist/tools/llvm-mcmarkup/Makefile vendor/llvm/dist/tools/llvm-nm/Makefile vendor/llvm/dist/tools/llvm-objdump/Makefile vendor/llvm/dist/tools/llvm-pdbdump/Makefile vendor/llvm/dist/tools/llvm-profdata/Makefile vendor/llvm/dist/tools/llvm-readobj/Makefile vendor/llvm/dist/tools/llvm-readobj/StreamWriter.cpp vendor/llvm/dist/tools/llvm-readobj/StreamWriter.h vendor/llvm/dist/tools/llvm-rtdyld/Makefile vendor/llvm/dist/tools/llvm-shlib/Makefile vendor/llvm/dist/tools/llvm-size/Makefile vendor/llvm/dist/tools/llvm-split/Makefile vendor/llvm/dist/tools/llvm-stress/Makefile vendor/llvm/dist/tools/llvm-symbolizer/Makefile vendor/llvm/dist/tools/lto/Makefile vendor/llvm/dist/tools/obj2yaml/Makefile vendor/llvm/dist/tools/opt/Makefile vendor/llvm/dist/tools/sancov/Makefile vendor/llvm/dist/tools/verify-uselistorder/Makefile vendor/llvm/dist/tools/yaml2obj/Makefile vendor/llvm/dist/unittests/ADT/Makefile vendor/llvm/dist/unittests/Analysis/Makefile vendor/llvm/dist/unittests/AsmParser/Makefile vendor/llvm/dist/unittests/Bitcode/Makefile vendor/llvm/dist/unittests/CodeGen/Makefile vendor/llvm/dist/unittests/DebugInfo/DWARF/Makefile vendor/llvm/dist/unittests/DebugInfo/Makefile vendor/llvm/dist/unittests/DebugInfo/PDB/Makefile vendor/llvm/dist/unittests/ExecutionEngine/MCJIT/Makefile vendor/llvm/dist/unittests/ExecutionEngine/Makefile vendor/llvm/dist/unittests/ExecutionEngine/Orc/Makefile vendor/llvm/dist/unittests/IR/Makefile vendor/llvm/dist/unittests/LineEditor/Makefile vendor/llvm/dist/unittests/Linker/Makefile vendor/llvm/dist/unittests/MC/Makefile vendor/llvm/dist/unittests/MC/YAMLTest.cpp vendor/llvm/dist/unittests/Makefile vendor/llvm/dist/unittests/Makefile.unittest vendor/llvm/dist/unittests/Option/Makefile vendor/llvm/dist/unittests/ProfileData/Makefile vendor/llvm/dist/unittests/Support/Makefile vendor/llvm/dist/unittests/Support/StreamingMemoryObject.cpp vendor/llvm/dist/unittests/Support/TargetRegistry.cpp vendor/llvm/dist/unittests/Transforms/IPO/LowerBitSets.cpp vendor/llvm/dist/unittests/Transforms/IPO/Makefile vendor/llvm/dist/unittests/Transforms/Makefile vendor/llvm/dist/unittests/Transforms/Utils/Makefile vendor/llvm/dist/utils/FileCheck/Makefile vendor/llvm/dist/utils/Makefile vendor/llvm/dist/utils/Misc/mergefunctions.clang.svn.patch vendor/llvm/dist/utils/PerfectShuffle/Makefile vendor/llvm/dist/utils/TableGen/Makefile vendor/llvm/dist/utils/TableGen/module.modulemap vendor/llvm/dist/utils/buildit/GNUmakefile vendor/llvm/dist/utils/buildit/build_llvm vendor/llvm/dist/utils/count/Makefile vendor/llvm/dist/utils/fpcmp/Makefile vendor/llvm/dist/utils/llvm-lit/Makefile vendor/llvm/dist/utils/llvm.natvis vendor/llvm/dist/utils/not/Makefile vendor/llvm/dist/utils/unittest/Makefile vendor/llvm/dist/utils/unittest/UnitTestMain/Makefile vendor/llvm/dist/utils/unittest/googletest/Makefile vendor/llvm/dist/utils/yaml-bench/Makefile Modified: vendor/llvm/dist/.arcconfig vendor/llvm/dist/.clang-tidy vendor/llvm/dist/.gitignore vendor/llvm/dist/CMakeLists.txt vendor/llvm/dist/CODE_OWNERS.TXT vendor/llvm/dist/CREDITS.TXT vendor/llvm/dist/LICENSE.TXT vendor/llvm/dist/bindings/go/llvm/executionengine_test.go vendor/llvm/dist/bindings/go/llvm/target.go vendor/llvm/dist/bindings/ocaml/analysis/analysis_ocaml.c vendor/llvm/dist/bindings/ocaml/bitreader/bitreader_ocaml.c vendor/llvm/dist/bindings/ocaml/executionengine/executionengine_ocaml.c vendor/llvm/dist/bindings/ocaml/linker/linker_ocaml.c vendor/llvm/dist/bindings/ocaml/llvm/llvm.ml vendor/llvm/dist/bindings/ocaml/llvm/llvm.mli vendor/llvm/dist/bindings/ocaml/llvm/llvm_ocaml.c vendor/llvm/dist/bindings/ocaml/target/llvm_target.ml vendor/llvm/dist/bindings/ocaml/target/llvm_target.mli vendor/llvm/dist/bindings/ocaml/target/target_ocaml.c vendor/llvm/dist/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli vendor/llvm/dist/cmake/config-ix.cmake vendor/llvm/dist/cmake/modules/AddLLVM.cmake vendor/llvm/dist/cmake/modules/AddOCaml.cmake vendor/llvm/dist/cmake/modules/CMakeLists.txt vendor/llvm/dist/cmake/modules/CheckAtomic.cmake vendor/llvm/dist/cmake/modules/CrossCompile.cmake vendor/llvm/dist/cmake/modules/GetHostTriple.cmake vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake vendor/llvm/dist/cmake/modules/LLVMConfig.cmake.in vendor/llvm/dist/cmake/modules/LLVMExternalProjectUtils.cmake vendor/llvm/dist/cmake/modules/TableGen.cmake vendor/llvm/dist/cmake/modules/VersionFromVCS.cmake vendor/llvm/dist/cmake/platforms/iOS.cmake vendor/llvm/dist/configure vendor/llvm/dist/docs/AMDGPUUsage.rst vendor/llvm/dist/docs/AliasAnalysis.rst vendor/llvm/dist/docs/Atomics.rst vendor/llvm/dist/docs/BitCodeFormat.rst vendor/llvm/dist/docs/CMake.rst vendor/llvm/dist/docs/CodeGenerator.rst vendor/llvm/dist/docs/CommandGuide/FileCheck.rst vendor/llvm/dist/docs/CommandGuide/bugpoint.rst vendor/llvm/dist/docs/CommandGuide/lit.rst vendor/llvm/dist/docs/CommandGuide/llvm-cov.rst vendor/llvm/dist/docs/CommandGuide/llvm-nm.rst vendor/llvm/dist/docs/CommandGuide/llvm-profdata.rst vendor/llvm/dist/docs/CommandGuide/llvm-readobj.rst vendor/llvm/dist/docs/CompileCudaWithLLVM.rst vendor/llvm/dist/docs/CompilerWriterInfo.rst vendor/llvm/dist/docs/CoverageMappingFormat.rst vendor/llvm/dist/docs/DeveloperPolicy.rst vendor/llvm/dist/docs/FAQ.rst vendor/llvm/dist/docs/GettingStarted.rst vendor/llvm/dist/docs/GettingStartedVS.rst vendor/llvm/dist/docs/GoldPlugin.rst vendor/llvm/dist/docs/HowToCrossCompileLLVM.rst vendor/llvm/dist/docs/HowToReleaseLLVM.rst vendor/llvm/dist/docs/LLVMBuild.rst vendor/llvm/dist/docs/LangRef.rst vendor/llvm/dist/docs/LibFuzzer.rst vendor/llvm/dist/docs/LinkTimeOptimization.rst vendor/llvm/dist/docs/MergeFunctions.rst vendor/llvm/dist/docs/NVPTXUsage.rst vendor/llvm/dist/docs/Passes.rst vendor/llvm/dist/docs/Phabricator.rst vendor/llvm/dist/docs/ProgrammersManual.rst vendor/llvm/dist/docs/README.txt vendor/llvm/dist/docs/ReleaseNotes.rst vendor/llvm/dist/docs/SourceLevelDebugging.rst vendor/llvm/dist/docs/Statepoints.rst vendor/llvm/dist/docs/TableGen/LangRef.rst vendor/llvm/dist/docs/TestSuiteMakefileGuide.rst vendor/llvm/dist/docs/TestingGuide.rst vendor/llvm/dist/docs/WritingAnLLVMBackend.rst vendor/llvm/dist/docs/WritingAnLLVMPass.rst vendor/llvm/dist/docs/YamlIO.rst vendor/llvm/dist/docs/conf.py vendor/llvm/dist/docs/doxygen.cfg.in vendor/llvm/dist/docs/index.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl1.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl5.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl6.rst vendor/llvm/dist/docs/tutorial/OCamlLangImpl7.rst vendor/llvm/dist/docs/tutorial/index.rst vendor/llvm/dist/examples/BrainF/BrainF.cpp vendor/llvm/dist/examples/BrainF/BrainF.h vendor/llvm/dist/examples/BrainF/BrainFDriver.cpp vendor/llvm/dist/examples/ExceptionDemo/ExceptionDemo.cpp vendor/llvm/dist/examples/Fibonacci/CMakeLists.txt vendor/llvm/dist/examples/Fibonacci/fibonacci.cpp vendor/llvm/dist/examples/HowToUseJIT/HowToUseJIT.cpp vendor/llvm/dist/examples/Kaleidoscope/CMakeLists.txt vendor/llvm/dist/examples/Kaleidoscope/Chapter2/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter3/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter4/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter5/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter6/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter7/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/Chapter8/CMakeLists.txt vendor/llvm/dist/examples/Kaleidoscope/Chapter8/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/MCJIT/cached/toy-jit.cpp vendor/llvm/dist/examples/Kaleidoscope/MCJIT/cached/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/MCJIT/complete/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/MCJIT/initial/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/MCJIT/lazy/toy-jit.cpp vendor/llvm/dist/examples/Kaleidoscope/MCJIT/lazy/toy.cpp vendor/llvm/dist/examples/Kaleidoscope/include/KaleidoscopeJIT.h vendor/llvm/dist/examples/ModuleMaker/ModuleMaker.cpp vendor/llvm/dist/examples/ParallelJIT/CMakeLists.txt vendor/llvm/dist/examples/ParallelJIT/ParallelJIT.cpp vendor/llvm/dist/include/llvm-c/Core.h vendor/llvm/dist/include/llvm-c/Disassembler.h vendor/llvm/dist/include/llvm-c/ErrorHandling.h vendor/llvm/dist/include/llvm-c/Linker.h vendor/llvm/dist/include/llvm-c/OrcBindings.h vendor/llvm/dist/include/llvm-c/Target.h vendor/llvm/dist/include/llvm-c/TargetMachine.h vendor/llvm/dist/include/llvm-c/Transforms/Scalar.h vendor/llvm/dist/include/llvm-c/Types.h vendor/llvm/dist/include/llvm-c/lto.h vendor/llvm/dist/include/llvm/ADT/APFloat.h vendor/llvm/dist/include/llvm/ADT/APInt.h vendor/llvm/dist/include/llvm/ADT/ArrayRef.h vendor/llvm/dist/include/llvm/ADT/BitVector.h vendor/llvm/dist/include/llvm/ADT/DenseMap.h vendor/llvm/dist/include/llvm/ADT/DenseMapInfo.h vendor/llvm/dist/include/llvm/ADT/DenseSet.h vendor/llvm/dist/include/llvm/ADT/FoldingSet.h vendor/llvm/dist/include/llvm/ADT/Hashing.h vendor/llvm/dist/include/llvm/ADT/PointerEmbeddedInt.h vendor/llvm/dist/include/llvm/ADT/PostOrderIterator.h vendor/llvm/dist/include/llvm/ADT/STLExtras.h vendor/llvm/dist/include/llvm/ADT/SetVector.h vendor/llvm/dist/include/llvm/ADT/SmallBitVector.h vendor/llvm/dist/include/llvm/ADT/SmallPtrSet.h vendor/llvm/dist/include/llvm/ADT/SmallSet.h vendor/llvm/dist/include/llvm/ADT/SmallVector.h vendor/llvm/dist/include/llvm/ADT/SparseSet.h vendor/llvm/dist/include/llvm/ADT/Statistic.h vendor/llvm/dist/include/llvm/ADT/StringExtras.h vendor/llvm/dist/include/llvm/ADT/StringMap.h vendor/llvm/dist/include/llvm/ADT/StringRef.h vendor/llvm/dist/include/llvm/ADT/StringSet.h vendor/llvm/dist/include/llvm/ADT/TinyPtrVector.h vendor/llvm/dist/include/llvm/ADT/Triple.h vendor/llvm/dist/include/llvm/ADT/ilist.h vendor/llvm/dist/include/llvm/ADT/iterator.h vendor/llvm/dist/include/llvm/Analysis/AliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/AliasSetTracker.h vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h vendor/llvm/dist/include/llvm/Analysis/BasicAliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/BlockFrequencyInfo.h vendor/llvm/dist/include/llvm/Analysis/BlockFrequencyInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/BranchProbabilityInfo.h vendor/llvm/dist/include/llvm/Analysis/CGSCCPassManager.h vendor/llvm/dist/include/llvm/Analysis/CallGraph.h vendor/llvm/dist/include/llvm/Analysis/CallGraphSCCPass.h vendor/llvm/dist/include/llvm/Analysis/CallPrinter.h vendor/llvm/dist/include/llvm/Analysis/CodeMetrics.h vendor/llvm/dist/include/llvm/Analysis/ConstantFolding.h vendor/llvm/dist/include/llvm/Analysis/DemandedBits.h vendor/llvm/dist/include/llvm/Analysis/DependenceAnalysis.h vendor/llvm/dist/include/llvm/Analysis/DominanceFrontier.h vendor/llvm/dist/include/llvm/Analysis/EHPersonalities.h vendor/llvm/dist/include/llvm/Analysis/GlobalsModRef.h vendor/llvm/dist/include/llvm/Analysis/IVUsers.h vendor/llvm/dist/include/llvm/Analysis/InlineCost.h vendor/llvm/dist/include/llvm/Analysis/InstructionSimplify.h vendor/llvm/dist/include/llvm/Analysis/Interval.h vendor/llvm/dist/include/llvm/Analysis/IteratedDominanceFrontier.h vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h vendor/llvm/dist/include/llvm/Analysis/LazyValueInfo.h vendor/llvm/dist/include/llvm/Analysis/Loads.h vendor/llvm/dist/include/llvm/Analysis/LoopAccessAnalysis.h vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h vendor/llvm/dist/include/llvm/Analysis/LoopInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/LoopPass.h vendor/llvm/dist/include/llvm/Analysis/MemoryBuiltins.h vendor/llvm/dist/include/llvm/Analysis/MemoryDependenceAnalysis.h vendor/llvm/dist/include/llvm/Analysis/MemoryLocation.h vendor/llvm/dist/include/llvm/Analysis/ObjCARCAliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/ObjCARCAnalysisUtils.h vendor/llvm/dist/include/llvm/Analysis/ObjCARCInstKind.h vendor/llvm/dist/include/llvm/Analysis/Passes.h vendor/llvm/dist/include/llvm/Analysis/PostDominators.h vendor/llvm/dist/include/llvm/Analysis/RegionInfo.h vendor/llvm/dist/include/llvm/Analysis/RegionInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h vendor/llvm/dist/include/llvm/Analysis/ScopedNoAliasAA.h vendor/llvm/dist/include/llvm/Analysis/SparsePropagation.h vendor/llvm/dist/include/llvm/Analysis/TargetLibraryInfo.def vendor/llvm/dist/include/llvm/Analysis/TargetLibraryInfo.h vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfo.h vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/TypeBasedAliasAnalysis.h vendor/llvm/dist/include/llvm/Analysis/ValueTracking.h vendor/llvm/dist/include/llvm/Analysis/VectorUtils.h vendor/llvm/dist/include/llvm/AsmParser/Parser.h vendor/llvm/dist/include/llvm/Bitcode/BitCodes.h vendor/llvm/dist/include/llvm/Bitcode/BitcodeWriterPass.h vendor/llvm/dist/include/llvm/Bitcode/BitstreamReader.h vendor/llvm/dist/include/llvm/Bitcode/BitstreamWriter.h vendor/llvm/dist/include/llvm/Bitcode/LLVMBitCodes.h vendor/llvm/dist/include/llvm/Bitcode/ReaderWriter.h vendor/llvm/dist/include/llvm/CodeGen/Analysis.h vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h vendor/llvm/dist/include/llvm/CodeGen/CallingConvLower.h vendor/llvm/dist/include/llvm/CodeGen/CommandFlags.h vendor/llvm/dist/include/llvm/CodeGen/DFAPacketizer.h vendor/llvm/dist/include/llvm/CodeGen/DIE.h vendor/llvm/dist/include/llvm/CodeGen/DIEValue.def vendor/llvm/dist/include/llvm/CodeGen/FastISel.h vendor/llvm/dist/include/llvm/CodeGen/FaultMaps.h vendor/llvm/dist/include/llvm/CodeGen/FunctionLoweringInfo.h vendor/llvm/dist/include/llvm/CodeGen/GCMetadata.h vendor/llvm/dist/include/llvm/CodeGen/ISDOpcodes.h vendor/llvm/dist/include/llvm/CodeGen/LiveInterval.h vendor/llvm/dist/include/llvm/CodeGen/LiveIntervalAnalysis.h vendor/llvm/dist/include/llvm/CodeGen/LivePhysRegs.h vendor/llvm/dist/include/llvm/CodeGen/LiveRangeEdit.h vendor/llvm/dist/include/llvm/CodeGen/LiveVariables.h vendor/llvm/dist/include/llvm/CodeGen/MIRParser/MIRParser.h vendor/llvm/dist/include/llvm/CodeGen/MIRYamlMapping.h vendor/llvm/dist/include/llvm/CodeGen/MachineBasicBlock.h vendor/llvm/dist/include/llvm/CodeGen/MachineBlockFrequencyInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineCombinerPattern.h vendor/llvm/dist/include/llvm/CodeGen/MachineDominators.h vendor/llvm/dist/include/llvm/CodeGen/MachineFrameInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineFunction.h vendor/llvm/dist/include/llvm/CodeGen/MachineFunctionPass.h vendor/llvm/dist/include/llvm/CodeGen/MachineInstr.h vendor/llvm/dist/include/llvm/CodeGen/MachineInstrBuilder.h vendor/llvm/dist/include/llvm/CodeGen/MachineInstrBundle.h vendor/llvm/dist/include/llvm/CodeGen/MachineLoopInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineMemOperand.h vendor/llvm/dist/include/llvm/CodeGen/MachineModuleInfoImpls.h vendor/llvm/dist/include/llvm/CodeGen/MachineOperand.h vendor/llvm/dist/include/llvm/CodeGen/MachineRegisterInfo.h vendor/llvm/dist/include/llvm/CodeGen/MachineSSAUpdater.h vendor/llvm/dist/include/llvm/CodeGen/MachineScheduler.h vendor/llvm/dist/include/llvm/CodeGen/MachineTraceMetrics.h vendor/llvm/dist/include/llvm/CodeGen/MachineValueType.h vendor/llvm/dist/include/llvm/CodeGen/PBQP/Graph.h vendor/llvm/dist/include/llvm/CodeGen/ParallelCG.h vendor/llvm/dist/include/llvm/CodeGen/Passes.h vendor/llvm/dist/include/llvm/CodeGen/PseudoSourceValue.h vendor/llvm/dist/include/llvm/CodeGen/RegAllocPBQP.h vendor/llvm/dist/include/llvm/CodeGen/RegisterPressure.h vendor/llvm/dist/include/llvm/CodeGen/RegisterScavenging.h vendor/llvm/dist/include/llvm/CodeGen/ResourcePriorityQueue.h vendor/llvm/dist/include/llvm/CodeGen/RuntimeLibcalls.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAG.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAGInstrs.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleHazardRecognizer.h vendor/llvm/dist/include/llvm/CodeGen/ScoreboardHazardRecognizer.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGISel.h vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h vendor/llvm/dist/include/llvm/CodeGen/SlotIndexes.h vendor/llvm/dist/include/llvm/CodeGen/StackMaps.h vendor/llvm/dist/include/llvm/CodeGen/StackProtector.h vendor/llvm/dist/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.h vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.td vendor/llvm/dist/include/llvm/CodeGen/WinEHFuncInfo.h vendor/llvm/dist/include/llvm/Config/config.h.cmake vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeView.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/FieldListRecordBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/Line.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ListRecordBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/MemoryTypeTableBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeIndex.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecord.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecordBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/DIContext.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFContext.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFFormValue.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFUnit.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIASession.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIASupport.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBDataStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBLineNumber.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBSession.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBSourceFile.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDB.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBContext.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBExtras.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymDumper.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolData.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolExe.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBTypes.h vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/DIPrinter.h vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/Symbolize.h vendor/llvm/dist/include/llvm/ExecutionEngine/ExecutionEngine.h vendor/llvm/dist/include/llvm/ExecutionEngine/GenericValue.h vendor/llvm/dist/include/llvm/ExecutionEngine/JITEventListener.h vendor/llvm/dist/include/llvm/ExecutionEngine/JITSymbolFlags.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/CompileUtils.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/JITSymbol.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/LambdaResolver.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcError.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RPCChannel.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RPCUtils.h vendor/llvm/dist/include/llvm/ExecutionEngine/RTDyldMemoryManager.h vendor/llvm/dist/include/llvm/ExecutionEngine/RuntimeDyld.h vendor/llvm/dist/include/llvm/ExecutionEngine/RuntimeDyldChecker.h vendor/llvm/dist/include/llvm/IR/Argument.h vendor/llvm/dist/include/llvm/IR/Attributes.h vendor/llvm/dist/include/llvm/IR/Attributes.td vendor/llvm/dist/include/llvm/IR/AutoUpgrade.h vendor/llvm/dist/include/llvm/IR/BasicBlock.h vendor/llvm/dist/include/llvm/IR/CallSite.h vendor/llvm/dist/include/llvm/IR/CallingConv.h vendor/llvm/dist/include/llvm/IR/Comdat.h vendor/llvm/dist/include/llvm/IR/Constant.h vendor/llvm/dist/include/llvm/IR/ConstantRange.h vendor/llvm/dist/include/llvm/IR/Constants.h vendor/llvm/dist/include/llvm/IR/DIBuilder.h vendor/llvm/dist/include/llvm/IR/DataLayout.h vendor/llvm/dist/include/llvm/IR/DebugInfo.h vendor/llvm/dist/include/llvm/IR/DebugInfoFlags.def vendor/llvm/dist/include/llvm/IR/DebugInfoMetadata.h vendor/llvm/dist/include/llvm/IR/DerivedTypes.h vendor/llvm/dist/include/llvm/IR/DiagnosticInfo.h vendor/llvm/dist/include/llvm/IR/Dominators.h vendor/llvm/dist/include/llvm/IR/Function.h vendor/llvm/dist/include/llvm/IR/GVMaterializer.h vendor/llvm/dist/include/llvm/IR/GetElementPtrTypeIterator.h vendor/llvm/dist/include/llvm/IR/GlobalAlias.h vendor/llvm/dist/include/llvm/IR/GlobalObject.h vendor/llvm/dist/include/llvm/IR/GlobalValue.h vendor/llvm/dist/include/llvm/IR/GlobalVariable.h vendor/llvm/dist/include/llvm/IR/IRBuilder.h vendor/llvm/dist/include/llvm/IR/IRPrintingPasses.h vendor/llvm/dist/include/llvm/IR/InlineAsm.h vendor/llvm/dist/include/llvm/IR/InstrTypes.h vendor/llvm/dist/include/llvm/IR/Instruction.h vendor/llvm/dist/include/llvm/IR/Instructions.h vendor/llvm/dist/include/llvm/IR/IntrinsicInst.h vendor/llvm/dist/include/llvm/IR/Intrinsics.h vendor/llvm/dist/include/llvm/IR/Intrinsics.td vendor/llvm/dist/include/llvm/IR/IntrinsicsAArch64.td vendor/llvm/dist/include/llvm/IR/IntrinsicsAMDGPU.td vendor/llvm/dist/include/llvm/IR/IntrinsicsARM.td vendor/llvm/dist/include/llvm/IR/IntrinsicsHexagon.td vendor/llvm/dist/include/llvm/IR/IntrinsicsMips.td vendor/llvm/dist/include/llvm/IR/IntrinsicsNVVM.td vendor/llvm/dist/include/llvm/IR/IntrinsicsPowerPC.td vendor/llvm/dist/include/llvm/IR/IntrinsicsSystemZ.td vendor/llvm/dist/include/llvm/IR/IntrinsicsWebAssembly.td vendor/llvm/dist/include/llvm/IR/IntrinsicsX86.td vendor/llvm/dist/include/llvm/IR/LLVMContext.h vendor/llvm/dist/include/llvm/IR/LegacyPassManagers.h vendor/llvm/dist/include/llvm/IR/Mangler.h vendor/llvm/dist/include/llvm/IR/Metadata.def vendor/llvm/dist/include/llvm/IR/Metadata.h vendor/llvm/dist/include/llvm/IR/Module.h vendor/llvm/dist/include/llvm/IR/ModuleSlotTracker.h vendor/llvm/dist/include/llvm/IR/Operator.h vendor/llvm/dist/include/llvm/IR/PassManager.h vendor/llvm/dist/include/llvm/IR/PassManagerInternal.h vendor/llvm/dist/include/llvm/IR/PatternMatch.h vendor/llvm/dist/include/llvm/IR/Statepoint.h vendor/llvm/dist/include/llvm/IR/SymbolTableListTraits.h vendor/llvm/dist/include/llvm/IR/TrackingMDRef.h vendor/llvm/dist/include/llvm/IR/Type.h vendor/llvm/dist/include/llvm/IR/TypeFinder.h vendor/llvm/dist/include/llvm/IR/Use.h vendor/llvm/dist/include/llvm/IR/UseListOrder.h vendor/llvm/dist/include/llvm/IR/User.h vendor/llvm/dist/include/llvm/IR/Value.def vendor/llvm/dist/include/llvm/IR/Value.h vendor/llvm/dist/include/llvm/IR/ValueMap.h vendor/llvm/dist/include/llvm/IR/ValueSymbolTable.h vendor/llvm/dist/include/llvm/IR/Verifier.h vendor/llvm/dist/include/llvm/IRReader/IRReader.h vendor/llvm/dist/include/llvm/InitializePasses.h vendor/llvm/dist/include/llvm/LibDriver/LibDriver.h vendor/llvm/dist/include/llvm/LineEditor/LineEditor.h vendor/llvm/dist/include/llvm/LinkAllIR.h vendor/llvm/dist/include/llvm/LinkAllPasses.h vendor/llvm/dist/include/llvm/Linker/IRMover.h vendor/llvm/dist/include/llvm/Linker/Linker.h vendor/llvm/dist/include/llvm/MC/MCAsmBackend.h vendor/llvm/dist/include/llvm/MC/MCAsmInfo.h vendor/llvm/dist/include/llvm/MC/MCAsmInfoELF.h vendor/llvm/dist/include/llvm/MC/MCAssembler.h vendor/llvm/dist/include/llvm/MC/MCContext.h vendor/llvm/dist/include/llvm/MC/MCDirectives.h vendor/llvm/dist/include/llvm/MC/MCDwarf.h vendor/llvm/dist/include/llvm/MC/MCELFObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCELFStreamer.h vendor/llvm/dist/include/llvm/MC/MCExpr.h vendor/llvm/dist/include/llvm/MC/MCFragment.h vendor/llvm/dist/include/llvm/MC/MCInstPrinter.h vendor/llvm/dist/include/llvm/MC/MCLinkerOptimizationHint.h vendor/llvm/dist/include/llvm/MC/MCMachObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCObjectFileInfo.h vendor/llvm/dist/include/llvm/MC/MCObjectStreamer.h vendor/llvm/dist/include/llvm/MC/MCObjectWriter.h vendor/llvm/dist/include/llvm/MC/MCParser/AsmLexer.h vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmLexer.h vendor/llvm/dist/include/llvm/MC/MCRegisterInfo.h vendor/llvm/dist/include/llvm/MC/MCSchedule.h vendor/llvm/dist/include/llvm/MC/MCSection.h vendor/llvm/dist/include/llvm/MC/MCSectionCOFF.h vendor/llvm/dist/include/llvm/MC/MCSectionELF.h vendor/llvm/dist/include/llvm/MC/MCStreamer.h vendor/llvm/dist/include/llvm/MC/MCSubtargetInfo.h vendor/llvm/dist/include/llvm/MC/MCSymbol.h vendor/llvm/dist/include/llvm/MC/MCSymbolMachO.h vendor/llvm/dist/include/llvm/MC/MCTargetOptions.h vendor/llvm/dist/include/llvm/MC/MCWin64EH.h vendor/llvm/dist/include/llvm/MC/MCWinEH.h vendor/llvm/dist/include/llvm/MC/SectionKind.h vendor/llvm/dist/include/llvm/MC/StringTableBuilder.h vendor/llvm/dist/include/llvm/MC/SubtargetFeature.h vendor/llvm/dist/include/llvm/Object/Archive.h vendor/llvm/dist/include/llvm/Object/ArchiveWriter.h vendor/llvm/dist/include/llvm/Object/Binary.h vendor/llvm/dist/include/llvm/Object/COFF.h vendor/llvm/dist/include/llvm/Object/ELF.h vendor/llvm/dist/include/llvm/Object/ELFObjectFile.h vendor/llvm/dist/include/llvm/Object/ELFTypes.h vendor/llvm/dist/include/llvm/Object/Error.h vendor/llvm/dist/include/llvm/Object/IRObjectFile.h vendor/llvm/dist/include/llvm/Object/MachO.h vendor/llvm/dist/include/llvm/Object/MachOUniversal.h vendor/llvm/dist/include/llvm/Object/ObjectFile.h vendor/llvm/dist/include/llvm/Object/RelocVisitor.h vendor/llvm/dist/include/llvm/Object/StackMapParser.h vendor/llvm/dist/include/llvm/Object/SymbolicFile.h vendor/llvm/dist/include/llvm/Option/OptParser.td vendor/llvm/dist/include/llvm/Option/Option.h vendor/llvm/dist/include/llvm/Pass.h vendor/llvm/dist/include/llvm/PassAnalysisSupport.h vendor/llvm/dist/include/llvm/PassRegistry.h vendor/llvm/dist/include/llvm/PassSupport.h vendor/llvm/dist/include/llvm/Passes/PassBuilder.h vendor/llvm/dist/include/llvm/ProfileData/InstrProf.h vendor/llvm/dist/include/llvm/ProfileData/InstrProfData.inc vendor/llvm/dist/include/llvm/ProfileData/InstrProfReader.h vendor/llvm/dist/include/llvm/ProfileData/InstrProfWriter.h vendor/llvm/dist/include/llvm/ProfileData/SampleProf.h vendor/llvm/dist/include/llvm/ProfileData/SampleProfReader.h vendor/llvm/dist/include/llvm/ProfileData/SampleProfWriter.h vendor/llvm/dist/include/llvm/Support/ARMBuildAttributes.h vendor/llvm/dist/include/llvm/Support/ARMTargetParser.def vendor/llvm/dist/include/llvm/Support/AlignOf.h vendor/llvm/dist/include/llvm/Support/Allocator.h vendor/llvm/dist/include/llvm/Support/Atomic.h vendor/llvm/dist/include/llvm/Support/BranchProbability.h vendor/llvm/dist/include/llvm/Support/COFF.h vendor/llvm/dist/include/llvm/Support/CodeGen.h vendor/llvm/dist/include/llvm/Support/CommandLine.h vendor/llvm/dist/include/llvm/Support/Compiler.h vendor/llvm/dist/include/llvm/Support/ConvertUTF.h vendor/llvm/dist/include/llvm/Support/CrashRecoveryContext.h vendor/llvm/dist/include/llvm/Support/DataTypes.h.cmake vendor/llvm/dist/include/llvm/Support/Dwarf.def vendor/llvm/dist/include/llvm/Support/Dwarf.h vendor/llvm/dist/include/llvm/Support/ELF.h vendor/llvm/dist/include/llvm/Support/ELFRelocs/Hexagon.def vendor/llvm/dist/include/llvm/Support/ELFRelocs/Mips.def vendor/llvm/dist/include/llvm/Support/ELFRelocs/i386.def vendor/llvm/dist/include/llvm/Support/ELFRelocs/x86_64.def vendor/llvm/dist/include/llvm/Support/Endian.h vendor/llvm/dist/include/llvm/Support/EndianStream.h vendor/llvm/dist/include/llvm/Support/ErrorHandling.h vendor/llvm/dist/include/llvm/Support/ErrorOr.h vendor/llvm/dist/include/llvm/Support/FileSystem.h vendor/llvm/dist/include/llvm/Support/Format.h vendor/llvm/dist/include/llvm/Support/GenericDomTree.h vendor/llvm/dist/include/llvm/Support/Host.h vendor/llvm/dist/include/llvm/Support/JamCRC.h vendor/llvm/dist/include/llvm/Support/Locale.h vendor/llvm/dist/include/llvm/Support/LockFileManager.h vendor/llvm/dist/include/llvm/Support/MD5.h vendor/llvm/dist/include/llvm/Support/MachO.h vendor/llvm/dist/include/llvm/Support/ManagedStatic.h vendor/llvm/dist/include/llvm/Support/MathExtras.h vendor/llvm/dist/include/llvm/Support/OnDiskHashTable.h vendor/llvm/dist/include/llvm/Support/Path.h vendor/llvm/dist/include/llvm/Support/PointerLikeTypeTraits.h vendor/llvm/dist/include/llvm/Support/PrettyStackTrace.h vendor/llvm/dist/include/llvm/Support/Printable.h vendor/llvm/dist/include/llvm/Support/Process.h vendor/llvm/dist/include/llvm/Support/Program.h vendor/llvm/dist/include/llvm/Support/RandomNumberGenerator.h vendor/llvm/dist/include/llvm/Support/Registry.h vendor/llvm/dist/include/llvm/Support/ScaledNumber.h vendor/llvm/dist/include/llvm/Support/Signals.h vendor/llvm/dist/include/llvm/Support/StreamingMemoryObject.h vendor/llvm/dist/include/llvm/Support/SwapByteOrder.h vendor/llvm/dist/include/llvm/Support/TargetParser.h vendor/llvm/dist/include/llvm/Support/TargetRegistry.h vendor/llvm/dist/include/llvm/Support/ThreadPool.h vendor/llvm/dist/include/llvm/Support/Threading.h vendor/llvm/dist/include/llvm/Support/Timer.h vendor/llvm/dist/include/llvm/Support/TrailingObjects.h vendor/llvm/dist/include/llvm/Support/Unicode.h vendor/llvm/dist/include/llvm/Support/Valgrind.h vendor/llvm/dist/include/llvm/Support/YAMLParser.h vendor/llvm/dist/include/llvm/Support/YAMLTraits.h vendor/llvm/dist/include/llvm/Support/thread.h vendor/llvm/dist/include/llvm/Support/type_traits.h vendor/llvm/dist/include/llvm/TableGen/Record.h vendor/llvm/dist/include/llvm/TableGen/StringToOffsetTable.h vendor/llvm/dist/include/llvm/Target/Target.td vendor/llvm/dist/include/llvm/Target/TargetCallingConv.h vendor/llvm/dist/include/llvm/Target/TargetCallingConv.td vendor/llvm/dist/include/llvm/Target/TargetFrameLowering.h vendor/llvm/dist/include/llvm/Target/TargetInstrInfo.h vendor/llvm/dist/include/llvm/Target/TargetLowering.h vendor/llvm/dist/include/llvm/Target/TargetLoweringObjectFile.h vendor/llvm/dist/include/llvm/Target/TargetMachine.h vendor/llvm/dist/include/llvm/Target/TargetOpcodes.h vendor/llvm/dist/include/llvm/Target/TargetOptions.h vendor/llvm/dist/include/llvm/Target/TargetRecip.h vendor/llvm/dist/include/llvm/Target/TargetRegisterInfo.h vendor/llvm/dist/include/llvm/Target/TargetSchedule.td vendor/llvm/dist/include/llvm/Target/TargetSelectionDAG.td vendor/llvm/dist/include/llvm/Target/TargetSubtargetInfo.h vendor/llvm/dist/include/llvm/Transforms/IPO.h vendor/llvm/dist/include/llvm/Transforms/IPO/ForceFunctionAttrs.h vendor/llvm/dist/include/llvm/Transforms/IPO/FunctionImport.h vendor/llvm/dist/include/llvm/Transforms/IPO/InferFunctionAttrs.h vendor/llvm/dist/include/llvm/Transforms/IPO/InlinerPass.h vendor/llvm/dist/include/llvm/Transforms/IPO/PassManagerBuilder.h vendor/llvm/dist/include/llvm/Transforms/IPO/StripDeadPrototypes.h vendor/llvm/dist/include/llvm/Transforms/InstCombine/InstCombine.h vendor/llvm/dist/include/llvm/Transforms/InstCombine/InstCombineWorklist.h vendor/llvm/dist/include/llvm/Transforms/Instrumentation.h vendor/llvm/dist/include/llvm/Transforms/Scalar.h vendor/llvm/dist/include/llvm/Transforms/Scalar/ADCE.h vendor/llvm/dist/include/llvm/Transforms/Scalar/EarlyCSE.h vendor/llvm/dist/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h vendor/llvm/dist/include/llvm/Transforms/Scalar/SROA.h vendor/llvm/dist/include/llvm/Transforms/Scalar/SimplifyCFG.h vendor/llvm/dist/include/llvm/Transforms/Utils/BasicBlockUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/BuildLibCalls.h vendor/llvm/dist/include/llvm/Transforms/Utils/Cloning.h vendor/llvm/dist/include/llvm/Transforms/Utils/CodeExtractor.h vendor/llvm/dist/include/llvm/Transforms/Utils/Local.h vendor/llvm/dist/include/llvm/Transforms/Utils/LoopUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/LoopVersioning.h vendor/llvm/dist/include/llvm/Transforms/Utils/ModuleUtils.h vendor/llvm/dist/include/llvm/Transforms/Utils/PromoteMemToReg.h vendor/llvm/dist/include/llvm/Transforms/Utils/SSAUpdater.h vendor/llvm/dist/include/llvm/Transforms/Utils/SSAUpdaterImpl.h vendor/llvm/dist/include/llvm/Transforms/Utils/SimplifyIndVar.h vendor/llvm/dist/include/llvm/Transforms/Utils/SimplifyLibCalls.h vendor/llvm/dist/include/llvm/Transforms/Utils/SplitModule.h vendor/llvm/dist/include/llvm/Transforms/Utils/UnrollLoop.h vendor/llvm/dist/include/llvm/Transforms/Utils/ValueMapper.h vendor/llvm/dist/include/llvm/Transforms/Vectorize.h vendor/llvm/dist/include/llvm/module.modulemap vendor/llvm/dist/lib/Analysis/AliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/AliasAnalysisEvaluator.cpp vendor/llvm/dist/lib/Analysis/AliasSetTracker.cpp vendor/llvm/dist/lib/Analysis/Analysis.cpp vendor/llvm/dist/lib/Analysis/AssumptionCache.cpp vendor/llvm/dist/lib/Analysis/BasicAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/BlockFrequencyInfo.cpp vendor/llvm/dist/lib/Analysis/BlockFrequencyInfoImpl.cpp vendor/llvm/dist/lib/Analysis/BranchProbabilityInfo.cpp vendor/llvm/dist/lib/Analysis/CFG.cpp vendor/llvm/dist/lib/Analysis/CGSCCPassManager.cpp vendor/llvm/dist/lib/Analysis/CMakeLists.txt vendor/llvm/dist/lib/Analysis/CallGraph.cpp vendor/llvm/dist/lib/Analysis/CallGraphSCCPass.cpp vendor/llvm/dist/lib/Analysis/CallPrinter.cpp vendor/llvm/dist/lib/Analysis/CaptureTracking.cpp vendor/llvm/dist/lib/Analysis/CodeMetrics.cpp vendor/llvm/dist/lib/Analysis/ConstantFolding.cpp vendor/llvm/dist/lib/Analysis/CostModel.cpp vendor/llvm/dist/lib/Analysis/Delinearization.cpp vendor/llvm/dist/lib/Analysis/DemandedBits.cpp vendor/llvm/dist/lib/Analysis/DependenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/DivergenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/DomPrinter.cpp vendor/llvm/dist/lib/Analysis/DominanceFrontier.cpp vendor/llvm/dist/lib/Analysis/EHPersonalities.cpp vendor/llvm/dist/lib/Analysis/GlobalsModRef.cpp vendor/llvm/dist/lib/Analysis/IVUsers.cpp vendor/llvm/dist/lib/Analysis/InlineCost.cpp vendor/llvm/dist/lib/Analysis/InstructionSimplify.cpp vendor/llvm/dist/lib/Analysis/Interval.cpp vendor/llvm/dist/lib/Analysis/IntervalPartition.cpp vendor/llvm/dist/lib/Analysis/IteratedDominanceFrontier.cpp vendor/llvm/dist/lib/Analysis/LLVMBuild.txt vendor/llvm/dist/lib/Analysis/LazyCallGraph.cpp vendor/llvm/dist/lib/Analysis/LazyValueInfo.cpp vendor/llvm/dist/lib/Analysis/Lint.cpp vendor/llvm/dist/lib/Analysis/Loads.cpp vendor/llvm/dist/lib/Analysis/LoopAccessAnalysis.cpp vendor/llvm/dist/lib/Analysis/LoopInfo.cpp vendor/llvm/dist/lib/Analysis/LoopPass.cpp vendor/llvm/dist/lib/Analysis/MemDepPrinter.cpp vendor/llvm/dist/lib/Analysis/MemDerefPrinter.cpp vendor/llvm/dist/lib/Analysis/MemoryBuiltins.cpp vendor/llvm/dist/lib/Analysis/MemoryDependenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/MemoryLocation.cpp vendor/llvm/dist/lib/Analysis/ObjCARCAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/ObjCARCInstKind.cpp vendor/llvm/dist/lib/Analysis/PHITransAddr.cpp vendor/llvm/dist/lib/Analysis/PostDominators.cpp vendor/llvm/dist/lib/Analysis/RegionInfo.cpp vendor/llvm/dist/lib/Analysis/RegionPrinter.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolutionExpander.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolutionNormalization.cpp vendor/llvm/dist/lib/Analysis/ScopedNoAliasAA.cpp vendor/llvm/dist/lib/Analysis/SparsePropagation.cpp vendor/llvm/dist/lib/Analysis/StratifiedSets.h vendor/llvm/dist/lib/Analysis/TargetLibraryInfo.cpp vendor/llvm/dist/lib/Analysis/TargetTransformInfo.cpp vendor/llvm/dist/lib/Analysis/Trace.cpp vendor/llvm/dist/lib/Analysis/TypeBasedAliasAnalysis.cpp vendor/llvm/dist/lib/Analysis/ValueTracking.cpp vendor/llvm/dist/lib/Analysis/VectorUtils.cpp vendor/llvm/dist/lib/AsmParser/LLLexer.cpp vendor/llvm/dist/lib/AsmParser/LLParser.cpp vendor/llvm/dist/lib/AsmParser/LLParser.h vendor/llvm/dist/lib/AsmParser/LLToken.h vendor/llvm/dist/lib/AsmParser/Parser.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitReader.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitstreamReader.cpp vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriter.cpp vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriterPass.cpp vendor/llvm/dist/lib/Bitcode/Writer/LLVMBuild.txt vendor/llvm/dist/lib/Bitcode/Writer/ValueEnumerator.cpp vendor/llvm/dist/lib/Bitcode/Writer/ValueEnumerator.h vendor/llvm/dist/lib/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/AggressiveAntiDepBreaker.cpp vendor/llvm/dist/lib/CodeGen/AggressiveAntiDepBreaker.h vendor/llvm/dist/lib/CodeGen/Analysis.cpp vendor/llvm/dist/lib/CodeGen/AntiDepBreaker.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/ARMException.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AddressPool.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinterHandler.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/ByteStreamer.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIEHash.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIEHash.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DebugLocEntry.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfException.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfExpression.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfExpression.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfFile.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfFile.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfUnit.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfUnit.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/EHStreamer.h vendor/llvm/dist/lib/CodeGen/AsmPrinter/LLVMBuild.txt vendor/llvm/dist/lib/CodeGen/AsmPrinter/WinException.cpp vendor/llvm/dist/lib/CodeGen/AtomicExpandPass.cpp vendor/llvm/dist/lib/CodeGen/BranchFolding.cpp vendor/llvm/dist/lib/CodeGen/BranchFolding.h vendor/llvm/dist/lib/CodeGen/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/CalcSpillWeights.cpp vendor/llvm/dist/lib/CodeGen/CallingConvLower.cpp vendor/llvm/dist/lib/CodeGen/CodeGen.cpp vendor/llvm/dist/lib/CodeGen/CodeGenPrepare.cpp vendor/llvm/dist/lib/CodeGen/CriticalAntiDepBreaker.cpp vendor/llvm/dist/lib/CodeGen/CriticalAntiDepBreaker.h vendor/llvm/dist/lib/CodeGen/DFAPacketizer.cpp vendor/llvm/dist/lib/CodeGen/DeadMachineInstructionElim.cpp vendor/llvm/dist/lib/CodeGen/EarlyIfConversion.cpp vendor/llvm/dist/lib/CodeGen/ExecutionDepsFix.cpp vendor/llvm/dist/lib/CodeGen/ExpandISelPseudos.cpp vendor/llvm/dist/lib/CodeGen/ExpandPostRAPseudos.cpp vendor/llvm/dist/lib/CodeGen/FuncletLayout.cpp vendor/llvm/dist/lib/CodeGen/GCRootLowering.cpp vendor/llvm/dist/lib/CodeGen/GlobalMerge.cpp vendor/llvm/dist/lib/CodeGen/IfConversion.cpp vendor/llvm/dist/lib/CodeGen/ImplicitNullChecks.cpp vendor/llvm/dist/lib/CodeGen/InlineSpiller.cpp vendor/llvm/dist/lib/CodeGen/InterleavedAccessPass.cpp vendor/llvm/dist/lib/CodeGen/LLVMBuild.txt vendor/llvm/dist/lib/CodeGen/LLVMTargetMachine.cpp vendor/llvm/dist/lib/CodeGen/LexicalScopes.cpp vendor/llvm/dist/lib/CodeGen/LiveDebugValues.cpp vendor/llvm/dist/lib/CodeGen/LiveDebugVariables.cpp vendor/llvm/dist/lib/CodeGen/LiveDebugVariables.h vendor/llvm/dist/lib/CodeGen/LiveInterval.cpp vendor/llvm/dist/lib/CodeGen/LiveIntervalAnalysis.cpp vendor/llvm/dist/lib/CodeGen/LivePhysRegs.cpp vendor/llvm/dist/lib/CodeGen/LiveRangeCalc.cpp vendor/llvm/dist/lib/CodeGen/LiveRangeCalc.h vendor/llvm/dist/lib/CodeGen/LiveRangeEdit.cpp vendor/llvm/dist/lib/CodeGen/LiveStackAnalysis.cpp vendor/llvm/dist/lib/CodeGen/LiveVariables.cpp vendor/llvm/dist/lib/CodeGen/LocalStackSlotAllocation.cpp vendor/llvm/dist/lib/CodeGen/MIRParser/MILexer.cpp vendor/llvm/dist/lib/CodeGen/MIRParser/MILexer.h vendor/llvm/dist/lib/CodeGen/MIRParser/MIParser.cpp vendor/llvm/dist/lib/CodeGen/MIRParser/MIParser.h vendor/llvm/dist/lib/CodeGen/MIRParser/MIRParser.cpp vendor/llvm/dist/lib/CodeGen/MIRPrinter.cpp vendor/llvm/dist/lib/CodeGen/MachineBasicBlock.cpp vendor/llvm/dist/lib/CodeGen/MachineBlockFrequencyInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineBlockPlacement.cpp vendor/llvm/dist/lib/CodeGen/MachineBranchProbabilityInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineCSE.cpp vendor/llvm/dist/lib/CodeGen/MachineCombiner.cpp vendor/llvm/dist/lib/CodeGen/MachineCopyPropagation.cpp vendor/llvm/dist/lib/CodeGen/MachineDominators.cpp vendor/llvm/dist/lib/CodeGen/MachineFunction.cpp vendor/llvm/dist/lib/CodeGen/MachineFunctionPass.cpp vendor/llvm/dist/lib/CodeGen/MachineInstr.cpp vendor/llvm/dist/lib/CodeGen/MachineInstrBundle.cpp vendor/llvm/dist/lib/CodeGen/MachineLICM.cpp vendor/llvm/dist/lib/CodeGen/MachineLoopInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineModuleInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineRegionInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineRegisterInfo.cpp vendor/llvm/dist/lib/CodeGen/MachineSSAUpdater.cpp vendor/llvm/dist/lib/CodeGen/MachineScheduler.cpp vendor/llvm/dist/lib/CodeGen/MachineSink.cpp vendor/llvm/dist/lib/CodeGen/MachineTraceMetrics.cpp vendor/llvm/dist/lib/CodeGen/MachineVerifier.cpp vendor/llvm/dist/lib/CodeGen/OptimizePHIs.cpp vendor/llvm/dist/lib/CodeGen/PHIElimination.cpp vendor/llvm/dist/lib/CodeGen/ParallelCG.cpp vendor/llvm/dist/lib/CodeGen/PeepholeOptimizer.cpp vendor/llvm/dist/lib/CodeGen/PostRASchedulerList.cpp vendor/llvm/dist/lib/CodeGen/PrologEpilogInserter.cpp vendor/llvm/dist/lib/CodeGen/PseudoSourceValue.cpp vendor/llvm/dist/lib/CodeGen/RegAllocBase.cpp vendor/llvm/dist/lib/CodeGen/RegAllocBase.h vendor/llvm/dist/lib/CodeGen/RegAllocBasic.cpp vendor/llvm/dist/lib/CodeGen/RegAllocFast.cpp vendor/llvm/dist/lib/CodeGen/RegAllocGreedy.cpp vendor/llvm/dist/lib/CodeGen/RegAllocPBQP.cpp vendor/llvm/dist/lib/CodeGen/RegisterCoalescer.cpp vendor/llvm/dist/lib/CodeGen/RegisterPressure.cpp vendor/llvm/dist/lib/CodeGen/RegisterScavenging.cpp vendor/llvm/dist/lib/CodeGen/ScheduleDAGInstrs.cpp vendor/llvm/dist/lib/CodeGen/ScheduleDAGPrinter.cpp vendor/llvm/dist/lib/CodeGen/ScoreboardHazardRecognizer.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/CMakeLists.txt vendor/llvm/dist/lib/CodeGen/SelectionDAG/DAGCombiner.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/FastISel.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/InstrEmitter.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/InstrEmitter.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/StatepointLowering.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/StatepointLowering.h vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetLowering.cpp vendor/llvm/dist/lib/CodeGen/ShadowStackGCLowering.cpp vendor/llvm/dist/lib/CodeGen/SjLjEHPrepare.cpp vendor/llvm/dist/lib/CodeGen/SlotIndexes.cpp vendor/llvm/dist/lib/CodeGen/SpillPlacement.cpp vendor/llvm/dist/lib/CodeGen/SpillPlacement.h vendor/llvm/dist/lib/CodeGen/Spiller.h vendor/llvm/dist/lib/CodeGen/SplitKit.cpp vendor/llvm/dist/lib/CodeGen/SplitKit.h vendor/llvm/dist/lib/CodeGen/StackColoring.cpp vendor/llvm/dist/lib/CodeGen/StackMapLivenessAnalysis.cpp vendor/llvm/dist/lib/CodeGen/StackMaps.cpp vendor/llvm/dist/lib/CodeGen/StackProtector.cpp vendor/llvm/dist/lib/CodeGen/StackSlotColoring.cpp vendor/llvm/dist/lib/CodeGen/TailDuplication.cpp vendor/llvm/dist/lib/CodeGen/TargetFrameLoweringImpl.cpp vendor/llvm/dist/lib/CodeGen/TargetInstrInfo.cpp vendor/llvm/dist/lib/CodeGen/TargetLoweringBase.cpp vendor/llvm/dist/lib/CodeGen/TargetLoweringObjectFileImpl.cpp vendor/llvm/dist/lib/CodeGen/TargetRegisterInfo.cpp vendor/llvm/dist/lib/CodeGen/TargetSchedule.cpp vendor/llvm/dist/lib/CodeGen/TwoAddressInstructionPass.cpp vendor/llvm/dist/lib/CodeGen/UnreachableBlockElim.cpp vendor/llvm/dist/lib/CodeGen/VirtRegMap.cpp vendor/llvm/dist/lib/CodeGen/WinEHPrepare.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/CodeView/FieldListRecordBuilder.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/ListRecordBuilder.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/MemoryTypeTableBuilder.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/MethodListRecordBuilder.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeRecordBuilder.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeTableBuilder.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFContext.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugLine.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFUnit.cpp vendor/llvm/dist/lib/DebugInfo/PDB/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIADataStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumDebugStreams.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumLineNumbers.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumSourceFiles.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIAEnumSymbols.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIALineNumber.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIASession.cpp vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp vendor/llvm/dist/lib/DebugInfo/PDB/IPDBSourceFile.cpp vendor/llvm/dist/lib/DebugInfo/PDB/LLVMBuild.txt vendor/llvm/dist/lib/DebugInfo/PDB/PDB.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBContext.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBExtras.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymDumper.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolBlock.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolCustom.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolData.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolExe.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolFunc.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolLabel.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolThunk.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp vendor/llvm/dist/lib/DebugInfo/Symbolize/DIPrinter.cpp vendor/llvm/dist/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp vendor/llvm/dist/lib/DebugInfo/Symbolize/Symbolize.cpp vendor/llvm/dist/lib/ExecutionEngine/ExecutionEngine.cpp vendor/llvm/dist/lib/ExecutionEngine/ExecutionEngineBindings.cpp vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp vendor/llvm/dist/lib/ExecutionEngine/MCJIT/MCJIT.cpp vendor/llvm/dist/lib/ExecutionEngine/MCJIT/MCJIT.h vendor/llvm/dist/lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/CMakeLists.txt vendor/llvm/dist/lib/ExecutionEngine/Orc/IndirectionUtils.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcCBindings.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcCBindingsStack.h vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcError.cpp vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h vendor/llvm/dist/lib/ExecutionEngine/TargetSelect.cpp vendor/llvm/dist/lib/Fuzzer/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/FuzzerDriver.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerFlags.def vendor/llvm/dist/lib/Fuzzer/FuzzerIO.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerInterface.h vendor/llvm/dist/lib/Fuzzer/FuzzerInternal.h vendor/llvm/dist/lib/Fuzzer/FuzzerLoop.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerMain.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerMutate.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerTraceState.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerUtil.cpp vendor/llvm/dist/lib/Fuzzer/test/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/test/CallerCalleeTest.cpp vendor/llvm/dist/lib/Fuzzer/test/CounterTest.cpp vendor/llvm/dist/lib/Fuzzer/test/FourIndependentBranchesTest.cpp vendor/llvm/dist/lib/Fuzzer/test/FullCoverageSetTest.cpp vendor/llvm/dist/lib/Fuzzer/test/FuzzerUnittest.cpp vendor/llvm/dist/lib/Fuzzer/test/MemcmpTest.cpp vendor/llvm/dist/lib/Fuzzer/test/NullDerefTest.cpp vendor/llvm/dist/lib/Fuzzer/test/SimpleCmpTest.cpp vendor/llvm/dist/lib/Fuzzer/test/SimpleDictionaryTest.cpp vendor/llvm/dist/lib/Fuzzer/test/SimpleHashTest.cpp vendor/llvm/dist/lib/Fuzzer/test/SimpleTest.cpp vendor/llvm/dist/lib/Fuzzer/test/StrcmpTest.cpp vendor/llvm/dist/lib/Fuzzer/test/StrncmpTest.cpp vendor/llvm/dist/lib/Fuzzer/test/SwitchTest.cpp vendor/llvm/dist/lib/Fuzzer/test/ThreadedTest.cpp vendor/llvm/dist/lib/Fuzzer/test/TimeoutTest.cpp vendor/llvm/dist/lib/Fuzzer/test/UninstrumentedTest.cpp vendor/llvm/dist/lib/Fuzzer/test/dfsan/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/test/fuzzer-dfsan.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-timeout.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-traces.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer.test vendor/llvm/dist/lib/Fuzzer/test/lit.cfg vendor/llvm/dist/lib/Fuzzer/test/lit.site.cfg.in vendor/llvm/dist/lib/Fuzzer/test/merge.test vendor/llvm/dist/lib/Fuzzer/test/trace-bb/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/test/uninstrumented/CMakeLists.txt vendor/llvm/dist/lib/IR/AsmWriter.cpp vendor/llvm/dist/lib/IR/AttributeImpl.h vendor/llvm/dist/lib/IR/Attributes.cpp vendor/llvm/dist/lib/IR/AutoUpgrade.cpp vendor/llvm/dist/lib/IR/BasicBlock.cpp vendor/llvm/dist/lib/IR/CMakeLists.txt vendor/llvm/dist/lib/IR/Comdat.cpp vendor/llvm/dist/lib/IR/ConstantFold.cpp vendor/llvm/dist/lib/IR/ConstantFold.h vendor/llvm/dist/lib/IR/ConstantRange.cpp vendor/llvm/dist/lib/IR/Constants.cpp vendor/llvm/dist/lib/IR/ConstantsContext.h vendor/llvm/dist/lib/IR/Core.cpp vendor/llvm/dist/lib/IR/DIBuilder.cpp vendor/llvm/dist/lib/IR/DataLayout.cpp vendor/llvm/dist/lib/IR/DebugInfo.cpp vendor/llvm/dist/lib/IR/DebugInfoMetadata.cpp vendor/llvm/dist/lib/IR/DebugLoc.cpp vendor/llvm/dist/lib/IR/DiagnosticInfo.cpp vendor/llvm/dist/lib/IR/Dominators.cpp vendor/llvm/dist/lib/IR/Function.cpp vendor/llvm/dist/lib/IR/GCOV.cpp vendor/llvm/dist/lib/IR/Globals.cpp vendor/llvm/dist/lib/IR/IRBuilder.cpp vendor/llvm/dist/lib/IR/IRPrintingPasses.cpp vendor/llvm/dist/lib/IR/InlineAsm.cpp vendor/llvm/dist/lib/IR/Instruction.cpp vendor/llvm/dist/lib/IR/Instructions.cpp vendor/llvm/dist/lib/IR/IntrinsicInst.cpp vendor/llvm/dist/lib/IR/LLVMContext.cpp vendor/llvm/dist/lib/IR/LLVMContextImpl.cpp vendor/llvm/dist/lib/IR/LLVMContextImpl.h vendor/llvm/dist/lib/IR/LegacyPassManager.cpp vendor/llvm/dist/lib/IR/MDBuilder.cpp vendor/llvm/dist/lib/IR/Mangler.cpp vendor/llvm/dist/lib/IR/Metadata.cpp vendor/llvm/dist/lib/IR/Module.cpp vendor/llvm/dist/lib/IR/Operator.cpp vendor/llvm/dist/lib/IR/Pass.cpp vendor/llvm/dist/lib/IR/PassManager.cpp vendor/llvm/dist/lib/IR/PassRegistry.cpp vendor/llvm/dist/lib/IR/Statepoint.cpp vendor/llvm/dist/lib/IR/Type.cpp vendor/llvm/dist/lib/IR/TypeFinder.cpp vendor/llvm/dist/lib/IR/Value.cpp vendor/llvm/dist/lib/IR/ValueSymbolTable.cpp vendor/llvm/dist/lib/IR/ValueTypes.cpp vendor/llvm/dist/lib/IR/Verifier.cpp vendor/llvm/dist/lib/LLVMBuild.txt vendor/llvm/dist/lib/LTO/CMakeLists.txt vendor/llvm/dist/lib/LTO/LLVMBuild.txt vendor/llvm/dist/lib/LTO/LTOCodeGenerator.cpp vendor/llvm/dist/lib/LTO/LTOModule.cpp vendor/llvm/dist/lib/LibDriver/LibDriver.cpp vendor/llvm/dist/lib/LineEditor/LineEditor.cpp vendor/llvm/dist/lib/Linker/IRMover.cpp vendor/llvm/dist/lib/Linker/LinkModules.cpp vendor/llvm/dist/lib/MC/CMakeLists.txt vendor/llvm/dist/lib/MC/ConstantPools.cpp vendor/llvm/dist/lib/MC/ELFObjectWriter.cpp vendor/llvm/dist/lib/MC/MCAsmBackend.cpp vendor/llvm/dist/lib/MC/MCAsmInfo.cpp vendor/llvm/dist/lib/MC/MCAsmInfoDarwin.cpp vendor/llvm/dist/lib/MC/MCAsmInfoELF.cpp vendor/llvm/dist/lib/MC/MCAsmStreamer.cpp vendor/llvm/dist/lib/MC/MCAssembler.cpp vendor/llvm/dist/lib/MC/MCContext.cpp vendor/llvm/dist/lib/MC/MCDisassembler/CMakeLists.txt vendor/llvm/dist/lib/MC/MCDisassembler/Disassembler.cpp vendor/llvm/dist/lib/MC/MCDisassembler/Disassembler.h vendor/llvm/dist/lib/MC/MCDisassembler/MCDisassembler.cpp vendor/llvm/dist/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp vendor/llvm/dist/lib/MC/MCDisassembler/MCRelocationInfo.cpp vendor/llvm/dist/lib/MC/MCDwarf.cpp vendor/llvm/dist/lib/MC/MCELFStreamer.cpp vendor/llvm/dist/lib/MC/MCExpr.cpp vendor/llvm/dist/lib/MC/MCFragment.cpp vendor/llvm/dist/lib/MC/MCInst.cpp vendor/llvm/dist/lib/MC/MCLabel.cpp vendor/llvm/dist/lib/MC/MCLinkerOptimizationHint.cpp vendor/llvm/dist/lib/MC/MCMachOStreamer.cpp vendor/llvm/dist/lib/MC/MCObjectFileInfo.cpp vendor/llvm/dist/lib/MC/MCObjectStreamer.cpp vendor/llvm/dist/lib/MC/MCParser/AsmLexer.cpp vendor/llvm/dist/lib/MC/MCParser/AsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/COFFAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/DarwinAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/ELFAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/MCAsmLexer.cpp vendor/llvm/dist/lib/MC/MCParser/MCAsmParser.cpp vendor/llvm/dist/lib/MC/MCParser/MCTargetAsmParser.cpp vendor/llvm/dist/lib/MC/MCRegisterInfo.cpp vendor/llvm/dist/lib/MC/MCSection.cpp vendor/llvm/dist/lib/MC/MCStreamer.cpp vendor/llvm/dist/lib/MC/MCSymbol.cpp vendor/llvm/dist/lib/MC/MCValue.cpp vendor/llvm/dist/lib/MC/MCWin64EH.cpp vendor/llvm/dist/lib/MC/MCWinEH.cpp vendor/llvm/dist/lib/MC/MachObjectWriter.cpp vendor/llvm/dist/lib/MC/StringTableBuilder.cpp vendor/llvm/dist/lib/MC/SubtargetFeature.cpp vendor/llvm/dist/lib/MC/WinCOFFObjectWriter.cpp vendor/llvm/dist/lib/MC/WinCOFFStreamer.cpp vendor/llvm/dist/lib/Object/Archive.cpp vendor/llvm/dist/lib/Object/ArchiveWriter.cpp vendor/llvm/dist/lib/Object/Binary.cpp vendor/llvm/dist/lib/Object/CMakeLists.txt vendor/llvm/dist/lib/Object/COFFObjectFile.cpp vendor/llvm/dist/lib/Object/ELF.cpp vendor/llvm/dist/lib/Object/ELFObjectFile.cpp vendor/llvm/dist/lib/Object/Error.cpp vendor/llvm/dist/lib/Object/IRObjectFile.cpp vendor/llvm/dist/lib/Object/MachOObjectFile.cpp vendor/llvm/dist/lib/Object/MachOUniversal.cpp vendor/llvm/dist/lib/Object/Object.cpp vendor/llvm/dist/lib/Object/ObjectFile.cpp vendor/llvm/dist/lib/Object/RecordStreamer.cpp vendor/llvm/dist/lib/Object/RecordStreamer.h vendor/llvm/dist/lib/Object/SymbolicFile.cpp vendor/llvm/dist/lib/Option/OptTable.cpp vendor/llvm/dist/lib/Option/Option.cpp vendor/llvm/dist/lib/Passes/LLVMBuild.txt vendor/llvm/dist/lib/Passes/PassBuilder.cpp vendor/llvm/dist/lib/Passes/PassRegistry.def vendor/llvm/dist/lib/ProfileData/CMakeLists.txt vendor/llvm/dist/lib/ProfileData/InstrProf.cpp vendor/llvm/dist/lib/ProfileData/InstrProfReader.cpp vendor/llvm/dist/lib/ProfileData/InstrProfWriter.cpp vendor/llvm/dist/lib/ProfileData/LLVMBuild.txt vendor/llvm/dist/lib/ProfileData/SampleProf.cpp vendor/llvm/dist/lib/ProfileData/SampleProfReader.cpp vendor/llvm/dist/lib/ProfileData/SampleProfWriter.cpp vendor/llvm/dist/lib/Support/APFloat.cpp vendor/llvm/dist/lib/Support/APInt.cpp vendor/llvm/dist/lib/Support/APSInt.cpp vendor/llvm/dist/lib/Support/ARMBuildAttrs.cpp vendor/llvm/dist/lib/Support/Atomic.cpp vendor/llvm/dist/lib/Support/BranchProbability.cpp vendor/llvm/dist/lib/Support/CMakeLists.txt vendor/llvm/dist/lib/Support/CommandLine.cpp vendor/llvm/dist/lib/Support/ConvertUTFWrapper.cpp vendor/llvm/dist/lib/Support/CrashRecoveryContext.cpp vendor/llvm/dist/lib/Support/Dwarf.cpp vendor/llvm/dist/lib/Support/ErrorHandling.cpp vendor/llvm/dist/lib/Support/FileUtilities.cpp vendor/llvm/dist/lib/Support/FoldingSet.cpp vendor/llvm/dist/lib/Support/Host.cpp vendor/llvm/dist/lib/Support/IntEqClasses.cpp vendor/llvm/dist/lib/Support/JamCRC.cpp vendor/llvm/dist/lib/Support/Locale.cpp vendor/llvm/dist/lib/Support/LockFileManager.cpp vendor/llvm/dist/lib/Support/ManagedStatic.cpp vendor/llvm/dist/lib/Support/MemoryBuffer.cpp vendor/llvm/dist/lib/Support/Path.cpp vendor/llvm/dist/lib/Support/PrettyStackTrace.cpp vendor/llvm/dist/lib/Support/Process.cpp vendor/llvm/dist/lib/Support/ScaledNumber.cpp vendor/llvm/dist/lib/Support/Signals.cpp vendor/llvm/dist/lib/Support/SmallPtrSet.cpp vendor/llvm/dist/lib/Support/SpecialCaseList.cpp vendor/llvm/dist/lib/Support/Statistic.cpp vendor/llvm/dist/lib/Support/StreamingMemoryObject.cpp vendor/llvm/dist/lib/Support/StringMap.cpp vendor/llvm/dist/lib/Support/StringRef.cpp vendor/llvm/dist/lib/Support/TargetParser.cpp vendor/llvm/dist/lib/Support/TargetRegistry.cpp vendor/llvm/dist/lib/Support/ThreadPool.cpp vendor/llvm/dist/lib/Support/Threading.cpp vendor/llvm/dist/lib/Support/Timer.cpp vendor/llvm/dist/lib/Support/Triple.cpp vendor/llvm/dist/lib/Support/Twine.cpp vendor/llvm/dist/lib/Support/Unix/Memory.inc vendor/llvm/dist/lib/Support/Unix/Path.inc vendor/llvm/dist/lib/Support/Unix/Process.inc vendor/llvm/dist/lib/Support/Unix/Signals.inc vendor/llvm/dist/lib/Support/Windows/DynamicLibrary.inc vendor/llvm/dist/lib/Support/Windows/Path.inc vendor/llvm/dist/lib/Support/Windows/Process.inc vendor/llvm/dist/lib/Support/Windows/Signals.inc vendor/llvm/dist/lib/Support/Windows/WindowsSupport.h vendor/llvm/dist/lib/Support/YAMLParser.cpp vendor/llvm/dist/lib/Support/YAMLTraits.cpp vendor/llvm/dist/lib/Support/raw_ostream.cpp vendor/llvm/dist/lib/TableGen/Record.cpp vendor/llvm/dist/lib/TableGen/SetTheory.cpp vendor/llvm/dist/lib/TableGen/TGParser.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64.h vendor/llvm/dist/lib/Target/AArch64/AArch64.td vendor/llvm/dist/lib/Target/AArch64/AArch64A53Fix835769.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64AddressTypePromotion.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64AsmPrinter.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64BranchRelaxation.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64CallingConvention.td vendor/llvm/dist/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64CollectLOH.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ConditionOptimizer.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ConditionalCompares.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64FastISel.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64FrameLowering.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64FrameLowering.h vendor/llvm/dist/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.h vendor/llvm/dist/lib/Target/AArch64/AArch64InstrAtomics.td vendor/llvm/dist/lib/Target/AArch64/AArch64InstrFormats.td vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.td vendor/llvm/dist/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64MachineFunctionInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64PromoteConstant.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterInfo.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedA53.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedA57.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedCyclone.td vendor/llvm/dist/lib/Target/AArch64/AArch64SchedM1.td vendor/llvm/dist/lib/Target/AArch64/AArch64Schedule.td vendor/llvm/dist/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64SelectionDAGInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64StorePairSuppress.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.h vendor/llvm/dist/lib/Target/AArch64/AArch64TargetMachine.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64TargetMachine.h vendor/llvm/dist/lib/Target/AArch64/AArch64TargetTransformInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64TargetTransformInfo.h vendor/llvm/dist/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp vendor/llvm/dist/lib/Target/AArch64/CMakeLists.txt vendor/llvm/dist/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp vendor/llvm/dist/lib/Target/AArch64/Disassembler/AArch64Disassembler.h vendor/llvm/dist/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp vendor/llvm/dist/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.h vendor/llvm/dist/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp vendor/llvm/dist/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h vendor/llvm/dist/lib/Target/AArch64/LLVMBuild.txt vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h vendor/llvm/dist/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp vendor/llvm/dist/lib/Target/AArch64/Utils/AArch64BaseInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCallingConv.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUFrameLowering.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUIntrinsics.td vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMCInstLower.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMachineFunction.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPURegisterInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h vendor/llvm/dist/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDKernelCodeT.h vendor/llvm/dist/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp vendor/llvm/dist/lib/Target/AMDGPU/AsmParser/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/CIInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/CaymanInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/EvergreenInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/InstPrinter/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/LLVMBuild.txt vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUFixupKinds.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/AMDGPU/Processors.td vendor/llvm/dist/lib/Target/AMDGPU/R600ClauseMergePass.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600Defines.h vendor/llvm/dist/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600ISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600ISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/R600InstrInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600InstrInfo.h vendor/llvm/dist/lib/Target/AMDGPU/R600Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/R600Intrinsics.td vendor/llvm/dist/lib/Target/AMDGPU/R600MachineFunctionInfo.h vendor/llvm/dist/lib/Target/AMDGPU/R600MachineScheduler.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600MachineScheduler.h vendor/llvm/dist/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600Packetizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600RegisterInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/R600RegisterInfo.h vendor/llvm/dist/lib/Target/AMDGPU/R600Schedule.td vendor/llvm/dist/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIDefines.h vendor/llvm/dist/lib/Target/AMDGPU/SIFixSGPRCopies.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFoldOperands.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.h vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/SIInsertWaits.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIInstrFormats.td vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.td vendor/llvm/dist/lib/Target/AMDGPU/SIInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/SIIntrinsics.td vendor/llvm/dist/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/AMDGPU/SILowerControlFlow.cpp vendor/llvm/dist/lib/Target/AMDGPU/SILowerI1Copies.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIMachineScheduler.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineScheduler.h vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.td vendor/llvm/dist/lib/Target/AMDGPU/SISchedule.td vendor/llvm/dist/lib/Target/AMDGPU/SIShrinkInstructions.cpp vendor/llvm/dist/lib/Target/AMDGPU/SITypeRewriter.cpp vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h vendor/llvm/dist/lib/Target/AMDGPU/Utils/CMakeLists.txt vendor/llvm/dist/lib/Target/AMDGPU/VIInstrFormats.td vendor/llvm/dist/lib/Target/AMDGPU/VIInstructions.td vendor/llvm/dist/lib/Target/ARM/A15SDOptimizer.cpp vendor/llvm/dist/lib/Target/ARM/ARM.h vendor/llvm/dist/lib/Target/ARM/ARM.td vendor/llvm/dist/lib/Target/ARM/ARMAsmPrinter.cpp vendor/llvm/dist/lib/Target/ARM/ARMAsmPrinter.h vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.h vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.h vendor/llvm/dist/lib/Target/ARM/ARMCallingConv.h vendor/llvm/dist/lib/Target/ARM/ARMCallingConv.td vendor/llvm/dist/lib/Target/ARM/ARMConstantIslandPass.cpp vendor/llvm/dist/lib/Target/ARM/ARMConstantPoolValue.cpp vendor/llvm/dist/lib/Target/ARM/ARMConstantPoolValue.h vendor/llvm/dist/lib/Target/ARM/ARMExpandPseudoInsts.cpp vendor/llvm/dist/lib/Target/ARM/ARMFastISel.cpp vendor/llvm/dist/lib/Target/ARM/ARMFrameLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMFrameLowering.h vendor/llvm/dist/lib/Target/ARM/ARMHazardRecognizer.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.h vendor/llvm/dist/lib/Target/ARM/ARMInstrFormats.td vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.h vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb2.td vendor/llvm/dist/lib/Target/ARM/ARMInstrVFP.td vendor/llvm/dist/lib/Target/ARM/ARMLoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/ARM/ARMMCInstLower.cpp vendor/llvm/dist/lib/Target/ARM/ARMMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMMachineFunctionInfo.h vendor/llvm/dist/lib/Target/ARM/ARMOptimizeBarriersPass.cpp vendor/llvm/dist/lib/Target/ARM/ARMSchedule.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleA8.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleA9.td vendor/llvm/dist/lib/Target/ARM/ARMScheduleSwift.td vendor/llvm/dist/lib/Target/ARM/ARMSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMSelectionDAGInfo.h vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.cpp vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.h vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.h vendor/llvm/dist/lib/Target/ARM/ARMTargetObjectFile.h vendor/llvm/dist/lib/Target/ARM/ARMTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetTransformInfo.h vendor/llvm/dist/lib/Target/ARM/AsmParser/ARMAsmParser.cpp vendor/llvm/dist/lib/Target/ARM/Disassembler/ARMDisassembler.cpp vendor/llvm/dist/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp vendor/llvm/dist/lib/Target/ARM/InstPrinter/ARMInstPrinter.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp vendor/llvm/dist/lib/Target/ARM/MLxExpansionPass.cpp vendor/llvm/dist/lib/Target/ARM/README.txt vendor/llvm/dist/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp vendor/llvm/dist/lib/Target/ARM/Thumb1FrameLowering.cpp vendor/llvm/dist/lib/Target/ARM/Thumb1FrameLowering.h vendor/llvm/dist/lib/Target/ARM/Thumb1InstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/Thumb1InstrInfo.h vendor/llvm/dist/lib/Target/ARM/Thumb2ITBlockPass.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2InstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2InstrInfo.h vendor/llvm/dist/lib/Target/ARM/Thumb2SizeReduction.cpp vendor/llvm/dist/lib/Target/ARM/ThumbRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/ThumbRegisterInfo.h vendor/llvm/dist/lib/Target/AVR/AVR.h vendor/llvm/dist/lib/Target/AVR/AVR.td vendor/llvm/dist/lib/Target/AVR/AVRMachineFunctionInfo.h vendor/llvm/dist/lib/Target/AVR/AVRSelectionDAGInfo.h vendor/llvm/dist/lib/Target/AVR/AVRTargetMachine.cpp vendor/llvm/dist/lib/Target/AVR/AVRTargetObjectFile.h vendor/llvm/dist/lib/Target/AVR/CMakeLists.txt vendor/llvm/dist/lib/Target/AVR/TargetInfo/CMakeLists.txt vendor/llvm/dist/lib/Target/BPF/BPFAsmPrinter.cpp vendor/llvm/dist/lib/Target/BPF/BPFFrameLowering.h vendor/llvm/dist/lib/Target/BPF/BPFISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/BPF/BPFISelLowering.cpp vendor/llvm/dist/lib/Target/BPF/BPFISelLowering.h vendor/llvm/dist/lib/Target/BPF/BPFInstrInfo.cpp vendor/llvm/dist/lib/Target/BPF/BPFInstrInfo.h vendor/llvm/dist/lib/Target/BPF/BPFMCInstLower.cpp vendor/llvm/dist/lib/Target/BPF/BPFSubtarget.h vendor/llvm/dist/lib/Target/BPF/BPFTargetMachine.cpp vendor/llvm/dist/lib/Target/BPF/BPFTargetMachine.h vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp vendor/llvm/dist/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp vendor/llvm/dist/lib/Target/Hexagon/BitTracker.cpp vendor/llvm/dist/lib/Target/Hexagon/BitTracker.h vendor/llvm/dist/lib/Target/Hexagon/CMakeLists.txt vendor/llvm/dist/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp vendor/llvm/dist/lib/Target/Hexagon/Hexagon.td vendor/llvm/dist/lib/Target/Hexagon/HexagonAsmPrinter.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonBitSimplify.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonBitTracker.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonBitTracker.h vendor/llvm/dist/lib/Target/Hexagon/HexagonCFGOptimizer.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonCommonGEP.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonCopyToCombine.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonEarlyIfConv.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonExpandCondsets.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonFixupHwLoops.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonFrameLowering.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonFrameLowering.h vendor/llvm/dist/lib/Target/Hexagon/HexagonGenExtract.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonGenInsert.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonGenMux.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonGenPredicate.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonHardwareLoops.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.h vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrAlias.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormats.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormatsV4.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV3.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV4.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoVector.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsics.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsicsV4.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsicsV5.td vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsicsV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonMCInstLower.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineFunctionInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineScheduler.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineScheduler.h vendor/llvm/dist/lib/Target/Hexagon/HexagonNewValueJump.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonOperands.td vendor/llvm/dist/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonPeephole.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonRDF.h vendor/llvm/dist/lib/Target/Hexagon/HexagonRDFOpt.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonRegisterInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonRegisterInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonRegisterInfo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV4.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV55.td vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV60.td vendor/llvm/dist/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSelectionDAGInfo.h vendor/llvm/dist/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSplitDouble.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonStoreWidening.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSubtarget.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonSubtarget.h vendor/llvm/dist/lib/Target/Hexagon/HexagonSystemInst.td vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetMachine.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetMachine.h vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetObjectFile.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetObjectFile.h vendor/llvm/dist/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonVLIWPacketizer.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonFixupKinds.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFCopy.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFCopy.h vendor/llvm/dist/lib/Target/Hexagon/RDFDeadCode.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFDeadCode.h vendor/llvm/dist/lib/Target/Hexagon/RDFGraph.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFGraph.h vendor/llvm/dist/lib/Target/Hexagon/RDFLiveness.cpp vendor/llvm/dist/lib/Target/Hexagon/RDFLiveness.h vendor/llvm/dist/lib/Target/LLVMBuild.txt vendor/llvm/dist/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430BranchSelector.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430FrameLowering.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430FrameLowering.h vendor/llvm/dist/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430ISelLowering.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430ISelLowering.h vendor/llvm/dist/lib/Target/MSP430/MSP430InstrInfo.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430InstrInfo.h vendor/llvm/dist/lib/Target/MSP430/MSP430Subtarget.h vendor/llvm/dist/lib/Target/MSP430/MSP430TargetMachine.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430TargetMachine.h vendor/llvm/dist/lib/Target/Mips/AsmParser/MipsAsmParser.cpp vendor/llvm/dist/lib/Target/Mips/CMakeLists.txt vendor/llvm/dist/lib/Target/Mips/Disassembler/MipsDisassembler.cpp vendor/llvm/dist/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp vendor/llvm/dist/lib/Target/Mips/InstPrinter/MipsInstPrinter.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp vendor/llvm/dist/lib/Target/Mips/MicroMips32r6InstrFormats.td vendor/llvm/dist/lib/Target/Mips/MicroMips32r6InstrInfo.td vendor/llvm/dist/lib/Target/Mips/MicroMips64r6InstrFormats.td vendor/llvm/dist/lib/Target/Mips/MicroMips64r6InstrInfo.td vendor/llvm/dist/lib/Target/Mips/MicroMipsDSPInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MicroMipsDSPInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFPU.td vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MicroMipsInstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips.h vendor/llvm/dist/lib/Target/Mips/Mips.td vendor/llvm/dist/lib/Target/Mips/Mips16FrameLowering.cpp vendor/llvm/dist/lib/Target/Mips/Mips16HardFloat.cpp vendor/llvm/dist/lib/Target/Mips/Mips16ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Mips/Mips16ISelDAGToDAG.h vendor/llvm/dist/lib/Target/Mips/Mips16ISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/Mips16ISelLowering.h vendor/llvm/dist/lib/Target/Mips/Mips16InstrInfo.cpp vendor/llvm/dist/lib/Target/Mips/Mips16InstrInfo.h vendor/llvm/dist/lib/Target/Mips/Mips16InstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips16RegisterInfo.cpp vendor/llvm/dist/lib/Target/Mips/Mips32r6InstrFormats.td vendor/llvm/dist/lib/Target/Mips/Mips32r6InstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips64InstrInfo.td vendor/llvm/dist/lib/Target/Mips/Mips64r6InstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.cpp vendor/llvm/dist/lib/Target/Mips/MipsAsmPrinter.h vendor/llvm/dist/lib/Target/Mips/MipsCCState.cpp vendor/llvm/dist/lib/Target/Mips/MipsCallingConv.td vendor/llvm/dist/lib/Target/Mips/MipsCondMov.td vendor/llvm/dist/lib/Target/Mips/MipsConstantIslandPass.cpp vendor/llvm/dist/lib/Target/Mips/MipsDSPInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsDSPInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsDelaySlotFiller.cpp vendor/llvm/dist/lib/Target/Mips/MipsEVAInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsFastISel.cpp vendor/llvm/dist/lib/Target/Mips/MipsFrameLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsFrameLowering.h vendor/llvm/dist/lib/Target/Mips/MipsISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Mips/MipsISelDAGToDAG.h vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.h vendor/llvm/dist/lib/Target/Mips/MipsInstrFPU.td vendor/llvm/dist/lib/Target/Mips/MipsInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.h vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsLongBranch.cpp vendor/llvm/dist/lib/Target/Mips/MipsMCInstLower.cpp vendor/llvm/dist/lib/Target/Mips/MipsMCInstLower.h vendor/llvm/dist/lib/Target/Mips/MipsMSAInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsMachineFunction.cpp vendor/llvm/dist/lib/Target/Mips/MipsMachineFunction.h vendor/llvm/dist/lib/Target/Mips/MipsOs16.cpp vendor/llvm/dist/lib/Target/Mips/MipsRegisterInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsRegisterInfo.h vendor/llvm/dist/lib/Target/Mips/MipsRegisterInfo.td vendor/llvm/dist/lib/Target/Mips/MipsSEFrameLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEISelDAGToDAG.h vendor/llvm/dist/lib/Target/Mips/MipsSEISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEISelLowering.h vendor/llvm/dist/lib/Target/Mips/MipsSEInstrInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEInstrInfo.h vendor/llvm/dist/lib/Target/Mips/MipsSERegisterInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsSchedule.td vendor/llvm/dist/lib/Target/Mips/MipsScheduleP5600.td vendor/llvm/dist/lib/Target/Mips/MipsSubtarget.cpp vendor/llvm/dist/lib/Target/Mips/MipsSubtarget.h vendor/llvm/dist/lib/Target/Mips/MipsTargetMachine.cpp vendor/llvm/dist/lib/Target/Mips/MipsTargetMachine.h vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.cpp vendor/llvm/dist/lib/Target/Mips/MipsTargetObjectFile.h vendor/llvm/dist/lib/Target/Mips/MipsTargetStreamer.h vendor/llvm/dist/lib/Target/NVPTX/CMakeLists.txt vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTX.h vendor/llvm/dist/lib/Target/NVPTX/NVPTX.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXAsmPrinter.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXAsmPrinter.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXFrameLowering.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXFrameLowering.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelDAGToDAG.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelLowering.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelLowering.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXImageOptimizer.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrInfo.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrInfo.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXIntrinsics.td vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerAlloca.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXMCExpr.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXMCExpr.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXPeephole.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXSection.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXSubtarget.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetMachine.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetMachine.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetObjectFile.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetTransformInfo.h vendor/llvm/dist/lib/Target/NVPTX/NVPTXUtilities.cpp vendor/llvm/dist/lib/Target/NVPTX/NVPTXUtilities.h vendor/llvm/dist/lib/Target/NVPTX/NVVMReflect.cpp vendor/llvm/dist/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp vendor/llvm/dist/lib/Target/PowerPC/CMakeLists.txt vendor/llvm/dist/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp vendor/llvm/dist/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp vendor/llvm/dist/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp vendor/llvm/dist/lib/Target/PowerPC/PPC.h vendor/llvm/dist/lib/Target/PowerPC/PPC.td vendor/llvm/dist/lib/Target/PowerPC/PPCAsmPrinter.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCBoolRetToInt.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCBranchSelector.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCCTRLoops.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCCallingConv.td vendor/llvm/dist/lib/Target/PowerPC/PPCEarlyReturn.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCFastISel.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCFrameLowering.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCFrameLowering.h vendor/llvm/dist/lib/Target/PowerPC/PPCHazardRecognizers.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstr64Bit.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrAltivec.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrFormats.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrVSX.td vendor/llvm/dist/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMCInstLower.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMIPeephole.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCMachineFunctionInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCSchedule.td vendor/llvm/dist/lib/Target/PowerPC/PPCSchedule440.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleA2.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE500mc.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleE5500.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleG5.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleP7.td vendor/llvm/dist/lib/Target/PowerPC/PPCScheduleP8.td vendor/llvm/dist/lib/Target/PowerPC/PPCSubtarget.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCSubtarget.h vendor/llvm/dist/lib/Target/PowerPC/PPCTLSDynamicCall.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTOCRegDeps.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.h vendor/llvm/dist/lib/Target/PowerPC/PPCTargetObjectFile.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetTransformInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCVSXCopy.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCVSXFMAMutate.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp vendor/llvm/dist/lib/Target/PowerPC/README.txt vendor/llvm/dist/lib/Target/README.txt vendor/llvm/dist/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp vendor/llvm/dist/lib/Target/Sparc/CMakeLists.txt vendor/llvm/dist/lib/Target/Sparc/DelaySlotFiller.cpp vendor/llvm/dist/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp vendor/llvm/dist/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp vendor/llvm/dist/lib/Target/Sparc/README.txt vendor/llvm/dist/lib/Target/Sparc/Sparc.h vendor/llvm/dist/lib/Target/Sparc/Sparc.td vendor/llvm/dist/lib/Target/Sparc/SparcAsmPrinter.cpp vendor/llvm/dist/lib/Target/Sparc/SparcFrameLowering.cpp vendor/llvm/dist/lib/Target/Sparc/SparcFrameLowering.h vendor/llvm/dist/lib/Target/Sparc/SparcISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Sparc/SparcISelLowering.cpp vendor/llvm/dist/lib/Target/Sparc/SparcISelLowering.h vendor/llvm/dist/lib/Target/Sparc/SparcInstr64Bit.td vendor/llvm/dist/lib/Target/Sparc/SparcInstrAliases.td vendor/llvm/dist/lib/Target/Sparc/SparcInstrFormats.td vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.cpp vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.h vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.td vendor/llvm/dist/lib/Target/Sparc/SparcMCInstLower.cpp vendor/llvm/dist/lib/Target/Sparc/SparcRegisterInfo.cpp vendor/llvm/dist/lib/Target/Sparc/SparcRegisterInfo.h vendor/llvm/dist/lib/Target/Sparc/SparcRegisterInfo.td vendor/llvm/dist/lib/Target/Sparc/SparcSubtarget.cpp vendor/llvm/dist/lib/Target/Sparc/SparcSubtarget.h vendor/llvm/dist/lib/Target/Sparc/SparcTargetMachine.cpp vendor/llvm/dist/lib/Target/Sparc/SparcTargetMachine.h vendor/llvm/dist/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp vendor/llvm/dist/lib/Target/SystemZ/CMakeLists.txt vendor/llvm/dist/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp vendor/llvm/dist/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp vendor/llvm/dist/lib/Target/SystemZ/README.txt vendor/llvm/dist/lib/Target/SystemZ/SystemZ.h vendor/llvm/dist/lib/Target/SystemZ/SystemZAsmPrinter.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZCallingConv.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZCallingConv.h vendor/llvm/dist/lib/Target/SystemZ/SystemZCallingConv.td vendor/llvm/dist/lib/Target/SystemZ/SystemZElimCompare.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZFrameLowering.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZFrameLowering.h vendor/llvm/dist/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.h vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrBuilder.h vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrFP.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrFormats.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.h vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.td vendor/llvm/dist/lib/Target/SystemZ/SystemZLDCleanup.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZLongBranch.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZMachineFunctionInfo.h vendor/llvm/dist/lib/Target/SystemZ/SystemZOperands.td vendor/llvm/dist/lib/Target/SystemZ/SystemZOperators.td vendor/llvm/dist/lib/Target/SystemZ/SystemZProcessors.td vendor/llvm/dist/lib/Target/SystemZ/SystemZRegisterInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZRegisterInfo.h vendor/llvm/dist/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZSelectionDAGInfo.h vendor/llvm/dist/lib/Target/SystemZ/SystemZShortenInst.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZSubtarget.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZSubtarget.h vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetMachine.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetMachine.h vendor/llvm/dist/lib/Target/Target.cpp vendor/llvm/dist/lib/Target/TargetLoweringObjectFile.cpp vendor/llvm/dist/lib/Target/TargetMachine.cpp vendor/llvm/dist/lib/Target/TargetMachineC.cpp vendor/llvm/dist/lib/Target/TargetRecip.cpp vendor/llvm/dist/lib/Target/TargetSubtargetInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/CMakeLists.txt vendor/llvm/dist/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyELFObjectWriter.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h vendor/llvm/dist/lib/Target/WebAssembly/README.txt vendor/llvm/dist/lib/Target/WebAssembly/WebAssembly.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFastISel.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFrameLowering.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISD.def vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISelLowering.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrControl.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrFloat.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInfo.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInfo.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInteger.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrMemory.td vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyPeephole.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyStoreResults.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblySubtarget.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetMachine.h vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h vendor/llvm/dist/lib/Target/WebAssembly/known_gcc_test_failures.txt vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmParser.cpp vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmParserCommon.h vendor/llvm/dist/lib/Target/X86/AsmParser/X86Operand.h vendor/llvm/dist/lib/Target/X86/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/Disassembler/X86Disassembler.cpp vendor/llvm/dist/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp vendor/llvm/dist/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h vendor/llvm/dist/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h vendor/llvm/dist/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp vendor/llvm/dist/lib/Target/X86/InstPrinter/X86InstComments.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86BaseInfo.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86FixupKinds.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp vendor/llvm/dist/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp vendor/llvm/dist/lib/Target/X86/README-X86-64.txt vendor/llvm/dist/lib/Target/X86/README.txt vendor/llvm/dist/lib/Target/X86/Utils/X86ShuffleDecode.cpp vendor/llvm/dist/lib/Target/X86/Utils/X86ShuffleDecode.h vendor/llvm/dist/lib/Target/X86/X86.h vendor/llvm/dist/lib/Target/X86/X86.td vendor/llvm/dist/lib/Target/X86/X86AsmPrinter.cpp vendor/llvm/dist/lib/Target/X86/X86AsmPrinter.h vendor/llvm/dist/lib/Target/X86/X86CallFrameOptimization.cpp vendor/llvm/dist/lib/Target/X86/X86CallingConv.td vendor/llvm/dist/lib/Target/X86/X86ExpandPseudo.cpp vendor/llvm/dist/lib/Target/X86/X86FastISel.cpp vendor/llvm/dist/lib/Target/X86/X86FixupLEAs.cpp vendor/llvm/dist/lib/Target/X86/X86FloatingPoint.cpp vendor/llvm/dist/lib/Target/X86/X86FrameLowering.cpp vendor/llvm/dist/lib/Target/X86/X86FrameLowering.h vendor/llvm/dist/lib/Target/X86/X86ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.h vendor/llvm/dist/lib/Target/X86/X86InstrAVX512.td vendor/llvm/dist/lib/Target/X86/X86InstrBuilder.h vendor/llvm/dist/lib/Target/X86/X86InstrCompiler.td vendor/llvm/dist/lib/Target/X86/X86InstrControl.td vendor/llvm/dist/lib/Target/X86/X86InstrFPStack.td vendor/llvm/dist/lib/Target/X86/X86InstrFormats.td vendor/llvm/dist/lib/Target/X86/X86InstrFragmentsSIMD.td vendor/llvm/dist/lib/Target/X86/X86InstrInfo.cpp vendor/llvm/dist/lib/Target/X86/X86InstrInfo.h vendor/llvm/dist/lib/Target/X86/X86InstrInfo.td vendor/llvm/dist/lib/Target/X86/X86InstrMMX.td vendor/llvm/dist/lib/Target/X86/X86InstrMPX.td vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td vendor/llvm/dist/lib/Target/X86/X86InstrSystem.td vendor/llvm/dist/lib/Target/X86/X86InstrVMX.td vendor/llvm/dist/lib/Target/X86/X86InstrXOP.td vendor/llvm/dist/lib/Target/X86/X86IntrinsicsInfo.h vendor/llvm/dist/lib/Target/X86/X86MCInstLower.cpp vendor/llvm/dist/lib/Target/X86/X86MachineFunctionInfo.h vendor/llvm/dist/lib/Target/X86/X86OptimizeLEAs.cpp vendor/llvm/dist/lib/Target/X86/X86PadShortFunction.cpp vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.cpp vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.td vendor/llvm/dist/lib/Target/X86/X86Schedule.td vendor/llvm/dist/lib/Target/X86/X86ScheduleAtom.td vendor/llvm/dist/lib/Target/X86/X86SelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/X86/X86SelectionDAGInfo.h vendor/llvm/dist/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp vendor/llvm/dist/lib/Target/X86/X86ShuffleDecodeConstantPool.h vendor/llvm/dist/lib/Target/X86/X86Subtarget.cpp vendor/llvm/dist/lib/Target/X86/X86Subtarget.h vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp vendor/llvm/dist/lib/Target/X86/X86TargetMachine.h vendor/llvm/dist/lib/Target/X86/X86TargetObjectFile.cpp vendor/llvm/dist/lib/Target/X86/X86TargetObjectFile.h vendor/llvm/dist/lib/Target/X86/X86TargetTransformInfo.cpp vendor/llvm/dist/lib/Target/X86/X86TargetTransformInfo.h vendor/llvm/dist/lib/Target/X86/X86VZeroUpper.cpp vendor/llvm/dist/lib/Target/X86/X86WinEHState.cpp vendor/llvm/dist/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp vendor/llvm/dist/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp vendor/llvm/dist/lib/Target/XCore/XCoreAsmPrinter.cpp vendor/llvm/dist/lib/Target/XCore/XCoreFrameLowering.cpp vendor/llvm/dist/lib/Target/XCore/XCoreFrameLowering.h vendor/llvm/dist/lib/Target/XCore/XCoreFrameToArgsOffsetElim.cpp vendor/llvm/dist/lib/Target/XCore/XCoreISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/XCore/XCoreISelLowering.cpp vendor/llvm/dist/lib/Target/XCore/XCoreISelLowering.h vendor/llvm/dist/lib/Target/XCore/XCoreInstrInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCoreInstrInfo.h vendor/llvm/dist/lib/Target/XCore/XCoreLowerThreadLocal.cpp vendor/llvm/dist/lib/Target/XCore/XCoreSelectionDAGInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCoreSelectionDAGInfo.h vendor/llvm/dist/lib/Target/XCore/XCoreTargetMachine.cpp vendor/llvm/dist/lib/Target/XCore/XCoreTargetMachine.h vendor/llvm/dist/lib/Target/XCore/XCoreTargetObjectFile.cpp vendor/llvm/dist/lib/Target/XCore/XCoreTargetObjectFile.h vendor/llvm/dist/lib/Transforms/Hello/CMakeLists.txt vendor/llvm/dist/lib/Transforms/IPO/ArgumentPromotion.cpp vendor/llvm/dist/lib/Transforms/IPO/CMakeLists.txt vendor/llvm/dist/lib/Transforms/IPO/ConstantMerge.cpp vendor/llvm/dist/lib/Transforms/IPO/CrossDSOCFI.cpp vendor/llvm/dist/lib/Transforms/IPO/DeadArgumentElimination.cpp vendor/llvm/dist/lib/Transforms/IPO/ElimAvailExtern.cpp vendor/llvm/dist/lib/Transforms/IPO/ExtractGV.cpp vendor/llvm/dist/lib/Transforms/IPO/ForceFunctionAttrs.cpp vendor/llvm/dist/lib/Transforms/IPO/FunctionAttrs.cpp vendor/llvm/dist/lib/Transforms/IPO/FunctionImport.cpp vendor/llvm/dist/lib/Transforms/IPO/GlobalDCE.cpp vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp vendor/llvm/dist/lib/Transforms/IPO/IPConstantPropagation.cpp vendor/llvm/dist/lib/Transforms/IPO/IPO.cpp vendor/llvm/dist/lib/Transforms/IPO/InferFunctionAttrs.cpp vendor/llvm/dist/lib/Transforms/IPO/InlineAlways.cpp vendor/llvm/dist/lib/Transforms/IPO/InlineSimple.cpp vendor/llvm/dist/lib/Transforms/IPO/Inliner.cpp vendor/llvm/dist/lib/Transforms/IPO/Internalize.cpp vendor/llvm/dist/lib/Transforms/IPO/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/IPO/LoopExtractor.cpp vendor/llvm/dist/lib/Transforms/IPO/MergeFunctions.cpp vendor/llvm/dist/lib/Transforms/IPO/PartialInlining.cpp vendor/llvm/dist/lib/Transforms/IPO/PassManagerBuilder.cpp vendor/llvm/dist/lib/Transforms/IPO/PruneEH.cpp vendor/llvm/dist/lib/Transforms/IPO/SampleProfile.cpp vendor/llvm/dist/lib/Transforms/IPO/StripDeadPrototypes.cpp vendor/llvm/dist/lib/Transforms/IPO/StripSymbols.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAddSub.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCalls.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCasts.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCompares.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineInternal.h vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombinePHI.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSelect.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineShifts.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineVectorOps.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstructionCombining.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/AddressSanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/BoundsChecking.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/CFGMST.h vendor/llvm/dist/lib/Transforms/Instrumentation/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/GCOVProfiling.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/InstrProfiling.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/Instrumentation.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/MemorySanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/PGOInstrumentation.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/SanitizerCoverage.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/ThreadSanitizer.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/BlotMapVector.h vendor/llvm/dist/lib/Transforms/ObjCARC/DependencyAnalysis.h vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARC.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARC.h vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCContract.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCExpand.cpp vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARCOpts.cpp vendor/llvm/dist/lib/Transforms/Scalar/ADCE.cpp vendor/llvm/dist/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp vendor/llvm/dist/lib/Transforms/Scalar/BDCE.cpp vendor/llvm/dist/lib/Transforms/Scalar/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Scalar/ConstantHoisting.cpp vendor/llvm/dist/lib/Transforms/Scalar/ConstantProp.cpp vendor/llvm/dist/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp vendor/llvm/dist/lib/Transforms/Scalar/DCE.cpp vendor/llvm/dist/lib/Transforms/Scalar/DeadStoreElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/EarlyCSE.cpp vendor/llvm/dist/lib/Transforms/Scalar/Float2Int.cpp vendor/llvm/dist/lib/Transforms/Scalar/GVN.cpp vendor/llvm/dist/lib/Transforms/Scalar/IndVarSimplify.cpp vendor/llvm/dist/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/JumpThreading.cpp vendor/llvm/dist/lib/Transforms/Scalar/LICM.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoadCombine.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopDeletion.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopDistribute.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopIdiomRecognize.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopInstSimplify.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopInterchange.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopLoadElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopRerollPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopRotation.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopStrengthReduce.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopUnrollPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopUnswitch.cpp vendor/llvm/dist/lib/Transforms/Scalar/LowerAtomic.cpp vendor/llvm/dist/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp vendor/llvm/dist/lib/Transforms/Scalar/MemCpyOptimizer.cpp vendor/llvm/dist/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp vendor/llvm/dist/lib/Transforms/Scalar/NaryReassociate.cpp vendor/llvm/dist/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp vendor/llvm/dist/lib/Transforms/Scalar/PlaceSafepoints.cpp vendor/llvm/dist/lib/Transforms/Scalar/Reassociate.cpp vendor/llvm/dist/lib/Transforms/Scalar/Reg2Mem.cpp vendor/llvm/dist/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp vendor/llvm/dist/lib/Transforms/Scalar/SCCP.cpp vendor/llvm/dist/lib/Transforms/Scalar/SROA.cpp vendor/llvm/dist/lib/Transforms/Scalar/Scalar.cpp vendor/llvm/dist/lib/Transforms/Scalar/Scalarizer.cpp vendor/llvm/dist/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp vendor/llvm/dist/lib/Transforms/Scalar/SimplifyCFGPass.cpp vendor/llvm/dist/lib/Transforms/Scalar/Sink.cpp vendor/llvm/dist/lib/Transforms/Scalar/SpeculativeExecution.cpp vendor/llvm/dist/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp vendor/llvm/dist/lib/Transforms/Scalar/StructurizeCFG.cpp vendor/llvm/dist/lib/Transforms/Scalar/TailRecursionElimination.cpp vendor/llvm/dist/lib/Transforms/Utils/ASanStackFrameLayout.cpp vendor/llvm/dist/lib/Transforms/Utils/AddDiscriminators.cpp vendor/llvm/dist/lib/Transforms/Utils/BasicBlockUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/BreakCriticalEdges.cpp vendor/llvm/dist/lib/Transforms/Utils/BuildLibCalls.cpp vendor/llvm/dist/lib/Transforms/Utils/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Utils/CloneFunction.cpp vendor/llvm/dist/lib/Transforms/Utils/CloneModule.cpp vendor/llvm/dist/lib/Transforms/Utils/CodeExtractor.cpp vendor/llvm/dist/lib/Transforms/Utils/GlobalStatus.cpp vendor/llvm/dist/lib/Transforms/Utils/InlineFunction.cpp vendor/llvm/dist/lib/Transforms/Utils/InstructionNamer.cpp vendor/llvm/dist/lib/Transforms/Utils/IntegerDivision.cpp vendor/llvm/dist/lib/Transforms/Utils/LCSSA.cpp vendor/llvm/dist/lib/Transforms/Utils/Local.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopSimplify.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnroll.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnrollRuntime.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopVersioning.cpp vendor/llvm/dist/lib/Transforms/Utils/LowerInvoke.cpp vendor/llvm/dist/lib/Transforms/Utils/LowerSwitch.cpp vendor/llvm/dist/lib/Transforms/Utils/Mem2Reg.cpp vendor/llvm/dist/lib/Transforms/Utils/ModuleUtils.cpp vendor/llvm/dist/lib/Transforms/Utils/PromoteMemoryToRegister.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyIndVar.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyInstructions.cpp vendor/llvm/dist/lib/Transforms/Utils/SimplifyLibCalls.cpp vendor/llvm/dist/lib/Transforms/Utils/SplitModule.cpp vendor/llvm/dist/lib/Transforms/Utils/SymbolRewriter.cpp vendor/llvm/dist/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp vendor/llvm/dist/lib/Transforms/Utils/Utils.cpp vendor/llvm/dist/lib/Transforms/Utils/ValueMapper.cpp vendor/llvm/dist/lib/Transforms/Vectorize/BBVectorize.cpp vendor/llvm/dist/lib/Transforms/Vectorize/CMakeLists.txt vendor/llvm/dist/lib/Transforms/Vectorize/LoopVectorize.cpp vendor/llvm/dist/lib/Transforms/Vectorize/SLPVectorizer.cpp vendor/llvm/dist/lib/Transforms/Vectorize/Vectorize.cpp vendor/llvm/dist/test/Analysis/BasicAA/cs-cs.ll vendor/llvm/dist/test/Analysis/BasicAA/phi-aa.ll vendor/llvm/dist/test/Analysis/BasicAA/struct-geps.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/bad_input.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/basic.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/double_backedge.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/double_exit.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/extremely-likely-loop-successor.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/irreducible.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/irreducible_loop_crash.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/loop_with_branch.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/loops_with_profile_info.ll vendor/llvm/dist/test/Analysis/BlockFrequencyInfo/nested_loop_with_branches.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/basic.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/loop.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/noreturn.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/pr18705.ll vendor/llvm/dist/test/Analysis/BranchProbabilityInfo/pr22718.ll vendor/llvm/dist/test/Analysis/CallGraph/no-intrinsics.ll vendor/llvm/dist/test/Analysis/CostModel/ARM/cast.ll vendor/llvm/dist/test/Analysis/CostModel/PowerPC/ext.ll vendor/llvm/dist/test/Analysis/CostModel/PowerPC/load_store.ll vendor/llvm/dist/test/Analysis/CostModel/X86/arith.ll vendor/llvm/dist/test/Analysis/CostModel/X86/cast.ll vendor/llvm/dist/test/Analysis/CostModel/X86/cmp.ll vendor/llvm/dist/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll vendor/llvm/dist/test/Analysis/CostModel/X86/scalarize.ll vendor/llvm/dist/test/Analysis/CostModel/X86/sitofp.ll vendor/llvm/dist/test/Analysis/CostModel/X86/sse-itoi.ll vendor/llvm/dist/test/Analysis/CostModel/X86/uitofp.ll vendor/llvm/dist/test/Analysis/DemandedBits/basic.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/AMDGPU/kernel-args.ll vendor/llvm/dist/test/Analysis/DivergenceAnalysis/NVPTX/diverge.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/aliastest.ll vendor/llvm/dist/test/Analysis/GlobalsModRef/indirect-global.ll vendor/llvm/dist/test/Analysis/LazyCallGraph/basic.ll vendor/llvm/dist/test/Analysis/LazyCallGraph/non-leaf-intrinsics.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/backward-dep-different-types.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/forward-loop-carried.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/forward-loop-independent.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/non-wrapping-pointer.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/nullptr.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/number-of-memchecks.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/pointer-with-unknown-bounds.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/resort-to-memchecks-only.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/reverse-memcheck-bounds.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/safe-no-checks.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/store-to-invariant-check1.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/store-to-invariant-check2.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/store-to-invariant-check3.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/stride-access-dependence.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/underlying-objects-1.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/underlying-objects-2.ll vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll vendor/llvm/dist/test/Analysis/PostDominators/pr1098.ll vendor/llvm/dist/test/Analysis/RegionInfo/20100809_bb_not_in_domtree.ll vendor/llvm/dist/test/Analysis/RegionInfo/block_sort.ll vendor/llvm/dist/test/Analysis/RegionInfo/cond_loop.ll vendor/llvm/dist/test/Analysis/RegionInfo/condition_complicated.ll vendor/llvm/dist/test/Analysis/RegionInfo/condition_complicated_2.ll vendor/llvm/dist/test/Analysis/RegionInfo/condition_forward_edge.ll vendor/llvm/dist/test/Analysis/RegionInfo/condition_same_exit.ll vendor/llvm/dist/test/Analysis/RegionInfo/condition_simple.ll vendor/llvm/dist/test/Analysis/RegionInfo/exit_in_condition.ll vendor/llvm/dist/test/Analysis/RegionInfo/loop_with_condition.ll vendor/llvm/dist/test/Analysis/RegionInfo/loops_1.ll vendor/llvm/dist/test/Analysis/RegionInfo/loops_2.ll vendor/llvm/dist/test/Analysis/RegionInfo/mix_1.ll vendor/llvm/dist/test/Analysis/RegionInfo/nested_loops.ll vendor/llvm/dist/test/Analysis/RegionInfo/next.ll vendor/llvm/dist/test/Analysis/RegionInfo/paper.ll vendor/llvm/dist/test/Analysis/RegionInfo/two_loops_same_header.ll vendor/llvm/dist/test/Analysis/RegionInfo/unreachable_bb.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/flags-from-poison.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/infer-prestart-no-wrap.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/nowrap-preinc-limits.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/nsw-offset-assume.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/nsw-offset.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/nsw.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/scev-aa.ll vendor/llvm/dist/test/Analysis/ScalarEvolution/trip-count.ll vendor/llvm/dist/test/Analysis/ScopedNoAliasAA/basic.ll vendor/llvm/dist/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll vendor/llvm/dist/test/Analysis/TypeBasedAliasAnalysis/placement-tbaa.ll vendor/llvm/dist/test/Analysis/ValueTracking/known-bits-from-range-md.ll vendor/llvm/dist/test/Analysis/ValueTracking/memory-dereferenceable.ll vendor/llvm/dist/test/Assembler/2003-04-15-ConstantInitAssertion.ll vendor/llvm/dist/test/Assembler/2003-05-21-ConstantShiftExpr.ll vendor/llvm/dist/test/Assembler/2003-05-21-MalformedShiftCrash.ll vendor/llvm/dist/test/Assembler/2003-05-21-MalformedStructCrash.ll vendor/llvm/dist/test/Assembler/2003-08-21-ConstantExprCast-Fold.ll vendor/llvm/dist/test/Assembler/2004-01-20-MaxLongLong.ll vendor/llvm/dist/test/Assembler/2004-02-01-NegativeZero.ll vendor/llvm/dist/test/Assembler/2009-02-01-UnnamedForwardRef.ll vendor/llvm/dist/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll vendor/llvm/dist/test/Assembler/ConstantExprFold.ll vendor/llvm/dist/test/Assembler/ConstantExprFoldCast.ll vendor/llvm/dist/test/Assembler/auto_upgrade_intrinsics.ll vendor/llvm/dist/test/Assembler/dicompileunit.ll vendor/llvm/dist/test/Assembler/diimportedentity.ll vendor/llvm/dist/test/Assembler/dilexicalblock.ll vendor/llvm/dist/test/Assembler/dilocalvariable-arg-large.ll vendor/llvm/dist/test/Assembler/dilocalvariable.ll vendor/llvm/dist/test/Assembler/dilocation.ll vendor/llvm/dist/test/Assembler/disubprogram.ll vendor/llvm/dist/test/Assembler/disubroutinetype.ll vendor/llvm/dist/test/Assembler/drop-debug-info.ll vendor/llvm/dist/test/Assembler/getelementptr.ll vendor/llvm/dist/test/Assembler/getelementptr_vec_idx4.ll vendor/llvm/dist/test/Assembler/invalid-hexint.ll vendor/llvm/dist/test/Assembler/invalid-mdnode-badref.ll vendor/llvm/dist/test/Assembler/invalid_cast4.ll vendor/llvm/dist/test/Assembler/metadata.ll vendor/llvm/dist/test/Assembler/vector-cmp.ll vendor/llvm/dist/test/Bindings/OCaml/bitreader.ml vendor/llvm/dist/test/Bindings/OCaml/core.ml vendor/llvm/dist/test/Bindings/OCaml/ext_exc.ml vendor/llvm/dist/test/Bindings/OCaml/linker.ml vendor/llvm/dist/test/Bindings/OCaml/target.ml vendor/llvm/dist/test/Bindings/llvm-c/Inputs/invalid.ll.bc vendor/llvm/dist/test/Bindings/llvm-c/invalid-bitcode.test vendor/llvm/dist/test/Bitcode/DILocalVariable-explicit-tags.ll vendor/llvm/dist/test/Bitcode/DILocalVariable-explicit-tags.ll.bc vendor/llvm/dist/test/Bitcode/DISubprogram-distinct-definitions.ll vendor/llvm/dist/test/Bitcode/DISubprogram-distinct-definitions.ll.bc vendor/llvm/dist/test/Bitcode/attributes.ll vendor/llvm/dist/test/Bitcode/compatibility.ll vendor/llvm/dist/test/Bitcode/debug-loc-again.ll vendor/llvm/dist/test/Bitcode/invalid.ll vendor/llvm/dist/test/Bitcode/invalid.ll.bc vendor/llvm/dist/test/Bitcode/invalid.test vendor/llvm/dist/test/Bitcode/thinlto-function-summary.ll vendor/llvm/dist/test/Bitcode/upgrade-subprogram.ll vendor/llvm/dist/test/BugPoint/metadata.ll vendor/llvm/dist/test/CMakeLists.txt vendor/llvm/dist/test/CodeGen/AArch64/128bit_load_store.ll vendor/llvm/dist/test/CodeGen/AArch64/a57-csel.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-2014-08-11-MachineCombinerCrash.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-a57-fp-load-balancing.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-be-bv.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-dynamic-stack-layout.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-gep-opt.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-interleaved-accesses.ll vendor/llvm/dist/test/CodeGen/AArch64/aarch64-smull.ll vendor/llvm/dist/test/CodeGen/AArch64/addsub.ll vendor/llvm/dist/test/CodeGen/AArch64/alloca.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-2011-03-17-AsmPrinterCrash.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-AdvSIMD-Scalar.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-aapcs-be.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-abi-varargs.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-abi.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-abi_align.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-addrmode.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-alloc-no-stack-realign.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-atomic-128.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-atomic.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-bitfield-extract.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-build-vector.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-builtins-linux.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-ccmp.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-collect-loh.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-const-addr.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-convert-v4f64.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-extern-weak.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-extract.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fast-isel-addr-offset.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fast-isel-alloca.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fast-isel-call.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fast-isel-gv.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fast-isel-intrinsic.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fcopysign.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-fp128.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-hello.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-inline-asm.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-join-reserved.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-memcpy-inline.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-misched-basic-A53.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-misched-memdep-bug.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-movi.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-mul.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-narrow-ldst-merge.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-neon-2velem-high.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-neon-copy.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-nvcast.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-patchpoint-webkit_jscc.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-patchpoint.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-register-pairing.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-rev.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-stp-aa.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-stp.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-swizzle-tbl-i16-layout.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-this-return.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-tls-dynamic-together.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-variadic-aapcs.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-vclz.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-vecCmpBr.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-vector-ext.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-vector-imm.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-virtual_base.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-vshift.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-vshuffle.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-zero-cycle-zeroing.ll vendor/llvm/dist/test/CodeGen/AArch64/atomic-ops.ll vendor/llvm/dist/test/CodeGen/AArch64/bitfield-insert.ll vendor/llvm/dist/test/CodeGen/AArch64/bitfield.ll vendor/llvm/dist/test/CodeGen/AArch64/bitreverse.ll vendor/llvm/dist/test/CodeGen/AArch64/branch-folder-merge-mmos.ll vendor/llvm/dist/test/CodeGen/AArch64/combine-comparisons-by-cse.ll vendor/llvm/dist/test/CodeGen/AArch64/complex-int-to-fp.ll vendor/llvm/dist/test/CodeGen/AArch64/cond-sel.ll vendor/llvm/dist/test/CodeGen/AArch64/cpus.ll vendor/llvm/dist/test/CodeGen/AArch64/cxx-tlscc.ll vendor/llvm/dist/test/CodeGen/AArch64/dag-combine-invaraints.ll vendor/llvm/dist/test/CodeGen/AArch64/directcond.ll vendor/llvm/dist/test/CodeGen/AArch64/emutls.ll vendor/llvm/dist/test/CodeGen/AArch64/emutls_generic.ll vendor/llvm/dist/test/CodeGen/AArch64/extern-weak.ll vendor/llvm/dist/test/CodeGen/AArch64/f16-instructions.ll vendor/llvm/dist/test/CodeGen/AArch64/fast-isel-branch-cond-split.ll vendor/llvm/dist/test/CodeGen/AArch64/fast-isel-cmp-vec.ll vendor/llvm/dist/test/CodeGen/AArch64/fast-isel-gep.ll vendor/llvm/dist/test/CodeGen/AArch64/fast-isel-tbz.ll vendor/llvm/dist/test/CodeGen/AArch64/fastcc.ll vendor/llvm/dist/test/CodeGen/AArch64/fcvt-int.ll vendor/llvm/dist/test/CodeGen/AArch64/fcvt_combine.ll vendor/llvm/dist/test/CodeGen/AArch64/fdiv-combine.ll vendor/llvm/dist/test/CodeGen/AArch64/fdiv_combine.ll vendor/llvm/dist/test/CodeGen/AArch64/fp-cond-sel.ll vendor/llvm/dist/test/CodeGen/AArch64/fp16-v4-instructions.ll vendor/llvm/dist/test/CodeGen/AArch64/fp16-vector-nvcast.ll vendor/llvm/dist/test/CodeGen/AArch64/fpimm.ll vendor/llvm/dist/test/CodeGen/AArch64/func-argpassing.ll vendor/llvm/dist/test/CodeGen/AArch64/func-calls.ll vendor/llvm/dist/test/CodeGen/AArch64/global-merge-3.ll vendor/llvm/dist/test/CodeGen/AArch64/global-merge-group-by-use.ll vendor/llvm/dist/test/CodeGen/AArch64/half.ll vendor/llvm/dist/test/CodeGen/AArch64/hints.ll vendor/llvm/dist/test/CodeGen/AArch64/inlineasm-ldr-pseudo.ll vendor/llvm/dist/test/CodeGen/AArch64/lit.local.cfg vendor/llvm/dist/test/CodeGen/AArch64/local_vars.ll vendor/llvm/dist/test/CodeGen/AArch64/logical-imm.ll vendor/llvm/dist/test/CodeGen/AArch64/machine-combiner.ll vendor/llvm/dist/test/CodeGen/AArch64/merge-store.ll vendor/llvm/dist/test/CodeGen/AArch64/misched-fusion.ll vendor/llvm/dist/test/CodeGen/AArch64/movw-consts.ll vendor/llvm/dist/test/CodeGen/AArch64/neon-compare-instructions.ll vendor/llvm/dist/test/CodeGen/AArch64/neon-mov.ll vendor/llvm/dist/test/CodeGen/AArch64/neon-perm.ll vendor/llvm/dist/test/CodeGen/AArch64/nontemporal.ll vendor/llvm/dist/test/CodeGen/AArch64/nzcv-save.ll vendor/llvm/dist/test/CodeGen/AArch64/regress-tblgen-chains.ll vendor/llvm/dist/test/CodeGen/AArch64/remat.ll vendor/llvm/dist/test/CodeGen/AArch64/sibling-call.ll vendor/llvm/dist/test/CodeGen/AArch64/special-reg.ll vendor/llvm/dist/test/CodeGen/AArch64/stack-guard-remat-bitcast.ll vendor/llvm/dist/test/CodeGen/AArch64/stackmap-frame-setup.ll vendor/llvm/dist/test/CodeGen/AArch64/stackmap-liveness.ll vendor/llvm/dist/test/CodeGen/AArch64/tailcall-implicit-sret.ll vendor/llvm/dist/test/CodeGen/AArch64/tailcall_misched_graph.ll vendor/llvm/dist/test/CodeGen/AArch64/vcvt-oversize.ll vendor/llvm/dist/test/CodeGen/AArch64/vector-fcopysign.ll vendor/llvm/dist/test/CodeGen/AMDGPU/32-bit-local-address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/add.ll vendor/llvm/dist/test/CodeGen/AMDGPU/add_i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/addrspacecast.ll vendor/llvm/dist/test/CodeGen/AMDGPU/and.ll vendor/llvm/dist/test/CodeGen/AMDGPU/annotate-kernel-features.ll vendor/llvm/dist/test/CodeGen/AMDGPU/array-ptr-calc-i32.ll vendor/llvm/dist/test/CodeGen/AMDGPU/array-ptr-calc-i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/atomic_cmp_swap_local.ll vendor/llvm/dist/test/CodeGen/AMDGPU/atomic_load_sub.ll vendor/llvm/dist/test/CodeGen/AMDGPU/basic-branch.ll vendor/llvm/dist/test/CodeGen/AMDGPU/big_alu.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bitcast.ll vendor/llvm/dist/test/CodeGen/AMDGPU/bitreverse.ll vendor/llvm/dist/test/CodeGen/AMDGPU/call.ll vendor/llvm/dist/test/CodeGen/AMDGPU/call_fs.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cayman-loop-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cgp-addressing-modes-flat.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cgp-addressing-modes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ci-use-flat-for-global.ll vendor/llvm/dist/test/CodeGen/AMDGPU/commute-compares.ll vendor/llvm/dist/test/CodeGen/AMDGPU/commute-shifts.ll vendor/llvm/dist/test/CodeGen/AMDGPU/commute_modifiers.ll vendor/llvm/dist/test/CodeGen/AMDGPU/complex-folding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/copy-illegal-type.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctlz.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctlz_zero_undef.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctpop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ctpop64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll vendor/llvm/dist/test/CodeGen/AMDGPU/default-fp-mode.ll vendor/llvm/dist/test/CodeGen/AMDGPU/drop-mem-operand-move-smrd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds-negative-offset-addressing-mode-loop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds-sub-offset.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_read2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_read2_offset_order.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_read2_superreg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_read2st64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_write2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ds_write2st64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/dynamic_stackalloc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/elf.ll vendor/llvm/dist/test/CodeGen/AMDGPU/endcf-loop-header.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extload-private.ll vendor/llvm/dist/test/CodeGen/AMDGPU/extload.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fabs.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fadd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fceil64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcopysign.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fdiv.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fdiv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fetch-limits.r600.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fetch-limits.r700+.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ffloor.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/flat-address-space.ll vendor/llvm/dist/test/CodeGen/AMDGPU/floor.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fma-combine.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fma.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmad.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax3.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax_legacy.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmax_legacy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmaxnum.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmin.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmin3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmin_legacy.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmin_legacy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fminnum.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmul-2-combine-multi-use.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmul.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fmuladd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg-fabs.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fneg.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp-classify.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp_to_sint.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp_to_sint.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fp_to_uint.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fpext.ll vendor/llvm/dist/test/CodeGen/AMDGPU/frem.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsqrt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsub.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fsub64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ftrunc.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ftrunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global-constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/global_atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/gv-const-addrspace.ll vendor/llvm/dist/test/CodeGen/AMDGPU/half.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-globals.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-note-no-func.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa.ll vendor/llvm/dist/test/CodeGen/AMDGPU/i1-copy-implicit-def.ll vendor/llvm/dist/test/CodeGen/AMDGPU/i1-copy-phi.ll vendor/llvm/dist/test/CodeGen/AMDGPU/imm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/indirect-addressing-si.ll vendor/llvm/dist/test/CodeGen/AMDGPU/indirect-private-64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/inline-asm.ll vendor/llvm/dist/test/CodeGen/AMDGPU/input-mods.ll vendor/llvm/dist/test/CodeGen/AMDGPU/insert_vector_elt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/invariant-load-no-alias-store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/jump-address.ll vendor/llvm/dist/test/CodeGen/AMDGPU/kcache-fold.ll vendor/llvm/dist/test/CodeGen/AMDGPU/kernel-args.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-alloca-compute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/large-alloca-graphics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-initializer.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-output-queue.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-size.ll vendor/llvm/dist/test/CodeGen/AMDGPU/lds-zero-initializer.ll vendor/llvm/dist/test/CodeGen/AMDGPU/literals.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.clamp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.cube.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.AMDGPU.kill.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.fs.interp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.gather4.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.getlod.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.image.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.image.sample.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.image.sample.o.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.load.dword.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.packf16.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.sendmsg-m0.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.sendmsg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.SI.tbuffer.store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.interp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.mbcnt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.inv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.inv.vol.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.wb.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.wb.vol.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgpu.kilp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.cos.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.dbg.value.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.memcpy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.pow.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.rint.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.round.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.round.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.sin.ll vendor/llvm/dist/test/CodeGen/AMDGPU/load-input-fold.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-atomics64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/local-memory.ll vendor/llvm/dist/test/CodeGen/AMDGPU/m0-spill.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mad-combine.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mad-sub.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mad_int24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mad_uint24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/madak.ll vendor/llvm/dist/test/CodeGen/AMDGPU/madmk.ll vendor/llvm/dist/test/CodeGen/AMDGPU/max-literals.ll vendor/llvm/dist/test/CodeGen/AMDGPU/max.ll vendor/llvm/dist/test/CodeGen/AMDGPU/max3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/merge-stores.ll vendor/llvm/dist/test/CodeGen/AMDGPU/min.ll vendor/llvm/dist/test/CodeGen/AMDGPU/min3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/missing-store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/move-addr64-rsrc-dead-subreg-writes.ll vendor/llvm/dist/test/CodeGen/AMDGPU/move-to-valu-atomicrmw.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mubuf.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mul.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mul_int24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mul_uint24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/no-hsa-graphics-shaders.ll vendor/llvm/dist/test/CodeGen/AMDGPU/no-initializer-constant-addrspace.ll vendor/llvm/dist/test/CodeGen/AMDGPU/no-shrink-extloads.ll vendor/llvm/dist/test/CodeGen/AMDGPU/opencl-image-metadata.ll vendor/llvm/dist/test/CodeGen/AMDGPU/operand-folding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/or.ll vendor/llvm/dist/test/CodeGen/AMDGPU/parallelandifcollapse.ll vendor/llvm/dist/test/CodeGen/AMDGPU/partially-dead-super-register-immediate.ll vendor/llvm/dist/test/CodeGen/AMDGPU/predicate-dp4.ll vendor/llvm/dist/test/CodeGen/AMDGPU/predicates.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-memory-atomics.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-memory-broken.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-bitcast-function.ll vendor/llvm/dist/test/CodeGen/AMDGPU/promote-alloca-stored-pointer-value.ll vendor/llvm/dist/test/CodeGen/AMDGPU/pv-packing.ll vendor/llvm/dist/test/CodeGen/AMDGPU/pv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600-encoding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600-export-fix.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600-infinite-loop-bug-while-reorganizing-vector.ll vendor/llvm/dist/test/CodeGen/AMDGPU/r600cfg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reciprocal.ll vendor/llvm/dist/test/CodeGen/AMDGPU/register-count-comments.ll vendor/llvm/dist/test/CodeGen/AMDGPU/reorder-stores.ll vendor/llvm/dist/test/CodeGen/AMDGPU/ret.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rotl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rsq.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rv7x0_count3.ll vendor/llvm/dist/test/CodeGen/AMDGPU/salu-to-valu.ll vendor/llvm/dist/test/CodeGen/AMDGPU/scalar_to_vector.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-fs-loop-nested-if.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-fs-loop-nested.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-fs-loop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-global-loads.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-if-2.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-if.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-kernel-arg-loads.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-vs-if-nested-loop-failure.ll vendor/llvm/dist/test/CodeGen/AMDGPU/schedule-vs-if-nested-loop.ll vendor/llvm/dist/test/CodeGen/AMDGPU/scratch-buffer.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sdiv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sdivrem24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sdivrem64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/select-vectors.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setcc-opt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setcc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/setcc64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sext-in-reg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sgpr-control-flow.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sgpr-copy.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shared-op-cycle.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl_add_constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/shl_add_ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-annotate-cf.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-instr-info-correct-implicit-operands.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-literal-folding.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-lod-bias.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-scheduler.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-sgpr-spill.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-spill-cf.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-triv-disjoint-mem-access.ll vendor/llvm/dist/test/CodeGen/AMDGPU/si-vector-hang.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sign_extend.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sint_to_fp.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sint_to_fp.i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sint_to_fp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sminmax.ll vendor/llvm/dist/test/CodeGen/AMDGPU/smrd.ll vendor/llvm/dist/test/CodeGen/AMDGPU/spill-alloc-sgpr-init-bug.ll vendor/llvm/dist/test/CodeGen/AMDGPU/spill-scavenge-offset.ll vendor/llvm/dist/test/CodeGen/AMDGPU/split-scalar-i64-add.ll vendor/llvm/dist/test/CodeGen/AMDGPU/split-vector-memoperand-offsets.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sra.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store-barrier.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store-v3i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/structurize.ll vendor/llvm/dist/test/CodeGen/AMDGPU/structurize1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sub.ll vendor/llvm/dist/test/CodeGen/AMDGPU/subreg-coalescer-crash.ll vendor/llvm/dist/test/CodeGen/AMDGPU/subreg-coalescer-undef-use.ll vendor/llvm/dist/test/CodeGen/AMDGPU/swizzle-export.ll vendor/llvm/dist/test/CodeGen/AMDGPU/tex-clause-antidep.ll vendor/llvm/dist/test/CodeGen/AMDGPU/texture-input-merge.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-cmp-constant.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc-store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/trunc.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udiv.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udivrem.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udivrem24.ll vendor/llvm/dist/test/CodeGen/AMDGPU/udivrem64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uint_to_fp.f64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uint_to_fp.i64.ll vendor/llvm/dist/test/CodeGen/AMDGPU/uint_to_fp.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unaligned-load-store.ll vendor/llvm/dist/test/CodeGen/AMDGPU/unhandled-loop-condition-assertion.ll vendor/llvm/dist/test/CodeGen/AMDGPU/use-sgpr-multiple-times.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v_cndmask.ll vendor/llvm/dist/test/CodeGen/AMDGPU/v_mac.ll vendor/llvm/dist/test/CodeGen/AMDGPU/valu-i1.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vector-alloca.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot-compute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vop-shrink.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vselect.ll vendor/llvm/dist/test/CodeGen/AMDGPU/wait.ll vendor/llvm/dist/test/CodeGen/AMDGPU/wrong-transalu-pos-fix.ll vendor/llvm/dist/test/CodeGen/AMDGPU/xor.ll vendor/llvm/dist/test/CodeGen/AMDGPU/zero_extend.ll vendor/llvm/dist/test/CodeGen/ARM/2009-08-31-LSDA-Name.ll vendor/llvm/dist/test/CodeGen/ARM/2009-10-16-Scope.ll vendor/llvm/dist/test/CodeGen/ARM/2010-04-15-ScavengerDebugValue.ll vendor/llvm/dist/test/CodeGen/ARM/2010-06-25-Thumb2ITInvalidIterator.ll vendor/llvm/dist/test/CodeGen/ARM/2010-08-04-StackVariable.ll vendor/llvm/dist/test/CodeGen/ARM/2010-11-29-PrologueBug.ll vendor/llvm/dist/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll vendor/llvm/dist/test/CodeGen/ARM/2011-04-15-AndVFlagPeepholeBug.ll vendor/llvm/dist/test/CodeGen/ARM/2011-04-15-RegisterCmpPeephole.ll vendor/llvm/dist/test/CodeGen/ARM/2011-04-26-SchedTweak.ll vendor/llvm/dist/test/CodeGen/ARM/2011-06-09-TailCallByVal.ll vendor/llvm/dist/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll vendor/llvm/dist/test/CodeGen/ARM/2011-08-25-ldmia_ret.ll vendor/llvm/dist/test/CodeGen/ARM/2012-09-25-InlineAsmScalarToVectorConv2.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/chkstk-movw-movt-isel.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/chkstk.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/division.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/long-calls.ll vendor/llvm/dist/test/CodeGen/ARM/Windows/no-aeabi.ll vendor/llvm/dist/test/CodeGen/ARM/align.ll vendor/llvm/dist/test/CodeGen/ARM/arm-and-tst-peephole.ll vendor/llvm/dist/test/CodeGen/ARM/arm-eabi.ll vendor/llvm/dist/test/CodeGen/ARM/arm-interleaved-accesses.ll vendor/llvm/dist/test/CodeGen/ARM/arm-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/ARM/atomic-64bit.ll vendor/llvm/dist/test/CodeGen/ARM/atomic-op.ll vendor/llvm/dist/test/CodeGen/ARM/atomic-ops-v8.ll vendor/llvm/dist/test/CodeGen/ARM/bfx.ll vendor/llvm/dist/test/CodeGen/ARM/build-attributes-encoding.s vendor/llvm/dist/test/CodeGen/ARM/build-attributes.ll vendor/llvm/dist/test/CodeGen/ARM/byval_load_align.ll vendor/llvm/dist/test/CodeGen/ARM/call-tc.ll vendor/llvm/dist/test/CodeGen/ARM/call.ll vendor/llvm/dist/test/CodeGen/ARM/carry.ll vendor/llvm/dist/test/CodeGen/ARM/cmpxchg-idioms.ll vendor/llvm/dist/test/CodeGen/ARM/cmpxchg-weak.ll vendor/llvm/dist/test/CodeGen/ARM/coalesce-dbgvalue.ll vendor/llvm/dist/test/CodeGen/ARM/code-placement.ll vendor/llvm/dist/test/CodeGen/ARM/crash-greedy.ll vendor/llvm/dist/test/CodeGen/ARM/cxx-tlscc.ll vendor/llvm/dist/test/CodeGen/ARM/dagcombine-anyexttozeroext.ll vendor/llvm/dist/test/CodeGen/ARM/darwin-tls.ll vendor/llvm/dist/test/CodeGen/ARM/debug-frame-vararg.ll vendor/llvm/dist/test/CodeGen/ARM/debug-frame.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-arg.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-blocks.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-branch-folding.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-d16-reg.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-no-frame.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-qreg.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-s16-reg.ll vendor/llvm/dist/test/CodeGen/ARM/debug-info-sreg2.ll vendor/llvm/dist/test/CodeGen/ARM/debug-segmented-stacks.ll vendor/llvm/dist/test/CodeGen/ARM/debugtrap.ll vendor/llvm/dist/test/CodeGen/ARM/default-float-abi.ll vendor/llvm/dist/test/CodeGen/ARM/divmod-eabi.ll vendor/llvm/dist/test/CodeGen/ARM/eh-resume-darwin.ll vendor/llvm/dist/test/CodeGen/ARM/ehabi-handlerdata-nounwind.ll vendor/llvm/dist/test/CodeGen/ARM/ehabi-handlerdata.ll vendor/llvm/dist/test/CodeGen/ARM/ehabi.ll vendor/llvm/dist/test/CodeGen/ARM/emutls.ll vendor/llvm/dist/test/CodeGen/ARM/emutls_generic.ll vendor/llvm/dist/test/CodeGen/ARM/fast-isel-call.ll vendor/llvm/dist/test/CodeGen/ARM/fast-isel-deadcode.ll vendor/llvm/dist/test/CodeGen/ARM/fast-isel-intrinsic.ll vendor/llvm/dist/test/CodeGen/ARM/fast-isel.ll vendor/llvm/dist/test/CodeGen/ARM/fast-tail-call.ll vendor/llvm/dist/test/CodeGen/ARM/fp16-promote.ll vendor/llvm/dist/test/CodeGen/ARM/fp16-v3.ll vendor/llvm/dist/test/CodeGen/ARM/fp16.ll vendor/llvm/dist/test/CodeGen/ARM/globals.ll vendor/llvm/dist/test/CodeGen/ARM/half.ll vendor/llvm/dist/test/CodeGen/ARM/hello.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt-iter-indbr.ll vendor/llvm/dist/test/CodeGen/ARM/inlineasm-ldr-pseudo.ll vendor/llvm/dist/test/CodeGen/ARM/inlineasm3.ll vendor/llvm/dist/test/CodeGen/ARM/interrupt-attr.ll vendor/llvm/dist/test/CodeGen/ARM/ldr_frame.ll vendor/llvm/dist/test/CodeGen/ARM/ldrd.ll vendor/llvm/dist/test/CodeGen/ARM/ldstrex-m.ll vendor/llvm/dist/test/CodeGen/ARM/legalize-unaligned-load.ll vendor/llvm/dist/test/CodeGen/ARM/longMAC.ll vendor/llvm/dist/test/CodeGen/ARM/lsr-code-insertion.ll vendor/llvm/dist/test/CodeGen/ARM/memfunc.ll vendor/llvm/dist/test/CodeGen/ARM/movt.ll vendor/llvm/dist/test/CodeGen/ARM/none-macho.ll vendor/llvm/dist/test/CodeGen/ARM/pic.ll vendor/llvm/dist/test/CodeGen/ARM/popcnt.ll vendor/llvm/dist/test/CodeGen/ARM/preferred-align.ll vendor/llvm/dist/test/CodeGen/ARM/returned-ext.ll vendor/llvm/dist/test/CodeGen/ARM/sincos.ll vendor/llvm/dist/test/CodeGen/ARM/sjlj-prepare-critical-edge.ll vendor/llvm/dist/test/CodeGen/ARM/sjljehprepare-lower-empty-struct.ll vendor/llvm/dist/test/CodeGen/ARM/smul.ll vendor/llvm/dist/test/CodeGen/ARM/struct_byval.ll vendor/llvm/dist/test/CodeGen/ARM/swift-vldm.ll vendor/llvm/dist/test/CodeGen/ARM/tail-call-weak.ll vendor/llvm/dist/test/CodeGen/ARM/this-return.ll vendor/llvm/dist/test/CodeGen/ARM/thread_pointer.ll vendor/llvm/dist/test/CodeGen/ARM/thumb-alignment.ll vendor/llvm/dist/test/CodeGen/ARM/thumb1-ldst-opt.ll vendor/llvm/dist/test/CodeGen/ARM/thumb1-varalloc.ll vendor/llvm/dist/test/CodeGen/ARM/thumb2-size-opt.ll vendor/llvm/dist/test/CodeGen/ARM/tls-models.ll vendor/llvm/dist/test/CodeGen/ARM/tls3.ll vendor/llvm/dist/test/CodeGen/ARM/trap.ll vendor/llvm/dist/test/CodeGen/ARM/truncstore-dag-combine.ll vendor/llvm/dist/test/CodeGen/ARM/twoaddrinstr.ll vendor/llvm/dist/test/CodeGen/ARM/v7k-libcalls.ll vendor/llvm/dist/test/CodeGen/ARM/v7k-sincos.ll vendor/llvm/dist/test/CodeGen/ARM/vcnt.ll vendor/llvm/dist/test/CodeGen/ARM/vcvt_combine.ll vendor/llvm/dist/test/CodeGen/ARM/vdiv_combine.ll vendor/llvm/dist/test/CodeGen/ARM/vfp-libcalls.ll vendor/llvm/dist/test/CodeGen/ARM/vfp-regs-dwarf.ll vendor/llvm/dist/test/CodeGen/ARM/vminmax.ll vendor/llvm/dist/test/CodeGen/ARM/warn-stack.ll vendor/llvm/dist/test/CodeGen/ARM/widen-vmovs.ll vendor/llvm/dist/test/CodeGen/ARM/zero-cycle-zero.ll vendor/llvm/dist/test/CodeGen/Generic/MachineBranchProb.ll vendor/llvm/dist/test/CodeGen/Generic/stop-after.ll vendor/llvm/dist/test/CodeGen/Hexagon/Atomics.ll vendor/llvm/dist/test/CodeGen/Hexagon/absaddr-store.ll vendor/llvm/dist/test/CodeGen/Hexagon/adde.ll vendor/llvm/dist/test/CodeGen/Hexagon/block-addr.ll vendor/llvm/dist/test/CodeGen/Hexagon/brev_ld.ll vendor/llvm/dist/test/CodeGen/Hexagon/brev_st.ll vendor/llvm/dist/test/CodeGen/Hexagon/cext-check.ll vendor/llvm/dist/test/CodeGen/Hexagon/cfi-late.ll vendor/llvm/dist/test/CodeGen/Hexagon/circ_ld.ll vendor/llvm/dist/test/CodeGen/Hexagon/circ_st.ll vendor/llvm/dist/test/CodeGen/Hexagon/clr_set_toggle.ll vendor/llvm/dist/test/CodeGen/Hexagon/extload-combine.ll vendor/llvm/dist/test/CodeGen/Hexagon/gp-plus-offset-load.ll vendor/llvm/dist/test/CodeGen/Hexagon/hwloop-dbg.ll vendor/llvm/dist/test/CodeGen/Hexagon/memops.ll vendor/llvm/dist/test/CodeGen/Hexagon/newvaluestore.ll vendor/llvm/dist/test/CodeGen/Hexagon/rdf-copy.ll vendor/llvm/dist/test/CodeGen/Hexagon/static.ll vendor/llvm/dist/test/CodeGen/Hexagon/struct_args_large.ll vendor/llvm/dist/test/CodeGen/Hexagon/sube.ll vendor/llvm/dist/test/CodeGen/Hexagon/v60Intrins.ll vendor/llvm/dist/test/CodeGen/Hexagon/zextloadi1.ll vendor/llvm/dist/test/CodeGen/Inputs/DbgValueOtherTargets.ll vendor/llvm/dist/test/CodeGen/MIR/AArch64/cfi-def-cfa.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/expected-target-flag-name.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/invalid-target-flag-name.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/multiple-lhs-operands.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/stack-object-local-offset.mir vendor/llvm/dist/test/CodeGen/MIR/AArch64/target-flags.mir vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/expected-target-index-name.mir vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/invalid-target-index-operand.mir vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/target-index-operands.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/bundled-instructions.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/cfi-same-value.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/expected-closing-brace.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/extraneous-closing-brace-error.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/nested-instruction-bundle-error.mir vendor/llvm/dist/test/CodeGen/MIR/ARM/sched-it-debug-nodes.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/basic-blocks.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/expected-colon-after-basic-block.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/expected-mbb-reference-for-successor-mbb.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/frame-info.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/function-missing-machine-function.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/invalid-jump-table-kind.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/llvm-ir-error-reported.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/llvmIR.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/llvmIRMissing.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-basic-block-ir-block-reference.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-basic-block-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-basic-block-undefined-ir-block.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-basic-block-unknown-name.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-missing-body-error.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-missing-function.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-missing-name.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/machine-function.mir vendor/llvm/dist/test/CodeGen/MIR/Generic/register-info.mir vendor/llvm/dist/test/CodeGen/MIR/Mips/expected-global-value-or-symbol-after-call-entry.mir vendor/llvm/dist/test/CodeGen/MIR/Mips/memory-operands.mir vendor/llvm/dist/test/CodeGen/MIR/NVPTX/expected-floating-point-literal.mir vendor/llvm/dist/test/CodeGen/MIR/NVPTX/floating-point-immediate-operands.mir vendor/llvm/dist/test/CodeGen/MIR/NVPTX/floating-point-invalid-type-error.mir vendor/llvm/dist/test/CodeGen/MIR/PowerPC/unordered-implicit-registers.mir vendor/llvm/dist/test/CodeGen/MIR/X86/basic-block-liveins.mir vendor/llvm/dist/test/CodeGen/MIR/X86/basic-block-not-at-start-of-line-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/block-address-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/callee-saved-info.mir vendor/llvm/dist/test/CodeGen/MIR/X86/cfi-def-cfa-offset.mir vendor/llvm/dist/test/CodeGen/MIR/X86/cfi-def-cfa-register.mir vendor/llvm/dist/test/CodeGen/MIR/X86/cfi-offset.mir vendor/llvm/dist/test/CodeGen/MIR/X86/constant-pool-item-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/constant-pool.mir vendor/llvm/dist/test/CodeGen/MIR/X86/constant-value-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/dead-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/def-register-already-tied-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/duplicate-memory-operand-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/duplicate-register-flag-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/early-clobber-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-align-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-alignment-after-align-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-basic-block-at-start-of-body.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-block-reference-in-blockaddress.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-comma-after-cfi-register.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-comma-after-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-different-implicit-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-different-implicit-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-function-reference-after-blockaddress.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-global-value-after-blockaddress.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-integer-after-offset-sign.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-integer-after-tied-def.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-integer-in-successor-weight.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-load-or-store-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-machine-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-metadata-node-after-debug-location.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-metadata-node-after-exclaim.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-metadata-node-in-stack-object.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-named-register-in-allocation-hint.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-named-register-in-callee-saved-register.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-named-register-in-functions-livein.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-named-register-livein.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-newline-at-end-of-list.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-number-after-bb.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-offset-after-cfi-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-pointer-value-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-positive-alignment-after-align.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-register-after-cfi-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-register-after-flags.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-size-integer-after-memory-operation.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-stack-object.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-subregister-after-colon.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-target-flag-name.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-tied-def-after-lparen.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-value-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/expected-virtual-register-in-functions-livein.mir vendor/llvm/dist/test/CodeGen/MIR/X86/external-symbol-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/fixed-stack-memory-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/fixed-stack-object-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/fixed-stack-objects.mir vendor/llvm/dist/test/CodeGen/MIR/X86/frame-info-save-restore-points.mir vendor/llvm/dist/test/CodeGen/MIR/X86/frame-info-stack-references.mir vendor/llvm/dist/test/CodeGen/MIR/X86/frame-setup-instruction-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/function-liveins.mir vendor/llvm/dist/test/CodeGen/MIR/X86/global-value-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/immediate-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/implicit-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/inline-asm-registers.mir vendor/llvm/dist/test/CodeGen/MIR/X86/instructions-debug-location.mir vendor/llvm/dist/test/CodeGen/MIR/X86/invalid-constant-pool-item.mir vendor/llvm/dist/test/CodeGen/MIR/X86/invalid-metadata-node-type.mir vendor/llvm/dist/test/CodeGen/MIR/X86/invalid-target-flag-name.mir vendor/llvm/dist/test/CodeGen/MIR/X86/invalid-tied-def-index-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/jump-table-info.mir vendor/llvm/dist/test/CodeGen/MIR/X86/jump-table-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/killed-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/large-cfi-offset-number-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/large-immediate-operand-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/large-index-number-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/large-offset-number-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/large-size-in-memory-operand-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/liveout-register-mask.mir vendor/llvm/dist/test/CodeGen/MIR/X86/machine-basic-block-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/machine-instructions.mir vendor/llvm/dist/test/CodeGen/MIR/X86/machine-verifier.mir vendor/llvm/dist/test/CodeGen/MIR/X86/memory-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/metadata-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/missing-closing-quote.mir vendor/llvm/dist/test/CodeGen/MIR/X86/missing-comma.mir vendor/llvm/dist/test/CodeGen/MIR/X86/missing-implicit-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/named-registers.mir vendor/llvm/dist/test/CodeGen/MIR/X86/newline-handling.mir vendor/llvm/dist/test/CodeGen/MIR/X86/null-register-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/register-mask-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/register-operands-target-flag-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/simple-register-allocation-hints.mir vendor/llvm/dist/test/CodeGen/MIR/X86/spill-slot-fixed-stack-object-aliased.mir vendor/llvm/dist/test/CodeGen/MIR/X86/spill-slot-fixed-stack-object-immutable.mir vendor/llvm/dist/test/CodeGen/MIR/X86/spill-slot-fixed-stack-objects.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-object-debug-info.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-object-invalid-name.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-object-operand-name-mismatch-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-object-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-object-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/stack-objects.mir vendor/llvm/dist/test/CodeGen/MIR/X86/standalone-register-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/subregister-operands.mir vendor/llvm/dist/test/CodeGen/MIR/X86/successor-basic-blocks-weights.mir vendor/llvm/dist/test/CodeGen/MIR/X86/successor-basic-blocks.mir vendor/llvm/dist/test/CodeGen/MIR/X86/tied-def-operand-invalid.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undef-register-flag.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-fixed-stack-object.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-global-value.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-ir-block-in-blockaddress.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-ir-block-slot-in-blockaddress.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-jump-table-id.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-named-global-value.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-register-class.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-stack-object.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-value-in-memory-operand.mir vendor/llvm/dist/test/CodeGen/MIR/X86/undefined-virtual-register.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-instruction.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-machine-basic-block.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-metadata-keyword.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-metadata-node.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-named-machine-basic-block.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-register.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unknown-subregister-index.mir vendor/llvm/dist/test/CodeGen/MIR/X86/unrecognized-character.mir vendor/llvm/dist/test/CodeGen/MIR/X86/used-physical-register-info.mir vendor/llvm/dist/test/CodeGen/MIR/X86/variable-sized-stack-object-size-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/variable-sized-stack-objects.mir vendor/llvm/dist/test/CodeGen/MIR/X86/virtual-register-redefinition-error.mir vendor/llvm/dist/test/CodeGen/MIR/X86/virtual-registers.mir vendor/llvm/dist/test/CodeGen/Mips/2010-07-20-Switch.ll vendor/llvm/dist/test/CodeGen/Mips/Fast-ISel/callabi.ll vendor/llvm/dist/test/CodeGen/Mips/Fast-ISel/check-disabled-mcpus.ll vendor/llvm/dist/test/CodeGen/Mips/Fast-ISel/div1.ll vendor/llvm/dist/test/CodeGen/Mips/Fast-ISel/fastalloca.ll vendor/llvm/dist/test/CodeGen/Mips/Fast-ISel/fpcmpa.ll vendor/llvm/dist/test/CodeGen/Mips/Fast-ISel/memtest1.ll vendor/llvm/dist/test/CodeGen/Mips/Fast-ISel/rem1.ll vendor/llvm/dist/test/CodeGen/Mips/Fast-ISel/shift.ll vendor/llvm/dist/test/CodeGen/Mips/abicalls.ll vendor/llvm/dist/test/CodeGen/Mips/adjust-callstack-sp.ll vendor/llvm/dist/test/CodeGen/Mips/alloca.ll vendor/llvm/dist/test/CodeGen/Mips/analyzebranch.ll vendor/llvm/dist/test/CodeGen/Mips/atomic.ll vendor/llvm/dist/test/CodeGen/Mips/biggot.ll vendor/llvm/dist/test/CodeGen/Mips/brdelayslot.ll vendor/llvm/dist/test/CodeGen/Mips/brsize3.ll vendor/llvm/dist/test/CodeGen/Mips/buildpairextractelementf64.ll vendor/llvm/dist/test/CodeGen/Mips/call-optimization.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-float.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-fp128.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-hard-float-varargs.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-hard-float.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-hard-fp128.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-struct.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments-varargs.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/arguments.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/callee-saved-float.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/callee-saved-fpxx.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/callee-saved.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/memory-layout.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/reserved-space.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return-float.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return-hard-float.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return-hard-fp128.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return-hard-struct-f128.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return-struct.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/return.ll vendor/llvm/dist/test/CodeGen/Mips/cconv/stack-alignment.ll vendor/llvm/dist/test/CodeGen/Mips/cfi_offset.ll vendor/llvm/dist/test/CodeGen/Mips/check-adde-redundant-moves.ll vendor/llvm/dist/test/CodeGen/Mips/cmov.ll vendor/llvm/dist/test/CodeGen/Mips/const-mult.ll vendor/llvm/dist/test/CodeGen/Mips/const4a.ll vendor/llvm/dist/test/CodeGen/Mips/const6.ll vendor/llvm/dist/test/CodeGen/Mips/const6a.ll vendor/llvm/dist/test/CodeGen/Mips/countleading.ll vendor/llvm/dist/test/CodeGen/Mips/divrem.ll vendor/llvm/dist/test/CodeGen/Mips/dsp-r1.ll vendor/llvm/dist/test/CodeGen/Mips/dynamic-stack-realignment.ll vendor/llvm/dist/test/CodeGen/Mips/eh-dwarf-cfa.ll vendor/llvm/dist/test/CodeGen/Mips/eh-return32.ll vendor/llvm/dist/test/CodeGen/Mips/eh-return64.ll vendor/llvm/dist/test/CodeGen/Mips/eh.ll vendor/llvm/dist/test/CodeGen/Mips/ehframe-indirect.ll vendor/llvm/dist/test/CodeGen/Mips/elf_eflags.ll vendor/llvm/dist/test/CodeGen/Mips/emergency-spill-slot-near-fp.ll vendor/llvm/dist/test/CodeGen/Mips/emutls_generic.ll vendor/llvm/dist/test/CodeGen/Mips/fastcc.ll vendor/llvm/dist/test/CodeGen/Mips/fcmp.ll vendor/llvm/dist/test/CodeGen/Mips/fcopysign-f32-f64.ll vendor/llvm/dist/test/CodeGen/Mips/fcopysign.ll vendor/llvm/dist/test/CodeGen/Mips/fmadd1.ll vendor/llvm/dist/test/CodeGen/Mips/fp-indexed-ls.ll vendor/llvm/dist/test/CodeGen/Mips/fp-spill-reload.ll vendor/llvm/dist/test/CodeGen/Mips/fp16-promote.ll vendor/llvm/dist/test/CodeGen/Mips/fp64a.ll vendor/llvm/dist/test/CodeGen/Mips/fpbr.ll vendor/llvm/dist/test/CodeGen/Mips/fpxx.ll vendor/llvm/dist/test/CodeGen/Mips/gpreg-lazy-binding.ll vendor/llvm/dist/test/CodeGen/Mips/hf16call32.ll vendor/llvm/dist/test/CodeGen/Mips/hf16call32_body.ll vendor/llvm/dist/test/CodeGen/Mips/hf1_body.ll vendor/llvm/dist/test/CodeGen/Mips/i64arg.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm-operand-code.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm_constraint.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm_constraint_R.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm_constraint_ZC.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasm_constraint_m.ll vendor/llvm/dist/test/CodeGen/Mips/inlineasmmemop.ll vendor/llvm/dist/test/CodeGen/Mips/internalfunc.ll vendor/llvm/dist/test/CodeGen/Mips/interrupt-attr-64-error.ll vendor/llvm/dist/test/CodeGen/Mips/largeimm1.ll vendor/llvm/dist/test/CodeGen/Mips/largeimmprinting.ll vendor/llvm/dist/test/CodeGen/Mips/lazy-binding.ll vendor/llvm/dist/test/CodeGen/Mips/lcb5.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/add.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/and.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/ashr.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/call.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/indirectbr.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/load-atomic.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/lshr.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/mul.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/or.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/ret.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/sdiv.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/shl.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/srem.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/store-atomic.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/sub.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/udiv.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/urem.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/xor.ll vendor/llvm/dist/test/CodeGen/Mips/load-store-left-right.ll vendor/llvm/dist/test/CodeGen/Mips/longbranch.ll vendor/llvm/dist/test/CodeGen/Mips/madd-msub.ll vendor/llvm/dist/test/CodeGen/Mips/micromips-addiu.ll vendor/llvm/dist/test/CodeGen/Mips/micromips-atomic1.ll vendor/llvm/dist/test/CodeGen/Mips/micromips-delay-slot.ll vendor/llvm/dist/test/CodeGen/Mips/micromips-or16.ll vendor/llvm/dist/test/CodeGen/Mips/micromips-shift.ll vendor/llvm/dist/test/CodeGen/Mips/mips16fpe.ll vendor/llvm/dist/test/CodeGen/Mips/mips64-f128.ll vendor/llvm/dist/test/CodeGen/Mips/mips64extins.ll vendor/llvm/dist/test/CodeGen/Mips/mips64fpldst.ll vendor/llvm/dist/test/CodeGen/Mips/mips64instrs.ll vendor/llvm/dist/test/CodeGen/Mips/mips64intldst.ll vendor/llvm/dist/test/CodeGen/Mips/mips64muldiv.ll vendor/llvm/dist/test/CodeGen/Mips/mips64r6/compatibility.ll vendor/llvm/dist/test/CodeGen/Mips/mips64shift.ll vendor/llvm/dist/test/CodeGen/Mips/mno-ldc1-sdc1.ll vendor/llvm/dist/test/CodeGen/Mips/msa/2r.ll vendor/llvm/dist/test/CodeGen/Mips/msa/2r_vector_scalar.ll vendor/llvm/dist/test/CodeGen/Mips/msa/2rf.ll vendor/llvm/dist/test/CodeGen/Mips/msa/2rf_float_int.ll vendor/llvm/dist/test/CodeGen/Mips/msa/2rf_int_float.ll vendor/llvm/dist/test/CodeGen/Mips/msa/3r-a.ll vendor/llvm/dist/test/CodeGen/Mips/msa/3r-b.ll vendor/llvm/dist/test/CodeGen/Mips/msa/3r-s.ll vendor/llvm/dist/test/CodeGen/Mips/msa/3r_splat.ll vendor/llvm/dist/test/CodeGen/Mips/msa/basic_operations.ll vendor/llvm/dist/test/CodeGen/Mips/msa/basic_operations_float.ll vendor/llvm/dist/test/CodeGen/Mips/msa/elm_copy.ll vendor/llvm/dist/test/CodeGen/Mips/msa/elm_cxcmsa.ll vendor/llvm/dist/test/CodeGen/Mips/msa/elm_insv.ll vendor/llvm/dist/test/CodeGen/Mips/msa/frameindex.ll vendor/llvm/dist/test/CodeGen/Mips/msa/i5-b.ll vendor/llvm/dist/test/CodeGen/Mips/msa/i8.ll vendor/llvm/dist/test/CodeGen/Mips/msa/vec.ll vendor/llvm/dist/test/CodeGen/Mips/nacl-align.ll vendor/llvm/dist/test/CodeGen/Mips/no-odd-spreg-msa.ll vendor/llvm/dist/test/CodeGen/Mips/no-odd-spreg.ll vendor/llvm/dist/test/CodeGen/Mips/o32_cc.ll vendor/llvm/dist/test/CodeGen/Mips/o32_cc_byval.ll vendor/llvm/dist/test/CodeGen/Mips/octeon.ll vendor/llvm/dist/test/CodeGen/Mips/octeon_popcnt.ll vendor/llvm/dist/test/CodeGen/Mips/optimize-pic-o0.ll vendor/llvm/dist/test/CodeGen/Mips/prevent-hoisting.ll vendor/llvm/dist/test/CodeGen/Mips/private.ll vendor/llvm/dist/test/CodeGen/Mips/return-vector.ll vendor/llvm/dist/test/CodeGen/Mips/rotate.ll vendor/llvm/dist/test/CodeGen/Mips/select.ll vendor/llvm/dist/test/CodeGen/Mips/selectcc.ll vendor/llvm/dist/test/CodeGen/Mips/stackcoloring.ll vendor/llvm/dist/test/CodeGen/Mips/start-asm-file.ll vendor/llvm/dist/test/CodeGen/Mips/stchar.ll vendor/llvm/dist/test/CodeGen/Mips/stldst.ll vendor/llvm/dist/test/CodeGen/Mips/tailcall.ll vendor/llvm/dist/test/CodeGen/Mips/tls-models.ll vendor/llvm/dist/test/CodeGen/Mips/tls.ll vendor/llvm/dist/test/CodeGen/Mips/unalignedload.ll vendor/llvm/dist/test/CodeGen/Mips/zeroreg.ll vendor/llvm/dist/test/CodeGen/NVPTX/access-non-generic.ll vendor/llvm/dist/test/CodeGen/NVPTX/arithmetic-int.ll vendor/llvm/dist/test/CodeGen/NVPTX/bug22322.ll vendor/llvm/dist/test/CodeGen/NVPTX/intrinsic-old.ll vendor/llvm/dist/test/CodeGen/NVPTX/noduplicate-syncthreads.ll vendor/llvm/dist/test/CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll vendor/llvm/dist/test/CodeGen/PowerPC/2008-03-24-CoalescerBug.ll vendor/llvm/dist/test/CodeGen/PowerPC/2008-07-15-Bswap.ll vendor/llvm/dist/test/CodeGen/PowerPC/2010-02-04-EmptyGlobal.ll vendor/llvm/dist/test/CodeGen/PowerPC/2012-11-16-mischedcall.ll vendor/llvm/dist/test/CodeGen/PowerPC/BreakableToken-reduced.ll vendor/llvm/dist/test/CodeGen/PowerPC/aantidep-def-ec.mir vendor/llvm/dist/test/CodeGen/PowerPC/addisdtprelha-nonr3.mir vendor/llvm/dist/test/CodeGen/PowerPC/align.ll vendor/llvm/dist/test/CodeGen/PowerPC/asm-constraints.ll vendor/llvm/dist/test/CodeGen/PowerPC/atomics-fences.ll vendor/llvm/dist/test/CodeGen/PowerPC/available-externally.ll vendor/llvm/dist/test/CodeGen/PowerPC/bdzlr.ll vendor/llvm/dist/test/CodeGen/PowerPC/builtins-ppc-p8vector.ll vendor/llvm/dist/test/CodeGen/PowerPC/code-align.ll vendor/llvm/dist/test/CodeGen/PowerPC/crsave.ll vendor/llvm/dist/test/CodeGen/PowerPC/crypto_bifs.ll vendor/llvm/dist/test/CodeGen/PowerPC/ctrloop-udivti3.ll vendor/llvm/dist/test/CodeGen/PowerPC/ctrloops.ll vendor/llvm/dist/test/CodeGen/PowerPC/dbg.ll vendor/llvm/dist/test/CodeGen/PowerPC/ec-input.ll vendor/llvm/dist/test/CodeGen/PowerPC/fabs.ll vendor/llvm/dist/test/CodeGen/PowerPC/fdiv-combine.ll vendor/llvm/dist/test/CodeGen/PowerPC/fma-assoc.ll vendor/llvm/dist/test/CodeGen/PowerPC/fma-ext.ll vendor/llvm/dist/test/CodeGen/PowerPC/fma-mutate.ll vendor/llvm/dist/test/CodeGen/PowerPC/fma.ll vendor/llvm/dist/test/CodeGen/PowerPC/fp2int2fp-ppcfp128.ll vendor/llvm/dist/test/CodeGen/PowerPC/hello-reloc.s vendor/llvm/dist/test/CodeGen/PowerPC/hidden-vis-2.ll vendor/llvm/dist/test/CodeGen/PowerPC/lbzux.ll vendor/llvm/dist/test/CodeGen/PowerPC/lsr-postinc-pos.ll vendor/llvm/dist/test/CodeGen/PowerPC/machine-combiner.ll vendor/llvm/dist/test/CodeGen/PowerPC/no-rlwimi-trivial-commute.mir vendor/llvm/dist/test/CodeGen/PowerPC/optcmp.ll vendor/llvm/dist/test/CodeGen/PowerPC/p8-scalar_vector_conversions.ll vendor/llvm/dist/test/CodeGen/PowerPC/p8altivec-shuffles-pred.ll vendor/llvm/dist/test/CodeGen/PowerPC/popcnt.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc32-i1-vaarg.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-align-long-double.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-byval-align.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-calls.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-fastcc.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-linux-func-size.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-toc.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppcf128-endian.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppcsoftops.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr17168.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr24546.ll vendor/llvm/dist/test/CodeGen/PowerPC/pr26690.ll vendor/llvm/dist/test/CodeGen/PowerPC/preincprep-invoke.ll vendor/llvm/dist/test/CodeGen/PowerPC/qpx-bv-sint.ll vendor/llvm/dist/test/CodeGen/PowerPC/qpx-s-sel.ll vendor/llvm/dist/test/CodeGen/PowerPC/qpx-sel.ll vendor/llvm/dist/test/CodeGen/PowerPC/qpx-split-vsetcc.ll vendor/llvm/dist/test/CodeGen/PowerPC/stack-protector.ll vendor/llvm/dist/test/CodeGen/PowerPC/stackmap-frame-setup.ll vendor/llvm/dist/test/CodeGen/PowerPC/stubs.ll vendor/llvm/dist/test/CodeGen/PowerPC/stwux.ll vendor/llvm/dist/test/CodeGen/PowerPC/subreg-postra-2.ll vendor/llvm/dist/test/CodeGen/PowerPC/subreg-postra.ll vendor/llvm/dist/test/CodeGen/PowerPC/svr4-redzone.ll vendor/llvm/dist/test/CodeGen/PowerPC/swaps-le-2.ll vendor/llvm/dist/test/CodeGen/PowerPC/tls_get_addr_stackframe.ll vendor/llvm/dist/test/CodeGen/PowerPC/unal-altivec.ll vendor/llvm/dist/test/CodeGen/PowerPC/unal4-std.ll vendor/llvm/dist/test/CodeGen/PowerPC/unwind-dw2-g.ll vendor/llvm/dist/test/CodeGen/PowerPC/vec_cmp.ll vendor/llvm/dist/test/CodeGen/PowerPC/vec_fneg.ll vendor/llvm/dist/test/CodeGen/PowerPC/vrsave-spill.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx-fma-m.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx-fma-mutate-undef.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx-fma-sp.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx-infl-copy1.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx-ldst-builtin-le.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx.ll vendor/llvm/dist/test/CodeGen/PowerPC/weak_def_can_be_hidden.ll vendor/llvm/dist/test/CodeGen/PowerPC/xvcmpeqdp-v2f64.ll vendor/llvm/dist/test/CodeGen/SPARC/2011-01-11-CC.ll vendor/llvm/dist/test/CodeGen/SPARC/32abi.ll vendor/llvm/dist/test/CodeGen/SPARC/64abi.ll vendor/llvm/dist/test/CodeGen/SPARC/atomics.ll vendor/llvm/dist/test/CodeGen/SPARC/float.ll vendor/llvm/dist/test/CodeGen/SPARC/fp128.ll vendor/llvm/dist/test/CodeGen/SPARC/inlineasm.ll vendor/llvm/dist/test/CodeGen/SPARC/missinglabel.ll vendor/llvm/dist/test/CodeGen/SystemZ/Large/branch-range-01.py vendor/llvm/dist/test/CodeGen/SystemZ/Large/branch-range-03.py vendor/llvm/dist/test/CodeGen/SystemZ/Large/branch-range-04.py vendor/llvm/dist/test/CodeGen/SystemZ/Large/branch-range-05.py vendor/llvm/dist/test/CodeGen/SystemZ/Large/branch-range-06.py vendor/llvm/dist/test/CodeGen/SystemZ/Large/branch-range-09.py vendor/llvm/dist/test/CodeGen/SystemZ/Large/branch-range-10.py vendor/llvm/dist/test/CodeGen/SystemZ/Large/branch-range-11.py vendor/llvm/dist/test/CodeGen/SystemZ/Large/branch-range-12.py vendor/llvm/dist/test/CodeGen/SystemZ/alloca-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/asm-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/asm-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/asm-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/asm-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-add-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-add-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-and-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-and-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-minmax-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-minmax-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-minmax-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-minmax-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-nand-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-nand-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-or-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-or-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-sub-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-sub-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-xchg-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-xchg-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-xor-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/atomicrmw-xor-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/branch-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/cmpxchg-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/cmpxchg-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/cond-store-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/cond-store-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/cond-store-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/cond-store-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/cond-store-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/cond-store-06.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-cmp-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-cmp-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-cmp-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-cmp-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-cmp-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-copysign-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-move-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-move-09.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-move-10.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-sqrt-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-sqrt-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/htm-intrinsics.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-06.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-07.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-08.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-09.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-10.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-11.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-12.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-13.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-14.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-15.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-16.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-17.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-18.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-19.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-20.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-21.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-22.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-23.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-24.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-25.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-26.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-27.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-28.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-29.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-30.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-31.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-32.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-33.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-34.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-35.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-36.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-37.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-38.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-39.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-40.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-41.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-42.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-43.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-44.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-46.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-47.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-cmp-48.ll vendor/llvm/dist/test/CodeGen/SystemZ/memchr-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/memchr-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/memcmp-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/memcmp-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/risbg-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/risbg-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/strcmp-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/strcmp-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-extract-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-intrinsics.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-sub-01.ll vendor/llvm/dist/test/CodeGen/Thumb/2010-07-01-FuncAlign.ll vendor/llvm/dist/test/CodeGen/Thumb/2010-07-15-debugOrdering.ll vendor/llvm/dist/test/CodeGen/Thumb/barrier.ll vendor/llvm/dist/test/CodeGen/Thumb/ldm-merge-struct.ll vendor/llvm/dist/test/CodeGen/Thumb/segmented-stacks.ll vendor/llvm/dist/test/CodeGen/Thumb2/2009-09-01-PostRAProlog.ll vendor/llvm/dist/test/CodeGen/Thumb2/2009-12-01-LoopIVUsers.ll vendor/llvm/dist/test/CodeGen/Thumb2/2010-02-11-phi-cycle.ll vendor/llvm/dist/test/CodeGen/Thumb2/2010-03-15-AsmCCClobber.ll vendor/llvm/dist/test/CodeGen/Thumb2/aligned-constants.ll vendor/llvm/dist/test/CodeGen/Thumb2/carry.ll vendor/llvm/dist/test/CodeGen/Thumb2/emit-unwinding.ll vendor/llvm/dist/test/CodeGen/Thumb2/ldr-str-imm12.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-call.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-cbnz.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ldm.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-tbb.ll vendor/llvm/dist/test/CodeGen/Thumb2/tls2.ll vendor/llvm/dist/test/CodeGen/Thumb2/v8_IT_5.ll vendor/llvm/dist/test/CodeGen/WebAssembly/call.ll vendor/llvm/dist/test/CodeGen/WebAssembly/cfg-stackify.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_f32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_f64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_i32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_i64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/conv.ll vendor/llvm/dist/test/CodeGen/WebAssembly/cpus.ll vendor/llvm/dist/test/CodeGen/WebAssembly/dead-vreg.ll vendor/llvm/dist/test/CodeGen/WebAssembly/f32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/f64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/fast-isel.ll vendor/llvm/dist/test/CodeGen/WebAssembly/frem.ll vendor/llvm/dist/test/CodeGen/WebAssembly/func.ll vendor/llvm/dist/test/CodeGen/WebAssembly/global.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/i64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/immediates.ll vendor/llvm/dist/test/CodeGen/WebAssembly/inline-asm.ll vendor/llvm/dist/test/CodeGen/WebAssembly/legalize.ll vendor/llvm/dist/test/CodeGen/WebAssembly/load-ext.ll vendor/llvm/dist/test/CodeGen/WebAssembly/load-store-i1.ll vendor/llvm/dist/test/CodeGen/WebAssembly/load.ll vendor/llvm/dist/test/CodeGen/WebAssembly/memory-addr32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/memory-addr64.ll vendor/llvm/dist/test/CodeGen/WebAssembly/offset-folding.ll vendor/llvm/dist/test/CodeGen/WebAssembly/offset.ll vendor/llvm/dist/test/CodeGen/WebAssembly/phi.ll vendor/llvm/dist/test/CodeGen/WebAssembly/reg-stackify.ll vendor/llvm/dist/test/CodeGen/WebAssembly/return-int32.ll vendor/llvm/dist/test/CodeGen/WebAssembly/return-void.ll vendor/llvm/dist/test/CodeGen/WebAssembly/returned.ll vendor/llvm/dist/test/CodeGen/WebAssembly/select.ll vendor/llvm/dist/test/CodeGen/WebAssembly/signext-zeroext.ll vendor/llvm/dist/test/CodeGen/WebAssembly/store-results.ll vendor/llvm/dist/test/CodeGen/WebAssembly/store-trunc.ll vendor/llvm/dist/test/CodeGen/WebAssembly/store.ll vendor/llvm/dist/test/CodeGen/WebAssembly/switch.ll vendor/llvm/dist/test/CodeGen/WebAssembly/unreachable.ll vendor/llvm/dist/test/CodeGen/WebAssembly/unused-argument.ll vendor/llvm/dist/test/CodeGen/WebAssembly/userstack.ll vendor/llvm/dist/test/CodeGen/WebAssembly/varargs.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-cloning.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-statenumbering-cleanups.ll vendor/llvm/dist/test/CodeGen/WinEH/wineh-statenumbering.ll vendor/llvm/dist/test/CodeGen/X86/2006-05-02-InstrSched1.ll vendor/llvm/dist/test/CodeGen/X86/2006-11-12-CSRetCC.ll vendor/llvm/dist/test/CodeGen/X86/2007-08-10-SignExtSubreg.ll vendor/llvm/dist/test/CodeGen/X86/2007-10-15-CoalescerCrash.ll vendor/llvm/dist/test/CodeGen/X86/2008-06-13-NotVolatileLoadStore.ll vendor/llvm/dist/test/CodeGen/X86/2008-07-19-movups-spills.ll vendor/llvm/dist/test/CodeGen/X86/2008-07-22-CombinerCrash.ll vendor/llvm/dist/test/CodeGen/X86/2008-08-17-UComiCodeGenBug.ll vendor/llvm/dist/test/CodeGen/X86/2008-09-11-CoalescerBug2.ll vendor/llvm/dist/test/CodeGen/X86/2008-09-29-ReMatBug.ll vendor/llvm/dist/test/CodeGen/X86/2009-02-12-DebugInfoVLA.ll vendor/llvm/dist/test/CodeGen/X86/2009-03-05-burr-list-crash.ll vendor/llvm/dist/test/CodeGen/X86/2009-10-16-Scope.ll vendor/llvm/dist/test/CodeGen/X86/2010-01-18-DbgValue.ll vendor/llvm/dist/test/CodeGen/X86/2010-02-01-DbgValueCrash.ll vendor/llvm/dist/test/CodeGen/X86/2010-05-25-DotDebugLoc.ll vendor/llvm/dist/test/CodeGen/X86/2010-05-26-DotDebugLoc.ll vendor/llvm/dist/test/CodeGen/X86/2010-05-28-Crash.ll vendor/llvm/dist/test/CodeGen/X86/2010-06-01-DeadArg-DbgInfo.ll vendor/llvm/dist/test/CodeGen/X86/2010-07-06-DbgCrash.ll vendor/llvm/dist/test/CodeGen/X86/2010-08-04-StackVariable.ll vendor/llvm/dist/test/CodeGen/X86/2010-09-16-EmptyFilename.ll vendor/llvm/dist/test/CodeGen/X86/2010-11-02-DbgParameter.ll vendor/llvm/dist/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll vendor/llvm/dist/test/CodeGen/X86/2011-06-14-PreschedRegalias.ll vendor/llvm/dist/test/CodeGen/X86/2011-09-14-valcoalesce.ll vendor/llvm/dist/test/CodeGen/X86/2011-10-21-widen-cmp.ll vendor/llvm/dist/test/CodeGen/X86/2012-01-11-split-cv.ll vendor/llvm/dist/test/CodeGen/X86/2012-01-12-extract-sv.ll vendor/llvm/dist/test/CodeGen/X86/2012-04-26-sdglue.ll vendor/llvm/dist/test/CodeGen/X86/2012-1-10-buildvector.ll vendor/llvm/dist/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll vendor/llvm/dist/test/CodeGen/X86/2012-11-30-misched-dbg.ll vendor/llvm/dist/test/CodeGen/X86/2012-11-30-regpres-dbg.ll vendor/llvm/dist/test/CodeGen/X86/3addr-16bit.ll vendor/llvm/dist/test/CodeGen/X86/GC/dynamic-frame-size.ll vendor/llvm/dist/test/CodeGen/X86/GC/erlang-gc.ll vendor/llvm/dist/test/CodeGen/X86/GC/ocaml-gc.ll vendor/llvm/dist/test/CodeGen/X86/MachineSink-DbgValue.ll vendor/llvm/dist/test/CodeGen/X86/MergeConsecutiveStores.ll vendor/llvm/dist/test/CodeGen/X86/StackColoring-dbg.ll vendor/llvm/dist/test/CodeGen/X86/StackColoring.ll vendor/llvm/dist/test/CodeGen/X86/WidenArith.ll vendor/llvm/dist/test/CodeGen/X86/abi-isel.ll vendor/llvm/dist/test/CodeGen/X86/add-nsw-sext.ll vendor/llvm/dist/test/CodeGen/X86/add.ll vendor/llvm/dist/test/CodeGen/X86/aligned-variadic.ll vendor/llvm/dist/test/CodeGen/X86/alignment.ll vendor/llvm/dist/test/CodeGen/X86/all-ones-vector.ll vendor/llvm/dist/test/CodeGen/X86/and-encoding.ll vendor/llvm/dist/test/CodeGen/X86/anyext.ll vendor/llvm/dist/test/CodeGen/X86/atom-lea-sp.ll vendor/llvm/dist/test/CodeGen/X86/atomic-non-integer.ll vendor/llvm/dist/test/CodeGen/X86/atomic128.ll vendor/llvm/dist/test/CodeGen/X86/atomic16.ll vendor/llvm/dist/test/CodeGen/X86/atomic8.ll vendor/llvm/dist/test/CodeGen/X86/atomic_mi.ll vendor/llvm/dist/test/CodeGen/X86/avoid-loop-align.ll vendor/llvm/dist/test/CodeGen/X86/avx-basic.ll vendor/llvm/dist/test/CodeGen/X86/avx-cast.ll vendor/llvm/dist/test/CodeGen/X86/avx-intel-ocl.ll vendor/llvm/dist/test/CodeGen/X86/avx-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/avx-intrinsics-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/avx-isa-check.ll vendor/llvm/dist/test/CodeGen/X86/avx-select.ll vendor/llvm/dist/test/CodeGen/X86/avx-shift.ll vendor/llvm/dist/test/CodeGen/X86/avx-shuffle-x86_32.ll vendor/llvm/dist/test/CodeGen/X86/avx-splat.ll vendor/llvm/dist/test/CodeGen/X86/avx-trunc.ll vendor/llvm/dist/test/CodeGen/X86/avx-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/avx-vextractf128.ll vendor/llvm/dist/test/CodeGen/X86/avx-vperm2x128.ll vendor/llvm/dist/test/CodeGen/X86/avx-vzeroupper.ll vendor/llvm/dist/test/CodeGen/X86/avx2-conversions.ll vendor/llvm/dist/test/CodeGen/X86/avx2-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/avx2-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/avx2-logic.ll vendor/llvm/dist/test/CodeGen/X86/avx2-nontemporal.ll vendor/llvm/dist/test/CodeGen/X86/avx2-phaddsub.ll vendor/llvm/dist/test/CodeGen/X86/avx2-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/avx2-vector-shifts.ll vendor/llvm/dist/test/CodeGen/X86/avx2-vperm.ll vendor/llvm/dist/test/CodeGen/X86/avx512-arith.ll vendor/llvm/dist/test/CodeGen/X86/avx512-bugfix-23634.ll vendor/llvm/dist/test/CodeGen/X86/avx512-build-vector.ll vendor/llvm/dist/test/CodeGen/X86/avx512-calling-conv.ll vendor/llvm/dist/test/CodeGen/X86/avx512-cmp.ll vendor/llvm/dist/test/CodeGen/X86/avx512-cvt.ll vendor/llvm/dist/test/CodeGen/X86/avx512-ext.ll vendor/llvm/dist/test/CodeGen/X86/avx512-extract-subvector.ll vendor/llvm/dist/test/CodeGen/X86/avx512-fma-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512-fma.ll vendor/llvm/dist/test/CodeGen/X86/avx512-gather-scatter-intrin.ll vendor/llvm/dist/test/CodeGen/X86/avx512-inc-dec.ll vendor/llvm/dist/test/CodeGen/X86/avx512-insert-extract.ll vendor/llvm/dist/test/CodeGen/X86/avx512-intel-ocl.ll vendor/llvm/dist/test/CodeGen/X86/avx512-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512-logic.ll vendor/llvm/dist/test/CodeGen/X86/avx512-mask-op.ll vendor/llvm/dist/test/CodeGen/X86/avx512-mov.ll vendor/llvm/dist/test/CodeGen/X86/avx512-nontemporal.ll vendor/llvm/dist/test/CodeGen/X86/avx512-select.ll vendor/llvm/dist/test/CodeGen/X86/avx512-skx-insert-subvec.ll vendor/llvm/dist/test/CodeGen/X86/avx512-trunc.ll vendor/llvm/dist/test/CodeGen/X86/avx512-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/avx512-vec-cmp.ll vendor/llvm/dist/test/CodeGen/X86/avx512bw-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512bw-mask-op.ll vendor/llvm/dist/test/CodeGen/X86/avx512bw-mov.ll vendor/llvm/dist/test/CodeGen/X86/avx512bw-vec-cmp.ll vendor/llvm/dist/test/CodeGen/X86/avx512bwvl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512bwvl-mov.ll vendor/llvm/dist/test/CodeGen/X86/avx512bwvl-vec-cmp.ll vendor/llvm/dist/test/CodeGen/X86/avx512cdvl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512dq-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512dq-mask-op.ll vendor/llvm/dist/test/CodeGen/X86/avx512dqvl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-logic.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-mov.ll vendor/llvm/dist/test/CodeGen/X86/avx512vl-vec-cmp.ll vendor/llvm/dist/test/CodeGen/X86/bit-piece-comment.ll vendor/llvm/dist/test/CodeGen/X86/bitreverse.ll vendor/llvm/dist/test/CodeGen/X86/block-placement.ll vendor/llvm/dist/test/CodeGen/X86/bmi.ll vendor/llvm/dist/test/CodeGen/X86/bool-zext.ll vendor/llvm/dist/test/CodeGen/X86/br-fold.ll vendor/llvm/dist/test/CodeGen/X86/break-false-dep.ll vendor/llvm/dist/test/CodeGen/X86/bss_pagealigned.ll vendor/llvm/dist/test/CodeGen/X86/bswap-vector.ll vendor/llvm/dist/test/CodeGen/X86/bt.ll vendor/llvm/dist/test/CodeGen/X86/buildvec-insertvec.ll vendor/llvm/dist/test/CodeGen/X86/byval2.ll vendor/llvm/dist/test/CodeGen/X86/call-push.ll vendor/llvm/dist/test/CodeGen/X86/catchpad-lifetime.ll vendor/llvm/dist/test/CodeGen/X86/cfstring.ll vendor/llvm/dist/test/CodeGen/X86/cleanuppad-inalloca.ll vendor/llvm/dist/test/CodeGen/X86/cleanuppad-realign.ll vendor/llvm/dist/test/CodeGen/X86/clz.ll vendor/llvm/dist/test/CodeGen/X86/cmov-into-branch.ll vendor/llvm/dist/test/CodeGen/X86/cmov.ll vendor/llvm/dist/test/CodeGen/X86/cmovcmov.ll vendor/llvm/dist/test/CodeGen/X86/cmp.ll vendor/llvm/dist/test/CodeGen/X86/cmpxchg-clobber-flags.ll vendor/llvm/dist/test/CodeGen/X86/cmpxchg-i1.ll vendor/llvm/dist/test/CodeGen/X86/cmpxchg-i128-i1.ll vendor/llvm/dist/test/CodeGen/X86/coalescer-commute3.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_align_all.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_cold_loop_blocks.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_ignore_succ_in_inner_loop.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_loop_rotation.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_loop_rotation2.ll vendor/llvm/dist/test/CodeGen/X86/code_placement_outline_optional_branches.ll vendor/llvm/dist/test/CodeGen/X86/combine-multiplies.ll vendor/llvm/dist/test/CodeGen/X86/combine-or.ll vendor/llvm/dist/test/CodeGen/X86/commute-blend-avx2.ll vendor/llvm/dist/test/CodeGen/X86/commute-blend-sse41.ll vendor/llvm/dist/test/CodeGen/X86/commute-fcmp.ll vendor/llvm/dist/test/CodeGen/X86/constructor.ll vendor/llvm/dist/test/CodeGen/X86/ctpop-combine.ll vendor/llvm/dist/test/CodeGen/X86/cxx_tlscc64.ll vendor/llvm/dist/test/CodeGen/X86/dag-optnone.ll vendor/llvm/dist/test/CodeGen/X86/dbg-changes-codegen-branch-folding.ll vendor/llvm/dist/test/CodeGen/X86/dbg-combine.ll vendor/llvm/dist/test/CodeGen/X86/debugloc-argsize.ll vendor/llvm/dist/test/CodeGen/X86/dllexport-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/dllexport.ll vendor/llvm/dist/test/CodeGen/X86/dwarf-comp-dir.ll vendor/llvm/dist/test/CodeGen/X86/dynamic-alloca-in-entry.ll vendor/llvm/dist/test/CodeGen/X86/dynamic-allocas-VLAs.ll vendor/llvm/dist/test/CodeGen/X86/emutls-pic.ll vendor/llvm/dist/test/CodeGen/X86/emutls-pie.ll vendor/llvm/dist/test/CodeGen/X86/emutls_generic.ll vendor/llvm/dist/test/CodeGen/X86/exedepsfix-broadcast.ll vendor/llvm/dist/test/CodeGen/X86/expand-vr64-gr64-copy.mir vendor/llvm/dist/test/CodeGen/X86/extractelement-index.ll vendor/llvm/dist/test/CodeGen/X86/extractelement-load.ll vendor/llvm/dist/test/CodeGen/X86/extractps.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-call.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-cmp-branch2.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-cmp-branch3.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-float-half-convertion.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-nontemporal.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-stackcheck.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-vecload.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-x86-64.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-x86.ll vendor/llvm/dist/test/CodeGen/X86/fastmath-float-half-conversion.ll vendor/llvm/dist/test/CodeGen/X86/float-conv-elim.ll vendor/llvm/dist/test/CodeGen/X86/fma_patterns.ll vendor/llvm/dist/test/CodeGen/X86/fold-push.ll vendor/llvm/dist/test/CodeGen/X86/fold-tied-op.ll vendor/llvm/dist/test/CodeGen/X86/fold-vector-sext-zext.ll vendor/llvm/dist/test/CodeGen/X86/force-align-stack-alloca.ll vendor/llvm/dist/test/CodeGen/X86/fp-logic.ll vendor/llvm/dist/test/CodeGen/X86/fp-une-cmp.ll vendor/llvm/dist/test/CodeGen/X86/fp128-cast.ll vendor/llvm/dist/test/CodeGen/X86/fp128-compare.ll vendor/llvm/dist/test/CodeGen/X86/fpstack-debuginstr-kill.ll vendor/llvm/dist/test/CodeGen/X86/ga-offset.ll vendor/llvm/dist/test/CodeGen/X86/global-sections.ll vendor/llvm/dist/test/CodeGen/X86/h-registers-3.ll vendor/llvm/dist/test/CodeGen/X86/haddsub-2.ll vendor/llvm/dist/test/CodeGen/X86/haddsub-undef.ll vendor/llvm/dist/test/CodeGen/X86/haddsub.ll vendor/llvm/dist/test/CodeGen/X86/half.ll vendor/llvm/dist/test/CodeGen/X86/hipe-cc.ll vendor/llvm/dist/test/CodeGen/X86/hipe-cc64.ll vendor/llvm/dist/test/CodeGen/X86/hipe-prologue.ll vendor/llvm/dist/test/CodeGen/X86/hoist-invariant-load.ll vendor/llvm/dist/test/CodeGen/X86/i386-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/X86/i386-tlscall-fastregalloc.ll vendor/llvm/dist/test/CodeGen/X86/implicit-null-check.ll vendor/llvm/dist/test/CodeGen/X86/inalloca-ctor.ll vendor/llvm/dist/test/CodeGen/X86/inalloca-invoke.ll vendor/llvm/dist/test/CodeGen/X86/inalloca-stdcall.ll vendor/llvm/dist/test/CodeGen/X86/inalloca.ll vendor/llvm/dist/test/CodeGen/X86/indirect-hidden.ll vendor/llvm/dist/test/CodeGen/X86/insertelement-zero.ll vendor/llvm/dist/test/CodeGen/X86/insertps-combine.ll vendor/llvm/dist/test/CodeGen/X86/lea-opt.ll vendor/llvm/dist/test/CodeGen/X86/libcall-sret.ll vendor/llvm/dist/test/CodeGen/X86/licm-dominance.ll vendor/llvm/dist/test/CodeGen/X86/licm-symbol.ll vendor/llvm/dist/test/CodeGen/X86/localescape.ll vendor/llvm/dist/test/CodeGen/X86/loop-blocks.ll vendor/llvm/dist/test/CodeGen/X86/lsr-static-addr.ll vendor/llvm/dist/test/CodeGen/X86/lzcnt-tzcnt.ll vendor/llvm/dist/test/CodeGen/X86/machine-combiner-int.ll vendor/llvm/dist/test/CodeGen/X86/machine-cp.ll vendor/llvm/dist/test/CodeGen/X86/machine-trace-metrics-crash.ll vendor/llvm/dist/test/CodeGen/X86/masked_gather_scatter.ll vendor/llvm/dist/test/CodeGen/X86/masked_memop.ll vendor/llvm/dist/test/CodeGen/X86/mcinst-lowering.ll vendor/llvm/dist/test/CodeGen/X86/mcu-abi.ll vendor/llvm/dist/test/CodeGen/X86/memcmp.ll vendor/llvm/dist/test/CodeGen/X86/memset-2.ll vendor/llvm/dist/test/CodeGen/X86/memset64-on-x86-32.ll vendor/llvm/dist/test/CodeGen/X86/merge-store-partially-alias-loads.ll vendor/llvm/dist/test/CodeGen/X86/mfence.ll vendor/llvm/dist/test/CodeGen/X86/mingw-alloca.ll vendor/llvm/dist/test/CodeGen/X86/misched-aa-colored.ll vendor/llvm/dist/test/CodeGen/X86/misched-code-difference-with-debug.ll vendor/llvm/dist/test/CodeGen/X86/misched-ilp.ll vendor/llvm/dist/test/CodeGen/X86/movgs.ll vendor/llvm/dist/test/CodeGen/X86/movmsk.ll vendor/llvm/dist/test/CodeGen/X86/movpc32-check.ll vendor/llvm/dist/test/CodeGen/X86/movtopush.ll vendor/llvm/dist/test/CodeGen/X86/mul128.ll vendor/llvm/dist/test/CodeGen/X86/mul64.ll vendor/llvm/dist/test/CodeGen/X86/musttail-varargs.ll vendor/llvm/dist/test/CodeGen/X86/negate-add-zero.ll vendor/llvm/dist/test/CodeGen/X86/nontemporal-2.ll vendor/llvm/dist/test/CodeGen/X86/nontemporal.ll vendor/llvm/dist/test/CodeGen/X86/null-streamer.ll vendor/llvm/dist/test/CodeGen/X86/opt-ext-uses.ll vendor/llvm/dist/test/CodeGen/X86/or-lea.ll vendor/llvm/dist/test/CodeGen/X86/osx-private-labels.ll vendor/llvm/dist/test/CodeGen/X86/patchpoint-verifiable.mir vendor/llvm/dist/test/CodeGen/X86/peephole-na-phys-copy-folding.ll vendor/llvm/dist/test/CodeGen/X86/phaddsub.ll vendor/llvm/dist/test/CodeGen/X86/phi-immediate-factoring.ll vendor/llvm/dist/test/CodeGen/X86/phys-reg-local-regalloc.ll vendor/llvm/dist/test/CodeGen/X86/phys_subreg_coalesce-2.ll vendor/llvm/dist/test/CodeGen/X86/pic.ll vendor/llvm/dist/test/CodeGen/X86/pic_jumptable.ll vendor/llvm/dist/test/CodeGen/X86/pku.ll vendor/llvm/dist/test/CodeGen/X86/pmul.ll vendor/llvm/dist/test/CodeGen/X86/pop-stack-cleanup.ll vendor/llvm/dist/test/CodeGen/X86/popcnt.ll vendor/llvm/dist/test/CodeGen/X86/postra-licm.ll vendor/llvm/dist/test/CodeGen/X86/powi.ll vendor/llvm/dist/test/CodeGen/X86/pr15267.ll vendor/llvm/dist/test/CodeGen/X86/pr16360.ll vendor/llvm/dist/test/CodeGen/X86/pr17764.ll vendor/llvm/dist/test/CodeGen/X86/pr23664.ll vendor/llvm/dist/test/CodeGen/X86/pr2659.ll vendor/llvm/dist/test/CodeGen/X86/pr5145.ll vendor/llvm/dist/test/CodeGen/X86/promote-i16.ll vendor/llvm/dist/test/CodeGen/X86/pshufb-mask-comments.ll vendor/llvm/dist/test/CodeGen/X86/psubus.ll vendor/llvm/dist/test/CodeGen/X86/push-cfi-debug.ll vendor/llvm/dist/test/CodeGen/X86/push-cfi.ll vendor/llvm/dist/test/CodeGen/X86/ragreedy-hoist-spill.ll vendor/llvm/dist/test/CodeGen/X86/regalloc-reconcile-broken-hints.ll vendor/llvm/dist/test/CodeGen/X86/rem.ll vendor/llvm/dist/test/CodeGen/X86/rem_crash.ll vendor/llvm/dist/test/CodeGen/X86/rtm.ll vendor/llvm/dist/test/CodeGen/X86/segmented-stacks.ll vendor/llvm/dist/test/CodeGen/X86/seh-catch-all-win32.ll vendor/llvm/dist/test/CodeGen/X86/seh-safe-div-win32.ll vendor/llvm/dist/test/CodeGen/X86/seh-safe-div.ll vendor/llvm/dist/test/CodeGen/X86/seh-stack-realign.ll vendor/llvm/dist/test/CodeGen/X86/setcc-lowering.ll vendor/llvm/dist/test/CodeGen/X86/setcc-narrowing.ll vendor/llvm/dist/test/CodeGen/X86/setcc.ll vendor/llvm/dist/test/CodeGen/X86/sext-ret-val.ll vendor/llvm/dist/test/CodeGen/X86/sext-setcc-self.ll vendor/llvm/dist/test/CodeGen/X86/sext-trunc.ll vendor/llvm/dist/test/CodeGen/X86/shift-pcmp.ll vendor/llvm/dist/test/CodeGen/X86/shrink-wrap-chkstk.ll vendor/llvm/dist/test/CodeGen/X86/sibcall-5.ll vendor/llvm/dist/test/CodeGen/X86/sibcall-byval.ll vendor/llvm/dist/test/CodeGen/X86/sincos-opt.ll vendor/llvm/dist/test/CodeGen/X86/sink-blockfreq.ll vendor/llvm/dist/test/CodeGen/X86/sink-cheap-instructions.ll vendor/llvm/dist/test/CodeGen/X86/slow-unaligned-mem.ll vendor/llvm/dist/test/CodeGen/X86/sqrt-fastmath.ll vendor/llvm/dist/test/CodeGen/X86/sse-intel-ocl.ll vendor/llvm/dist/test/CodeGen/X86/sse-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/sse1.ll vendor/llvm/dist/test/CodeGen/X86/sse2-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/sse2-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/sse2.ll vendor/llvm/dist/test/CodeGen/X86/sse3-avx-addsub-2.ll vendor/llvm/dist/test/CodeGen/X86/sse3-avx-addsub.ll vendor/llvm/dist/test/CodeGen/X86/sse3-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/sse3.ll vendor/llvm/dist/test/CodeGen/X86/sse41-intrinsics-x86-upgrade.ll vendor/llvm/dist/test/CodeGen/X86/sse41-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/sse41.ll vendor/llvm/dist/test/CodeGen/X86/sse42-intrinsics-x86.ll vendor/llvm/dist/test/CodeGen/X86/sse42.ll vendor/llvm/dist/test/CodeGen/X86/sse4a-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/sse4a.ll vendor/llvm/dist/test/CodeGen/X86/sse_partial_update.ll vendor/llvm/dist/test/CodeGen/X86/ssp-data-layout.ll vendor/llvm/dist/test/CodeGen/X86/ssse3-intrinsics-fast-isel.ll vendor/llvm/dist/test/CodeGen/X86/stack-align.ll vendor/llvm/dist/test/CodeGen/X86/stack-align2.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-fp-avx1.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-fp-sse42.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-int-avx2.ll vendor/llvm/dist/test/CodeGen/X86/stack-folding-xop.ll vendor/llvm/dist/test/CodeGen/X86/stack-protector-dbginfo.ll vendor/llvm/dist/test/CodeGen/X86/stack-protector-weight.ll vendor/llvm/dist/test/CodeGen/X86/stack-protector.ll vendor/llvm/dist/test/CodeGen/X86/stack_guard_remat.ll vendor/llvm/dist/test/CodeGen/X86/stackmap-frame-setup.ll vendor/llvm/dist/test/CodeGen/X86/stackmap-large-constants.ll vendor/llvm/dist/test/CodeGen/X86/stackmap-liveness.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-allocas.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-invoke.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-stack-usage.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-stackmap-format.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-vector.ll vendor/llvm/dist/test/CodeGen/X86/stdarg.ll vendor/llvm/dist/test/CodeGen/X86/store-narrow.ll vendor/llvm/dist/test/CodeGen/X86/switch-bt.ll vendor/llvm/dist/test/CodeGen/X86/switch-edge-weight.ll vendor/llvm/dist/test/CodeGen/X86/switch-jump-table.ll vendor/llvm/dist/test/CodeGen/X86/switch.ll vendor/llvm/dist/test/CodeGen/X86/tail-call-attrs.ll vendor/llvm/dist/test/CodeGen/X86/tail-opts.ll vendor/llvm/dist/test/CodeGen/X86/tailcall-stackalign.ll vendor/llvm/dist/test/CodeGen/X86/tls-android.ll vendor/llvm/dist/test/CodeGen/X86/tls-pie.ll vendor/llvm/dist/test/CodeGen/X86/tls.ll vendor/llvm/dist/test/CodeGen/X86/trunc-to-bool.ll vendor/llvm/dist/test/CodeGen/X86/twoaddr-coalesce.ll vendor/llvm/dist/test/CodeGen/X86/uint_to_fp-2.ll vendor/llvm/dist/test/CodeGen/X86/uint_to_fp.ll vendor/llvm/dist/test/CodeGen/X86/umul-with-overflow.ll vendor/llvm/dist/test/CodeGen/X86/unaligned-load.ll vendor/llvm/dist/test/CodeGen/X86/unaligned-spill-folding.ll vendor/llvm/dist/test/CodeGen/X86/unknown-location.ll vendor/llvm/dist/test/CodeGen/X86/urem-i8-constant.ll vendor/llvm/dist/test/CodeGen/X86/utf16-cfstrings.ll vendor/llvm/dist/test/CodeGen/X86/v4f32-immediate.ll vendor/llvm/dist/test/CodeGen/X86/v8i1-masks.ll vendor/llvm/dist/test/CodeGen/X86/vararg-callee-cleanup.ll vendor/llvm/dist/test/CodeGen/X86/vec_compare-sse4.ll vendor/llvm/dist/test/CodeGen/X86/vec_ctbits.ll vendor/llvm/dist/test/CodeGen/X86/vec_ext_inreg.ll vendor/llvm/dist/test/CodeGen/X86/vec_extract-avx.ll vendor/llvm/dist/test/CodeGen/X86/vec_extract-mmx.ll vendor/llvm/dist/test/CodeGen/X86/vec_extract-sse4.ll vendor/llvm/dist/test/CodeGen/X86/vec_extract.ll vendor/llvm/dist/test/CodeGen/X86/vec_fabs.ll vendor/llvm/dist/test/CodeGen/X86/vec_floor.ll vendor/llvm/dist/test/CodeGen/X86/vec_fneg.ll vendor/llvm/dist/test/CodeGen/X86/vec_fp_to_int.ll vendor/llvm/dist/test/CodeGen/X86/vec_fpext.ll vendor/llvm/dist/test/CodeGen/X86/vec_i64.ll vendor/llvm/dist/test/CodeGen/X86/vec_ins_extract-1.ll vendor/llvm/dist/test/CodeGen/X86/vec_ins_extract.ll vendor/llvm/dist/test/CodeGen/X86/vec_insert-2.ll vendor/llvm/dist/test/CodeGen/X86/vec_insert-3.ll vendor/llvm/dist/test/CodeGen/X86/vec_insert-4.ll vendor/llvm/dist/test/CodeGen/X86/vec_insert-5.ll vendor/llvm/dist/test/CodeGen/X86/vec_insert-7.ll vendor/llvm/dist/test/CodeGen/X86/vec_insert-8.ll vendor/llvm/dist/test/CodeGen/X86/vec_insert-9.ll vendor/llvm/dist/test/CodeGen/X86/vec_insert-mmx.ll vendor/llvm/dist/test/CodeGen/X86/vec_int_to_fp.ll vendor/llvm/dist/test/CodeGen/X86/vec_loadsingles.ll vendor/llvm/dist/test/CodeGen/X86/vec_logical.ll vendor/llvm/dist/test/CodeGen/X86/vec_partial.ll vendor/llvm/dist/test/CodeGen/X86/vec_sdiv_to_shift.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-2.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-3.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-4.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-6.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-7.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-8.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-A.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-B.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-C.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-D.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-F.ll vendor/llvm/dist/test/CodeGen/X86/vec_set-H.ll vendor/llvm/dist/test/CodeGen/X86/vec_set.ll vendor/llvm/dist/test/CodeGen/X86/vec_setcc.ll vendor/llvm/dist/test/CodeGen/X86/vec_shift.ll vendor/llvm/dist/test/CodeGen/X86/vec_shift2.ll vendor/llvm/dist/test/CodeGen/X86/vec_shift3.ll vendor/llvm/dist/test/CodeGen/X86/vec_shift4.ll vendor/llvm/dist/test/CodeGen/X86/vec_shift5.ll vendor/llvm/dist/test/CodeGen/X86/vec_shift6.ll vendor/llvm/dist/test/CodeGen/X86/vec_shift7.ll vendor/llvm/dist/test/CodeGen/X86/vec_ss_load_fold.ll vendor/llvm/dist/test/CodeGen/X86/vec_uint_to_fp-fastmath.ll vendor/llvm/dist/test/CodeGen/X86/vector-blend.ll vendor/llvm/dist/test/CodeGen/X86/vector-gep.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv.ll vendor/llvm/dist/test/CodeGen/X86/vector-lzcnt-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-lzcnt-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-lzcnt-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-popcnt-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-rem.ll vendor/llvm/dist/test/CodeGen/X86/vector-rotate-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-rotate-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-sext.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-128-v16.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-128-v2.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-128-v4.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-128-v8.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v16.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v32.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v4.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-256-v8.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-512-v16.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-512-v32.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-512-v8.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-sse1.ll vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-v1.ll vendor/llvm/dist/test/CodeGen/X86/vector-trunc.ll vendor/llvm/dist/test/CodeGen/X86/vector-tzcnt-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-tzcnt-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-tzcnt-512.ll vendor/llvm/dist/test/CodeGen/X86/vector-zext.ll vendor/llvm/dist/test/CodeGen/X86/viabs.ll vendor/llvm/dist/test/CodeGen/X86/virtual-registers-cleared-in-machine-functions-liveins.ll vendor/llvm/dist/test/CodeGen/X86/vselect-avx.ll vendor/llvm/dist/test/CodeGen/X86/vselect-minmax.ll vendor/llvm/dist/test/CodeGen/X86/warn-stack.ll vendor/llvm/dist/test/CodeGen/X86/weak_def_can_be_hidden.ll vendor/llvm/dist/test/CodeGen/X86/widen_conv-1.ll vendor/llvm/dist/test/CodeGen/X86/widen_conv-2.ll vendor/llvm/dist/test/CodeGen/X86/widen_conv-3.ll vendor/llvm/dist/test/CodeGen/X86/widen_conv-4.ll vendor/llvm/dist/test/CodeGen/X86/widen_load-1.ll vendor/llvm/dist/test/CodeGen/X86/widen_load-2.ll vendor/llvm/dist/test/CodeGen/X86/win-catchpad-csrs.ll vendor/llvm/dist/test/CodeGen/X86/win-catchpad-varargs.ll vendor/llvm/dist/test/CodeGen/X86/win-catchpad.ll vendor/llvm/dist/test/CodeGen/X86/win-cleanuppad.ll vendor/llvm/dist/test/CodeGen/X86/win32-eh-states.ll vendor/llvm/dist/test/CodeGen/X86/win32-eh.ll vendor/llvm/dist/test/CodeGen/X86/win32-seh-catchpad-realign.ll vendor/llvm/dist/test/CodeGen/X86/win32-seh-catchpad.ll vendor/llvm/dist/test/CodeGen/X86/win32-seh-nested-finally.ll vendor/llvm/dist/test/CodeGen/X86/win32_sret.ll vendor/llvm/dist/test/CodeGen/X86/win64_eh.ll vendor/llvm/dist/test/CodeGen/X86/win_cst_pool.ll vendor/llvm/dist/test/CodeGen/X86/x86-32-intrcc.ll vendor/llvm/dist/test/CodeGen/X86/x86-32-vector-calling-conv.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-flags-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-intrcc.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-stack-and-frame-ptr.ll vendor/llvm/dist/test/CodeGen/X86/x86-flags-intrinsics.ll vendor/llvm/dist/test/CodeGen/X86/x86-shrink-wrap-unwind.ll vendor/llvm/dist/test/CodeGen/X86/x86-shrink-wrapping.ll vendor/llvm/dist/test/CodeGen/X86/x86-upgrade-avx-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/x86-upgrade-avx2-vbroadcast.ll vendor/llvm/dist/test/CodeGen/X86/xaluo.ll vendor/llvm/dist/test/CodeGen/X86/xmulo.ll vendor/llvm/dist/test/CodeGen/X86/xop-intrinsics-x86_64.ll vendor/llvm/dist/test/CodeGen/X86/zext-fold.ll vendor/llvm/dist/test/CodeGen/XCore/align.ll vendor/llvm/dist/test/CodeGen/XCore/dwarf_debug.ll vendor/llvm/dist/test/CodeGen/XCore/epilogue_prologue.ll vendor/llvm/dist/test/CodeGen/XCore/linkage.ll vendor/llvm/dist/test/CodeGen/XCore/scavenging.ll vendor/llvm/dist/test/CodeGen/XCore/threads.ll vendor/llvm/dist/test/DebugInfo/AArch64/big-endian.ll vendor/llvm/dist/test/DebugInfo/AArch64/bitfields.ll vendor/llvm/dist/test/DebugInfo/AArch64/cfi-eof-prologue.ll vendor/llvm/dist/test/DebugInfo/AArch64/coalescing.ll vendor/llvm/dist/test/DebugInfo/AArch64/constant-dbgloc.ll vendor/llvm/dist/test/DebugInfo/AArch64/dwarfdump.ll vendor/llvm/dist/test/DebugInfo/AArch64/frameindices.ll vendor/llvm/dist/test/DebugInfo/AArch64/prologue_end.ll vendor/llvm/dist/test/DebugInfo/AArch64/struct_by_value.ll vendor/llvm/dist/test/DebugInfo/ARM/PR16736.ll vendor/llvm/dist/test/DebugInfo/ARM/PR26163.ll vendor/llvm/dist/test/DebugInfo/ARM/bitfield.ll vendor/llvm/dist/test/DebugInfo/ARM/cfi-eof-prologue.ll vendor/llvm/dist/test/DebugInfo/ARM/constant-dbgloc.ll vendor/llvm/dist/test/DebugInfo/ARM/float-args.ll vendor/llvm/dist/test/DebugInfo/ARM/header.ll vendor/llvm/dist/test/DebugInfo/ARM/lowerbdgdeclare_vla.ll vendor/llvm/dist/test/DebugInfo/ARM/multiple-constant-uses-drops-dbgloc.ll vendor/llvm/dist/test/DebugInfo/ARM/prologue_end.ll vendor/llvm/dist/test/DebugInfo/ARM/s-super-register.ll vendor/llvm/dist/test/DebugInfo/ARM/single-constant-use-preserves-dbgloc.ll vendor/llvm/dist/test/DebugInfo/ARM/tls.ll vendor/llvm/dist/test/DebugInfo/COFF/asan-module-ctor.ll vendor/llvm/dist/test/DebugInfo/COFF/asan-module-without-functions.ll vendor/llvm/dist/test/DebugInfo/COFF/asm.ll vendor/llvm/dist/test/DebugInfo/COFF/cpp-mangling.ll vendor/llvm/dist/test/DebugInfo/COFF/multifile.ll vendor/llvm/dist/test/DebugInfo/COFF/multifunction.ll vendor/llvm/dist/test/DebugInfo/COFF/simple.ll vendor/llvm/dist/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll vendor/llvm/dist/test/DebugInfo/Generic/2009-11-03-InsertExtractValue.ll vendor/llvm/dist/test/DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll vendor/llvm/dist/test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll vendor/llvm/dist/test/DebugInfo/Generic/2009-11-10-CurrentFn.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-01-05-DbgScope.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-03-12-llc-crash.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-03-19-DbgDeclare.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-03-24-MemberFn.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-04-06-NestedFnDbgInfo.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-04-19-FramePtr.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-05-03-DisableFramePtr.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-05-03-OriginDIE.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-05-10-MultipleCU.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-07-19-Crash.ll vendor/llvm/dist/test/DebugInfo/Generic/2010-10-01-crash.ll vendor/llvm/dist/test/DebugInfo/Generic/PR20038.ll vendor/llvm/dist/test/DebugInfo/Generic/accel-table-hash-collisions.ll vendor/llvm/dist/test/DebugInfo/Generic/array.ll vendor/llvm/dist/test/DebugInfo/Generic/block-asan.ll vendor/llvm/dist/test/DebugInfo/Generic/bug_null_debuginfo.ll vendor/llvm/dist/test/DebugInfo/Generic/constant-pointers.ll vendor/llvm/dist/test/DebugInfo/Generic/constant-sdnodes-have-dbg-location.ll vendor/llvm/dist/test/DebugInfo/Generic/constantfp-sdnodes-have-dbg-location.ll vendor/llvm/dist/test/DebugInfo/Generic/cross-cu-inlining.ll vendor/llvm/dist/test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll vendor/llvm/dist/test/DebugInfo/Generic/cross-cu-linkonce.ll vendor/llvm/dist/test/DebugInfo/Generic/cu-range-hole.ll vendor/llvm/dist/test/DebugInfo/Generic/cu-ranges.ll vendor/llvm/dist/test/DebugInfo/Generic/dbg-at-specficiation.ll vendor/llvm/dist/test/DebugInfo/Generic/dead-argument-order.ll vendor/llvm/dist/test/DebugInfo/Generic/debug-info-qualifiers.ll vendor/llvm/dist/test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll vendor/llvm/dist/test/DebugInfo/Generic/debuginfofinder-multiple-cu.ll vendor/llvm/dist/test/DebugInfo/Generic/def-line.ll vendor/llvm/dist/test/DebugInfo/Generic/discriminator.ll vendor/llvm/dist/test/DebugInfo/Generic/dwarf-public-names.ll vendor/llvm/dist/test/DebugInfo/Generic/empty.ll vendor/llvm/dist/test/DebugInfo/Generic/enum-types.ll vendor/llvm/dist/test/DebugInfo/Generic/enum.ll vendor/llvm/dist/test/DebugInfo/Generic/global.ll vendor/llvm/dist/test/DebugInfo/Generic/gmlt.test vendor/llvm/dist/test/DebugInfo/Generic/gvn.ll vendor/llvm/dist/test/DebugInfo/Generic/incorrect-variable-debugloc.ll vendor/llvm/dist/test/DebugInfo/Generic/incorrect-variable-debugloc1.ll vendor/llvm/dist/test/DebugInfo/Generic/inheritance.ll vendor/llvm/dist/test/DebugInfo/Generic/inline-debug-info-multiret.ll vendor/llvm/dist/test/DebugInfo/Generic/inline-debug-info.ll vendor/llvm/dist/test/DebugInfo/Generic/inline-no-debug-info.ll vendor/llvm/dist/test/DebugInfo/Generic/inline-scopes.ll vendor/llvm/dist/test/DebugInfo/Generic/inlined-arguments.ll vendor/llvm/dist/test/DebugInfo/Generic/inlined-vars.ll vendor/llvm/dist/test/DebugInfo/Generic/location-verifier.ll vendor/llvm/dist/test/DebugInfo/Generic/lto-comp-dir.ll vendor/llvm/dist/test/DebugInfo/Generic/member-order.ll vendor/llvm/dist/test/DebugInfo/Generic/member-pointers.ll vendor/llvm/dist/test/DebugInfo/Generic/missing-abstract-variable.ll vendor/llvm/dist/test/DebugInfo/Generic/multiline.ll vendor/llvm/dist/test/DebugInfo/Generic/namespace.ll vendor/llvm/dist/test/DebugInfo/Generic/namespace_function_definition.ll vendor/llvm/dist/test/DebugInfo/Generic/namespace_inline_function_definition.ll vendor/llvm/dist/test/DebugInfo/Generic/nodebug.ll vendor/llvm/dist/test/DebugInfo/Generic/piece-verifier.ll vendor/llvm/dist/test/DebugInfo/Generic/ptrsize.ll vendor/llvm/dist/test/DebugInfo/Generic/recursive_inlining.ll vendor/llvm/dist/test/DebugInfo/Generic/restrict.ll vendor/llvm/dist/test/DebugInfo/Generic/skeletoncu.ll vendor/llvm/dist/test/DebugInfo/Generic/sugared-constants.ll vendor/llvm/dist/test/DebugInfo/Generic/template-recursive-void.ll vendor/llvm/dist/test/DebugInfo/Generic/tu-composite.ll vendor/llvm/dist/test/DebugInfo/Generic/tu-member-pointer.ll vendor/llvm/dist/test/DebugInfo/Generic/two-cus-from-same-file.ll vendor/llvm/dist/test/DebugInfo/Generic/typedef.ll vendor/llvm/dist/test/DebugInfo/Generic/unconditional-branch.ll vendor/llvm/dist/test/DebugInfo/Generic/varargs.ll vendor/llvm/dist/test/DebugInfo/Generic/version.ll vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-objc.m vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-objc.x86_64.o vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-test-zlib.cc vendor/llvm/dist/test/DebugInfo/Inputs/dwarfdump-test-zlib.elf-x86-64 vendor/llvm/dist/test/DebugInfo/Inputs/gmlt.ll vendor/llvm/dist/test/DebugInfo/Inputs/line.ll vendor/llvm/dist/test/DebugInfo/Inputs/split-dwarf-test vendor/llvm/dist/test/DebugInfo/Inputs/split-dwarf-test.cc vendor/llvm/dist/test/DebugInfo/Inputs/split-dwarf-test.dwo vendor/llvm/dist/test/DebugInfo/MIR/X86/live-debug-values-3preds.mir vendor/llvm/dist/test/DebugInfo/MIR/X86/live-debug-values.mir vendor/llvm/dist/test/DebugInfo/Mips/InlinedFnLocalVar.ll vendor/llvm/dist/test/DebugInfo/Mips/delay-slot.ll vendor/llvm/dist/test/DebugInfo/Mips/dsr-fixed-objects.ll vendor/llvm/dist/test/DebugInfo/Mips/dsr-non-fixed-objects.ll vendor/llvm/dist/test/DebugInfo/Mips/fn-call-line.ll vendor/llvm/dist/test/DebugInfo/Mips/prologue_end.ll vendor/llvm/dist/test/DebugInfo/PDB/DIA/pdbdump-flags.test vendor/llvm/dist/test/DebugInfo/PDB/DIA/pdbdump-symbol-format.test vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-headers.test vendor/llvm/dist/test/DebugInfo/PowerPC/tls-fission.ll vendor/llvm/dist/test/DebugInfo/PowerPC/tls.ll vendor/llvm/dist/test/DebugInfo/Sparc/gnu-window-save.ll vendor/llvm/dist/test/DebugInfo/Sparc/prologue_end.ll vendor/llvm/dist/test/DebugInfo/SystemZ/eh_frame_personality.ll vendor/llvm/dist/test/DebugInfo/SystemZ/prologue_end.ll vendor/llvm/dist/test/DebugInfo/SystemZ/variable-loc.ll vendor/llvm/dist/test/DebugInfo/X86/2010-04-13-PubType.ll vendor/llvm/dist/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll vendor/llvm/dist/test/DebugInfo/X86/2011-12-16-BadStructRef.ll vendor/llvm/dist/test/DebugInfo/X86/DIModule.ll vendor/llvm/dist/test/DebugInfo/X86/DIModuleContext.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_byte_size.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_linkage_name.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_location-reference.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_object_pointer.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_specification.ll vendor/llvm/dist/test/DebugInfo/X86/DW_AT_stmt_list_sec_offset.ll vendor/llvm/dist/test/DebugInfo/X86/DW_TAG_friend.ll vendor/llvm/dist/test/DebugInfo/X86/InlinedFnLocalVar.ll vendor/llvm/dist/test/DebugInfo/X86/PR26148.ll vendor/llvm/dist/test/DebugInfo/X86/aligned_stack_var.ll vendor/llvm/dist/test/DebugInfo/X86/arange-and-stub.ll vendor/llvm/dist/test/DebugInfo/X86/arange.ll vendor/llvm/dist/test/DebugInfo/X86/arguments.ll vendor/llvm/dist/test/DebugInfo/X86/array.ll vendor/llvm/dist/test/DebugInfo/X86/array2.ll vendor/llvm/dist/test/DebugInfo/X86/bbjoin.ll vendor/llvm/dist/test/DebugInfo/X86/bitfields.ll vendor/llvm/dist/test/DebugInfo/X86/block-capture.ll vendor/llvm/dist/test/DebugInfo/X86/byvalstruct.ll vendor/llvm/dist/test/DebugInfo/X86/c-type-units.ll vendor/llvm/dist/test/DebugInfo/X86/coff_debug_info_type.ll vendor/llvm/dist/test/DebugInfo/X86/coff_relative_names.ll vendor/llvm/dist/test/DebugInfo/X86/concrete_out_of_line.ll vendor/llvm/dist/test/DebugInfo/X86/constant-aggregate.ll vendor/llvm/dist/test/DebugInfo/X86/cu-ranges-odr.ll vendor/llvm/dist/test/DebugInfo/X86/cu-ranges.ll vendor/llvm/dist/test/DebugInfo/X86/data_member_location.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-byval-parameter.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-const-int.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-const.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-declare-arg.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-declare.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-file-name.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-i128-const.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-merge-loc-entry.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-prolog-end.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-subrange.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-const-byref.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-dag-combine.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-inlined-parameter.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-isel.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-location.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-range.ll vendor/llvm/dist/test/DebugInfo/X86/dbg-value-terminator.ll vendor/llvm/dist/test/DebugInfo/X86/dbg_value_direct.ll vendor/llvm/dist/test/DebugInfo/X86/debug-dead-local-var.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-access.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-block-captured-self.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-blocks.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-packed-struct.ll vendor/llvm/dist/test/DebugInfo/X86/debug-info-static-member.ll vendor/llvm/dist/test/DebugInfo/X86/debug-loc-asan.ll vendor/llvm/dist/test/DebugInfo/X86/debug-loc-offset.ll vendor/llvm/dist/test/DebugInfo/X86/debug-macro.ll vendor/llvm/dist/test/DebugInfo/X86/debug-ranges-offset.ll vendor/llvm/dist/test/DebugInfo/X86/debug_frame.ll vendor/llvm/dist/test/DebugInfo/X86/debugger-tune.ll vendor/llvm/dist/test/DebugInfo/X86/decl-derived-member.ll vendor/llvm/dist/test/DebugInfo/X86/deleted-bit-piece.ll vendor/llvm/dist/test/DebugInfo/X86/discriminator.ll vendor/llvm/dist/test/DebugInfo/X86/dw_op_minus.ll vendor/llvm/dist/test/DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll vendor/llvm/dist/test/DebugInfo/X86/dwarf-aranges.ll vendor/llvm/dist/test/DebugInfo/X86/dwarf-linkage-names.ll vendor/llvm/dist/test/DebugInfo/X86/dwarf-public-names.ll vendor/llvm/dist/test/DebugInfo/X86/dwarf-pubnames-split.ll vendor/llvm/dist/test/DebugInfo/X86/earlydup-crash.ll vendor/llvm/dist/test/DebugInfo/X86/elf-names.ll vendor/llvm/dist/test/DebugInfo/X86/empty-and-one-elem-array.ll vendor/llvm/dist/test/DebugInfo/X86/empty-array.ll vendor/llvm/dist/test/DebugInfo/X86/empty.ll vendor/llvm/dist/test/DebugInfo/X86/ending-run.ll vendor/llvm/dist/test/DebugInfo/X86/enum-class.ll vendor/llvm/dist/test/DebugInfo/X86/enum-fwd-decl.ll vendor/llvm/dist/test/DebugInfo/X86/externaltyperef.ll vendor/llvm/dist/test/DebugInfo/X86/fission-cu.ll vendor/llvm/dist/test/DebugInfo/X86/fission-hash.ll vendor/llvm/dist/test/DebugInfo/X86/fission-inline.ll vendor/llvm/dist/test/DebugInfo/X86/fission-ranges.ll vendor/llvm/dist/test/DebugInfo/X86/float_const.ll vendor/llvm/dist/test/DebugInfo/X86/formal_parameter.ll vendor/llvm/dist/test/DebugInfo/X86/frame-register.ll vendor/llvm/dist/test/DebugInfo/X86/generate-odr-hash.ll vendor/llvm/dist/test/DebugInfo/X86/ghost-sdnode-dbgvalues.ll vendor/llvm/dist/test/DebugInfo/X86/gnu-public-names-empty.ll vendor/llvm/dist/test/DebugInfo/X86/gnu-public-names.ll vendor/llvm/dist/test/DebugInfo/X86/header.ll vendor/llvm/dist/test/DebugInfo/X86/inline-member-function.ll vendor/llvm/dist/test/DebugInfo/X86/inline-seldag-test.ll vendor/llvm/dist/test/DebugInfo/X86/inlined-formal-parameter.ll vendor/llvm/dist/test/DebugInfo/X86/inlined-indirect-value.ll vendor/llvm/dist/test/DebugInfo/X86/instcombine-instrinsics.ll vendor/llvm/dist/test/DebugInfo/X86/lexical_block.ll vendor/llvm/dist/test/DebugInfo/X86/line-info.ll vendor/llvm/dist/test/DebugInfo/X86/linkage-name.ll vendor/llvm/dist/test/DebugInfo/X86/live-debug-values.ll vendor/llvm/dist/test/DebugInfo/X86/low-pc-cu.ll vendor/llvm/dist/test/DebugInfo/X86/memberfnptr.ll vendor/llvm/dist/test/DebugInfo/X86/mi-print.ll vendor/llvm/dist/test/DebugInfo/X86/misched-dbg-value.ll vendor/llvm/dist/test/DebugInfo/X86/missing-file-line.ll vendor/llvm/dist/test/DebugInfo/X86/multiple-aranges.ll vendor/llvm/dist/test/DebugInfo/X86/multiple-at-const-val.ll vendor/llvm/dist/test/DebugInfo/X86/nodebug_with_debug_loc.ll vendor/llvm/dist/test/DebugInfo/X86/nondefault-subrange-array.ll vendor/llvm/dist/test/DebugInfo/X86/nophysreg.ll vendor/llvm/dist/test/DebugInfo/X86/objc-fwd-decl.ll vendor/llvm/dist/test/DebugInfo/X86/objc-property-void.ll vendor/llvm/dist/test/DebugInfo/X86/op_deref.ll vendor/llvm/dist/test/DebugInfo/X86/parameters.ll vendor/llvm/dist/test/DebugInfo/X86/pieces-1.ll vendor/llvm/dist/test/DebugInfo/X86/pieces-2.ll vendor/llvm/dist/test/DebugInfo/X86/pieces-3.ll vendor/llvm/dist/test/DebugInfo/X86/pointer-type-size.ll vendor/llvm/dist/test/DebugInfo/X86/pr11300.ll vendor/llvm/dist/test/DebugInfo/X86/pr12831.ll vendor/llvm/dist/test/DebugInfo/X86/pr13303.ll vendor/llvm/dist/test/DebugInfo/X86/pr19307.ll vendor/llvm/dist/test/DebugInfo/X86/processes-relocations.ll vendor/llvm/dist/test/DebugInfo/X86/prologue-stack.ll vendor/llvm/dist/test/DebugInfo/X86/ref_addr_relocation.ll vendor/llvm/dist/test/DebugInfo/X86/reference-argument.ll vendor/llvm/dist/test/DebugInfo/X86/rvalue-ref.ll vendor/llvm/dist/test/DebugInfo/X86/safestack-byval.ll vendor/llvm/dist/test/DebugInfo/X86/sret.ll vendor/llvm/dist/test/DebugInfo/X86/sroasplit-1.ll vendor/llvm/dist/test/DebugInfo/X86/sroasplit-2.ll vendor/llvm/dist/test/DebugInfo/X86/sroasplit-3.ll vendor/llvm/dist/test/DebugInfo/X86/sroasplit-4.ll vendor/llvm/dist/test/DebugInfo/X86/sroasplit-5.ll vendor/llvm/dist/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll vendor/llvm/dist/test/DebugInfo/X86/stmt-list.ll vendor/llvm/dist/test/DebugInfo/X86/stringpool.ll vendor/llvm/dist/test/DebugInfo/X86/struct-loc.ll vendor/llvm/dist/test/DebugInfo/X86/subrange-type.ll vendor/llvm/dist/test/DebugInfo/X86/subreg.ll vendor/llvm/dist/test/DebugInfo/X86/subregisters.ll vendor/llvm/dist/test/DebugInfo/X86/template.ll vendor/llvm/dist/test/DebugInfo/X86/tls.ll vendor/llvm/dist/test/DebugInfo/X86/type_units_with_addresses.ll vendor/llvm/dist/test/DebugInfo/X86/union-const.ll vendor/llvm/dist/test/DebugInfo/X86/union-template.ll vendor/llvm/dist/test/DebugInfo/X86/vector.ll vendor/llvm/dist/test/DebugInfo/X86/vla.ll vendor/llvm/dist/test/DebugInfo/dwarfdump-accel.test vendor/llvm/dist/test/DebugInfo/dwarfdump-objc.test vendor/llvm/dist/test/DebugInfo/dwarfdump-zlib.test vendor/llvm/dist/test/DebugInfo/dwo.ll vendor/llvm/dist/test/DebugInfo/llvm-symbolizer-zlib.test vendor/llvm/dist/test/DebugInfo/llvm-symbolizer.test vendor/llvm/dist/test/DebugInfo/skeletoncu.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-common-symbols-remote.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-data-align-remote.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-fp-no-external-funcs-remote.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-remote.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-remote.ll vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll vendor/llvm/dist/test/ExecutionEngine/OrcLazy/lit.local.cfg vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/cross-module-a.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/multi-module-a.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/simpletest-remote.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/stubs-remote.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-common-symbols-remote.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-data-align-remote.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-fp-no-external-funcs-remote.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-remote.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-remote.ll vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/AArch64/MachO_ARM64_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/ARM/MachO_ARM_PIC_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/Mips/ELF_Mips64r2N64_PIC_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/Mips/ELF_N64R6_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/Mips/ELF_O32R6_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/Mips/ELF_O32_PIC_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/COFF_i386.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/ELF_STT_FILE.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/ELF_x64-64_PC8_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/ELF_x64-64_PIC_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_DynNoPIC_relocations.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_eh_frame.s vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/X86/MachO_x86-64_PIC_relocations.s vendor/llvm/dist/test/Feature/constexpr.ll vendor/llvm/dist/test/Feature/constpointer.ll vendor/llvm/dist/test/Feature/globalvars.ll vendor/llvm/dist/test/Feature/intrinsic-noduplicate.ll vendor/llvm/dist/test/Feature/optnone-llc.ll vendor/llvm/dist/test/Feature/testconstants.ll vendor/llvm/dist/test/FileCheck/check-empty.txt vendor/llvm/dist/test/FileCheck/check-multiple-prefixes-mixed.txt vendor/llvm/dist/test/FileCheck/check-multiple-prefixes-nomatch-2.txt vendor/llvm/dist/test/FileCheck/check-multiple-prefixes-nomatch.txt vendor/llvm/dist/test/FileCheck/check-substring-multi-prefix.txt vendor/llvm/dist/test/FileCheck/multiple-missing-prefixes.txt vendor/llvm/dist/test/Instrumentation/AddressSanitizer/debug_info.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/do-not-instrument-globals-darwin.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/do-not-instrument-promotable-allocas.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/global_metadata.ll vendor/llvm/dist/test/Instrumentation/AddressSanitizer/lifetime.ll vendor/llvm/dist/test/Instrumentation/DataFlowSanitizer/call.ll vendor/llvm/dist/test/Instrumentation/DataFlowSanitizer/debug.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/PR23499.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/linkage.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/no-counters.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/noruntime.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/platform.ll vendor/llvm/dist/test/Instrumentation/InstrProfiling/profiling.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/AArch64/vararg.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/msan_basic.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/store-origin.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/vector_shift.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/cmp-tracing.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/coverage-dbg.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/coverage.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/coverage2-dbg.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/switch-tracing.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/tracing.ll vendor/llvm/dist/test/Instrumentation/ThreadSanitizer/atomic.ll vendor/llvm/dist/test/Integer/constexpr_bt.ll vendor/llvm/dist/test/Integer/constpointer_bt.ll vendor/llvm/dist/test/JitListener/multiple.ll vendor/llvm/dist/test/JitListener/simple.ll vendor/llvm/dist/test/LTO/X86/Inputs/bcsection.macho.s vendor/llvm/dist/test/LTO/X86/Inputs/invalid.ll.bc vendor/llvm/dist/test/LTO/X86/cfi_endproc.ll vendor/llvm/dist/test/LTO/X86/diagnostic-handler-remarks.ll vendor/llvm/dist/test/LTO/X86/disable-verify.ll vendor/llvm/dist/test/LTO/X86/invalid.ll vendor/llvm/dist/test/LTO/X86/linkonce_odr_func.ll vendor/llvm/dist/test/LTO/X86/set-merged.ll vendor/llvm/dist/test/Linker/2003-08-28-TypeResolvesGlobal3.ll vendor/llvm/dist/test/Linker/2009-09-03-mdnode.ll vendor/llvm/dist/test/Linker/2009-09-03-mdnode2.ll vendor/llvm/dist/test/Linker/2011-08-04-DebugLoc.ll vendor/llvm/dist/test/Linker/2011-08-04-DebugLoc2.ll vendor/llvm/dist/test/Linker/2011-08-04-Metadata.ll vendor/llvm/dist/test/Linker/2011-08-04-Metadata2.ll vendor/llvm/dist/test/Linker/2011-08-18-unique-class-type.ll vendor/llvm/dist/test/Linker/2011-08-18-unique-class-type2.ll vendor/llvm/dist/test/Linker/2011-08-18-unique-debug-type.ll vendor/llvm/dist/test/Linker/2011-08-18-unique-debug-type2.ll vendor/llvm/dist/test/Linker/DbgDeclare.ll vendor/llvm/dist/test/Linker/DbgDeclare2.ll vendor/llvm/dist/test/Linker/Inputs/mdlocation.ll vendor/llvm/dist/test/Linker/Inputs/only-needed-debug-metadata.ll vendor/llvm/dist/test/Linker/Inputs/pr26037.ll vendor/llvm/dist/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll vendor/llvm/dist/test/Linker/Inputs/subprogram-linkonce-weak.ll vendor/llvm/dist/test/Linker/Inputs/thinlto_funcimport_debug.ll vendor/llvm/dist/test/Linker/Inputs/type-unique-inheritance-a.ll vendor/llvm/dist/test/Linker/Inputs/type-unique-inheritance-b.ll vendor/llvm/dist/test/Linker/Inputs/type-unique-simple2-a.ll vendor/llvm/dist/test/Linker/Inputs/type-unique-simple2-b.ll vendor/llvm/dist/test/Linker/broken.ll vendor/llvm/dist/test/Linker/comdat14.ll vendor/llvm/dist/test/Linker/comdat9.ll vendor/llvm/dist/test/Linker/constructor-comdat.ll vendor/llvm/dist/test/Linker/debug-info-version-a.ll vendor/llvm/dist/test/Linker/funcimport.ll vendor/llvm/dist/test/Linker/funcimport_appending_global.ll vendor/llvm/dist/test/Linker/mdlocation.ll vendor/llvm/dist/test/Linker/module-flags-4-a.ll vendor/llvm/dist/test/Linker/module-flags-4-b.ll vendor/llvm/dist/test/Linker/only-needed-debug-metadata.ll vendor/llvm/dist/test/Linker/only-needed-named-metadata.ll vendor/llvm/dist/test/Linker/pr26037.ll vendor/llvm/dist/test/Linker/replaced-function-matches-first-subprogram.ll vendor/llvm/dist/test/Linker/subprogram-linkonce-weak.ll vendor/llvm/dist/test/Linker/thinlto_funcimport_debug.ll vendor/llvm/dist/test/Linker/type-unique-odr-a.ll vendor/llvm/dist/test/Linker/type-unique-odr-b.ll vendor/llvm/dist/test/Linker/type-unique-simple-a.ll vendor/llvm/dist/test/Linker/type-unique-simple-b.ll vendor/llvm/dist/test/Linker/type-unique-simple2-a.ll vendor/llvm/dist/test/Linker/type-unique-simple2-b.ll vendor/llvm/dist/test/Linker/type-unique-type-array-a.ll vendor/llvm/dist/test/Linker/type-unique-type-array-b.ll vendor/llvm/dist/test/MC/AArch64/arm64-advsimd.s vendor/llvm/dist/test/MC/AArch64/arm64-aliases.s vendor/llvm/dist/test/MC/AArch64/arm64-arithmetic-encoding.s vendor/llvm/dist/test/MC/AArch64/arm64-spsel-sysreg.s vendor/llvm/dist/test/MC/AArch64/arm64-system-encoding.s vendor/llvm/dist/test/MC/AArch64/basic-a64-instructions.s vendor/llvm/dist/test/MC/AArch64/error-location.s vendor/llvm/dist/test/MC/AArch64/inst-directive.s vendor/llvm/dist/test/MC/AArch64/ldr-pseudo-obj-errors.s vendor/llvm/dist/test/MC/AArch64/ldr-pseudo.s vendor/llvm/dist/test/MC/AArch64/optional-hash.s vendor/llvm/dist/test/MC/AArch64/single-slash.s vendor/llvm/dist/test/MC/AMDGPU/buffer_wbinv1l_vol_vi.s vendor/llvm/dist/test/MC/AMDGPU/ds-err.s vendor/llvm/dist/test/MC/AMDGPU/ds.s vendor/llvm/dist/test/MC/AMDGPU/flat-scratch.s vendor/llvm/dist/test/MC/AMDGPU/flat.s vendor/llvm/dist/test/MC/AMDGPU/hsa-text.s vendor/llvm/dist/test/MC/AMDGPU/hsa.s vendor/llvm/dist/test/MC/AMDGPU/mubuf.s vendor/llvm/dist/test/MC/AMDGPU/out-of-range-registers.s vendor/llvm/dist/test/MC/AMDGPU/smem.s vendor/llvm/dist/test/MC/AMDGPU/smrd-err.s vendor/llvm/dist/test/MC/AMDGPU/smrd.s vendor/llvm/dist/test/MC/AMDGPU/sop1-err.s vendor/llvm/dist/test/MC/AMDGPU/sop1.s vendor/llvm/dist/test/MC/AMDGPU/sop2.s vendor/llvm/dist/test/MC/AMDGPU/sopc.s vendor/llvm/dist/test/MC/AMDGPU/sopk.s vendor/llvm/dist/test/MC/AMDGPU/sopp.s vendor/llvm/dist/test/MC/AMDGPU/vop2-err.s vendor/llvm/dist/test/MC/AMDGPU/vop2.s vendor/llvm/dist/test/MC/AMDGPU/vop3-errs.s vendor/llvm/dist/test/MC/AMDGPU/vop3.s vendor/llvm/dist/test/MC/ARM/arm11-hint-instr.s vendor/llvm/dist/test/MC/ARM/arm_fixups.s vendor/llvm/dist/test/MC/ARM/basic-arm-instructions.s vendor/llvm/dist/test/MC/ARM/basic-thumb2-instructions.s vendor/llvm/dist/test/MC/ARM/coff-debugging-secrel.ll vendor/llvm/dist/test/MC/ARM/directive-align.s vendor/llvm/dist/test/MC/ARM/directive-eabi_attribute.s vendor/llvm/dist/test/MC/ARM/eh-directive-pad-diagnostics.s vendor/llvm/dist/test/MC/ARM/eh-directive-personality-diagnostics.s vendor/llvm/dist/test/MC/ARM/eh-directive-save-diagnostics.s vendor/llvm/dist/test/MC/ARM/eh-directive-setfp-diagnostics.s vendor/llvm/dist/test/MC/ARM/eh-directive-vsave-diagnostics.s vendor/llvm/dist/test/MC/ARM/elf-thumbfunc-reloc2.s vendor/llvm/dist/test/MC/ARM/error-location.s vendor/llvm/dist/test/MC/ARM/fp-const-errors.s vendor/llvm/dist/test/MC/ARM/inst-directive-emit.s vendor/llvm/dist/test/MC/ARM/ldr-pseudo-darwin.s vendor/llvm/dist/test/MC/ARM/ldr-pseudo-obj-errors.s vendor/llvm/dist/test/MC/ARM/ldr-pseudo.s vendor/llvm/dist/test/MC/ARM/load-store-acquire-release-v8-thumb.s vendor/llvm/dist/test/MC/ARM/load-store-acquire-release-v8.s vendor/llvm/dist/test/MC/ARM/ltorg-darwin.s vendor/llvm/dist/test/MC/ARM/ltorg.s vendor/llvm/dist/test/MC/ARM/not-armv4.s vendor/llvm/dist/test/MC/ARM/pool.s vendor/llvm/dist/test/MC/ARM/symbol-variants.s vendor/llvm/dist/test/MC/ARM/thumb1-relax-bcc.s vendor/llvm/dist/test/MC/ARM/thumb2-branches.s vendor/llvm/dist/test/MC/ARM/thumb2-diagnostics.s vendor/llvm/dist/test/MC/ARM/thumb2-ldrb-ldrh.s vendor/llvm/dist/test/MC/AsmParser/comments-x86-darwin.s vendor/llvm/dist/test/MC/AsmParser/directive_align.s vendor/llvm/dist/test/MC/AsmParser/directive_fill.s vendor/llvm/dist/test/MC/AsmParser/directive_space.s vendor/llvm/dist/test/MC/AsmParser/expr-shr.s vendor/llvm/dist/test/MC/AsmParser/floating-literals.s vendor/llvm/dist/test/MC/AsmParser/macro-irp.s vendor/llvm/dist/test/MC/AsmParser/macro-irpc.s vendor/llvm/dist/test/MC/AsmParser/macros-gas.s vendor/llvm/dist/test/MC/COFF/cross-section-relative.ll vendor/llvm/dist/test/MC/COFF/seh-section.s vendor/llvm/dist/test/MC/COFF/weak.s vendor/llvm/dist/test/MC/Disassembler/AArch64/arm64-advsimd.txt vendor/llvm/dist/test/MC/Disassembler/AArch64/arm64-arithmetic.txt vendor/llvm/dist/test/MC/Disassembler/AArch64/arm64-system.txt vendor/llvm/dist/test/MC/Disassembler/AArch64/armv8.2a-statistical-profiling.txt vendor/llvm/dist/test/MC/Disassembler/AArch64/basic-a64-instructions.txt vendor/llvm/dist/test/MC/Disassembler/AArch64/neon-instructions.txt vendor/llvm/dist/test/MC/Disassembler/ARM/invalid-thumb-MSR-MClass.txt vendor/llvm/dist/test/MC/Disassembler/Hexagon/jr.txt vendor/llvm/dist/test/MC/Disassembler/Mips/micromips-dsp/valid.txt vendor/llvm/dist/test/MC/Disassembler/Mips/micromips-dspr2/valid.txt vendor/llvm/dist/test/MC/Disassembler/Mips/micromips32r3/valid-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/micromips32r3/valid.txt vendor/llvm/dist/test/MC/Disassembler/Mips/micromips32r6/valid.txt vendor/llvm/dist/test/MC/Disassembler/Mips/micromips64r6/valid.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips2/valid-mips2-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips2/valid-mips2.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips3/valid-mips3-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips3/valid-mips3.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32/valid-mips32.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r3/valid-mips32r3.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r5/valid-mips32r5.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips4/valid-mips4-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips4/valid-mips4.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64/valid-mips64.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r2/valid-mips64r2.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r3/valid-mips64r3.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r5/valid-mips64r5.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt vendor/llvm/dist/test/MC/Disassembler/PowerPC/ppc64-encoding-bookII.txt vendor/llvm/dist/test/MC/Disassembler/PowerPC/ppc64-encoding-vmx.txt vendor/llvm/dist/test/MC/Disassembler/PowerPC/ppc64-encoding.txt vendor/llvm/dist/test/MC/Disassembler/PowerPC/vsx.txt vendor/llvm/dist/test/MC/Disassembler/Sparc/sparc-special-registers.txt vendor/llvm/dist/test/MC/Disassembler/Sparc/sparc-v9.txt vendor/llvm/dist/test/MC/Disassembler/Sparc/sparc.txt vendor/llvm/dist/test/MC/Disassembler/SystemZ/insns-pcrel.txt vendor/llvm/dist/test/MC/Disassembler/SystemZ/insns-z13.txt vendor/llvm/dist/test/MC/Disassembler/SystemZ/insns.txt vendor/llvm/dist/test/MC/Disassembler/X86/intel-syntax.txt vendor/llvm/dist/test/MC/Disassembler/X86/simple-tests.txt vendor/llvm/dist/test/MC/Disassembler/X86/x86-32.txt vendor/llvm/dist/test/MC/ELF/cfi-version.ll vendor/llvm/dist/test/MC/ELF/compression.s vendor/llvm/dist/test/MC/ELF/nocompression.s vendor/llvm/dist/test/MC/ELF/relocation-386.s vendor/llvm/dist/test/MC/ELF/relocation.s vendor/llvm/dist/test/MC/ELF/section.s vendor/llvm/dist/test/MC/Hexagon/basic.ll vendor/llvm/dist/test/MC/Hexagon/endloop.s vendor/llvm/dist/test/MC/Hexagon/instructions/system_user.s vendor/llvm/dist/test/MC/Hexagon/new-value-check.s vendor/llvm/dist/test/MC/Hexagon/out_of_range.s vendor/llvm/dist/test/MC/MachO/AArch64/cstexpr-gotpcrel.ll vendor/llvm/dist/test/MC/MachO/absolute.s vendor/llvm/dist/test/MC/MachO/empty-twice.ll vendor/llvm/dist/test/MC/MachO/variable-exprs.s vendor/llvm/dist/test/MC/MachO/x86_64-reloc-arithmetic.s vendor/llvm/dist/test/MC/Mips/cnmips/invalid.s vendor/llvm/dist/test/MC/Mips/cpload.s vendor/llvm/dist/test/MC/Mips/cprestore-bad.s vendor/llvm/dist/test/MC/Mips/cprestore-noreorder.s vendor/llvm/dist/test/MC/Mips/cprestore-reorder.s vendor/llvm/dist/test/MC/Mips/cprestore-warning-unused.s vendor/llvm/dist/test/MC/Mips/cpsetup.s vendor/llvm/dist/test/MC/Mips/directive-ent.s vendor/llvm/dist/test/MC/Mips/do_switch1.s vendor/llvm/dist/test/MC/Mips/do_switch2.s vendor/llvm/dist/test/MC/Mips/do_switch3.s vendor/llvm/dist/test/MC/Mips/dsp/invalid.s vendor/llvm/dist/test/MC/Mips/elf_eflags.s vendor/llvm/dist/test/MC/Mips/elf_eflags_micromips.s vendor/llvm/dist/test/MC/Mips/elf_st_other.s vendor/llvm/dist/test/MC/Mips/eva/invalid-noeva-wrong-error.s vendor/llvm/dist/test/MC/Mips/eva/invalid.s vendor/llvm/dist/test/MC/Mips/eva/invalid_R6.s vendor/llvm/dist/test/MC/Mips/expansion-jal-sym-pic.s vendor/llvm/dist/test/MC/Mips/expr1.s vendor/llvm/dist/test/MC/Mips/higher-highest-addressing.s vendor/llvm/dist/test/MC/Mips/insn-directive.s vendor/llvm/dist/test/MC/Mips/instalias-imm-expanding.s vendor/llvm/dist/test/MC/Mips/macro-ddiv-bad.s vendor/llvm/dist/test/MC/Mips/macro-ddiv.s vendor/llvm/dist/test/MC/Mips/macro-ddivu-bad.s vendor/llvm/dist/test/MC/Mips/macro-ddivu.s vendor/llvm/dist/test/MC/Mips/macro-div-bad.s vendor/llvm/dist/test/MC/Mips/macro-div.s vendor/llvm/dist/test/MC/Mips/macro-divu-bad.s vendor/llvm/dist/test/MC/Mips/macro-divu.s vendor/llvm/dist/test/MC/Mips/macro-la.s vendor/llvm/dist/test/MC/Mips/micromips-alias.s vendor/llvm/dist/test/MC/Mips/micromips-alu-instructions.s vendor/llvm/dist/test/MC/Mips/micromips-dsp/invalid.s vendor/llvm/dist/test/MC/Mips/micromips-dsp/valid.s vendor/llvm/dist/test/MC/Mips/micromips-dspr2/invalid.s vendor/llvm/dist/test/MC/Mips/micromips-dspr2/valid.s vendor/llvm/dist/test/MC/Mips/micromips-el-fixup-data.s vendor/llvm/dist/test/MC/Mips/micromips-expansions.s vendor/llvm/dist/test/MC/Mips/micromips-func-addr.s vendor/llvm/dist/test/MC/Mips/micromips-invalid.s vendor/llvm/dist/test/MC/Mips/micromips-label-test-sections.s vendor/llvm/dist/test/MC/Mips/micromips-label-test.s vendor/llvm/dist/test/MC/Mips/micromips-relocations.s vendor/llvm/dist/test/MC/Mips/micromips-shift-instructions.s vendor/llvm/dist/test/MC/Mips/micromips/invalid.s vendor/llvm/dist/test/MC/Mips/micromips32r6/invalid.s vendor/llvm/dist/test/MC/Mips/micromips32r6/valid.s vendor/llvm/dist/test/MC/Mips/micromips64r6/invalid.s vendor/llvm/dist/test/MC/Mips/micromips64r6/valid.s vendor/llvm/dist/test/MC/Mips/mips-control-instructions.s vendor/llvm/dist/test/MC/Mips/mips-cop0-reginfo.s vendor/llvm/dist/test/MC/Mips/mips-data-directives.s vendor/llvm/dist/test/MC/Mips/mips-expansions-bad.s vendor/llvm/dist/test/MC/Mips/mips-expansions.s vendor/llvm/dist/test/MC/Mips/mips-pdr.s vendor/llvm/dist/test/MC/Mips/mips1/invalid-mips2-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips1/invalid-mips3-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips1/invalid-mips3.s vendor/llvm/dist/test/MC/Mips/mips1/invalid-mips4-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips1/invalid-mips4.s vendor/llvm/dist/test/MC/Mips/mips1/invalid-mips5.s vendor/llvm/dist/test/MC/Mips/mips1/valid.s vendor/llvm/dist/test/MC/Mips/mips2/invalid-mips3-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips2/invalid-mips3.s vendor/llvm/dist/test/MC/Mips/mips2/invalid-mips4-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips2/invalid-mips4.s vendor/llvm/dist/test/MC/Mips/mips2/valid.s vendor/llvm/dist/test/MC/Mips/mips3/valid.s vendor/llvm/dist/test/MC/Mips/mips32/valid.s vendor/llvm/dist/test/MC/Mips/mips32r2/invalid-dsp.s vendor/llvm/dist/test/MC/Mips/mips32r2/invalid-dspr2.s vendor/llvm/dist/test/MC/Mips/mips32r2/invalid.s vendor/llvm/dist/test/MC/Mips/mips32r2/valid.s vendor/llvm/dist/test/MC/Mips/mips32r3/valid.s vendor/llvm/dist/test/MC/Mips/mips32r5/invalid.s vendor/llvm/dist/test/MC/Mips/mips32r5/valid.s vendor/llvm/dist/test/MC/Mips/mips32r6/invalid-mips1-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips32r6/invalid-mips5-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips32r6/invalid.s vendor/llvm/dist/test/MC/Mips/mips32r6/relocations.s vendor/llvm/dist/test/MC/Mips/mips32r6/valid.s vendor/llvm/dist/test/MC/Mips/mips4/valid.s vendor/llvm/dist/test/MC/Mips/mips5/valid.s vendor/llvm/dist/test/MC/Mips/mips64-expansions.s vendor/llvm/dist/test/MC/Mips/mips64/abiflags.s vendor/llvm/dist/test/MC/Mips/mips64/invalid-mips64r2.s vendor/llvm/dist/test/MC/Mips/mips64/valid.s vendor/llvm/dist/test/MC/Mips/mips64r2/abi-bad.s vendor/llvm/dist/test/MC/Mips/mips64r2/abiflags.s vendor/llvm/dist/test/MC/Mips/mips64r2/invalid.s vendor/llvm/dist/test/MC/Mips/mips64r2/valid.s vendor/llvm/dist/test/MC/Mips/mips64r3/abi-bad.s vendor/llvm/dist/test/MC/Mips/mips64r3/abiflags.s vendor/llvm/dist/test/MC/Mips/mips64r3/invalid.s vendor/llvm/dist/test/MC/Mips/mips64r3/valid.s vendor/llvm/dist/test/MC/Mips/mips64r5/abi-bad.s vendor/llvm/dist/test/MC/Mips/mips64r5/abiflags.s vendor/llvm/dist/test/MC/Mips/mips64r5/invalid.s vendor/llvm/dist/test/MC/Mips/mips64r5/valid.s vendor/llvm/dist/test/MC/Mips/mips64r6/invalid-mips1-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips64r6/invalid-mips3-wrong-error.s vendor/llvm/dist/test/MC/Mips/mips64r6/invalid.s vendor/llvm/dist/test/MC/Mips/mips64r6/relocations.s vendor/llvm/dist/test/MC/Mips/mips64r6/valid.s vendor/llvm/dist/test/MC/Mips/mips64shift.ll vendor/llvm/dist/test/MC/Mips/mips_abi_flags_xx.s vendor/llvm/dist/test/MC/Mips/mips_directives.s vendor/llvm/dist/test/MC/Mips/mips_gprel16.s vendor/llvm/dist/test/MC/Mips/msa/invalid.s vendor/llvm/dist/test/MC/Mips/msa/test_mi10.s vendor/llvm/dist/test/MC/Mips/nacl-mask.s vendor/llvm/dist/test/MC/Mips/nooddspreg-cmdarg.s vendor/llvm/dist/test/MC/Mips/nooddspreg.s vendor/llvm/dist/test/MC/Mips/oddspreg.s vendor/llvm/dist/test/MC/Mips/reloc-directive.s vendor/llvm/dist/test/MC/Mips/relocation.s vendor/llvm/dist/test/MC/Mips/set-arch.s vendor/llvm/dist/test/MC/Mips/set-defined-symbol.s vendor/llvm/dist/test/MC/Mips/set-push-pop-directives-bad.s vendor/llvm/dist/test/MC/Mips/sext_64_32.ll vendor/llvm/dist/test/MC/Mips/sort-relocation-table.s vendor/llvm/dist/test/MC/Mips/target-soft-float.s vendor/llvm/dist/test/MC/PowerPC/ppc64-encoding-bookII.s vendor/llvm/dist/test/MC/PowerPC/ppc64-encoding-ext.s vendor/llvm/dist/test/MC/PowerPC/ppc64-encoding-vmx.s vendor/llvm/dist/test/MC/PowerPC/ppc64-encoding.s vendor/llvm/dist/test/MC/PowerPC/ppc64-fixups.s vendor/llvm/dist/test/MC/PowerPC/ppc64-initial-cfa.s vendor/llvm/dist/test/MC/PowerPC/ppc64-localentry.s vendor/llvm/dist/test/MC/PowerPC/st-other-crash.s vendor/llvm/dist/test/MC/PowerPC/vsx.s vendor/llvm/dist/test/MC/Sparc/sparc-ctrl-instructions.s vendor/llvm/dist/test/MC/Sparc/sparc-directives.s vendor/llvm/dist/test/MC/Sparc/sparc-fp-instructions.s vendor/llvm/dist/test/MC/Sparc/sparc-pic.s vendor/llvm/dist/test/MC/Sparc/sparc-special-registers.s vendor/llvm/dist/test/MC/Sparc/sparc64-ctrl-instructions.s vendor/llvm/dist/test/MC/SystemZ/insn-bad-z13.s vendor/llvm/dist/test/MC/SystemZ/insn-bad-z196.s vendor/llvm/dist/test/MC/SystemZ/insn-bad-zEC12.s vendor/llvm/dist/test/MC/SystemZ/insn-bad.s vendor/llvm/dist/test/MC/SystemZ/insn-good-z13.s vendor/llvm/dist/test/MC/SystemZ/insn-good-z196.s vendor/llvm/dist/test/MC/SystemZ/insn-good.s vendor/llvm/dist/test/MC/X86/avx512-encodings.s vendor/llvm/dist/test/MC/X86/i386-darwin-frame-register.ll vendor/llvm/dist/test/MC/X86/index-operations.s vendor/llvm/dist/test/MC/X86/intel-syntax-avx512.s vendor/llvm/dist/test/MC/X86/intel-syntax-x86-64-avx512f_vl.s vendor/llvm/dist/test/MC/X86/intel-syntax.s vendor/llvm/dist/test/MC/X86/mpx-encodings.s vendor/llvm/dist/test/MC/X86/x86-32.s vendor/llvm/dist/test/MC/X86/x86-64-avx512bw.s vendor/llvm/dist/test/MC/X86/x86-64-avx512bw_vl.s vendor/llvm/dist/test/MC/X86/x86-64.s vendor/llvm/dist/test/MC/X86/x86_errors.s vendor/llvm/dist/test/MC/X86/x86_long_nop.s vendor/llvm/dist/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml vendor/llvm/dist/test/Object/AMDGPU/elf-definitios.yaml vendor/llvm/dist/test/Object/Inputs/COFF/i386.yaml vendor/llvm/dist/test/Object/Inputs/COFF/long-file-symbol.yaml vendor/llvm/dist/test/Object/Inputs/COFF/long-section-name.yaml vendor/llvm/dist/test/Object/Inputs/COFF/section-aux-symbol.yaml vendor/llvm/dist/test/Object/Inputs/COFF/weak-external.yaml vendor/llvm/dist/test/Object/Inputs/COFF/x86-64.yaml vendor/llvm/dist/test/Object/Inputs/invalid-sh_entsize.elf vendor/llvm/dist/test/Object/Mips/abi-flags.yaml vendor/llvm/dist/test/Object/Mips/elf-abi.yaml vendor/llvm/dist/test/Object/Mips/elf-flags.yaml vendor/llvm/dist/test/Object/Mips/elf-mips64-rel.yaml vendor/llvm/dist/test/Object/Mips/feature.test vendor/llvm/dist/test/Object/Mips/objdump-micro-mips.test vendor/llvm/dist/test/Object/X86/nm-ir.ll vendor/llvm/dist/test/Object/X86/yaml2obj-elf-x86-rel.yaml vendor/llvm/dist/test/Object/archive-format.test vendor/llvm/dist/test/Object/archive-symtab.test vendor/llvm/dist/test/Object/corrupt.test vendor/llvm/dist/test/Object/elf-unknown-type.test vendor/llvm/dist/test/Object/invalid.test vendor/llvm/dist/test/Object/macho-invalid.test vendor/llvm/dist/test/Object/nm-archive.test vendor/llvm/dist/test/Object/nm-universal-binary.test vendor/llvm/dist/test/Object/no-section-table.test vendor/llvm/dist/test/Object/obj2yaml-sectiongroup.test vendor/llvm/dist/test/Object/obj2yaml.test vendor/llvm/dist/test/Object/relocation-executable.test vendor/llvm/dist/test/Object/yaml2obj-coff-multi-doc.test vendor/llvm/dist/test/Object/yaml2obj-elf-alignment.yaml vendor/llvm/dist/test/Object/yaml2obj-elf-bits-endian.test vendor/llvm/dist/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml vendor/llvm/dist/test/Object/yaml2obj-elf-file-headers.yaml vendor/llvm/dist/test/Object/yaml2obj-elf-multi-doc.test vendor/llvm/dist/test/Object/yaml2obj-elf-rel-noref.yaml vendor/llvm/dist/test/Object/yaml2obj-elf-rel.yaml vendor/llvm/dist/test/Object/yaml2obj-elf-section-basic.yaml vendor/llvm/dist/test/Object/yaml2obj-elf-section-invalid-size.yaml vendor/llvm/dist/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml vendor/llvm/dist/test/Object/yaml2obj-elf-symbol-basic.yaml vendor/llvm/dist/test/Object/yaml2obj-elf-symbol-visibility.yaml vendor/llvm/dist/test/Other/ResponseFile.ll vendor/llvm/dist/test/Other/constant-fold-gep.ll vendor/llvm/dist/test/Other/new-pass-manager.ll vendor/llvm/dist/test/Other/pass-pipeline-parsing.ll vendor/llvm/dist/test/TableGen/intrinsic-long-name.td vendor/llvm/dist/test/TableGen/intrinsic-varargs.td vendor/llvm/dist/test/TableGen/trydecode-emission.td vendor/llvm/dist/test/TableGen/trydecode-emission2.td vendor/llvm/dist/test/TableGen/trydecode-emission3.td vendor/llvm/dist/test/Transforms/AddDiscriminators/basic.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/call.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/dbg-declare-discriminator.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/diamond.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/first-only.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/multiple.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/no-discriminators.ll vendor/llvm/dist/test/Transforms/AddDiscriminators/oneline.ll vendor/llvm/dist/test/Transforms/AlignmentFromAssumptions/simple.ll vendor/llvm/dist/test/Transforms/AlignmentFromAssumptions/simple32.ll vendor/llvm/dist/test/Transforms/AlignmentFromAssumptions/start-unk.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/dbg.ll vendor/llvm/dist/test/Transforms/ArgumentPromotion/inalloca.ll vendor/llvm/dist/test/Transforms/AtomicExpand/ARM/atomic-expansion-v7.ll vendor/llvm/dist/test/Transforms/AtomicExpand/ARM/atomic-expansion-v8.ll vendor/llvm/dist/test/Transforms/AtomicExpand/ARM/cmpxchg-weak.ll vendor/llvm/dist/test/Transforms/AtomicExpand/X86/expand-atomic-non-integer.ll vendor/llvm/dist/test/Transforms/BDCE/dce-pure.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/AMDGPU/no-sink-addrspacecast.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/catchpad-phi-cast.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/select.ll vendor/llvm/dist/test/Transforms/ConstProp/calls.ll vendor/llvm/dist/test/Transforms/ConstantHoisting/X86/cast-inst.ll vendor/llvm/dist/test/Transforms/ConstantMerge/merge-both.ll vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/basic.ll vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/icmp.ll vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/range.ll vendor/llvm/dist/test/Transforms/CorrelatedValuePropagation/select.ll vendor/llvm/dist/test/Transforms/CrossDSOCFI/basic.ll vendor/llvm/dist/test/Transforms/DeadArgElim/2010-04-30-DbgInfo.ll vendor/llvm/dist/test/Transforms/DeadArgElim/dbginfo.ll vendor/llvm/dist/test/Transforms/DeadArgElim/returned.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/inst-limits.ll vendor/llvm/dist/test/Transforms/DeadStoreElimination/simple.ll vendor/llvm/dist/test/Transforms/EarlyCSE/basic.ll vendor/llvm/dist/test/Transforms/EliminateAvailableExternally/visibility.ll vendor/llvm/dist/test/Transforms/Float2Int/basic.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/nocapture.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/norecurse.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/optnone.ll vendor/llvm/dist/test/Transforms/FunctionAttrs/readattrs.ll vendor/llvm/dist/test/Transforms/FunctionImport/Inputs/funcimport.ll vendor/llvm/dist/test/Transforms/FunctionImport/Inputs/funcimport_debug.ll vendor/llvm/dist/test/Transforms/FunctionImport/funcimport.ll vendor/llvm/dist/test/Transforms/FunctionImport/funcimport_alias.ll vendor/llvm/dist/test/Transforms/FunctionImport/funcimport_debug.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/function-numbering.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/global-ctor.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/linezero.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/linkagename.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/modules.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/return-block.ll vendor/llvm/dist/test/Transforms/GCOVProfiling/version.ll vendor/llvm/dist/test/Transforms/GVN/2007-07-25-InfiniteLoop.ll vendor/llvm/dist/test/Transforms/GVN/2007-07-26-PhiErasure.ll vendor/llvm/dist/test/Transforms/GVN/2007-07-31-NoDomInherit.ll vendor/llvm/dist/test/Transforms/GVN/2007-07-31-RedundantPhi.ll vendor/llvm/dist/test/Transforms/GVN/2008-02-12-UndefLoad.ll vendor/llvm/dist/test/Transforms/GVN/2008-07-02-Unreachable.ll vendor/llvm/dist/test/Transforms/GVN/2008-12-09-SelfRemove.ll vendor/llvm/dist/test/Transforms/GVN/assume-equal.ll vendor/llvm/dist/test/Transforms/GVN/basic.ll vendor/llvm/dist/test/Transforms/GVN/bitcast-of-call.ll vendor/llvm/dist/test/Transforms/GVN/calls-nonlocal.ll vendor/llvm/dist/test/Transforms/GVN/calls-readonly.ll vendor/llvm/dist/test/Transforms/GVN/load-constant-mem.ll vendor/llvm/dist/test/Transforms/GVN/nonescaping-malloc.ll vendor/llvm/dist/test/Transforms/GVN/rle-must-alias.ll vendor/llvm/dist/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll vendor/llvm/dist/test/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll vendor/llvm/dist/test/Transforms/GlobalDCE/2003-07-01-SelfReference.ll vendor/llvm/dist/test/Transforms/GlobalDCE/2003-10-09-PreserveWeakGlobals.ll vendor/llvm/dist/test/Transforms/GlobalDCE/basicvariabletest.ll vendor/llvm/dist/test/Transforms/GlobalDCE/externally_available.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2007-05-13-Crash.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2009-03-05-dbg.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll vendor/llvm/dist/test/Transforms/GlobalOpt/2010-10-19-WeakOdr.ll vendor/llvm/dist/test/Transforms/GlobalOpt/alias-used-address-space.ll vendor/llvm/dist/test/Transforms/GlobalOpt/alias-used.ll vendor/llvm/dist/test/Transforms/GlobalOpt/assume.ll vendor/llvm/dist/test/Transforms/GlobalOpt/basictest.ll vendor/llvm/dist/test/Transforms/GlobalOpt/constantexpr-dangle.ll vendor/llvm/dist/test/Transforms/GlobalOpt/constantfold-initializers.ll vendor/llvm/dist/test/Transforms/GlobalOpt/ctor-list-opt-inbounds.ll vendor/llvm/dist/test/Transforms/GlobalOpt/deadglobal-2.ll vendor/llvm/dist/test/Transforms/GlobalOpt/globalsra-partial.ll vendor/llvm/dist/test/Transforms/GlobalOpt/globalsra-unknown-index.ll vendor/llvm/dist/test/Transforms/GlobalOpt/globalsra.ll vendor/llvm/dist/test/Transforms/GlobalOpt/heap-sra-phi.ll vendor/llvm/dist/test/Transforms/GlobalOpt/invariant.group.barrier.ll vendor/llvm/dist/test/Transforms/GlobalOpt/invoke.ll vendor/llvm/dist/test/Transforms/GlobalOpt/iterate.ll vendor/llvm/dist/test/Transforms/GlobalOpt/memcpy.ll vendor/llvm/dist/test/Transforms/GlobalOpt/phi-select.ll vendor/llvm/dist/test/Transforms/GlobalOpt/pr21191.ll vendor/llvm/dist/test/Transforms/GlobalOpt/storepointer-compare.ll vendor/llvm/dist/test/Transforms/GlobalOpt/storepointer.ll vendor/llvm/dist/test/Transforms/GlobalOpt/trivialstore.ll vendor/llvm/dist/test/Transforms/GlobalOpt/undef-init.ll vendor/llvm/dist/test/Transforms/GlobalOpt/unnamed-addr.ll vendor/llvm/dist/test/Transforms/IPConstantProp/global.ll vendor/llvm/dist/test/Transforms/IRCE/decrementing-loop.ll vendor/llvm/dist/test/Transforms/IRCE/only-lower-check.ll vendor/llvm/dist/test/Transforms/IRCE/only-upper-check.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/backedge-on-min-max.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/elim-extend.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/iv-widen.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/lftr-address-space-pointers.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/loop_evaluate10.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/pr24783.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/sharpen-range.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/sink-trapping.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/udiv.ll vendor/llvm/dist/test/Transforms/IndVarSimplify/ult-sub-to-eq.ll vendor/llvm/dist/test/Transforms/InferFunctionAttrs/annotate.ll vendor/llvm/dist/test/Transforms/Inline/PR4909.ll vendor/llvm/dist/test/Transforms/Inline/alloca-dbgdeclare-merge.ll vendor/llvm/dist/test/Transforms/Inline/alloca-dbgdeclare.ll vendor/llvm/dist/test/Transforms/Inline/alloca_test.ll vendor/llvm/dist/test/Transforms/Inline/attributes.ll vendor/llvm/dist/test/Transforms/Inline/basictest.ll vendor/llvm/dist/test/Transforms/Inline/blockaddress.ll vendor/llvm/dist/test/Transforms/Inline/crash2.ll vendor/llvm/dist/test/Transforms/Inline/debug-info-duplicate-calls.ll vendor/llvm/dist/test/Transforms/Inline/debug-invoke.ll vendor/llvm/dist/test/Transforms/Inline/devirtualize-3.ll vendor/llvm/dist/test/Transforms/Inline/ignore-debug-info.ll vendor/llvm/dist/test/Transforms/Inline/inline-cold-callee.ll vendor/llvm/dist/test/Transforms/Inline/inline-hot-callee.ll vendor/llvm/dist/test/Transforms/Inline/inline-invoke-tail.ll vendor/llvm/dist/test/Transforms/Inline/inline-optsize.ll vendor/llvm/dist/test/Transforms/Inline/inline_dbg_declare.ll vendor/llvm/dist/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll vendor/llvm/dist/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll vendor/llvm/dist/test/Transforms/InstCombine/2008-07-08-ShiftOneAndOne.ll vendor/llvm/dist/test/Transforms/InstCombine/2008-07-10-CastSextBool.ll vendor/llvm/dist/test/Transforms/InstCombine/2009-02-20-InstCombine-SROA.ll vendor/llvm/dist/test/Transforms/InstCombine/addrspacecast.ll vendor/llvm/dist/test/Transforms/InstCombine/align-attr.ll vendor/llvm/dist/test/Transforms/InstCombine/all-bits-shift.ll vendor/llvm/dist/test/Transforms/InstCombine/and-compare.ll vendor/llvm/dist/test/Transforms/InstCombine/and-fcmp.ll vendor/llvm/dist/test/Transforms/InstCombine/and-or-not.ll vendor/llvm/dist/test/Transforms/InstCombine/and-or.ll vendor/llvm/dist/test/Transforms/InstCombine/and.ll vendor/llvm/dist/test/Transforms/InstCombine/and2.ll vendor/llvm/dist/test/Transforms/InstCombine/apint-and-xor-merge.ll vendor/llvm/dist/test/Transforms/InstCombine/apint-select.ll vendor/llvm/dist/test/Transforms/InstCombine/atomic.ll vendor/llvm/dist/test/Transforms/InstCombine/bitcast-bigendian.ll vendor/llvm/dist/test/Transforms/InstCombine/bitcast.ll vendor/llvm/dist/test/Transforms/InstCombine/bitreverse-fold.ll vendor/llvm/dist/test/Transforms/InstCombine/bswap.ll vendor/llvm/dist/test/Transforms/InstCombine/cast-set.ll vendor/llvm/dist/test/Transforms/InstCombine/cast.ll vendor/llvm/dist/test/Transforms/InstCombine/compare-signs.ll vendor/llvm/dist/test/Transforms/InstCombine/debug-line.ll vendor/llvm/dist/test/Transforms/InstCombine/debuginfo.ll vendor/llvm/dist/test/Transforms/InstCombine/demorgan-zext.ll vendor/llvm/dist/test/Transforms/InstCombine/div-shift.ll vendor/llvm/dist/test/Transforms/InstCombine/div.ll vendor/llvm/dist/test/Transforms/InstCombine/double-float-shrink-1.ll vendor/llvm/dist/test/Transforms/InstCombine/exact.ll vendor/llvm/dist/test/Transforms/InstCombine/fabs.ll vendor/llvm/dist/test/Transforms/InstCombine/fcmp-special.ll vendor/llvm/dist/test/Transforms/InstCombine/fmul.ll vendor/llvm/dist/test/Transforms/InstCombine/gc.relocate.ll vendor/llvm/dist/test/Transforms/InstCombine/getelementptr.ll vendor/llvm/dist/test/Transforms/InstCombine/icmp.ll vendor/llvm/dist/test/Transforms/InstCombine/lifetime.ll vendor/llvm/dist/test/Transforms/InstCombine/load-cmp.ll vendor/llvm/dist/test/Transforms/InstCombine/logical-select.ll vendor/llvm/dist/test/Transforms/InstCombine/mem-gep-zidx.ll vendor/llvm/dist/test/Transforms/InstCombine/memchr.ll vendor/llvm/dist/test/Transforms/InstCombine/memset-1.ll vendor/llvm/dist/test/Transforms/InstCombine/memset_chk-1.ll vendor/llvm/dist/test/Transforms/InstCombine/minmax-fp.ll vendor/llvm/dist/test/Transforms/InstCombine/mul-masked-bits.ll vendor/llvm/dist/test/Transforms/InstCombine/narrow-switch.ll vendor/llvm/dist/test/Transforms/InstCombine/or-fcmp.ll vendor/llvm/dist/test/Transforms/InstCombine/or-to-xor.ll vendor/llvm/dist/test/Transforms/InstCombine/or.ll vendor/llvm/dist/test/Transforms/InstCombine/phi.ll vendor/llvm/dist/test/Transforms/InstCombine/pow-4.ll vendor/llvm/dist/test/Transforms/InstCombine/pr21210.ll vendor/llvm/dist/test/Transforms/InstCombine/pr21651.ll vendor/llvm/dist/test/Transforms/InstCombine/printf-1.ll vendor/llvm/dist/test/Transforms/InstCombine/printf-2.ll vendor/llvm/dist/test/Transforms/InstCombine/rem.ll vendor/llvm/dist/test/Transforms/InstCombine/select.ll vendor/llvm/dist/test/Transforms/InstCombine/set.ll vendor/llvm/dist/test/Transforms/InstCombine/shift.ll vendor/llvm/dist/test/Transforms/InstCombine/shufflevec-constant.ll vendor/llvm/dist/test/Transforms/InstCombine/signed-comparison.ll vendor/llvm/dist/test/Transforms/InstCombine/signext.ll vendor/llvm/dist/test/Transforms/InstCombine/stacksaverestore.ll vendor/llvm/dist/test/Transforms/InstCombine/strlen-1.ll vendor/llvm/dist/test/Transforms/InstCombine/trunc.ll vendor/llvm/dist/test/Transforms/InstCombine/unpack-fca.ll vendor/llvm/dist/test/Transforms/InstCombine/urem.ll vendor/llvm/dist/test/Transforms/InstCombine/vec_demanded_elts.ll vendor/llvm/dist/test/Transforms/InstCombine/vec_phi_extract.ll vendor/llvm/dist/test/Transforms/InstCombine/volatile_store.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-f16c.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-pshufb.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-sse4a.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-vector-shifts.ll vendor/llvm/dist/test/Transforms/InstCombine/x86-xop.ll vendor/llvm/dist/test/Transforms/InstCombine/xor.ll vendor/llvm/dist/test/Transforms/InstCombine/zero-point-zero-add.ll vendor/llvm/dist/test/Transforms/InstCombine/zeroext-and-reduce.ll vendor/llvm/dist/test/Transforms/InstCombine/zext-fold.ll vendor/llvm/dist/test/Transforms/InstCombine/zext-or-icmp.ll vendor/llvm/dist/test/Transforms/InstCombine/zext.ll vendor/llvm/dist/test/Transforms/InstMerge/st_sink_bugfix_22613.ll vendor/llvm/dist/test/Transforms/InstMerge/st_sink_no_barrier_call.ll vendor/llvm/dist/test/Transforms/InstSimplify/2010-12-20-Boolean.ll vendor/llvm/dist/test/Transforms/InstSimplify/AndOrXor.ll vendor/llvm/dist/test/Transforms/InstSimplify/add-mask.ll vendor/llvm/dist/test/Transforms/InstSimplify/apint-or.ll vendor/llvm/dist/test/Transforms/InstSimplify/assume.ll vendor/llvm/dist/test/Transforms/InstSimplify/bswap.ll vendor/llvm/dist/test/Transforms/InstSimplify/call.ll vendor/llvm/dist/test/Transforms/InstSimplify/compare.ll vendor/llvm/dist/test/Transforms/InstSimplify/fast-math.ll vendor/llvm/dist/test/Transforms/InstSimplify/fdiv.ll vendor/llvm/dist/test/Transforms/InstSimplify/floating-point-arithmetic.ll vendor/llvm/dist/test/Transforms/InstSimplify/floating-point-compare.ll vendor/llvm/dist/test/Transforms/InstSimplify/implies.ll vendor/llvm/dist/test/Transforms/InstSimplify/load.ll vendor/llvm/dist/test/Transforms/InstSimplify/maxmin.ll vendor/llvm/dist/test/Transforms/InstSimplify/past-the-end.ll vendor/llvm/dist/test/Transforms/InstSimplify/phi.ll vendor/llvm/dist/test/Transforms/InstSimplify/ptr_diff.ll vendor/llvm/dist/test/Transforms/InstSimplify/reassociate.ll vendor/llvm/dist/test/Transforms/InstSimplify/rem.ll vendor/llvm/dist/test/Transforms/InstSimplify/shift-128-kb.ll vendor/llvm/dist/test/Transforms/InstSimplify/shr-nop.ll vendor/llvm/dist/test/Transforms/InstSimplify/undef.ll vendor/llvm/dist/test/Transforms/InstSimplify/vector_gep.ll vendor/llvm/dist/test/Transforms/Internalize/used.ll vendor/llvm/dist/test/Transforms/JumpThreading/basic.ll vendor/llvm/dist/test/Transforms/JumpThreading/implied-cond.ll vendor/llvm/dist/test/Transforms/JumpThreading/pr26096.ll vendor/llvm/dist/test/Transforms/JumpThreading/thread-loads.ll vendor/llvm/dist/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll vendor/llvm/dist/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll vendor/llvm/dist/test/Transforms/LCSSA/2006-07-09-NoDominator.ll vendor/llvm/dist/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll vendor/llvm/dist/test/Transforms/LCSSA/basictest.ll vendor/llvm/dist/test/Transforms/LCSSA/invoke-dest.ll vendor/llvm/dist/test/Transforms/LCSSA/mixed-catch.ll vendor/llvm/dist/test/Transforms/LCSSA/unused-phis.ll vendor/llvm/dist/test/Transforms/LICM/argmemonly-call.ll vendor/llvm/dist/test/Transforms/LICM/atomics.ll vendor/llvm/dist/test/Transforms/LICM/basictest.ll vendor/llvm/dist/test/Transforms/LICM/constexpr.ll vendor/llvm/dist/test/Transforms/LICM/crash.ll vendor/llvm/dist/test/Transforms/LICM/debug-value.ll vendor/llvm/dist/test/Transforms/LICM/extra-copies.ll vendor/llvm/dist/test/Transforms/LICM/funclet.ll vendor/llvm/dist/test/Transforms/LICM/hoist-bitcast-load.ll vendor/llvm/dist/test/Transforms/LICM/hoist-deref-load.ll vendor/llvm/dist/test/Transforms/LICM/hoisting.ll vendor/llvm/dist/test/Transforms/LICM/lcssa-ssa-promoter.ll vendor/llvm/dist/test/Transforms/LICM/no-preheader-test.ll vendor/llvm/dist/test/Transforms/LICM/preheader-safe.ll vendor/llvm/dist/test/Transforms/LICM/promote-order.ll vendor/llvm/dist/test/Transforms/LICM/scalar-promote-memmodel.ll vendor/llvm/dist/test/Transforms/LICM/scalar_promote.ll vendor/llvm/dist/test/Transforms/LICM/speculate.ll vendor/llvm/dist/test/Transforms/LICM/volatile-alias.ll vendor/llvm/dist/test/Transforms/LoopDeletion/multiple-exit-conditions.ll vendor/llvm/dist/test/Transforms/LoopDeletion/multiple-exits.ll vendor/llvm/dist/test/Transforms/LoopIdiom/AMDGPU/popcnt.ll vendor/llvm/dist/test/Transforms/LoopIdiom/basic.ll vendor/llvm/dist/test/Transforms/LoopIdiom/debug-line.ll vendor/llvm/dist/test/Transforms/LoopLoadElim/forward.ll vendor/llvm/dist/test/Transforms/LoopReroll/basic.ll vendor/llvm/dist/test/Transforms/LoopReroll/nonconst_lb.ll vendor/llvm/dist/test/Transforms/LoopReroll/reroll_with_dbg.ll vendor/llvm/dist/test/Transforms/LoopRotate/basic.ll vendor/llvm/dist/test/Transforms/LoopRotate/dbgvalue.ll vendor/llvm/dist/test/Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll vendor/llvm/dist/test/Transforms/LoopSimplify/basictest.ll vendor/llvm/dist/test/Transforms/LoopSimplify/dbg-loc.ll vendor/llvm/dist/test/Transforms/LoopSimplify/single-backedge.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-postinc-pos-addrspace.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/X86/2012-01-13-phielim.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/X86/ivchain-X86.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/post-inc-icmpzero.ll vendor/llvm/dist/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll vendor/llvm/dist/test/Transforms/LoopUnroll/AArch64/runtime-loop.ll vendor/llvm/dist/test/Transforms/LoopUnroll/AMDGPU/unroll-barrier.ll vendor/llvm/dist/test/Transforms/LoopUnroll/PowerPC/a2-unrolling.ll vendor/llvm/dist/test/Transforms/LoopUnroll/PowerPC/p7-unrolling.ll vendor/llvm/dist/test/Transforms/LoopUnroll/X86/mmx.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-crashers.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-2.ll vendor/llvm/dist/test/Transforms/LoopUnroll/full-unroll-heuristics-cmp.ll vendor/llvm/dist/test/Transforms/LoopUnroll/high-cost-trip-count-computation.ll vendor/llvm/dist/test/Transforms/LoopUnroll/rebuild_lcssa.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop1.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop2.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop4.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop5.ll vendor/llvm/dist/test/Transforms/LoopUnroll/tripcount-overflow.ll vendor/llvm/dist/test/Transforms/LoopUnroll/unroll-cleanup.ll vendor/llvm/dist/test/Transforms/LoopUnroll/unroll-pragmas.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/2011-09-26-EHCrash.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/2015-06-17-Metadata.ll vendor/llvm/dist/test/Transforms/LoopUnswitch/infinite-loop.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll vendor/llvm/dist/test/Transforms/LoopVectorize/AArch64/loop-vectorization-factors.ll vendor/llvm/dist/test/Transforms/LoopVectorize/PowerPC/large-loop-rdx.ll vendor/llvm/dist/test/Transforms/LoopVectorize/PowerPC/small-loop-rdx.ll vendor/llvm/dist/test/Transforms/LoopVectorize/PowerPC/vsx-tsvc-s173.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/avx1.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/cost-model.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/masked_load_store.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/no_fpmath.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/uint64_to_fp64-cost-model.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vector_max_bandwidth.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vectorization-remarks-missed.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vectorization-remarks-profitable.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/vectorization-remarks.ll vendor/llvm/dist/test/Transforms/LoopVectorize/cast-induction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/conditional-assignment.ll vendor/llvm/dist/test/Transforms/LoopVectorize/control-flow.ll vendor/llvm/dist/test/Transforms/LoopVectorize/dbg.value.ll vendor/llvm/dist/test/Transforms/LoopVectorize/debugloc.ll vendor/llvm/dist/test/Transforms/LoopVectorize/gcc-examples.ll vendor/llvm/dist/test/Transforms/LoopVectorize/gep_with_bitcast.ll vendor/llvm/dist/test/Transforms/LoopVectorize/global_alias.ll vendor/llvm/dist/test/Transforms/LoopVectorize/if-conversion.ll vendor/llvm/dist/test/Transforms/LoopVectorize/if-pred-stores.ll vendor/llvm/dist/test/Transforms/LoopVectorize/induction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/induction_plus.ll vendor/llvm/dist/test/Transforms/LoopVectorize/interleaved-accesses.ll vendor/llvm/dist/test/Transforms/LoopVectorize/no_array_bounds.ll vendor/llvm/dist/test/Transforms/LoopVectorize/no_outside_user.ll vendor/llvm/dist/test/Transforms/LoopVectorize/no_switch.ll vendor/llvm/dist/test/Transforms/LoopVectorize/phi-hang.ll vendor/llvm/dist/test/Transforms/LoopVectorize/reverse_induction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/runtime-check.ll vendor/llvm/dist/test/Transforms/LoopVectorize/same-base-access.ll vendor/llvm/dist/test/Transforms/LowerAtomic/atomic-load.ll vendor/llvm/dist/test/Transforms/LowerExpectIntrinsic/basic.ll vendor/llvm/dist/test/Transforms/Mem2Reg/ConvertDebugInfo.ll vendor/llvm/dist/test/Transforms/Mem2Reg/ConvertDebugInfo2.ll vendor/llvm/dist/test/Transforms/Mem2Reg/pr24179.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/fca2memcpy.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/loadstore-sret.ll vendor/llvm/dist/test/Transforms/MemCpyOpt/smaller.ll vendor/llvm/dist/test/Transforms/MergeFunc/alloca.ll vendor/llvm/dist/test/Transforms/ObjCARC/basic.ll vendor/llvm/dist/test/Transforms/ObjCARC/contract-marker.ll vendor/llvm/dist/test/Transforms/ObjCARC/contract-storestrong.ll vendor/llvm/dist/test/Transforms/ObjCARC/ensure-that-exception-unwind-path-is-visited.ll vendor/llvm/dist/test/Transforms/ObjCARC/tail-call-invariant-enforcement.ll vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/branch1.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/branch2.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/criticaledge.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/diag.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/landingpad.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/loop1.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/loop2.proftext vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/switch.proftext vendor/llvm/dist/test/Transforms/PGOProfile/branch1.ll vendor/llvm/dist/test/Transforms/PGOProfile/branch2.ll vendor/llvm/dist/test/Transforms/PGOProfile/criticaledge.ll vendor/llvm/dist/test/Transforms/PGOProfile/diag_mismatch.ll vendor/llvm/dist/test/Transforms/PGOProfile/diag_no_funcprofdata.ll vendor/llvm/dist/test/Transforms/PGOProfile/diag_no_profile.ll vendor/llvm/dist/test/Transforms/PGOProfile/landingpad.ll vendor/llvm/dist/test/Transforms/PGOProfile/loop1.ll vendor/llvm/dist/test/Transforms/PGOProfile/loop2.ll vendor/llvm/dist/test/Transforms/PGOProfile/single_bb.ll vendor/llvm/dist/test/Transforms/PGOProfile/switch.ll vendor/llvm/dist/test/Transforms/PartiallyInlineLibCalls/bad-prototype.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/basic.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/call-in-loop.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/finite-loops.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/memset.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/split-backedge.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/statepoint-coreclr.ll vendor/llvm/dist/test/Transforms/PlaceSafepoints/statepoint-frameescape.ll vendor/llvm/dist/test/Transforms/Reassociate/basictest.ll vendor/llvm/dist/test/Transforms/Reassociate/reassoc-intermediate-fnegs.ll vendor/llvm/dist/test/Transforms/Reassociate/xor_reassoc.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-1.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-10.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-11.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-12.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-13.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-2.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-3.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-4.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-5.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-6.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-7.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-8.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers-9.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-pointers.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/base-vector.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/basics.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/codegen-cond.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/constants.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deref-pointers.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/liveness-basics.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/preprocess.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/relocation.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/rematerialize-derived-pointers.ll vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/two-invokes-one-landingpad.ll vendor/llvm/dist/test/Transforms/SCCP/global-alias-constprop.ll vendor/llvm/dist/test/Transforms/SCCP/ipsccp-basic.ll vendor/llvm/dist/test/Transforms/SCCP/undef-resolve.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/call.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/cast.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/debug_info.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/gep.ll vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/ordering.ll vendor/llvm/dist/test/Transforms/SROA/address-spaces.ll vendor/llvm/dist/test/Transforms/SROA/basictest.ll vendor/llvm/dist/test/Transforms/SafeStack/AArch64/abi.ll vendor/llvm/dist/test/Transforms/SafeStack/ARM/setjmp.ll vendor/llvm/dist/test/Transforms/SafeStack/array-aligned.ll vendor/llvm/dist/test/Transforms/SafeStack/array.ll vendor/llvm/dist/test/Transforms/SafeStack/debug-loc.ll vendor/llvm/dist/test/Transforms/SafeStack/dynamic-alloca.ll vendor/llvm/dist/test/Transforms/SafeStack/setjmp2.ll vendor/llvm/dist/test/Transforms/SafeStack/struct.ll vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/fnptr.binprof vendor/llvm/dist/test/Transforms/SampleProfile/Inputs/propagate.prof vendor/llvm/dist/test/Transforms/SampleProfile/branch.ll vendor/llvm/dist/test/Transforms/SampleProfile/calls.ll vendor/llvm/dist/test/Transforms/SampleProfile/cov-zero-samples.ll vendor/llvm/dist/test/Transforms/SampleProfile/coverage-warning.ll vendor/llvm/dist/test/Transforms/SampleProfile/discriminator.ll vendor/llvm/dist/test/Transforms/SampleProfile/entry_counts.ll vendor/llvm/dist/test/Transforms/SampleProfile/fnptr.ll vendor/llvm/dist/test/Transforms/SampleProfile/gcc-simple.ll vendor/llvm/dist/test/Transforms/SampleProfile/inline-coverage.ll vendor/llvm/dist/test/Transforms/SampleProfile/inline.ll vendor/llvm/dist/test/Transforms/SampleProfile/nolocinfo.ll vendor/llvm/dist/test/Transforms/SampleProfile/offset.ll vendor/llvm/dist/test/Transforms/SampleProfile/propagate.ll vendor/llvm/dist/test/Transforms/SampleProfile/remarks.ll vendor/llvm/dist/test/Transforms/SampleProfile/syntax.ll vendor/llvm/dist/test/Transforms/Scalarizer/dbginfo.ll vendor/llvm/dist/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/split-gep-and-gvn-addrspace-addressing-modes.ll vendor/llvm/dist/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/split-gep-and-gvn.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/2008-07-13-InfLoopMiscompile.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/PR16069.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/PhiBlockMerge.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/PhiEliminate2.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/UnreachableEliminate.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/basictest.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/branch-fold-dbg.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/empty-cleanuppad.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/hoist-dbgvalue.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/merge-cond-stores-2.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/preserve-branchweights.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/speculate-store.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/switch-masked-bits.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/switch_create.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/switch_switch_fold.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/switch_thread.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/trap-debugloc.ll vendor/llvm/dist/test/Transforms/SimplifyCFG/two-entry-phi-return.ll vendor/llvm/dist/test/Transforms/Sink/basic.ll vendor/llvm/dist/test/Transforms/Sink/convergent.ll vendor/llvm/dist/test/Transforms/StraightLineStrengthReduce/slsr-add.ll vendor/llvm/dist/test/Transforms/StraightLineStrengthReduce/slsr-gep.ll vendor/llvm/dist/test/Transforms/StripSymbols/2010-06-30-StripDebug.ll vendor/llvm/dist/test/Transforms/StripSymbols/2010-08-25-crash.ll vendor/llvm/dist/test/Transforms/StripSymbols/strip-dead-debug-info.ll vendor/llvm/dist/test/Transforms/StructurizeCFG/nested-loop-order.ll vendor/llvm/dist/test/Transforms/TailCallElim/accum_recursion.ll vendor/llvm/dist/test/Transforms/TailCallElim/dont_reorder_load.ll vendor/llvm/dist/test/Transforms/TailCallElim/reorder_load.ll vendor/llvm/dist/test/Transforms/Util/simplify-dbg-declare-load.ll vendor/llvm/dist/test/Transforms/Util/split-bit-piece.ll vendor/llvm/dist/test/Unit/lit.cfg vendor/llvm/dist/test/Unit/lit.site.cfg.in vendor/llvm/dist/test/Verifier/2010-08-07-PointerIntrinsic.ll vendor/llvm/dist/test/Verifier/alias.ll vendor/llvm/dist/test/Verifier/dbg-typerefs.ll vendor/llvm/dist/test/Verifier/dominates.ll vendor/llvm/dist/test/Verifier/fpmath.ll vendor/llvm/dist/test/Verifier/func-dbg.ll vendor/llvm/dist/test/Verifier/invalid-eh.ll vendor/llvm/dist/test/Verifier/invoke.ll vendor/llvm/dist/test/Verifier/metadata-function-dbg.ll vendor/llvm/dist/test/Verifier/operand-bundles.ll vendor/llvm/dist/test/lit.cfg vendor/llvm/dist/test/lit.site.cfg.in vendor/llvm/dist/test/tools/dsymutil/Inputs/frame-dw2.ll vendor/llvm/dist/test/tools/dsymutil/Inputs/frame-dw4.ll vendor/llvm/dist/test/tools/dsymutil/Inputs/modules/Foo.pcm vendor/llvm/dist/test/tools/dsymutil/X86/mismatch.m vendor/llvm/dist/test/tools/dsymutil/absolute_symbol.test vendor/llvm/dist/test/tools/dsymutil/arch-option.test vendor/llvm/dist/test/tools/dsymutil/basic-linking.test vendor/llvm/dist/test/tools/dsymutil/debug-map-parsing.test vendor/llvm/dist/test/tools/dsymutil/fat-binary-output.test vendor/llvm/dist/test/tools/dsymutil/yaml-object-address-rewrite.test vendor/llvm/dist/test/tools/gold/X86/Inputs/common.ll vendor/llvm/dist/test/tools/gold/X86/Inputs/linkonce-weak.ll vendor/llvm/dist/test/tools/gold/X86/coff.ll vendor/llvm/dist/test/tools/gold/X86/comdat.ll vendor/llvm/dist/test/tools/gold/X86/common.ll vendor/llvm/dist/test/tools/gold/X86/disable-verify.ll vendor/llvm/dist/test/tools/gold/X86/drop-linkage.ll vendor/llvm/dist/test/tools/gold/X86/emit-llvm.ll vendor/llvm/dist/test/tools/gold/X86/linkonce-weak.ll vendor/llvm/dist/test/tools/gold/X86/opt-level.ll vendor/llvm/dist/test/tools/gold/X86/parallel.ll vendor/llvm/dist/test/tools/gold/X86/pr19901.ll vendor/llvm/dist/test/tools/gold/X86/pr25915.ll vendor/llvm/dist/test/tools/gold/X86/thinlto.ll vendor/llvm/dist/test/tools/gold/X86/type-merge2.ll vendor/llvm/dist/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping vendor/llvm/dist/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping vendor/llvm/dist/test/tools/llvm-cov/Inputs/regionMarkers.covmapping vendor/llvm/dist/test/tools/llvm-cov/Inputs/showExpansions.covmapping vendor/llvm/dist/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping vendor/llvm/dist/test/tools/llvm-cov/lit.local.cfg vendor/llvm/dist/test/tools/llvm-cov/report.cpp vendor/llvm/dist/test/tools/llvm-cov/showLineExecutionCounts.cpp vendor/llvm/dist/test/tools/llvm-cov/showTemplateInstantiations.cpp vendor/llvm/dist/test/tools/llvm-dwp/X86/simple.test vendor/llvm/dist/test/tools/llvm-dwp/X86/type_dedup.test vendor/llvm/dist/test/tools/llvm-lto/error.ll vendor/llvm/dist/test/tools/llvm-lto/thinlto.ll vendor/llvm/dist/test/tools/llvm-nm/X86/posixMachO.test vendor/llvm/dist/test/tools/llvm-objdump/AArch64/macho-symbolized-disassembly.test vendor/llvm/dist/test/tools/llvm-objdump/ARM/macho-arm-and-thumb.test vendor/llvm/dist/test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test vendor/llvm/dist/test/tools/llvm-objdump/Inputs/file-aux-record.yaml vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-dis-symname.test vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-private-headers.test vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test vendor/llvm/dist/test/tools/llvm-objdump/coff-private-headers.test vendor/llvm/dist/test/tools/llvm-objdump/eh_frame-arm64.test vendor/llvm/dist/test/tools/llvm-objdump/macho-sections.test vendor/llvm/dist/test/tools/llvm-objdump/malformed-macho.test vendor/llvm/dist/test/tools/llvm-pdbdump/class-layout.test vendor/llvm/dist/test/tools/llvm-pdbdump/enum-layout.test vendor/llvm/dist/test/tools/llvm-pdbdump/load-address.test vendor/llvm/dist/test/tools/llvm-pdbdump/regex-filter.test vendor/llvm/dist/test/tools/llvm-profdata/Inputs/c-general.profraw vendor/llvm/dist/test/tools/llvm-profdata/c-general.test vendor/llvm/dist/test/tools/llvm-profdata/compat.proftext vendor/llvm/dist/test/tools/llvm-profdata/general.proftext vendor/llvm/dist/test/tools/llvm-profdata/multiple-inputs.test vendor/llvm/dist/test/tools/llvm-profdata/raw-32-bits-be.test vendor/llvm/dist/test/tools/llvm-profdata/raw-32-bits-le.test vendor/llvm/dist/test/tools/llvm-profdata/raw-64-bits-be.test vendor/llvm/dist/test/tools/llvm-profdata/raw-64-bits-le.test vendor/llvm/dist/test/tools/llvm-profdata/raw-two-profiles.test vendor/llvm/dist/test/tools/llvm-profdata/value-prof.proftext vendor/llvm/dist/test/tools/llvm-profdata/weight-instr.test vendor/llvm/dist/test/tools/llvm-readobj/ARM/attribute-0.s vendor/llvm/dist/test/tools/llvm-readobj/ARM/attribute-1.s vendor/llvm/dist/test/tools/llvm-readobj/Inputs/dynamic-table.c vendor/llvm/dist/test/tools/llvm-readobj/Inputs/file-aux-record.yaml vendor/llvm/dist/test/tools/llvm-readobj/Inputs/file-multiple-aux-records.yaml vendor/llvm/dist/test/tools/llvm-readobj/Inputs/relocs.py vendor/llvm/dist/test/tools/llvm-readobj/codeview-linetables.test vendor/llvm/dist/test/tools/llvm-readobj/dynamic.test vendor/llvm/dist/test/tools/llvm-readobj/elf-versioninfo.test vendor/llvm/dist/test/tools/llvm-readobj/file-headers.test vendor/llvm/dist/test/tools/llvm-readobj/reloc-types.test vendor/llvm/dist/test/tools/llvm-size/basic.test vendor/llvm/dist/test/tools/llvm-symbolizer/fat.test vendor/llvm/dist/test/tools/llvm-symbolizer/pdb/Inputs/test.cpp vendor/llvm/dist/test/tools/llvm-symbolizer/pdb/Inputs/test.exe vendor/llvm/dist/test/tools/llvm-symbolizer/pdb/Inputs/test.pdb vendor/llvm/dist/test/tools/llvm-symbolizer/pdb/pdb.test vendor/llvm/dist/test/tools/llvm-symbolizer/print_context.c vendor/llvm/dist/test/tools/lto/lit.local.cfg vendor/llvm/dist/test/tools/lto/opt-level.ll vendor/llvm/dist/test/tools/sancov/Inputs/test-linux_x86_64 vendor/llvm/dist/test/tools/sancov/Inputs/test.cpp vendor/llvm/dist/test/tools/sancov/blacklist.test vendor/llvm/dist/test/tools/sancov/covered_functions.test vendor/llvm/dist/test/tools/sancov/not_covered_functions.test vendor/llvm/dist/test/tools/sancov/print.test vendor/llvm/dist/tools/CMakeLists.txt vendor/llvm/dist/tools/bugpoint/BugDriver.h vendor/llvm/dist/tools/bugpoint/CrashDebugger.cpp vendor/llvm/dist/tools/bugpoint/ExecutionDriver.cpp vendor/llvm/dist/tools/bugpoint/ExtractFunction.cpp vendor/llvm/dist/tools/bugpoint/Miscompilation.cpp vendor/llvm/dist/tools/bugpoint/OptimizerDriver.cpp vendor/llvm/dist/tools/bugpoint/ToolRunner.cpp vendor/llvm/dist/tools/bugpoint/bugpoint.cpp vendor/llvm/dist/tools/dsymutil/BinaryHolder.cpp vendor/llvm/dist/tools/dsymutil/BinaryHolder.h vendor/llvm/dist/tools/dsymutil/DebugMap.cpp vendor/llvm/dist/tools/dsymutil/DebugMap.h vendor/llvm/dist/tools/dsymutil/DwarfLinker.cpp vendor/llvm/dist/tools/dsymutil/MachODebugMapParser.cpp vendor/llvm/dist/tools/dsymutil/MachOUtils.cpp vendor/llvm/dist/tools/dsymutil/NonRelocatableStringpool.h vendor/llvm/dist/tools/dsymutil/dsymutil.cpp vendor/llvm/dist/tools/gold/CMakeLists.txt vendor/llvm/dist/tools/gold/gold-plugin.cpp vendor/llvm/dist/tools/llc/llc.cpp vendor/llvm/dist/tools/lli/CMakeLists.txt vendor/llvm/dist/tools/lli/ChildTarget/CMakeLists.txt vendor/llvm/dist/tools/lli/ChildTarget/ChildTarget.cpp vendor/llvm/dist/tools/lli/OrcLazyJIT.cpp vendor/llvm/dist/tools/lli/OrcLazyJIT.h vendor/llvm/dist/tools/lli/RemoteJITUtils.h vendor/llvm/dist/tools/lli/lli.cpp vendor/llvm/dist/tools/llvm-ar/llvm-ar.cpp vendor/llvm/dist/tools/llvm-as-fuzzer/llvm-as-fuzzer.cpp vendor/llvm/dist/tools/llvm-as/llvm-as.cpp vendor/llvm/dist/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp vendor/llvm/dist/tools/llvm-c-test/CMakeLists.txt vendor/llvm/dist/tools/llvm-c-test/calc.c vendor/llvm/dist/tools/llvm-c-test/disassemble.c vendor/llvm/dist/tools/llvm-c-test/helpers.c vendor/llvm/dist/tools/llvm-c-test/llvm-c-test.h vendor/llvm/dist/tools/llvm-c-test/main.c vendor/llvm/dist/tools/llvm-c-test/metadata.c vendor/llvm/dist/tools/llvm-c-test/module.c vendor/llvm/dist/tools/llvm-c-test/object.c vendor/llvm/dist/tools/llvm-c-test/targets.c vendor/llvm/dist/tools/llvm-config/BuildVariables.inc.in vendor/llvm/dist/tools/llvm-config/CMakeLists.txt vendor/llvm/dist/tools/llvm-config/llvm-config.cpp vendor/llvm/dist/tools/llvm-cov/CMakeLists.txt vendor/llvm/dist/tools/llvm-cov/CodeCoverage.cpp vendor/llvm/dist/tools/llvm-cov/CoverageFilters.h vendor/llvm/dist/tools/llvm-cov/CoverageReport.cpp vendor/llvm/dist/tools/llvm-cov/CoverageReport.h vendor/llvm/dist/tools/llvm-cov/CoverageSummaryInfo.h vendor/llvm/dist/tools/llvm-cov/CoverageViewOptions.h vendor/llvm/dist/tools/llvm-cov/LLVMBuild.txt vendor/llvm/dist/tools/llvm-cov/RenderingSupport.h vendor/llvm/dist/tools/llvm-cov/SourceCoverageView.cpp vendor/llvm/dist/tools/llvm-cov/SourceCoverageView.h vendor/llvm/dist/tools/llvm-cov/TestingSupport.cpp vendor/llvm/dist/tools/llvm-cov/gcov.cpp vendor/llvm/dist/tools/llvm-cov/llvm-cov.cpp vendor/llvm/dist/tools/llvm-cxxdump/Error.cpp vendor/llvm/dist/tools/llvm-cxxdump/llvm-cxxdump.cpp vendor/llvm/dist/tools/llvm-diff/DiffConsumer.h vendor/llvm/dist/tools/llvm-diff/DiffLog.cpp vendor/llvm/dist/tools/llvm-diff/DifferenceEngine.cpp vendor/llvm/dist/tools/llvm-diff/DifferenceEngine.h vendor/llvm/dist/tools/llvm-diff/llvm-diff.cpp vendor/llvm/dist/tools/llvm-dis/llvm-dis.cpp vendor/llvm/dist/tools/llvm-dwarfdump/fuzzer/llvm-dwarfdump-fuzzer.cpp vendor/llvm/dist/tools/llvm-dwarfdump/llvm-dwarfdump.cpp vendor/llvm/dist/tools/llvm-dwp/CMakeLists.txt vendor/llvm/dist/tools/llvm-dwp/llvm-dwp.cpp vendor/llvm/dist/tools/llvm-extract/llvm-extract.cpp vendor/llvm/dist/tools/llvm-go/llvm-go.go vendor/llvm/dist/tools/llvm-jitlistener/llvm-jitlistener.cpp vendor/llvm/dist/tools/llvm-link/CMakeLists.txt vendor/llvm/dist/tools/llvm-link/LLVMBuild.txt vendor/llvm/dist/tools/llvm-link/llvm-link.cpp vendor/llvm/dist/tools/llvm-lto/CMakeLists.txt vendor/llvm/dist/tools/llvm-lto/LLVMBuild.txt vendor/llvm/dist/tools/llvm-lto/llvm-lto.cpp vendor/llvm/dist/tools/llvm-mc-fuzzer/CMakeLists.txt vendor/llvm/dist/tools/llvm-mc-fuzzer/llvm-mc-fuzzer.cpp vendor/llvm/dist/tools/llvm-mc/Disassembler.cpp vendor/llvm/dist/tools/llvm-mc/llvm-mc.cpp vendor/llvm/dist/tools/llvm-mcmarkup/llvm-mcmarkup.cpp vendor/llvm/dist/tools/llvm-nm/llvm-nm.cpp vendor/llvm/dist/tools/llvm-objdump/CMakeLists.txt vendor/llvm/dist/tools/llvm-objdump/COFFDump.cpp vendor/llvm/dist/tools/llvm-objdump/MachODump.cpp vendor/llvm/dist/tools/llvm-objdump/llvm-objdump.cpp vendor/llvm/dist/tools/llvm-objdump/llvm-objdump.h vendor/llvm/dist/tools/llvm-pdbdump/BuiltinDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/BuiltinDumper.h vendor/llvm/dist/tools/llvm-pdbdump/CMakeLists.txt vendor/llvm/dist/tools/llvm-pdbdump/ClassDefinitionDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/ClassDefinitionDumper.h vendor/llvm/dist/tools/llvm-pdbdump/CompilandDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/CompilandDumper.h vendor/llvm/dist/tools/llvm-pdbdump/EnumDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/EnumDumper.h vendor/llvm/dist/tools/llvm-pdbdump/ExternalSymbolDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/ExternalSymbolDumper.h vendor/llvm/dist/tools/llvm-pdbdump/FunctionDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/FunctionDumper.h vendor/llvm/dist/tools/llvm-pdbdump/LinePrinter.cpp vendor/llvm/dist/tools/llvm-pdbdump/LinePrinter.h vendor/llvm/dist/tools/llvm-pdbdump/TypeDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/TypeDumper.h vendor/llvm/dist/tools/llvm-pdbdump/TypedefDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/TypedefDumper.h vendor/llvm/dist/tools/llvm-pdbdump/VariableDumper.cpp vendor/llvm/dist/tools/llvm-pdbdump/VariableDumper.h vendor/llvm/dist/tools/llvm-pdbdump/llvm-pdbdump.cpp vendor/llvm/dist/tools/llvm-pdbdump/llvm-pdbdump.h vendor/llvm/dist/tools/llvm-profdata/llvm-profdata.cpp vendor/llvm/dist/tools/llvm-readobj/ARMAttributeParser.cpp vendor/llvm/dist/tools/llvm-readobj/ARMAttributeParser.h vendor/llvm/dist/tools/llvm-readobj/ARMEHABIPrinter.h vendor/llvm/dist/tools/llvm-readobj/ARMWinEHPrinter.cpp vendor/llvm/dist/tools/llvm-readobj/ARMWinEHPrinter.h vendor/llvm/dist/tools/llvm-readobj/CMakeLists.txt vendor/llvm/dist/tools/llvm-readobj/COFFDumper.cpp vendor/llvm/dist/tools/llvm-readobj/ELFDumper.cpp vendor/llvm/dist/tools/llvm-readobj/Error.cpp vendor/llvm/dist/tools/llvm-readobj/MachODumper.cpp vendor/llvm/dist/tools/llvm-readobj/ObjDumper.cpp vendor/llvm/dist/tools/llvm-readobj/ObjDumper.h vendor/llvm/dist/tools/llvm-readobj/Win64EHDumper.cpp vendor/llvm/dist/tools/llvm-readobj/Win64EHDumper.h vendor/llvm/dist/tools/llvm-readobj/llvm-readobj.cpp vendor/llvm/dist/tools/llvm-readobj/llvm-readobj.h vendor/llvm/dist/tools/llvm-rtdyld/llvm-rtdyld.cpp vendor/llvm/dist/tools/llvm-shlib/CMakeLists.txt vendor/llvm/dist/tools/llvm-shlib/libllvm.cpp vendor/llvm/dist/tools/llvm-size/llvm-size.cpp vendor/llvm/dist/tools/llvm-split/llvm-split.cpp vendor/llvm/dist/tools/llvm-stress/llvm-stress.cpp vendor/llvm/dist/tools/llvm-symbolizer/llvm-symbolizer.cpp vendor/llvm/dist/tools/lto/CMakeLists.txt vendor/llvm/dist/tools/lto/lto.cpp vendor/llvm/dist/tools/lto/lto.exports vendor/llvm/dist/tools/obj2yaml/CMakeLists.txt vendor/llvm/dist/tools/obj2yaml/Error.cpp vendor/llvm/dist/tools/obj2yaml/Error.h vendor/llvm/dist/tools/obj2yaml/coff2yaml.cpp vendor/llvm/dist/tools/obj2yaml/elf2yaml.cpp vendor/llvm/dist/tools/obj2yaml/obj2yaml.cpp vendor/llvm/dist/tools/obj2yaml/obj2yaml.h vendor/llvm/dist/tools/opt/AnalysisWrappers.cpp vendor/llvm/dist/tools/opt/BreakpointPrinter.cpp vendor/llvm/dist/tools/opt/NewPMDriver.cpp vendor/llvm/dist/tools/opt/NewPMDriver.h vendor/llvm/dist/tools/opt/opt.cpp vendor/llvm/dist/tools/sancov/sancov.cc vendor/llvm/dist/tools/verify-uselistorder/verify-uselistorder.cpp vendor/llvm/dist/tools/xcode-toolchain/CMakeLists.txt vendor/llvm/dist/tools/yaml2obj/CMakeLists.txt vendor/llvm/dist/tools/yaml2obj/yaml2coff.cpp vendor/llvm/dist/tools/yaml2obj/yaml2elf.cpp vendor/llvm/dist/tools/yaml2obj/yaml2obj.cpp vendor/llvm/dist/tools/yaml2obj/yaml2obj.h vendor/llvm/dist/unittests/ADT/APFloatTest.cpp vendor/llvm/dist/unittests/ADT/APIntTest.cpp vendor/llvm/dist/unittests/ADT/ArrayRefTest.cpp vendor/llvm/dist/unittests/ADT/BitVectorTest.cpp vendor/llvm/dist/unittests/ADT/CMakeLists.txt vendor/llvm/dist/unittests/ADT/DenseMapTest.cpp vendor/llvm/dist/unittests/ADT/FoldingSet.cpp vendor/llvm/dist/unittests/ADT/ImmutableSetTest.cpp vendor/llvm/dist/unittests/ADT/PointerEmbeddedIntTest.cpp vendor/llvm/dist/unittests/ADT/SmallPtrSetTest.cpp vendor/llvm/dist/unittests/ADT/SmallVectorTest.cpp vendor/llvm/dist/unittests/ADT/SparseSetTest.cpp vendor/llvm/dist/unittests/ADT/StringMapTest.cpp vendor/llvm/dist/unittests/ADT/StringRefTest.cpp vendor/llvm/dist/unittests/ADT/TinyPtrVectorTest.cpp vendor/llvm/dist/unittests/ADT/TripleTest.cpp vendor/llvm/dist/unittests/Analysis/AliasAnalysisTest.cpp vendor/llvm/dist/unittests/Analysis/CFGTest.cpp vendor/llvm/dist/unittests/Analysis/CMakeLists.txt vendor/llvm/dist/unittests/Analysis/CallGraphTest.cpp vendor/llvm/dist/unittests/Analysis/LazyCallGraphTest.cpp vendor/llvm/dist/unittests/Analysis/MixedTBAATest.cpp vendor/llvm/dist/unittests/Analysis/ScalarEvolutionTest.cpp vendor/llvm/dist/unittests/Analysis/ValueTrackingTest.cpp vendor/llvm/dist/unittests/AsmParser/AsmParserTest.cpp vendor/llvm/dist/unittests/Bitcode/BitReaderTest.cpp vendor/llvm/dist/unittests/Bitcode/BitstreamReaderTest.cpp vendor/llvm/dist/unittests/Bitcode/CMakeLists.txt vendor/llvm/dist/unittests/CMakeLists.txt vendor/llvm/dist/unittests/CodeGen/DIEHashTest.cpp vendor/llvm/dist/unittests/DebugInfo/DWARF/DWARFFormValueTest.cpp vendor/llvm/dist/unittests/DebugInfo/PDB/CMakeLists.txt vendor/llvm/dist/unittests/DebugInfo/PDB/PDBApiTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/ExecutionEngineTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp vendor/llvm/dist/unittests/ExecutionEngine/MCJIT/MCJITTestBase.h vendor/llvm/dist/unittests/ExecutionEngine/Orc/CMakeLists.txt vendor/llvm/dist/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/IndirectionUtilsTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/ObjectLinkingLayerTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp vendor/llvm/dist/unittests/ExecutionEngine/Orc/OrcTestCommon.h vendor/llvm/dist/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp vendor/llvm/dist/unittests/IR/AttributesTest.cpp vendor/llvm/dist/unittests/IR/CMakeLists.txt vendor/llvm/dist/unittests/IR/ConstantRangeTest.cpp vendor/llvm/dist/unittests/IR/ConstantsTest.cpp vendor/llvm/dist/unittests/IR/DominatorTreeTest.cpp vendor/llvm/dist/unittests/IR/IRBuilderTest.cpp vendor/llvm/dist/unittests/IR/InstructionsTest.cpp vendor/llvm/dist/unittests/IR/LegacyPassManagerTest.cpp vendor/llvm/dist/unittests/IR/MetadataTest.cpp vendor/llvm/dist/unittests/IR/PassManagerTest.cpp vendor/llvm/dist/unittests/IR/PatternMatch.cpp vendor/llvm/dist/unittests/IR/TypeBuilderTest.cpp vendor/llvm/dist/unittests/IR/UserTest.cpp vendor/llvm/dist/unittests/IR/ValueHandleTest.cpp vendor/llvm/dist/unittests/IR/ValueMapTest.cpp vendor/llvm/dist/unittests/IR/ValueTest.cpp vendor/llvm/dist/unittests/IR/VerifierTest.cpp vendor/llvm/dist/unittests/IR/WaymarkTest.cpp vendor/llvm/dist/unittests/Linker/LinkModulesTest.cpp vendor/llvm/dist/unittests/MC/CMakeLists.txt vendor/llvm/dist/unittests/MC/StringTableBuilderTest.cpp vendor/llvm/dist/unittests/Option/OptionParsingTest.cpp vendor/llvm/dist/unittests/Option/Opts.td vendor/llvm/dist/unittests/ProfileData/CMakeLists.txt vendor/llvm/dist/unittests/ProfileData/CoverageMappingTest.cpp vendor/llvm/dist/unittests/ProfileData/InstrProfTest.cpp vendor/llvm/dist/unittests/ProfileData/SampleProfTest.cpp vendor/llvm/dist/unittests/Support/AlignOfTest.cpp vendor/llvm/dist/unittests/Support/CMakeLists.txt vendor/llvm/dist/unittests/Support/CommandLineTest.cpp vendor/llvm/dist/unittests/Support/ConvertUTFTest.cpp vendor/llvm/dist/unittests/Support/EndianStreamTest.cpp vendor/llvm/dist/unittests/Support/ErrorOrTest.cpp vendor/llvm/dist/unittests/Support/MathExtrasTest.cpp vendor/llvm/dist/unittests/Support/Path.cpp vendor/llvm/dist/unittests/Support/ProgramTest.cpp vendor/llvm/dist/unittests/Support/ThreadPool.cpp vendor/llvm/dist/unittests/Support/TrailingObjectsTest.cpp vendor/llvm/dist/unittests/Support/YAMLIOTest.cpp vendor/llvm/dist/unittests/Support/YAMLParserTest.cpp vendor/llvm/dist/unittests/Support/raw_ostream_test.cpp vendor/llvm/dist/unittests/Transforms/IPO/CMakeLists.txt vendor/llvm/dist/unittests/Transforms/Utils/CMakeLists.txt vendor/llvm/dist/unittests/Transforms/Utils/Cloning.cpp vendor/llvm/dist/unittests/Transforms/Utils/IntegerDivision.cpp vendor/llvm/dist/unittests/Transforms/Utils/Local.cpp vendor/llvm/dist/unittests/Transforms/Utils/ValueMapperTest.cpp vendor/llvm/dist/utils/FileCheck/FileCheck.cpp vendor/llvm/dist/utils/GenLibDeps.pl vendor/llvm/dist/utils/KillTheDoctor/KillTheDoctor.cpp vendor/llvm/dist/utils/TableGen/AsmMatcherEmitter.cpp vendor/llvm/dist/utils/TableGen/AsmWriterEmitter.cpp vendor/llvm/dist/utils/TableGen/AsmWriterInst.cpp vendor/llvm/dist/utils/TableGen/AsmWriterInst.h vendor/llvm/dist/utils/TableGen/Attributes.cpp vendor/llvm/dist/utils/TableGen/CMakeLists.txt vendor/llvm/dist/utils/TableGen/CodeEmitterGen.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.h vendor/llvm/dist/utils/TableGen/CodeGenInstruction.cpp vendor/llvm/dist/utils/TableGen/CodeGenInstruction.h vendor/llvm/dist/utils/TableGen/CodeGenIntrinsics.h vendor/llvm/dist/utils/TableGen/CodeGenMapTable.cpp vendor/llvm/dist/utils/TableGen/CodeGenRegisters.cpp vendor/llvm/dist/utils/TableGen/CodeGenRegisters.h vendor/llvm/dist/utils/TableGen/CodeGenSchedule.cpp vendor/llvm/dist/utils/TableGen/CodeGenSchedule.h vendor/llvm/dist/utils/TableGen/CodeGenTarget.cpp vendor/llvm/dist/utils/TableGen/CodeGenTarget.h vendor/llvm/dist/utils/TableGen/DAGISelMatcher.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcher.h vendor/llvm/dist/utils/TableGen/DAGISelMatcherEmitter.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcherGen.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcherOpt.cpp vendor/llvm/dist/utils/TableGen/DFAPacketizerEmitter.cpp vendor/llvm/dist/utils/TableGen/DisassemblerEmitter.cpp vendor/llvm/dist/utils/TableGen/FastISelEmitter.cpp vendor/llvm/dist/utils/TableGen/FixedLenDecoderEmitter.cpp vendor/llvm/dist/utils/TableGen/InstrInfoEmitter.cpp vendor/llvm/dist/utils/TableGen/IntrinsicEmitter.cpp vendor/llvm/dist/utils/TableGen/RegisterInfoEmitter.cpp vendor/llvm/dist/utils/TableGen/SequenceToOffsetTable.h vendor/llvm/dist/utils/TableGen/SubtargetEmitter.cpp vendor/llvm/dist/utils/TableGen/TableGen.cpp vendor/llvm/dist/utils/TableGen/TableGenBackends.h vendor/llvm/dist/utils/TableGen/X86DisassemblerTables.cpp vendor/llvm/dist/utils/TableGen/X86RecognizableInstr.cpp vendor/llvm/dist/utils/TableGen/X86RecognizableInstr.h vendor/llvm/dist/utils/findoptdiff vendor/llvm/dist/utils/lit/lit/Test.py vendor/llvm/dist/utils/lit/lit/TestRunner.py vendor/llvm/dist/utils/lit/lit/TestingConfig.py vendor/llvm/dist/utils/lit/lit/formats/googletest.py vendor/llvm/dist/utils/lit/lit/main.py vendor/llvm/dist/utils/lit/lit/run.py vendor/llvm/dist/utils/lit/tests/shtest-format.py vendor/llvm/dist/utils/lit/tests/shtest-shell.py vendor/llvm/dist/utils/llvm-build/llvmbuild/main.py vendor/llvm/dist/utils/release/build_llvm_package.bat vendor/llvm/dist/utils/release/export.sh vendor/llvm/dist/utils/release/merge.sh vendor/llvm/dist/utils/release/tag.sh vendor/llvm/dist/utils/release/test-release.sh vendor/llvm/dist/utils/unittest/UnitTestMain/TestMain.cpp vendor/llvm/dist/utils/unittest/googletest/README.LLVM vendor/llvm/dist/utils/unittest/googletest/include/gtest/internal/gtest-port.h vendor/llvm/dist/utils/update_llc_test_checks.py vendor/llvm/dist/utils/vim/syntax/llvm.vim Modified: vendor/llvm/dist/.arcconfig ============================================================================== --- vendor/llvm/dist/.arcconfig Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/.arcconfig Sat Jul 23 20:41:05 2016 (r303231) @@ -1,4 +1,4 @@ { "project_id" : "llvm", - "conduit_uri" : "http://reviews.llvm.org/" + "conduit_uri" : "https://reviews.llvm.org/" } Modified: vendor/llvm/dist/.clang-tidy ============================================================================== --- vendor/llvm/dist/.clang-tidy Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/.clang-tidy Sat Jul 23 20:41:05 2016 (r303231) @@ -1,4 +1,4 @@ -Checks: '-*,clang-diagnostic-*,llvm-*,misc-*,readability-identifier-naming' +Checks: '-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,readability-identifier-naming' CheckOptions: - key: readability-identifier-naming.ClassCase value: CamelCase Modified: vendor/llvm/dist/.gitignore ============================================================================== --- vendor/llvm/dist/.gitignore Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/.gitignore Sat Jul 23 20:41:05 2016 (r303231) @@ -46,6 +46,8 @@ autoconf/autom4te.cache projects/* !projects/*.* !projects/Makefile +runtimes/* +!runtimes/*.* # Clang, which is tracked independently. tools/clang # LLDB, which is tracked independently. Modified: vendor/llvm/dist/CMakeLists.txt ============================================================================== --- vendor/llvm/dist/CMakeLists.txt Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/CMakeLists.txt Sat Jul 23 20:41:05 2016 (r303231) @@ -1,10 +1,10 @@ # See docs/CMake.html for instructions about how to build LLVM with CMake. -cmake_minimum_required(VERSION 2.8.12.2) +cmake_minimum_required(VERSION 3.4.3) if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) message(STATUS "No build type selected, default to Debug") - set(CMAKE_BUILD_TYPE "Debug") + set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type (default Debug)") endif() if(POLICY CMP0022) @@ -20,17 +20,11 @@ if (POLICY CMP0051) cmake_policy(SET CMP0051 OLD) endif() -if(CMAKE_VERSION VERSION_LESS 3.1.20141117) - set(cmake_3_2_USES_TERMINAL) -else() - set(cmake_3_2_USES_TERMINAL USES_TERMINAL) -endif() - if(NOT DEFINED LLVM_VERSION_MAJOR) set(LLVM_VERSION_MAJOR 3) endif() if(NOT DEFINED LLVM_VERSION_MINOR) - set(LLVM_VERSION_MINOR 8) + set(LLVM_VERSION_MINOR 9) endif() if(NOT DEFINED LLVM_VERSION_PATCH) set(LLVM_VERSION_PATCH 0) @@ -56,23 +50,43 @@ project(LLVM ${cmake_3_0_LANGUAGES} C CXX ASM) +if(APPLE) + if(NOT CMAKE_LIBTOOL) + find_program(CMAKE_LIBTOOL NAMES libtool) + endif() + if(CMAKE_LIBTOOL) + set(CMAKE_LIBTOOL ${CMAKE_LIBTOOL} CACHE PATH "libtool executable") + message(STATUS "Found libtool - ${CMAKE_LIBTOOL}") + get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES) + foreach(lang ${languages}) + set(CMAKE_${lang}_CREATE_STATIC_LIBRARY + "${CMAKE_LIBTOOL} -static -o ") + endforeach() + endif() +endif() + # The following only works with the Ninja generator in CMake >= 3.0. set(LLVM_PARALLEL_COMPILE_JOBS "" CACHE STRING "Define the maximum number of concurrent compilation jobs.") if(LLVM_PARALLEL_COMPILE_JOBS) - if(CMAKE_VERSION VERSION_LESS 3.0 OR NOT CMAKE_MAKE_PROGRAM MATCHES "ninja") - message(WARNING "Job pooling is only available with Ninja generators and CMake 3.0 and later.") + if(NOT CMAKE_MAKE_PROGRAM MATCHES "ninja") + message(WARNING "Job pooling is only available with Ninja generators.") else() set_property(GLOBAL APPEND PROPERTY JOB_POOLS compile_job_pool=${LLVM_PARALLEL_COMPILE_JOBS}) set(CMAKE_JOB_POOL_COMPILE compile_job_pool) endif() endif() +set(LLVM_BUILD_GLOBAL_ISEL OFF CACHE BOOL "Experimental: Build GlobalISel") +if(LLVM_BUILD_GLOBAL_ISEL) + add_definitions(-DLLVM_BUILD_GLOBAL_ISEL) +endif() + set(LLVM_PARALLEL_LINK_JOBS "" CACHE STRING "Define the maximum number of concurrent link jobs.") if(LLVM_PARALLEL_LINK_JOBS) - if(CMAKE_VERSION VERSION_LESS 3.0 OR NOT CMAKE_MAKE_PROGRAM MATCHES "ninja") - message(WARNING "Job pooling is only available with Ninja generators and CMake 3.0 and later.") + if(NOT CMAKE_MAKE_PROGRAM MATCHES "ninja") + message(WARNING "Job pooling is only available with Ninja generators.") else() set_property(GLOBAL APPEND PROPERTY JOB_POOLS link_job_pool=${LLVM_PARALLEL_LINK_JOBS}) set(CMAKE_JOB_POOL_LINK link_job_pool) @@ -181,6 +195,9 @@ endif() set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" ) +set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')") +mark_as_advanced(LLVM_TOOLS_INSTALL_DIR) + # They are used as destination of target generators. set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) @@ -206,7 +223,6 @@ set(LLVM_ALL_TARGETS AMDGPU ARM BPF - CppBackend Hexagon Mips MSP430 @@ -230,11 +246,6 @@ set(LLVM_EXPERIMENTAL_TARGETS_TO_BUILD " option(BUILD_SHARED_LIBS "Build all libraries as shared libraries instead of static" OFF) -option(LLVM_ENABLE_TIMESTAMPS "Enable embedding timestamp information in build" ON) -if(LLVM_ENABLE_TIMESTAMPS) - set(ENABLE_TIMESTAMPS 1) -endif() - option(LLVM_ENABLE_BACKTRACES "Enable embedding backtraces on crash." ON) if(LLVM_ENABLE_BACKTRACES) set(ENABLE_BACKTRACES 1) @@ -272,6 +283,13 @@ include(AddLLVMDefinitions) option(LLVM_ENABLE_PIC "Build Position-Independent Code" ON) option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON) option(LLVM_ENABLE_MODULES "Compile with C++ modules enabled." OFF) +if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + option(LLVM_ENABLE_MODULE_DEBUGGING "Compile with -gmodules." ON) + option(LLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY "Compile with -fmodules-local-submodule-visibility." OFF) +else() + option(LLVM_ENABLE_MODULE_DEBUGGING "Compile with -gmodules." OFF) + option(LLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY "Compile with -fmodules-local-submodule-visibility." ON) +endif() option(LLVM_ENABLE_CXX1Y "Compile with C++1y enabled." OFF) option(LLVM_ENABLE_LIBCXX "Use libc++ if available." OFF) option(LLVM_ENABLE_LIBCXXABI "Use libc++abi when using libc++." OFF) @@ -284,6 +302,8 @@ else() option(LLVM_ENABLE_ASSERTIONS "Enable assertions" ON) endif() +option(LLVM_ENABLE_EXPENSIVE_CHECKS "Enable expensive checks" OFF) + set(LLVM_ABI_BREAKING_CHECKS "WITH_ASSERTS" CACHE STRING "Enable abi-breaking checks. Can be WITH_ASSERTS, FORCE_ON or FORCE_OFF.") @@ -321,8 +341,26 @@ set(LLVM_USE_SANITIZER "" CACHE STRING option(LLVM_USE_SPLIT_DWARF "Use -gsplit-dwarf when compiling llvm." OFF) -option(WITH_POLLY "Build LLVM with Polly" ON) -option(LINK_POLLY_INTO_TOOLS "Static link Polly into tools" OFF) +option(LLVM_POLLY_LINK_INTO_TOOLS "Statically link Polly into tools (if available)" ON) +option(LLVM_POLLY_BUILD "Build LLVM with Polly" ON) + +if (EXISTS ${LLVM_MAIN_SRC_DIR}/tools/polly/CMakeLists.txt) + set(POLLY_IN_TREE TRUE) +else() + set(POLLY_IN_TREE FALSE) +endif() + +if (LLVM_POLLY_BUILD AND POLLY_IN_TREE) + set(WITH_POLLY ON) +else() + set(WITH_POLLY OFF) +endif() + +if (LLVM_POLLY_LINK_INTO_TOOLS AND WITH_POLLY) + set(LINK_POLLY_INTO_TOOLS ON) +else() + set(LINK_POLLY_INTO_TOOLS OFF) +endif() # Define an option controlling whether we should build for 32-bit on 64-bit # platforms, where supported. @@ -353,6 +391,8 @@ option(LLVM_BUILD_TOOLS "Build the LLVM tools. If OFF, just generate build targets." ON) option(LLVM_INCLUDE_UTILS "Generate build targets for the LLVM utils." ON) +option(LLVM_BUILD_UTILS + "Build LLVM utility binaries. If OFF, just generate build targets." ON) option(LLVM_BUILD_RUNTIME "Build the LLVM runtime libraries." ON) @@ -387,25 +427,42 @@ if(LLVM_LINK_LLVM_DYLIB OR LLVM_BUILD_LL set(LLVM_BUILD_LLVM_DYLIB_default ON) endif() option(LLVM_BUILD_LLVM_DYLIB "Build libllvm dynamic library" ${LLVM_BUILD_LLVM_DYLIB_default}) -set(LLVM_DISABLE_LLVM_DYLIB_ATEXIT_DEFAULT ON) -if (LLVM_LINK_LLVM_DYLIB) - set(LLVM_DISABLE_LLVM_DYLIB_ATEXIT_DEFAULT OFF) -endif() -option(LLVM_DISABLE_LLVM_DYLIB_ATEXIT "Disable llvm-shlib's atexit destructors." ${LLVM_DISABLE_LLVM_DYLIB_ATEXIT_DEFAULT}) -if(LLVM_DISABLE_LLVM_DYLIB_ATEXIT) - set(DISABLE_LLVM_DYLIB_ATEXIT 1) -endif() option(LLVM_OPTIMIZED_TABLEGEN "Force TableGen to be built with optimization" OFF) if(CMAKE_CROSSCOMPILING OR (LLVM_OPTIMIZED_TABLEGEN AND LLVM_ENABLE_ASSERTIONS)) set(LLVM_USE_HOST_TOOLS ON) endif() +if (MSVC_IDE AND NOT (MSVC_VERSION LESS 1900)) + option(LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION "Configure project to use Visual Studio native visualizers" TRUE) +else() + set(LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION FALSE CACHE INTERNAL "For Visual Studio 2013, manually copy natvis files to Documents\\Visual Studio 2013\\Visualizers" FORCE) +endif() + +if (LLVM_BUILD_INSTRUMENTED OR LLVM_BUILD_INSTRUMENTED_COVERAGE) + if(NOT LLVM_PROFILE_MERGE_POOL_SIZE) + # A pool size of 1-2 is probably sufficient on a SSD. 3-4 should be fine + # for spining disks. Anything higher may only help on slower mediums. + set(LLVM_PROFILE_MERGE_POOL_SIZE "4") + endif() + if(NOT LLVM_PROFILE_FILE_PATTERN) + if(NOT LLVM_PROFILE_DATA_DIR) + set(LLVM_PROFILE_FILE_PATTERN "%${LLVM_PROFILE_MERGE_POOL_SIZE}m.profraw") + else() + file(TO_NATIVE_PATH "${LLVM_PROFILE_DATA_DIR}/%${LLVM_PROFILE_MERGE_POOL_SIZE}m.profraw" LLVM_PROFILE_FILE_PATTERN) + endif() + endif() +endif() + # All options referred to from HandleLLVMOptions have to be specified # BEFORE this include, otherwise options will not be correctly set on # first cmake run include(config-ix) +string(REPLACE "Native" ${LLVM_NATIVE_ARCH} + LLVM_TARGETS_TO_BUILD "${LLVM_TARGETS_TO_BUILD}") +list(REMOVE_DUPLICATES LLVM_TARGETS_TO_BUILD) + # By default, we target the host, but this can be overridden at CMake # invocation time. set(LLVM_DEFAULT_TARGET_TRIPLE "${LLVM_HOST_TRIPLE}" CACHE STRING @@ -645,6 +702,15 @@ add_subdirectory(lib/TableGen) add_subdirectory(utils/TableGen) +# Force target to be built as soon as possible. Clang modules builds depend +# header-wise on it as they ship all headers from the umbrella folders. Building +# an entire module might include header, which depends on intrinsics_gen. This +# should be right after LLVMSupport and LLVMTableGen otherwise we introduce a +# circular dependence. +if (LLVM_ENABLE_MODULES) + list(APPEND LLVM_COMMON_DEPENDS intrinsics_gen) +endif(LLVM_ENABLE_MODULES) + add_subdirectory(include/llvm) add_subdirectory(lib) @@ -663,6 +729,11 @@ else() endif() endif() +# Use LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION instead of LLVM_INCLUDE_UTILS because it is not really a util +if (LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION) + add_subdirectory(utils/LLVMVisualizers) +endif() + if(LLVM_INCLUDE_TESTS) add_subdirectory(utils/unittest) endif() @@ -675,16 +746,12 @@ endforeach() add_subdirectory(projects) -if(WITH_POLLY) - if(NOT EXISTS ${LLVM_MAIN_SRC_DIR}/tools/polly/CMakeLists.txt) - set(WITH_POLLY OFF) - endif() -endif(WITH_POLLY) - if( LLVM_INCLUDE_TOOLS ) add_subdirectory(tools) endif() +add_subdirectory(runtimes) + if( LLVM_INCLUDE_EXAMPLES ) add_subdirectory(examples) endif() @@ -695,7 +762,8 @@ if( LLVM_INCLUDE_TESTS ) llvm_ExternalProject_Add(test-suite ${LLVM_MAIN_SRC_DIR}/projects/test-suite USE_TOOLCHAIN EXCLUDE_FROM_ALL - NO_INSTALL) + NO_INSTALL + ALWAYS_CLEAN) endif() add_subdirectory(test) add_subdirectory(unittests) @@ -718,6 +786,8 @@ if( LLVM_INCLUDE_TESTS ) DEPENDS ${LLVM_LIT_DEPENDS} ARGS ${LLVM_LIT_EXTRA_ARGS} ) + add_custom_target(test-depends DEPENDS ${LLVM_LIT_DEPENDS}) + set_target_properties(test-depends PROPERTIES FOLDER "Tests") endif() if (LLVM_INCLUDE_DOCS) @@ -761,3 +831,27 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") endif() endif() + +# This must be at the end of the LLVM root CMakeLists file because it must run +# after all targets are created. +if(LLVM_DISTRIBUTION_COMPONENTS) + if(CMAKE_CONFIGURATION_TYPES) + message(FATAL_ERROR "LLVM_DISTRIBUTION_COMPONENTS cannot be specified with multi-configuration generators (i.e. Xcode or Visual Studio)") + endif() + + add_custom_target(distribution) + add_custom_target(install-distribution) + foreach(target ${LLVM_DISTRIBUTION_COMPONENTS}) + if(TARGET ${target}) + add_dependencies(distribution ${target}) + else() + message(FATAL_ERROR "Specified distribution component '${target}' doesn't have a target") + endif() + + if(TARGET install-${target}) + add_dependencies(install-distribution install-${target}) + else() + message(FATAL_ERROR "Specified distribution component '${target}' doesn't have an install target") + endif() + endforeach() +endif() Modified: vendor/llvm/dist/CODE_OWNERS.TXT ============================================================================== --- vendor/llvm/dist/CODE_OWNERS.TXT Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/CODE_OWNERS.TXT Sat Jul 23 20:41:05 2016 (r303231) @@ -12,17 +12,10 @@ N: Joe Abbey E: jabbey@arxan.com D: LLVM Bitcode (lib/Bitcode/* include/llvm/Bitcode/*) -N: Owen Anderson -E: resistor@mac.com -D: SelectionDAG (lib/CodeGen/SelectionDAG/*) - -N: Rafael Avila de Espindola -E: rafael.espindola@gmail.com -D: Gold plugin (tools/gold/*) - N: Justin Bogner E: mail@justinbogner.com D: InstrProfiling and related parts of ProfileData +D: SelectionDAG (lib/CodeGen/SelectionDAG/*) N: Chandler Carruth E: chandlerc@gmail.com @@ -35,12 +28,16 @@ D: parts of code generator not covered b N: Eric Christopher E: echristo@gmail.com -D: Debug Information, autotools/configure/make build, inline assembly +D: Debug Information, inline assembly N: Greg Clayton E: gclayton@apple.com D: LLDB +N: Sanjoy Das +E: sanjoy@playingwithpointers.com +D: IndVar Simplify, Scalar Evolution + N: Marshall Clow E: mclow.lists@gmail.com D: libc++ @@ -87,7 +84,11 @@ D: NVPTX Target (lib/Target/NVPTX/*) N: Lang Hames E: lhames@gmail.com -D: MCJIT, RuntimeDyld and JIT event listeners +D: MCJIT, RuntimeDyld and JIT event listeners, Orcish Warchief + +N: Teresa Johnson +E: tejohnson@google.com +D: Gold plugin (tools/gold/*) N: Galina Kistanova E: gkistanova@gmail.com @@ -138,6 +139,10 @@ N: Krzysztof Parzyszek E: kparzysz@codeaurora.org D: Hexagon Backend +N: Jacques Pienaar +E: jpienaar@google.com +D: Lanai Backend + N: Paul Robinson E: paul_robinson@playstation.sony.com D: Sony PlayStation®4 support @@ -147,7 +152,7 @@ E: mcrosier@codeaurora.org D: Fast-Isel N: Nadav Rotem -E: nrotem@apple.com +E: nadav.rotem@me.com D: X86 Backend, Loop Vectorizer N: Daniel Sanders @@ -181,7 +186,7 @@ D: MemorySanitizer (LLVM part) N: Andrew Trick E: atrick@apple.com -D: IndVar Simplify, Loop Strength Reduction, Instruction Scheduling +D: Loop Strength Reduction, Instruction Scheduling N: Ulrich Weigand E: uweigand@de.ibm.com @@ -191,6 +196,10 @@ N: Bill Wendling E: isanbard@gmail.com D: libLTO, IR Linker +N: Hans Wennborg +E: hans@chromium.org +D: Release management (x.y.0 releases) + N: Peter Zotov E: whitequark@whitequark.org D: OCaml bindings Modified: vendor/llvm/dist/CREDITS.TXT ============================================================================== --- vendor/llvm/dist/CREDITS.TXT Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/CREDITS.TXT Sat Jul 23 20:41:05 2016 (r303231) @@ -347,6 +347,10 @@ N: Richard Osborne E: richard@xmos.com D: XCore backend +N: Piotr Padlewski +E: piotr.padlewski@gmail.com +D: !invariant.group metadata and other intrinsics for devirtualization in clang + N: Devang Patel E: dpatel@apple.com D: LTO tool, PassManager rewrite, Loop Pass Manager, Loop Rotate @@ -392,7 +396,7 @@ D: Fixes and improvements to the ARM fas D: Fixes and improvements to the AArch64 backend N: Nadav Rotem -E: nrotem@apple.com +E: nadav.rotem@me.com D: X86 code generation improvements, Loop Vectorizer. N: Roman Samoilov Modified: vendor/llvm/dist/LICENSE.TXT ============================================================================== --- vendor/llvm/dist/LICENSE.TXT Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/LICENSE.TXT Sat Jul 23 20:41:05 2016 (r303231) @@ -4,7 +4,7 @@ LLVM Release License University of Illinois/NCSA Open Source License -Copyright (c) 2003-2015 University of Illinois at Urbana-Champaign. +Copyright (c) 2003-2016 University of Illinois at Urbana-Champaign. All rights reserved. Developed by: Modified: vendor/llvm/dist/bindings/go/llvm/executionengine_test.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/executionengine_test.go Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/go/llvm/executionengine_test.go Sat Jul 23 20:41:05 2016 (r303231) @@ -81,7 +81,6 @@ func TestFactorial(t *testing.T) { pass := NewPassManager() defer pass.Dispose() - pass.Add(engine.TargetData()) pass.AddConstantPropagationPass() pass.AddInstructionCombiningPass() pass.AddPromoteMemoryToRegisterPass() Modified: vendor/llvm/dist/bindings/go/llvm/target.go ============================================================================== --- vendor/llvm/dist/bindings/go/llvm/target.go Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/go/llvm/target.go Sat Jul 23 20:41:05 2016 (r303231) @@ -121,13 +121,6 @@ func NewTargetData(rep string) (td Targe return } -// Adds target data information to a pass manager. This does not take ownership -// of the target data. -// See the method llvm::PassManagerBase::add. -func (pm PassManager) Add(td TargetData) { - C.LLVMAddTargetData(td.C, pm.C) -} - // Converts target data to a target layout string. The string must be disposed // with LLVMDisposeMessage. // See the constructor llvm::TargetData::TargetData. @@ -261,17 +254,19 @@ func (t Target) CreateTargetMachine(Trip return } +// CreateTargetData returns a new TargetData describing the TargetMachine's +// data layout. The returned TargetData is owned by the caller, who is +// responsible for disposing of it by calling the TargetData.Dispose method. +func (tm TargetMachine) CreateTargetData() TargetData { + return TargetData{C.LLVMCreateTargetDataLayout(tm.C)} +} + // Triple returns the triple describing the machine (arch-vendor-os). func (tm TargetMachine) Triple() string { cstr := C.LLVMGetTargetMachineTriple(tm.C) return C.GoString(cstr) } -// TargetData returns the TargetData for the machine. -func (tm TargetMachine) TargetData() TargetData { - return TargetData{C.LLVMGetTargetMachineData(tm.C)} -} - func (tm TargetMachine) EmitToMemoryBuffer(m Module, ft CodeGenFileType) (MemoryBuffer, error) { var errstr *C.char var mb MemoryBuffer Modified: vendor/llvm/dist/bindings/ocaml/analysis/analysis_ocaml.c ============================================================================== --- vendor/llvm/dist/bindings/ocaml/analysis/analysis_ocaml.c Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/ocaml/analysis/analysis_ocaml.c Sat Jul 23 20:41:05 2016 (r303231) @@ -16,6 +16,7 @@ \*===----------------------------------------------------------------------===*/ #include "llvm-c/Analysis.h" +#include "llvm-c/Core.h" #include "caml/alloc.h" #include "caml/mlvalues.h" #include "caml/memory.h" Modified: vendor/llvm/dist/bindings/ocaml/bitreader/bitreader_ocaml.c ============================================================================== --- vendor/llvm/dist/bindings/ocaml/bitreader/bitreader_ocaml.c Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/ocaml/bitreader/bitreader_ocaml.c Sat Jul 23 20:41:05 2016 (r303231) @@ -13,6 +13,7 @@ \*===----------------------------------------------------------------------===*/ #include "llvm-c/BitReader.h" +#include "llvm-c/Core.h" #include "caml/alloc.h" #include "caml/fail.h" #include "caml/memory.h" @@ -25,7 +26,7 @@ CAMLprim LLVMModuleRef llvm_get_module(L LLVMModuleRef M; if (LLVMGetBitcodeModuleInContext2(C, MemBuf, &M)) - llvm_raise(*caml_named_value("Llvm_bitreader.Error"), ""); + llvm_raise(*caml_named_value("Llvm_bitreader.Error"), LLVMCreateMessage("")); return M; } @@ -35,7 +36,7 @@ CAMLprim LLVMModuleRef llvm_parse_bitcod LLVMModuleRef M; if (LLVMParseBitcodeInContext2(C, MemBuf, &M)) - llvm_raise(*caml_named_value("Llvm_bitreader.Error"), ""); + llvm_raise(*caml_named_value("Llvm_bitreader.Error"), LLVMCreateMessage("")); return M; } Modified: vendor/llvm/dist/bindings/ocaml/executionengine/executionengine_ocaml.c ============================================================================== --- vendor/llvm/dist/bindings/ocaml/executionengine/executionengine_ocaml.c Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/ocaml/executionengine/executionengine_ocaml.c Sat Jul 23 20:41:05 2016 (r303231) @@ -17,6 +17,7 @@ #include #include +#include "llvm-c/Core.h" #include "llvm-c/ExecutionEngine.h" #include "llvm-c/Target.h" #include "caml/alloc.h" Modified: vendor/llvm/dist/bindings/ocaml/linker/linker_ocaml.c ============================================================================== --- vendor/llvm/dist/bindings/ocaml/linker/linker_ocaml.c Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/ocaml/linker/linker_ocaml.c Sat Jul 23 20:41:05 2016 (r303231) @@ -15,6 +15,7 @@ |* *| \*===----------------------------------------------------------------------===*/ +#include "llvm-c/Core.h" #include "llvm-c/Linker.h" #include "caml/alloc.h" #include "caml/memory.h" @@ -26,7 +27,7 @@ void llvm_raise(value Prototype, char *M /* llmodule -> llmodule -> unit */ CAMLprim value llvm_link_modules(LLVMModuleRef Dst, LLVMModuleRef Src) { if (LLVMLinkModules2(Dst, Src)) - llvm_raise(*caml_named_value("Llvm_linker.Error"), "Linking failed"); + llvm_raise(*caml_named_value("Llvm_linker.Error"), LLVMCreateMessage("Linking failed")); return Val_unit; } Modified: vendor/llvm/dist/bindings/ocaml/llvm/llvm.ml ============================================================================== --- vendor/llvm/dist/bindings/ocaml/llvm/llvm.ml Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/ocaml/llvm/llvm.ml Sat Jul 23 20:41:05 2016 (r303231) @@ -283,6 +283,14 @@ module ValueKind = struct | Instruction of Opcode.t end +module DiagnosticSeverity = struct + type t = + | Error + | Warning + | Remark + | Note +end + exception IoError of string let () = Callback.register_exception "Llvm.IoError" (IoError "") @@ -304,6 +312,20 @@ type ('a, 'b) llrev_pos = | At_start of 'a | After of 'b + +(*===-- Context error handling --------------------------------------------===*) +module Diagnostic = struct + type t + + external description : t -> string = "llvm_get_diagnostic_description" + external severity : t -> DiagnosticSeverity.t + = "llvm_get_diagnostic_severity" +end + +external set_diagnostic_handler + : llcontext -> (Diagnostic.t -> unit) option -> unit + = "llvm_set_diagnostic_handler" + (*===-- Contexts ----------------------------------------------------------===*) external create_context : unit -> llcontext = "llvm_create_context" external dispose_context : llcontext -> unit = "llvm_dispose_context" @@ -461,6 +483,8 @@ external mdstring : llcontext -> string external mdnode : llcontext -> llvalue array -> llvalue = "llvm_mdnode" external mdnull : llcontext -> llvalue = "llvm_mdnull" external get_mdstring : llvalue -> string option = "llvm_get_mdstring" +external get_mdnode_operands : llvalue -> llvalue array + = "llvm_get_mdnode_operands" external get_named_metadata : llmodule -> string -> llvalue array = "llvm_get_namedmd" external add_named_metadata_operand : llmodule -> string -> llvalue -> unit Modified: vendor/llvm/dist/bindings/ocaml/llvm/llvm.mli ============================================================================== --- vendor/llvm/dist/bindings/ocaml/llvm/llvm.mli Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/ocaml/llvm/llvm.mli Sat Jul 23 20:41:05 2016 (r303231) @@ -15,7 +15,7 @@ (** {6 Abstract types} - These abstract types correlate directly to the LLVM VMCore classes. *) + These abstract types correlate directly to the LLVMCore classes. *) (** The top-level container for all LLVM global data. See the [llvm::LLVMContext] class. *) @@ -352,6 +352,16 @@ module ValueKind : sig | Instruction of Opcode.t end +(** The kind of [Diagnostic], the result of [Diagnostic.severity d]. + See [llvm::DiagnosticSeverity]. *) +module DiagnosticSeverity : sig + type t = + | Error + | Warning + | Remark + | Note +end + (** {6 Iteration} *) @@ -398,6 +408,22 @@ val reset_fatal_error_handler : unit -> See the function [llvm::cl::ParseCommandLineOptions()]. *) val parse_command_line_options : ?overview:string -> string array -> unit +(** {6 Context error handling} *) + +module Diagnostic : sig + type t + + (** [description d] returns a textual description of [d]. *) + val description : t -> string + + (** [severity d] returns the severity of [d]. *) + val severity : t -> DiagnosticSeverity.t +end + +(** [set_diagnostic_handler c h] set the diagnostic handler of [c] to [h]. + See the method [llvm::LLVMContext::setDiagnosticHandler]. *) +val set_diagnostic_handler : llcontext -> (Diagnostic.t -> unit) option -> unit + (** {6 Contexts} *) (** [create_context ()] creates a context for storing the "global" state in @@ -408,7 +434,7 @@ val create_context : unit -> llcontext [llvm::LLVMContext::~LLVMContext]. *) val dispose_context : llcontext -> unit -(** See the function [llvm::getGlobalContext]. *) +(** See the function [LLVMGetGlobalContext]. *) val global_context : unit -> llcontext (** [mdkind_id context name] returns the MDKind ID that corresponds to the @@ -826,6 +852,10 @@ val mdnull : llcontext -> llvalue See the method [llvm::MDString::getString] *) val get_mdstring : llvalue -> string option +(** [get_mdnode_operands v] returns the operands in the MDNode. *) +(* See the method [llvm::MDNode::getOperand] *) +val get_mdnode_operands : llvalue -> llvalue array + (** [get_named_metadata m name] returns all the MDNodes belonging to the named metadata (if any). See the method [llvm::NamedMDNode::getOperand]. *) Modified: vendor/llvm/dist/bindings/ocaml/llvm/llvm_ocaml.c ============================================================================== --- vendor/llvm/dist/bindings/ocaml/llvm/llvm_ocaml.c Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/ocaml/llvm/llvm_ocaml.c Sat Jul 23 20:41:05 2016 (r303231) @@ -19,6 +19,7 @@ #include #include #include "llvm-c/Core.h" +#include "llvm-c/Support.h" #include "caml/alloc.h" #include "caml/custom.h" #include "caml/memory.h" @@ -114,6 +115,49 @@ static value alloc_variant(int tag, void return alloc_variant(0, pfun(Kid)); \ } +/*===-- Context error handling --------------------------------------------===*/ + +void llvm_diagnostic_handler_trampoline(LLVMDiagnosticInfoRef DI, + void *DiagnosticContext) { + caml_callback(*((value *)DiagnosticContext), (value)DI); +} + +/* Diagnostic.t -> string */ +CAMLprim value llvm_get_diagnostic_description(value Diagnostic) { + return llvm_string_of_message( + LLVMGetDiagInfoDescription((LLVMDiagnosticInfoRef)Diagnostic)); +} + +/* Diagnostic.t -> DiagnosticSeverity.t */ +CAMLprim value llvm_get_diagnostic_severity(value Diagnostic) { + return Val_int(LLVMGetDiagInfoSeverity((LLVMDiagnosticInfoRef)Diagnostic)); +} + +static void llvm_remove_diagnostic_handler(LLVMContextRef C) { + if (LLVMContextGetDiagnosticHandler(C) == + llvm_diagnostic_handler_trampoline) { + value *Handler = (value *)LLVMContextGetDiagnosticContext(C); + remove_global_root(Handler); + free(Handler); + } +} + +/* llcontext -> (Diagnostic.t -> unit) option -> unit */ +CAMLprim value llvm_set_diagnostic_handler(LLVMContextRef C, value Handler) { + llvm_remove_diagnostic_handler(C); + if (Handler == Val_int(0)) { + LLVMContextSetDiagnosticHandler(C, NULL, NULL); + } else { + value *DiagnosticContext = malloc(sizeof(value)); + if (DiagnosticContext == NULL) + caml_raise_out_of_memory(); + caml_register_global_root(DiagnosticContext); + *DiagnosticContext = Field(Handler, 0); + LLVMContextSetDiagnosticHandler(C, llvm_diagnostic_handler_trampoline, + DiagnosticContext); + } + return Val_unit; +} /*===-- Contexts ----------------------------------------------------------===*/ @@ -124,6 +168,7 @@ CAMLprim LLVMContextRef llvm_create_cont /* llcontext -> unit */ CAMLprim value llvm_dispose_context(LLVMContextRef C) { + llvm_remove_diagnostic_handler(C); LLVMContextDispose(C); return Val_unit; } @@ -689,6 +734,17 @@ CAMLprim value llvm_get_mdstring(LLVMVal CAMLreturn(Val_int(0)); } +CAMLprim value llvm_get_mdnode_operands(LLVMValueRef V) { + CAMLparam0(); + CAMLlocal1(Operands); + unsigned int n; + + n = LLVMGetMDNodeNumOperands(V); + Operands = alloc(n, 0); + LLVMGetMDNodeOperands(V, (LLVMValueRef *) Operands); + CAMLreturn(Operands); +} + /* llmodule -> string -> llvalue array */ CAMLprim value llvm_get_namedmd(LLVMModuleRef M, value Name) { Modified: vendor/llvm/dist/bindings/ocaml/target/llvm_target.ml ============================================================================== --- vendor/llvm/dist/bindings/ocaml/target/llvm_target.ml Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/ocaml/target/llvm_target.ml Sat Jul 23 20:41:05 2016 (r303231) @@ -54,9 +54,6 @@ module DataLayout = struct external of_string : string -> t = "llvm_datalayout_of_string" external as_string : t -> string = "llvm_datalayout_as_string" - external add_to_pass_manager : [ t -> unit - = "llvm_datalayout_add_to_pass_manager" external byte_order : t -> Endian.t = "llvm_datalayout_byte_order" external pointer_size : t -> int = "llvm_datalayout_pointer_size" external intptr_type : Llvm.llcontext -> t -> Llvm.lltype Modified: vendor/llvm/dist/bindings/ocaml/target/llvm_target.mli ============================================================================== --- vendor/llvm/dist/bindings/ocaml/target/llvm_target.mli Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/ocaml/target/llvm_target.mli Sat Jul 23 20:41:05 2016 (r303231) @@ -67,12 +67,6 @@ module DataLayout : sig See the method [llvm::DataLayout::getStringRepresentation]. *) val as_string : t -> string - (** [add_to_pass_manager pm dl] adds the data layout [dl] to - the pass manager [pm]. - See the method [llvm::PassManagerBase::add]. *) - val add_to_pass_manager : [ - t -> unit - (** Returns the byte order of a target, either [Endian.Big] or [Endian.Little]. See the method [llvm::DataLayout::isLittleEndian]. *) @@ -200,13 +194,13 @@ module TargetMachine : sig [llvm::TargetMachine::getCPU]. *) val cpu : t -> string + (** Returns the data layout of this target machine. *) + val data_layout : t -> DataLayout.t + (** Returns the feature string used while creating this target machine. See [llvm::TargetMachine::getFeatureString]. *) val features : t -> string - (** Returns the data layout of this target machine. *) - val data_layout : t -> DataLayout.t - (** Adds the target-specific analysis passes to the pass manager. See [llvm::TargetMachine::addAnalysisPasses]. *) val add_analysis_passes : [< Llvm.PassManager.any ] Llvm.PassManager.t -> t -> unit Modified: vendor/llvm/dist/bindings/ocaml/target/target_ocaml.c ============================================================================== --- vendor/llvm/dist/bindings/ocaml/target/target_ocaml.c Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/ocaml/target/target_ocaml.c Sat Jul 23 20:41:05 2016 (r303231) @@ -15,6 +15,7 @@ |* *| \*===----------------------------------------------------------------------===*/ +#include "llvm-c/Core.h" #include "llvm-c/Target.h" #include "llvm-c/TargetMachine.h" #include "caml/alloc.h" @@ -64,13 +65,6 @@ CAMLprim value llvm_datalayout_as_string return Copy; } -/* [ DataLayout.t -> unit */ -CAMLprim value llvm_datalayout_add_to_pass_manager(LLVMPassManagerRef PM, - value DL) { - LLVMAddTargetData(DataLayout_val(DL), PM); - return Val_unit; -} - /* DataLayout.t -> Endian.t */ CAMLprim value llvm_datalayout_byte_order(value DL) { return Val_int(LLVMByteOrder(DataLayout_val(DL))); @@ -304,21 +298,8 @@ CAMLprim value llvm_targetmachine_featur /* TargetMachine.t -> DataLayout.t */ CAMLprim value llvm_targetmachine_data_layout(value Machine) { - CAMLparam1(Machine); - CAMLlocal1(DataLayout); - char *TargetDataCStr; - - /* LLVMGetTargetMachineData returns a pointer owned by the TargetMachine, - so it is impossible to wrap it with llvm_alloc_target_data, which assumes - that OCaml owns the pointer. */ - LLVMTargetDataRef OrigDataLayout; - OrigDataLayout = LLVMGetTargetMachineData(TargetMachine_val(Machine)); - - TargetDataCStr = LLVMCopyStringRepOfTargetData(OrigDataLayout); - DataLayout = llvm_alloc_data_layout(LLVMCreateTargetData(TargetDataCStr)); - LLVMDisposeMessage(TargetDataCStr); - - CAMLreturn(DataLayout); + return llvm_alloc_data_layout(LLVMCreateTargetDataLayout( + TargetMachine_val(Machine))); } /* bool -> TargetMachine.t -> unit */ Modified: vendor/llvm/dist/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli ============================================================================== --- vendor/llvm/dist/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli Sat Jul 23 20:41:05 2016 (r303231) @@ -127,17 +127,17 @@ external add_sccp : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit = "llvm_add_sccp" -(** See the [llvm::createScalarReplAggregatesPass] function. *) +(** See the [llvm::createSROAPass] function. *) external add_scalar_repl_aggregation : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit = "llvm_add_scalar_repl_aggregates" -(** See the [llvm::createScalarReplAggregatesPassSSA] function. *) +(** See the [llvm::createSROAPass] function. *) external add_scalar_repl_aggregation_ssa : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit = "llvm_add_scalar_repl_aggregates_ssa" -(** See the [llvm::createScalarReplAggregatesWithThreshold] function. *) +(** See the [llvm::createSROAPass] function. *) external add_scalar_repl_aggregation_with_threshold : int -> [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit = "llvm_add_scalar_repl_aggregates_with_threshold" Modified: vendor/llvm/dist/cmake/config-ix.cmake ============================================================================== --- vendor/llvm/dist/cmake/config-ix.cmake Sat Jul 23 18:16:40 2016 (r303230) +++ vendor/llvm/dist/cmake/config-ix.cmake Sat Jul 23 20:41:05 2016 (r303231) @@ -11,9 +11,10 @@ include(CheckFunctionExists) include(CheckCXXSourceCompiles) include(TestBigEndian) +include(CheckCompilerVersion) include(HandleLLVMStdlib) -if( UNIX AND NOT BEOS ) +if( UNIX AND NOT (BEOS OR HAIKU) ) # Used by check_symbol_exists: set(CMAKE_REQUIRED_LIBRARIES m) endif() @@ -66,6 +67,7 @@ check_include_file(sys/param.h HAVE_SYS_ check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H) check_include_file(sys/stat.h HAVE_SYS_STAT_H) check_include_file(sys/time.h HAVE_SYS_TIME_H) +check_include_file(sys/types.h HAVE_SYS_TYPES_H) check_include_file(sys/uio.h HAVE_SYS_UIO_H) check_include_file(termios.h HAVE_TERMIOS_H) check_include_file(unistd.h HAVE_UNISTD_H) @@ -107,6 +109,16 @@ if( NOT PURE_WINDOWS ) check_library_exists(rt clock_gettime "" HAVE_LIBRT) endif() +if(HAVE_LIBPTHREAD) + # We want to find pthreads library and at the moment we do want to + # have it reported as '-l' instead of '-pthread'. + # TODO: switch to -pthread once the rest of the build system can deal with it. + set(CMAKE_THREAD_PREFER_PTHREAD TRUE) + set(THREADS_HAVE_PTHREAD_ARG Off) + find_package(Threads REQUIRED) + set(PTHREAD_LIB ${CMAKE_THREAD_LIBS_INIT}) +endif() + # Don't look for these libraries on Windows. Also don't look for them if we're # using MSan, since uninstrmented third party code may call MSan interceptors # like strlen, leading to false positives. @@ -135,9 +147,15 @@ if( NOT PURE_WINDOWS AND NOT LLVM_USE_SA endif() endif() +check_library_exists(xar xar_open "" HAVE_LIBXAR) +if(HAVE_LIBXAR) + set(XAR_LIB xar) +endif() + # function checks check_symbol_exists(arc4random "stdlib.h" HAVE_DECL_ARC4RANDOM) check_symbol_exists(backtrace "execinfo.h" HAVE_BACKTRACE) +check_symbol_exists(_Unwind_Backtrace "unwind.h" HAVE_UNWIND_BACKTRACE) check_symbol_exists(getpagesize unistd.h HAVE_GETPAGESIZE) check_symbol_exists(getrusage sys/resource.h HAVE_GETRUSAGE) check_symbol_exists(setrlimit sys/resource.h HAVE_SETRLIMIT) @@ -150,6 +168,9 @@ if( HAVE_SETJMP_H ) check_symbol_exists(siglongjmp setjmp.h HAVE_SIGLONGJMP) check_symbol_exists(sigsetjmp setjmp.h HAVE_SIGSETJMP) endif() +if( HAVE_SIGNAL_H ) + check_symbol_exists(sigaltstack signal.h HAVE_SIGALTSTACK) +endif() if( HAVE_SYS_UIO_H ) check_symbol_exists(writev sys/uio.h HAVE_WRITEV) endif() @@ -395,12 +416,12 @@ else () set(LLVM_NATIVE_ASMPRINTER LLVMInitialize${LLVM_NATIVE_ARCH}AsmPrinter) # We don't have an ASM parser for all architectures yet. - if (EXISTS ${CMAKE_SOURCE_DIR}/lib/Target/${LLVM_NATIVE_ARCH}/AsmParser/CMakeLists.txt) + if (EXISTS ${PROJECT_SOURCE_DIR}/lib/Target/${LLVM_NATIVE_ARCH}/AsmParser/CMakeLists.txt) set(LLVM_NATIVE_ASMPARSER LLVMInitialize${LLVM_NATIVE_ARCH}AsmParser) endif () # We don't have an disassembler for all architectures yet. - if (EXISTS ${CMAKE_SOURCE_DIR}/lib/Target/${LLVM_NATIVE_ARCH}/Disassembler/CMakeLists.txt) + if (EXISTS ${PROJECT_SOURCE_DIR}/lib/Target/${LLVM_NATIVE_ARCH}/Disassembler/CMakeLists.txt) set(LLVM_NATIVE_DISASSEMBLER LLVMInitialize${LLVM_NATIVE_ARCH}Disassembler) endif () endif () @@ -446,21 +467,6 @@ else() set(HAVE_DIA_SDK 0) endif( MSVC ) -if( PURE_WINDOWS ) - CHECK_CXX_SOURCE_COMPILES(" - #include - #include - extern \"C\" void foo(PENUMLOADED_MODULES_CALLBACK); - extern \"C\" void foo(BOOL(CALLBACK*)(PCSTR,ULONG_PTR,ULONG,PVOID)); - int main(){return 0;}" - HAVE_ELMCB_PCSTR) - if( HAVE_ELMCB_PCSTR ) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sat Jul 23 20:41:57 2016 Return-Path: Delivered-To: svn-src-all@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 67BCEBA27A3; Sat, 23 Jul 2016 20:41:57 +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 1E3C31E6B; Sat, 23 Jul 2016 20:41:57 +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 u6NKfuY7011728; Sat, 23 Jul 2016 20:41:56 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKfufC011727; Sat, 23 Jul 2016 20:41:56 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232041.u6NKfufC011727@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:41:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303232 - vendor/llvm/llvm-release_39-r276489 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:41:57 -0000 Author: dim Date: Sat Jul 23 20:41:56 2016 New Revision: 303232 URL: https://svnweb.freebsd.org/changeset/base/303232 Log: Tag llvm release_39 branch r276489. Added: vendor/llvm/llvm-release_39-r276489/ - copied from r303231, vendor/llvm/dist/ From owner-svn-src-all@freebsd.org Sat Jul 23 20:44:20 2016 Return-Path: Delivered-To: svn-src-all@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 C6167BA287F; Sat, 23 Jul 2016 20:44:20 +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 C1AAF12DD; Sat, 23 Jul 2016 20:44: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 u6NKiJwm011893; Sat, 23 Jul 2016 20:44:19 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKiH5v011876; Sat, 23 Jul 2016 20:44:17 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232044.u6NKiH5v011876@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:44:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303233 - in vendor/clang/dist: . bindings/python/clang bindings/python/tests/cindex cmake/caches cmake/modules docs docs/CommandGuide docs/analyzer docs/tools examples examples/Annotat... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:44:20 -0000 Author: dim Date: Sat Jul 23 20:44:14 2016 New Revision: 303233 URL: https://svnweb.freebsd.org/changeset/base/303233 Log: Vendor import of clang release_39 branch r276489: https://llvm.org/svn/llvm-project/cfe/branches/release_39@276489 Added: vendor/clang/dist/cmake/caches/3-stage-base.cmake vendor/clang/dist/cmake/caches/3-stage.cmake vendor/clang/dist/cmake/modules/AddClang.cmake vendor/clang/dist/cmake/modules/CMakeLists.txt (contents, props changed) vendor/clang/dist/cmake/modules/ClangConfig.cmake.in (contents, props changed) vendor/clang/dist/docs/ItaniumMangleAbiTags.rst vendor/clang/dist/docs/LTOVisibility.rst vendor/clang/dist/docs/SanitizerStats.rst vendor/clang/dist/docs/SourceBasedCodeCoverage.rst vendor/clang/dist/docs/doxygen-mainpage.dox vendor/clang/dist/examples/AnnotateFunctions/ vendor/clang/dist/examples/AnnotateFunctions/AnnotateFunctions.cpp (contents, props changed) vendor/clang/dist/examples/AnnotateFunctions/CMakeLists.txt (contents, props changed) vendor/clang/dist/examples/analyzer-plugin/SampleAnalyzerPlugin.exports vendor/clang/dist/include/clang/AST/Availability.h (contents, props changed) vendor/clang/dist/include/clang/AST/LocInfoType.h (contents, props changed) vendor/clang/dist/include/clang/AST/OperationKinds.def vendor/clang/dist/include/clang/Basic/Cuda.h (contents, props changed) vendor/clang/dist/include/clang/Basic/DebugInfoOptions.h (contents, props changed) vendor/clang/dist/include/clang/Basic/OpenCLImageTypes.def vendor/clang/dist/include/clang/Basic/OpenCLOptions.h (contents, props changed) vendor/clang/dist/include/clang/Basic/PragmaKinds.h (contents, props changed) vendor/clang/dist/include/clang/CodeGen/SwiftCallingConv.h (contents, props changed) vendor/clang/dist/include/clang/Index/CodegenNameGenerator.h (contents, props changed) vendor/clang/dist/include/clang/Index/IndexDataConsumer.h (contents, props changed) vendor/clang/dist/include/clang/Index/IndexSymbol.h (contents, props changed) vendor/clang/dist/include/clang/Index/IndexingAction.h (contents, props changed) vendor/clang/dist/include/clang/Lex/HeaderMapTypes.h (contents, props changed) vendor/clang/dist/include/clang/Sema/CleanupInfo.h (contents, props changed) vendor/clang/dist/include/clang/StaticAnalyzer/Checkers/CMakeLists.txt (contents, props changed) vendor/clang/dist/include/clang/StaticAnalyzer/Checkers/Checkers.td vendor/clang/dist/include/clang/StaticAnalyzer/Checkers/SValExplainer.h (contents, props changed) vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/Regions.def vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h (contents, props changed) vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.def vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h (contents, props changed) vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/Symbols.def vendor/clang/dist/include/clang/Tooling/Core/QualTypeNames.h (contents, props changed) vendor/clang/dist/include/clang/Tooling/FixIt.h (contents, props changed) vendor/clang/dist/lib/Basic/Cuda.cpp (contents, props changed) vendor/clang/dist/lib/CodeGen/CGCUDABuiltin.cpp (contents, props changed) vendor/clang/dist/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp (contents, props changed) vendor/clang/dist/lib/CodeGen/CGOpenMPRuntimeNVPTX.h (contents, props changed) vendor/clang/dist/lib/CodeGen/SwiftCallingConv.cpp (contents, props changed) vendor/clang/dist/lib/Format/AffectedRangeManager.cpp (contents, props changed) vendor/clang/dist/lib/Format/AffectedRangeManager.h (contents, props changed) vendor/clang/dist/lib/Format/FormatTokenLexer.cpp (contents, props changed) vendor/clang/dist/lib/Format/FormatTokenLexer.h (contents, props changed) vendor/clang/dist/lib/Format/SortJavaScriptImports.cpp (contents, props changed) vendor/clang/dist/lib/Format/SortJavaScriptImports.h (contents, props changed) vendor/clang/dist/lib/Format/TokenAnalyzer.cpp (contents, props changed) vendor/clang/dist/lib/Format/TokenAnalyzer.h (contents, props changed) vendor/clang/dist/lib/Headers/__clang_cuda_cmath.h (contents, props changed) vendor/clang/dist/lib/Headers/__clang_cuda_intrinsics.h (contents, props changed) vendor/clang/dist/lib/Headers/__clang_cuda_math_forward_declares.h (contents, props changed) vendor/clang/dist/lib/Headers/avx512ifmaintrin.h (contents, props changed) vendor/clang/dist/lib/Headers/avx512ifmavlintrin.h (contents, props changed) vendor/clang/dist/lib/Headers/avx512pfintrin.h (contents, props changed) vendor/clang/dist/lib/Headers/avx512vbmiintrin.h (contents, props changed) vendor/clang/dist/lib/Headers/avx512vbmivlintrin.h (contents, props changed) vendor/clang/dist/lib/Headers/avx512vlcdintrin.h (contents, props changed) vendor/clang/dist/lib/Headers/clflushoptintrin.h (contents, props changed) vendor/clang/dist/lib/Headers/intrin.h (contents, props changed) vendor/clang/dist/lib/Headers/mwaitxintrin.h (contents, props changed) vendor/clang/dist/lib/Headers/opencl-c.h (contents, props changed) vendor/clang/dist/lib/Index/CodegenNameGenerator.cpp (contents, props changed) vendor/clang/dist/lib/Index/IndexBody.cpp (contents, props changed) vendor/clang/dist/lib/Index/IndexDecl.cpp (contents, props changed) vendor/clang/dist/lib/Index/IndexSymbol.cpp (contents, props changed) vendor/clang/dist/lib/Index/IndexTypeSourceInfo.cpp (contents, props changed) vendor/clang/dist/lib/Index/IndexingAction.cpp (contents, props changed) vendor/clang/dist/lib/Index/IndexingContext.cpp (contents, props changed) vendor/clang/dist/lib/Index/IndexingContext.h (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/ vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.h (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIFunctionClassifier.cpp (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIFunctionClassifier.h (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/MPI-Checker/MPITypes.h (contents, props changed) vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp (contents, props changed) vendor/clang/dist/lib/Tooling/Core/QualTypeNames.cpp (contents, props changed) vendor/clang/dist/lib/Tooling/FixIt.cpp (contents, props changed) vendor/clang/dist/test/ARCMT/Inputs/with space/ vendor/clang/dist/test/ARCMT/Inputs/with space/test.h (contents, props changed) vendor/clang/dist/test/ARCMT/Inputs/with space/test.h.result vendor/clang/dist/test/ARCMT/Inputs/with space/test1.m.in (contents, props changed) vendor/clang/dist/test/ARCMT/Inputs/with space/test1.m.in.result vendor/clang/dist/test/ARCMT/Inputs/with space/test2.m.in (contents, props changed) vendor/clang/dist/test/ARCMT/Inputs/with space/test2.m.in.result vendor/clang/dist/test/ARCMT/objcmt-invalid-code.mm vendor/clang/dist/test/ARCMT/objcmt-invalid-code.mm.result vendor/clang/dist/test/ARCMT/objcmt-ns-enum-crash.m vendor/clang/dist/test/ARCMT/objcmt-ns-enum-crash.m.result vendor/clang/dist/test/ASTMerge/Inputs/anonymous-fields1.cpp (contents, props changed) vendor/clang/dist/test/ASTMerge/Inputs/anonymous-fields2.cpp (contents, props changed) vendor/clang/dist/test/ASTMerge/Inputs/inheritance-base.cpp (contents, props changed) vendor/clang/dist/test/ASTMerge/Inputs/init-ctors-classes.cpp (contents, props changed) vendor/clang/dist/test/ASTMerge/anonymous-fields.cpp (contents, props changed) vendor/clang/dist/test/ASTMerge/inheritance.cpp (contents, props changed) vendor/clang/dist/test/ASTMerge/init-ctors.cpp (contents, props changed) vendor/clang/dist/test/Analysis/DeallocMissingRelease.m vendor/clang/dist/test/Analysis/DeallocUseAfterFreeErrors.m vendor/clang/dist/test/Analysis/Inputs/system-header-simulator-cxx-std-suppression.h (contents, props changed) vendor/clang/dist/test/Analysis/Inputs/system-header-simulator-for-nullability.h (contents, props changed) vendor/clang/dist/test/Analysis/Inputs/system-header-simulator-for-objc-dealloc.h (contents, props changed) vendor/clang/dist/test/Analysis/MPIMock.h (contents, props changed) vendor/clang/dist/test/Analysis/MemRegion.cpp (contents, props changed) vendor/clang/dist/test/Analysis/analyze_display_progress.cpp (contents, props changed) vendor/clang/dist/test/Analysis/atomics.c (contents, props changed) vendor/clang/dist/test/Analysis/bstring.cpp (contents, props changed) vendor/clang/dist/test/Analysis/diagnostics/implicit-cxx-std-suppression.cpp (contents, props changed) vendor/clang/dist/test/Analysis/explain-svals.cpp (contents, props changed) vendor/clang/dist/test/Analysis/index-type.c (contents, props changed) vendor/clang/dist/test/Analysis/mpichecker.cpp (contents, props changed) vendor/clang/dist/test/Analysis/mpicheckernotes.cpp (contents, props changed) vendor/clang/dist/test/Analysis/nullability-no-arc.mm vendor/clang/dist/test/Analysis/traversal-begin-end-function.c (contents, props changed) vendor/clang/dist/test/CXX/basic/basic.def/p2.cpp (contents, props changed) vendor/clang/dist/test/CXX/basic/basic.def/p4.cpp (contents, props changed) vendor/clang/dist/test/CXX/class/class.static/class.static.data/p2.cpp (contents, props changed) vendor/clang/dist/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/p6.cpp (contents, props changed) vendor/clang/dist/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/p7.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p15.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p18.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p3.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p6-cxx11.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p7.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.fallthrough/ vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.fallthrough/p1.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.grammar/p2-1z.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/ vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p1.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p2.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p3.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/ vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p1.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p2.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p4.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.inline/ vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.inline/p1.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.inline/p5.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p2-1z.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.aggr/p1.cpp (contents, props changed) vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.list/p3.cpp (contents, props changed) vendor/clang/dist/test/CXX/drs/dr12xx.cpp (contents, props changed) vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p15-star-this-capture.cpp (contents, props changed) vendor/clang/dist/test/CXX/special/class.init/class.inhctor.init/ vendor/clang/dist/test/CXX/special/class.init/class.inhctor.init/p1.cpp (contents, props changed) vendor/clang/dist/test/CXX/special/class.init/class.inhctor.init/p2.cpp (contents, props changed) vendor/clang/dist/test/CXX/stmt.stmt/stmt.select/stmt.if/p2.cpp (contents, props changed) vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/p7.cpp (contents, props changed) vendor/clang/dist/test/CodeCompletion/Inputs/ModuleA/ vendor/clang/dist/test/CodeCompletion/Inputs/ModuleA/module.modulemap vendor/clang/dist/test/CodeCompletion/Inputs/ModuleA/moduleA.h (contents, props changed) vendor/clang/dist/test/CodeCompletion/Inputs/import_moduleA.h (contents, props changed) vendor/clang/dist/test/CodeCompletion/bracket-decl.c (contents, props changed) vendor/clang/dist/test/CodeCompletion/ctor-initializer.cpp (contents, props changed) vendor/clang/dist/test/CodeCompletion/documentation.m vendor/clang/dist/test/CodeCompletion/pch-and-module.m vendor/clang/dist/test/CodeGen/CFStrings.c (contents, props changed) vendor/clang/dist/test/CodeGen/Inputs/pgo-sample.prof vendor/clang/dist/test/CodeGen/Inputs/pgotestclang.profraw vendor/clang/dist/test/CodeGen/Inputs/pgotestir.profraw vendor/clang/dist/test/CodeGen/Inputs/thinlto_backend.ll vendor/clang/dist/test/CodeGen/aarch64-arguments-hfa-v3.c (contents, props changed) vendor/clang/dist/test/CodeGen/arm-swiftcall.c (contents, props changed) vendor/clang/dist/test/CodeGen/attr-mode-enums.c (contents, props changed) vendor/clang/dist/test/CodeGen/attr-target-x87-softfp.c (contents, props changed) vendor/clang/dist/test/CodeGen/attr-x86-interrupt.c (contents, props changed) vendor/clang/dist/test/CodeGen/avx512ifma-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/avx512ifmavl-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/avx512pf-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/avx512vbmi-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/avx512vbmivl-builtin.c (contents, props changed) vendor/clang/dist/test/CodeGen/avx512vlcd-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/backend-unsupported-error.ll vendor/clang/dist/test/CodeGen/bitscan-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/blocks-windows.c (contents, props changed) vendor/clang/dist/test/CodeGen/builtin-clflushopt.c (contents, props changed) vendor/clang/dist/test/CodeGen/builtins-hexagon.c (contents, props changed) vendor/clang/dist/test/CodeGen/builtins-sparc.c (contents, props changed) vendor/clang/dist/test/CodeGen/builtins-systemz-error2.c (contents, props changed) vendor/clang/dist/test/CodeGen/cfi-check-fail.c (contents, props changed) vendor/clang/dist/test/CodeGen/cfi-check-fail2.c (contents, props changed) vendor/clang/dist/test/CodeGen/cfstring-windows.c (contents, props changed) vendor/clang/dist/test/CodeGen/debug-info-imported-entity.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/debug-info-renderscript-tag.rs vendor/clang/dist/test/CodeGen/fixup-depth-overflow.c (contents, props changed) vendor/clang/dist/test/CodeGen/forwarding-blocks-if.c (contents, props changed) vendor/clang/dist/test/CodeGen/hexagon-inline-asm.c (contents, props changed) vendor/clang/dist/test/CodeGen/iamcu-abi.c (contents, props changed) vendor/clang/dist/test/CodeGen/ifunc.c (contents, props changed) vendor/clang/dist/test/CodeGen/inline-asm-mixed-style.c (contents, props changed) vendor/clang/dist/test/CodeGen/inline-optim.c (contents, props changed) vendor/clang/dist/test/CodeGen/lanai-arguments.c (contents, props changed) vendor/clang/dist/test/CodeGen/lanai-regparm.c (contents, props changed) vendor/clang/dist/test/CodeGen/lifetime-asan.c (contents, props changed) vendor/clang/dist/test/CodeGen/linker-option.c (contents, props changed) vendor/clang/dist/test/CodeGen/malign-double.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/mbackchain-2.c (contents, props changed) vendor/clang/dist/test/CodeGen/mbackchain-3.c (contents, props changed) vendor/clang/dist/test/CodeGen/mbackchain.c (contents, props changed) vendor/clang/dist/test/CodeGen/mcu-struct-return.c (contents, props changed) vendor/clang/dist/test/CodeGen/ms-inline-asm-avx512.c (contents, props changed) vendor/clang/dist/test/CodeGen/ms-inline-asm-errors.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/nousejumptable.c (contents, props changed) vendor/clang/dist/test/CodeGen/pgo-instrumentation.c (contents, props changed) vendor/clang/dist/test/CodeGen/pgo-sample-preparation.c (contents, props changed) vendor/clang/dist/test/CodeGen/pgo-sample.c (contents, props changed) vendor/clang/dist/test/CodeGen/pr25786.c (contents, props changed) vendor/clang/dist/test/CodeGen/pr27892.c (contents, props changed) vendor/clang/dist/test/CodeGen/preserve-call-conv.c (contents, props changed) vendor/clang/dist/test/CodeGen/rd-builtins.c (contents, props changed) vendor/clang/dist/test/CodeGen/relax.c (contents, props changed) vendor/clang/dist/test/CodeGen/renderscript.c (contents, props changed) vendor/clang/dist/test/CodeGen/sparc-vaarg.c (contents, props changed) vendor/clang/dist/test/CodeGen/sparcv8-abi.c (contents, props changed) vendor/clang/dist/test/CodeGen/struct-union-BE.c (contents, props changed) vendor/clang/dist/test/CodeGen/target-builtin-error-3.c (contents, props changed) vendor/clang/dist/test/CodeGen/temporary-lifetime-exceptions.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/temporary-lifetime.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/thinlto_backend.ll vendor/clang/dist/test/CodeGen/ubsan-strip-path-components.cpp (contents, props changed) vendor/clang/dist/test/CodeGen/wasm-varargs.c (contents, props changed) vendor/clang/dist/test/CodeGen/windows-on-arm-tls-support.c (contents, props changed) vendor/clang/dist/test/CodeGen/xray-attributes-supported.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCUDA/Inputs/cuda-initializers.h (contents, props changed) vendor/clang/dist/test/CodeGenCUDA/alias.cu vendor/clang/dist/test/CodeGenCUDA/convergent.cu vendor/clang/dist/test/CodeGenCUDA/device-var-init.cu vendor/clang/dist/test/CodeGenCUDA/flush-denormals.cu vendor/clang/dist/test/CodeGenCUDA/fp-contract.cu vendor/clang/dist/test/CodeGenCUDA/printf-aggregate.cu vendor/clang/dist/test/CodeGenCUDA/printf.cu vendor/clang/dist/test/CodeGenCXX/PR26569.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/PR28220.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/arm-swiftcall.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/attr-mode-vector-types-tmpl.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/attr-x86-interrupt.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/cfi-speculative-vtable.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/cfi-stats.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/cxx1z-constexpr-if.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/cxx1z-init-statement.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/cxx1z-initializer-aggregate.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/cxx1z-inline-variables.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/cxx1z-lambda-star-this.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-calling-conventions.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-member-call.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-ms-abi.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-ms-anonymous-tag.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-ms-bitfields.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-ms-ptr-to-member.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-nodebug.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/debug-info-scoped-class.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/default_calling_conv.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/discard-name-values.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/dllexport-ms-friend.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/dllexport-pr26549.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/exceptions-cxx-ehsc.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/float128-declarations.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/inline-hint.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/lto-visibility-inference.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/mangle-abi-tag.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/mangle-ms-md5.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/microsoft-abi-extern-template.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/pr27030.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/pr28360.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/static-destructor.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/type-metadata.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/virtual-function-attrs.cpp (contents, props changed) vendor/clang/dist/test/CodeGenCXX/vla-consruct.cpp (contents, props changed) vendor/clang/dist/test/CodeGenObjC/arc-i386.m vendor/clang/dist/test/CodeGenObjC/arc-unsafeclaim.m vendor/clang/dist/test/CodeGenObjC/attr-objc-runtime-visible.m vendor/clang/dist/test/CodeGenObjC/debug-info-nodebug.m vendor/clang/dist/test/CodeGenObjC/dllstorage.m vendor/clang/dist/test/CodeGenObjC/metadata-class-properties.m vendor/clang/dist/test/CodeGenObjC/property-atomic-bool.m vendor/clang/dist/test/CodeGenObjCXX/auto-release-result-assert.mm vendor/clang/dist/test/CodeGenObjCXX/block-default-arg.mm vendor/clang/dist/test/CodeGenObjCXX/block-nested-in-lambda.cpp (contents, props changed) vendor/clang/dist/test/CodeGenObjCXX/debug-info-block-capture-this.mm vendor/clang/dist/test/CodeGenOpenCL/amdgcn-flat-scratch-name.cl vendor/clang/dist/test/CodeGenOpenCL/amdgpu-call-kernel.cl (contents, props changed) vendor/clang/dist/test/CodeGenOpenCL/amdgpu-calling-conv.cl vendor/clang/dist/test/CodeGenOpenCL/as_type.cl vendor/clang/dist/test/CodeGenOpenCL/builtins-amdgcn-error.cl vendor/clang/dist/test/CodeGenOpenCL/builtins-amdgcn-vi.cl vendor/clang/dist/test/CodeGenOpenCL/builtins-amdgcn.cl vendor/clang/dist/test/CodeGenOpenCL/builtins-generic-amdgcn.cl vendor/clang/dist/test/CodeGenOpenCL/cl20-device-side-enqueue.cl vendor/clang/dist/test/CodeGenOpenCL/images.cl vendor/clang/dist/test/CodeGenOpenCL/no-signed-zeros.cl vendor/clang/dist/test/CodeGenOpenCL/pipe_builtin.cl vendor/clang/dist/test/CodeGenOpenCL/spir_version.cl vendor/clang/dist/test/CodeGenOpenCL/to_addr_builtin.cl vendor/clang/dist/test/CodeGenOpenCL/unroll-hint.cl vendor/clang/dist/test/CodeGenOpenCL/vla.cl vendor/clang/dist/test/CoverageMapping/Inputs/ends_a_scope_only vendor/clang/dist/test/CoverageMapping/Inputs/macros.h (contents, props changed) vendor/clang/dist/test/CoverageMapping/Inputs/starts_a_scope_only vendor/clang/dist/test/CoverageMapping/include-macros.c (contents, props changed) vendor/clang/dist/test/CoverageMapping/unused_function.cpp (contents, props changed) vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/bin/ vendor/clang/dist/test/Driver/Inputs/CUDA/usr/local/cuda/bin/.keep vendor/clang/dist/test/Driver/Inputs/CUDA_80/ vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/ vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/ vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/ vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/bin/ vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/bin/.keep vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/include/ vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/include/.keep vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/lib/ vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/lib/.keep vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/lib64/ vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/lib64/.keep vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/nvvm/ vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/nvvm/libdevice/ vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/nvvm/libdevice/libdevice.compute_20.10.bc vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/nvvm/libdevice/libdevice.compute_35.10.bc vendor/clang/dist/test/Driver/Inputs/CUDA_80/usr/local/cuda/version.txt (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/aarch64-linux-android/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/aarch64-linux-android/bin/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/aarch64-linux-android/bin/ld vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/aarch64-linux-android/bin/ld.bfd vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/aarch64-linux-android/bin/ld.gold vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/aarch64-linux-android/lib/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/aarch64-linux-android/lib/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/arm-linux-androideabi/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/arm-linux-androideabi/bin/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/arm-linux-androideabi/bin/ld vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/arm-linux-androideabi/bin/ld.bfd vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/arm-linux-androideabi/bin/ld.gold vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/arm-linux-androideabi/lib/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/arm-linux-androideabi/lib/armv7-a/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/arm-linux-androideabi/lib/armv7-a/thumb/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/arm-linux-androideabi/lib/armv7-a/thumb/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/arm-linux-androideabi/lib/thumb/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/arm-linux-androideabi/lib/thumb/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/aarch64-linux-android-ld vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/aarch64-linux-android-ld.bfd vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/aarch64-linux-android-ld.gold vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/arm-linux-androideabi-ld vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/arm-linux-androideabi-ld.bfd vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/arm-linux-androideabi-ld.gold vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/i686-linux-android-ld vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/i686-linux-android-ld.bfd vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/i686-linux-android-ld.gold vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/mipsel-linux-android-ld vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/mipsel-linux-android-ld.bfd vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/bin/mipsel-linux-android-ld.gold vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/i686-linux-android/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/i686-linux-android/bin/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/i686-linux-android/bin/ld vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/i686-linux-android/bin/ld.bfd vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/i686-linux-android/bin/ld.gold vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/i686-linux-android/lib/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/i686-linux-android/lib/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/aarch64-linux-android/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/aarch64-linux-android/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/arm-linux-androideabi/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/arm-linux-androideabi/armv7-a/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/arm-linux-androideabi/thumb/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/arm-linux-androideabi/thumb/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/backward/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/backward/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/i686-linux-android/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/i686-linux-android/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/mipsel-linux-android/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/mipsel-linux-android/mips-r2/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/mipsel-linux-android/mips-r2/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/mipsel-linux-android/mips-r6/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/include/c++/4.9/mipsel-linux-android/mips-r6/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/aarch64-linux-android/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/aarch64-linux-android/4.9/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/aarch64-linux-android/4.9/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/aarch64-linux-android/4.9/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/aarch64-linux-android/4.9/include/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/aarch64-linux-android/4.9/include/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/armv7-a/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/armv7-a/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/armv7-a/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/include/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/include/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/thumb/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/thumb/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/arm-linux-androideabi/4.9/thumb/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/i686-linux-android/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/i686-linux-android/4.9/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/i686-linux-android/4.9/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/i686-linux-android/4.9/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/i686-linux-android/4.9/include/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/i686-linux-android/4.9/include/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/4.9/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/4.9/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/4.9/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/4.9/include/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/4.9/include/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/4.9/mips-r2/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/4.9/mips-r2/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/4.9/mips-r2/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/4.9/mips-r6/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/4.9/mips-r6/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/lib/gcc/mipsel-linux-android/4.9/mips-r6/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/mipsel-linux-android/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/mipsel-linux-android/bin/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/mipsel-linux-android/bin/ld vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/mipsel-linux-android/bin/ld.bfd vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/mipsel-linux-android/bin/ld.gold vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/mipsel-linux-android/lib/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/mipsel-linux-android/lib/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/sysroot/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/include/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/ vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/crtbegin_dynamic.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/crtbegin_so.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/crtbegin_static.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/crtend_android.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/basic_android_ndk_tree/sysroot/usr/lib/crtend_so.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/gcc_version_parsing5/ vendor/clang/dist/test/Driver/Inputs/gcc_version_parsing5/bin/ vendor/clang/dist/test/Driver/Inputs/gcc_version_parsing5/bin/.keep vendor/clang/dist/test/Driver/Inputs/gcc_version_parsing5/lib/ vendor/clang/dist/test/Driver/Inputs/gcc_version_parsing5/lib/gcc/ vendor/clang/dist/test/Driver/Inputs/gcc_version_parsing5/lib/gcc/i386-unknown-linux/ vendor/clang/dist/test/Driver/Inputs/gcc_version_parsing5/lib/gcc/i386-unknown-linux/4.9.2/ vendor/clang/dist/test/Driver/Inputs/gcc_version_parsing5/lib/gcc/i386-unknown-linux/4.9.2/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/gcc_version_parsing5/lib/gcc/i386-unknown-linux/5/ vendor/clang/dist/test/Driver/Inputs/gcc_version_parsing5/lib/gcc/i386-unknown-linux/5/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/ vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/ vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/include/ vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/ vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/ vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/ vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/ vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/ vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/ vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/.keep vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/x86_64-pc-linux-gnu/ vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/x86_64-pc-linux-gnu/lib/ vendor/clang/dist/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/x86_64-pc-linux-gnu/lib/.keep vendor/clang/dist/test/Driver/Inputs/header0.h (contents, props changed) vendor/clang/dist/test/Driver/Inputs/header1.h (contents, props changed) vendor/clang/dist/test/Driver/Inputs/header2.h (contents, props changed) vendor/clang/dist/test/Driver/Inputs/header3.h (contents, props changed) vendor/clang/dist/test/Driver/Inputs/header4.h (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/bin/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/bin/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/include/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-hard/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-hard/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-soft/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromips-r6-soft/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-hard/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-hard/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-soft/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/micromipsel-r6-soft/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib32/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib32/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib64/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-hard/lib64/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-soft/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mips-r6-soft/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib32/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib32/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib64/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-hard/lib64/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-soft/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/lib/gcc/mips-img-linux-gnu/4.9.2/mipsel-r6-soft/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/bin/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/bin/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromips-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/micromipsel-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mips-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/include/c++/4.9.2/mips-img-linux-gnu/mipsel-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromips-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/micromipsel-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mips-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/mips-img-linux-gnu/lib/mipsel-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-hard/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromips-r6-soft/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-hard/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/micromipsel-r6-soft/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib32/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-hard/usr/lib64/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mips-r6-soft/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib32/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-hard/usr/lib64/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_img_v2_tree/sysroot/mipsel-r6-soft/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/bin/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/bin/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-hard-nan2008/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-hard-nan2008/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-soft/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/micromipsel-r2-soft/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008-uclibc/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008-uclibc/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-nan2008/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-uclibc/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard-uclibc/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib32/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib32/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib64/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-hard/lib64/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-soft/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mips-r2-soft/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-nan2008/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-uclibc/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard-uclibc/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib32/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib32/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib64/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib64/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-soft/lib/crtbegin.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-soft/lib/crtend.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/bin/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/bin/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-hard-nan2008/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/micromipsel-r2-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-nan2008/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mips-r2-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-nan2008/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/include/c++/4.9.2/mipsel-r2-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-hard-nan2008/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/micromipsel-r2-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-nan2008/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mips-r2-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-nan2008/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/mips-mti-linux-gnu/lib/mipsel-r2-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-hard-nan2008/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/micromipsel-r2-soft/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008-uclibc/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-nan2008/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard-uclibc/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib32/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-hard/usr/lib64/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mips-r2-soft/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008-uclibc/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-nan2008/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard-uclibc/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib32/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/lib64/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib32/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-hard/usr/lib64/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/include/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/include/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/ vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/.keep vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crt1.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crti.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/mips_mti_tree/sysroot/mipsel-r2-soft/usr/lib/crtn.o (contents, props changed) vendor/clang/dist/test/Driver/Inputs/pchfile.cpp (contents, props changed) vendor/clang/dist/test/Driver/Inputs/pchfile.h (contents, props changed) vendor/clang/dist/test/Driver/Inputs/resource_dir/vtables_blacklist.txt (contents, props changed) vendor/clang/dist/test/Driver/aarch64-ras.c (contents, props changed) vendor/clang/dist/test/Driver/amdgpu-features.c (contents, props changed) vendor/clang/dist/test/Driver/android-ndk-standalone.cpp (contents, props changed) vendor/clang/dist/test/Driver/arm-ras.c (contents, props changed) vendor/clang/dist/test/Driver/as-dwarf-cie.s (contents, props changed) vendor/clang/dist/test/Driver/at_file_win.c (contents, props changed) vendor/clang/dist/test/Driver/at_file_win.c.args vendor/clang/dist/test/Driver/cl-pch-errorhandling.cpp (contents, props changed) vendor/clang/dist/test/Driver/cl-pch-search.cpp (contents, props changed) vendor/clang/dist/test/Driver/cl-pch-showincludes.cpp (contents, props changed) vendor/clang/dist/test/Driver/cl-pch.c (contents, props changed) vendor/clang/dist/test/Driver/cl-pch.cpp (contents, props changed) vendor/clang/dist/test/Driver/cuda-arch-translation.cu vendor/clang/dist/test/Driver/cuda-constructor-alias.cu vendor/clang/dist/test/Driver/cuda-external-tools.cu vendor/clang/dist/test/Driver/cuda-march.cu vendor/clang/dist/test/Driver/cuda-not-found.cu vendor/clang/dist/test/Driver/cuda-output-asm.cu vendor/clang/dist/test/Driver/cuda-version-check.cu vendor/clang/dist/test/Driver/cuda_phases.cu vendor/clang/dist/test/Driver/darwin-multiarch-arm.c (contents, props changed) vendor/clang/dist/test/Driver/darwin-stdlib.cpp (contents, props changed) vendor/clang/dist/test/Driver/dynamic-linker.c (contents, props changed) vendor/clang/dist/test/Driver/embed-bitcode.c (contents, props changed) vendor/clang/dist/test/Driver/emulated-tls.cpp (contents, props changed) vendor/clang/dist/test/Driver/esan.c (contents, props changed) vendor/clang/dist/test/Driver/fsjlj-exceptions.c (contents, props changed) vendor/clang/dist/test/Driver/fubsan-strip-path-components.cpp (contents, props changed) vendor/clang/dist/test/Driver/incompatible_sysroot.c (contents, props changed) vendor/clang/dist/test/Driver/lanai-toolchain.c (contents, props changed) vendor/clang/dist/test/Driver/lanai-unknown-unknown.cpp (contents, props changed) vendor/clang/dist/test/Driver/miamcu-opt.c (contents, props changed) vendor/clang/dist/test/Driver/miamcu-opt.cpp (contents, props changed) vendor/clang/dist/test/Driver/mips-img-v2.cpp (contents, props changed) vendor/clang/dist/test/Driver/mips-mti.cpp (contents, props changed) vendor/clang/dist/test/Driver/msvc-compiler-rt.c (contents, props changed) vendor/clang/dist/test/Driver/opencl.cl vendor/clang/dist/test/Driver/relax.c (contents, props changed) vendor/clang/dist/test/Driver/relax.s (contents, props changed) vendor/clang/dist/test/Driver/renderscript.rs vendor/clang/dist/test/Driver/response-file-extra-whitespace.c (contents, props changed) vendor/clang/dist/test/Driver/split-debug.h (contents, props changed) vendor/clang/dist/test/Driver/split-stack-ld.c (contents, props changed) vendor/clang/dist/test/Driver/whole-program-vtables.c (contents, props changed) vendor/clang/dist/test/Driver/win-macho-unwind.c (contents, props changed) vendor/clang/dist/test/Driver/x86-target-features.c (contents, props changed) vendor/clang/dist/test/Frontend/backend-option.c (contents, props changed) vendor/clang/dist/test/Frontend/embed-bitcode.ll vendor/clang/dist/test/Frontend/gnu-mcount.c (contents, props changed) vendor/clang/dist/test/Frontend/opencl.cl vendor/clang/dist/test/Frontend/plugin-annotate-functions.c (contents, props changed) vendor/clang/dist/test/Headers/float.c (contents, props changed) vendor/clang/dist/test/Headers/opencl-c-header.cl vendor/clang/dist/test/Index/Core/ vendor/clang/dist/test/Index/Core/Inputs/ vendor/clang/dist/test/Index/Core/Inputs/module/ vendor/clang/dist/test/Index/Core/Inputs/module/ModA.h (contents, props changed) vendor/clang/dist/test/Index/Core/Inputs/module/module.modulemap vendor/clang/dist/test/Index/Core/index-source.cpp (contents, props changed) vendor/clang/dist/test/Index/Core/index-source.m vendor/clang/dist/test/Index/Core/index-source.mm vendor/clang/dist/test/Index/Core/index-subkinds.m vendor/clang/dist/test/Index/Core/index-with-module.m vendor/clang/dist/test/Index/Inputs/preamble-with-implicit-import-A.h (contents, props changed) vendor/clang/dist/test/Index/Inputs/preamble-with-implicit-import-B.h (contents, props changed) vendor/clang/dist/test/Index/Inputs/preamble-with-implicit-import-C.h (contents, props changed) vendor/clang/dist/test/Index/Inputs/preamble-with-implicit-import.h (contents, props changed) vendor/clang/dist/test/Index/evaluate-cursor.cpp (contents, props changed) vendor/clang/dist/test/Index/keep-going.cpp (contents, props changed) vendor/clang/dist/test/Index/pch-warn-as-error-code-split.cpp (contents, props changed) vendor/clang/dist/test/Index/pch-warn-as-error-code-split.h (contents, props changed) vendor/clang/dist/test/Index/pch-warn-as-error-code.cpp (contents, props changed) vendor/clang/dist/test/Index/preamble-with-implicit-import.m vendor/clang/dist/test/Layout/ms-x86-declspec-empty_bases.cpp (contents, props changed) vendor/clang/dist/test/Lexer/Inputs/case-insensitive-include.h (contents, props changed) vendor/clang/dist/test/Lexer/case-insensitive-include-ms.c (contents, props changed) vendor/clang/dist/test/Lexer/case-insensitive-include.c (contents, props changed) vendor/clang/dist/test/Lexer/case-insensitive-system-include.c (contents, props changed) vendor/clang/dist/test/Lexer/eof-conflict-marker.c (contents, props changed) vendor/clang/dist/test/Lexer/half-literal.cpp (contents, props changed) vendor/clang/dist/test/Lexer/has_feature_efficiency_sanitizer.cpp (contents, props changed) vendor/clang/dist/test/Lexer/opencl-half-literal.cl vendor/clang/dist/test/Misc/amdgcn.languageOptsOpenCL.cl vendor/clang/dist/test/Misc/ast-dump-pipe.cl vendor/clang/dist/test/Misc/backend-resource-limit-diagnostics.cl vendor/clang/dist/test/Misc/diag-null-bytes-in-line.cpp (contents, props changed) vendor/clang/dist/test/Misc/nvptx.languageOptsOpenCL.cl vendor/clang/dist/test/Misc/r600.languageOptsOpenCL.cl vendor/clang/dist/test/Misc/target-parser.c (contents, props changed) vendor/clang/dist/test/Modules/Inputs/MacroFabs1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/MethodPoolCombined1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/MethodPoolCombined2.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/MethodPoolString1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/MethodPoolString2.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR21547/ vendor/clang/dist/test/Modules/Inputs/PR21547/FirstHeader.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR21547/module.modulemap vendor/clang/dist/test/Modules/Inputs/PR24954/ vendor/clang/dist/test/Modules/Inputs/PR24954/A.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR24954/B.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR24954/module.modulemap vendor/clang/dist/test/Modules/Inputs/PR25501/ vendor/clang/dist/test/Modules/Inputs/PR25501/Vector.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR25501/a0.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR25501/a1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR25501/a2.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR25501/b.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR25501/module.modulemap vendor/clang/dist/test/Modules/Inputs/PR26014/ vendor/clang/dist/test/Modules/Inputs/PR26014/A.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR26014/B.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR26014/module.modulemap vendor/clang/dist/test/Modules/Inputs/PR26179/ vendor/clang/dist/test/Modules/Inputs/PR26179/A.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR26179/B.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR26179/basic_string.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR26179/module.modulemap vendor/clang/dist/test/Modules/Inputs/PR27041/ vendor/clang/dist/test/Modules/Inputs/PR27041/Rtypes.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27041/TGenericClassInfo.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27041/TSchemaHelper.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27041/module.modulemap vendor/clang/dist/test/Modules/Inputs/PR27186/ vendor/clang/dist/test/Modules/Inputs/PR27186/Rtypes.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27186/module.modulemap vendor/clang/dist/test/Modules/Inputs/PR27186/stddef.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27186/time.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27401/ vendor/clang/dist/test/Modules/Inputs/PR27401/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27401/b.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27401/module.modulemap vendor/clang/dist/test/Modules/Inputs/PR27513/ vendor/clang/dist/test/Modules/Inputs/PR27513/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27513/b.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27513/b1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27513/b11.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27513/b111.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27513/b1111.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27513/b1112.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27513/b2.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27513/c.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27513/module.modulemap vendor/clang/dist/test/Modules/Inputs/PR27513/mystring.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27739/ vendor/clang/dist/test/Modules/Inputs/PR27739/DataInputHandler.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27739/Types.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27739/map vendor/clang/dist/test/Modules/Inputs/PR27739/module.modulemap vendor/clang/dist/test/Modules/Inputs/PR27754/ vendor/clang/dist/test/Modules/Inputs/PR27754/RConversionRuleParser.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27754/TMetaUtils.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27754/TSchemaType.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27754/algobase.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27754/module.modulemap vendor/clang/dist/test/Modules/Inputs/PR27890/ vendor/clang/dist/test/Modules/Inputs/PR27890/a.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/PR27890/module.modulemap vendor/clang/dist/test/Modules/Inputs/UseAfterFree/ vendor/clang/dist/test/Modules/Inputs/UseAfterFree/UseAfterFreePrivate.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/UseAfterFree/UseAfterFreePublic.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/UseAfterFree/module.map vendor/clang/dist/test/Modules/Inputs/UseAfterFree/module_private.map vendor/clang/dist/test/Modules/Inputs/crash-recovery/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/A.framework/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/A.framework/Headers/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/A.framework/Headers/A.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/B.framework/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/B.framework/Headers/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/B.framework/Headers/B.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/B.framework/Modules/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/B.framework/Modules/module.modulemap vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/I.framework/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/I.framework/Headers/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/I.framework/Headers/I.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/I.framework/Modules/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/I.framework/Modules/module.modulemap vendor/clang/dist/test/Modules/Inputs/crash-recovery/Frameworks/module.modulemap vendor/clang/dist/test/Modules/Inputs/crash-recovery/usr/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/usr/include/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/usr/include/module.map vendor/clang/dist/test/Modules/Inputs/crash-recovery/usr/include/pthread/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/usr/include/pthread.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/crash-recovery/usr/include/pthread/pthread_impl.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/crash-recovery/usr/include/pthread_impl.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/crash-recovery/usr/include/stdio.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/crash-recovery/usr/include/tcl-private/ vendor/clang/dist/test/Modules/Inputs/crash-recovery/usr/include/tcl-private/header.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/cxx-templates-unimported.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/getSourceDescriptor-crash/ vendor/clang/dist/test/Modules/Inputs/getSourceDescriptor-crash/h1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/getSourceDescriptor-crash/module.modulemap vendor/clang/dist/test/Modules/Inputs/non-module.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/pch-import-module-with-macro.pch vendor/clang/dist/test/Modules/Inputs/suggest-include/ vendor/clang/dist/test/Modules/Inputs/suggest-include/empty.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/module.modulemap vendor/clang/dist/test/Modules/Inputs/suggest-include/private1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/private2.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/private3.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/textual1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/textual2.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/textual3.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/textual4.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/textual5.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/useprivate1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/useprivate3.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/usetextual1.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/usetextual2.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/usetextual3.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/usetextual4.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/suggest-include/usetextual5.h (contents, props changed) vendor/clang/dist/test/Modules/Inputs/typo.h (contents, props changed) vendor/clang/dist/test/Modules/crash-vfs-path-emptydir-entries.m vendor/clang/dist/test/Modules/crash-vfs-path-symlink-component.m vendor/clang/dist/test/Modules/crash-vfs-path-symlink-topheader.m vendor/clang/dist/test/Modules/crash-vfs-path-traversal.m vendor/clang/dist/test/Modules/crash-vfs-relative-overlay.m vendor/clang/dist/test/Modules/crash-vfs-run-reproducer.m vendor/clang/dist/test/Modules/crash-vfs-umbrella-frameworks.m vendor/clang/dist/test/Modules/embed-files-compressed.cpp (contents, props changed) vendor/clang/dist/test/Modules/getSourceDescriptor-crash.cpp (contents, props changed) vendor/clang/dist/test/Modules/implicit-build-config-out-of-date.m vendor/clang/dist/test/Modules/include-own-headers.m vendor/clang/dist/test/Modules/method_pool_write.m vendor/clang/dist/test/Modules/minimal-identifier-tables.cpp (contents, props changed) vendor/clang/dist/test/Modules/parse-attributes.modulemap vendor/clang/dist/test/Modules/pch-module-macro.m vendor/clang/dist/test/Modules/pr21547.cpp (contents, props changed) vendor/clang/dist/test/Modules/pr24954.cpp (contents, props changed) vendor/clang/dist/test/Modules/pr25501.cpp (contents, props changed) vendor/clang/dist/test/Modules/pr26014.cpp (contents, props changed) vendor/clang/dist/test/Modules/pr26179.cpp (contents, props changed) vendor/clang/dist/test/Modules/pr27041.cpp (contents, props changed) vendor/clang/dist/test/Modules/pr27186.cpp (contents, props changed) vendor/clang/dist/test/Modules/pr27401.cpp (contents, props changed) vendor/clang/dist/test/Modules/pr27513.cpp (contents, props changed) vendor/clang/dist/test/Modules/pr27739.cpp (contents, props changed) vendor/clang/dist/test/Modules/pr27754.cpp (contents, props changed) vendor/clang/dist/test/Modules/pr27890.cpp (contents, props changed) vendor/clang/dist/test/Modules/preprocess.cpp (contents, props changed) vendor/clang/dist/test/Modules/suggest-include.cpp (contents, props changed) vendor/clang/dist/test/Modules/typo.m vendor/clang/dist/test/Modules/use-after-free.m vendor/clang/dist/test/OpenMP/declare_reduction_ast_print.c (contents, props changed) vendor/clang/dist/test/OpenMP/declare_reduction_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/declare_reduction_codegen.c (contents, props changed) vendor/clang/dist/test/OpenMP/declare_reduction_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/declare_reduction_messages.c (contents, props changed) vendor/clang/dist/test/OpenMP/declare_reduction_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/declare_simd_ast_print.c (contents, props changed) vendor/clang/dist/test/OpenMP/declare_simd_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/declare_simd_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/declare_simd_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/declare_target_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/declare_target_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_dist_schedule_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_dist_schedule_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_collapse_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_copyin_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_default_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_dist_schedule_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_firstprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_if_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_lastprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_num_threads_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_private_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_proc_bind_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_reduction_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_schedule_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_shared_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_aligned_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_collapse_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_copyin_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_default_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_dist_schedule_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_firstprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_if_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_lastprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_linear_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_loop_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_misc_messages.c (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_num_threads_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_private_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_proc_bind_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_reduction_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_safelen_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_schedule_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_shared_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_parallel_for_simd_simdlen_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_aligned_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_collapse_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_dist_schedule_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_firstprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_lastprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_linear_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_loop_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_misc_messages.c (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_private_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_reduction_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_safelen_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/distribute_simd_simdlen_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/dump.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/for_reduction_codegen_UDR.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/loops_explicit_clauses_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/nvptx_target_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/nvptx_target_firstprivate_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/nvptx_teams_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/ordered_doacross_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_data_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_data_use_device_ptr_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_data_use_device_ptr_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_defaultmap_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_depend_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_enter_data_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_enter_data_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_enter_data_depend_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_enter_data_device_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_enter_data_if_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_enter_data_map_messages.c (contents, props changed) vendor/clang/dist/test/OpenMP/target_enter_data_nowait_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_exit_data_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_exit_data_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_exit_data_depend_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_exit_data_device_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_exit_data_if_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_exit_data_map_messages.c (contents, props changed) vendor/clang/dist/test/OpenMP/target_exit_data_nowait_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_firstprivate_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_firstprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_is_device_ptr_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_is_device_ptr_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_nowait_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_default_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_defaultmap_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_depend_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_device_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_firstprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_collapse_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_default_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_defaultmap_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_depend_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_device_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_firstprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_if_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_lastprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_linear_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_loop_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_map_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_misc_messages.c (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_nowait_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_num_threads_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_ordered_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_private_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_proc_bind_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_reduction_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_schedule_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_aligned_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_collapse_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_default_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_defaultmap_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_depend_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_device_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_firstprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_if_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_lastprivate_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_linear_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_loop_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_map_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_misc_messages.c (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_nowait_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_num_threads_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_ordered_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_private_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_proc_bind_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_reduction_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_safelen_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_schedule_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_for_simd_simdlen_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_if_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_map_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_nowait_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_num_threads_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_private_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_proc_bind_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_reduction_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_parallel_shared_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_private_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_private_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_update_ast_print.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_update_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_update_depend_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_update_device_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_update_from_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_update_if_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_update_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_update_nowait_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/target_update_to_messages.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_firstprivate_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_lastprivate_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_private_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_firstprivate_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_lastprivate_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/taskloop_simd_private_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/teams_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/teams_firstprivate_codegen.cpp (contents, props changed) vendor/clang/dist/test/OpenMP/teams_private_codegen.cpp (contents, props changed) vendor/clang/dist/test/PCH/Inputs/__va_list_tag-typedef.h (contents, props changed) vendor/clang/dist/test/PCH/Inputs/libroot/ vendor/clang/dist/test/PCH/Inputs/libroot/usr/ vendor/clang/dist/test/PCH/Inputs/libroot/usr/include/ vendor/clang/dist/test/PCH/Inputs/libroot/usr/include/reloc.h (contents, props changed) vendor/clang/dist/test/PCH/Inputs/libroot/usr/include/reloc2.h (contents, props changed) vendor/clang/dist/test/PCH/Inputs/pr27445.h (contents, props changed) vendor/clang/dist/test/PCH/Inputs/pragma-once2-pch.h (contents, props changed) vendor/clang/dist/test/PCH/Inputs/pragma-once2.h (contents, props changed) vendor/clang/dist/test/PCH/__va_list_tag-typedef.c (contents, props changed) vendor/clang/dist/test/PCH/chain-invalid-code.cpp (contents, props changed) vendor/clang/dist/test/PCH/cxx-variadic-templates-with-default-params.cpp (contents, props changed) vendor/clang/dist/test/PCH/cxx1z-init-statement.cpp (contents, props changed) vendor/clang/dist/test/PCH/cxx1z-init-statement.h (contents, props changed) vendor/clang/dist/test/PCH/debug-info-pch-path.c (contents, props changed) vendor/clang/dist/test/PCH/include-timestamp.cpp (contents, props changed) vendor/clang/dist/test/PCH/pr27445.cpp (contents, props changed) vendor/clang/dist/test/PCH/pragma-comment.c (contents, props changed) vendor/clang/dist/test/PCH/pragma-detect_mismatch.c (contents, props changed) vendor/clang/dist/test/PCH/pragma-ms_struct.cpp (contents, props changed) vendor/clang/dist/test/PCH/pragma-pointers_to_members.cpp (contents, props changed) vendor/clang/dist/test/PCH/type_pack_element.cpp (contents, props changed) vendor/clang/dist/test/PCH/uuidof.cpp (contents, props changed) vendor/clang/dist/test/Parser/cxx-ambig-paren-expr-asan.cpp (contents, props changed) vendor/clang/dist/test/Parser/cxx-invalid-for-range.cpp (contents, props changed) vendor/clang/dist/test/Parser/cxx-invalid-function-decl.cpp (contents, props changed) vendor/clang/dist/test/Parser/cxx1z-constexpr-lambdas.cpp (contents, props changed) vendor/clang/dist/test/Parser/cxx1z-init-statement.cpp (contents, props changed) vendor/clang/dist/test/Parser/ms-anachronism.c (contents, props changed) vendor/clang/dist/test/Parser/objc-available.m vendor/clang/dist/test/Parser/objc-class-property.m vendor/clang/dist/test/Parser/objc-default-ctor-init.mm vendor/clang/dist/test/Parser/objcxx11-messaging-and-lambda.mm vendor/clang/dist/test/Parser/objcxx14-protocol-in-template.mm vendor/clang/dist/test/Parser/opencl-unroll-hint.cl vendor/clang/dist/test/Preprocessor/Weverything_pragma.c (contents, props changed) vendor/clang/dist/test/Preprocessor/bigoutput.c (contents, props changed) vendor/clang/dist/test/Preprocessor/cuda-approx-transcendentals.cu vendor/clang/dist/test/Preprocessor/cuda-preprocess.cu vendor/clang/dist/test/Preprocessor/cuda-types.cu vendor/clang/dist/test/Preprocessor/hexagon-predefines.c (contents, props changed) vendor/clang/dist/test/Preprocessor/sysroot-prefix.c (contents, props changed) vendor/clang/dist/test/Profile/Inputs/profile-summary.proftext vendor/clang/dist/test/Profile/c-avoid-direct-call.c (contents, props changed) vendor/clang/dist/test/Profile/c-indirect-call.c (contents, props changed) vendor/clang/dist/test/Profile/cxx-indirect-call.cpp (contents, props changed) vendor/clang/dist/test/Profile/def-assignop.cpp (contents, props changed) vendor/clang/dist/test/Profile/def-ctors.cpp (contents, props changed) vendor/clang/dist/test/Profile/def-dtors.cpp (contents, props changed) vendor/clang/dist/test/Profile/profile-summary.c (contents, props changed) vendor/clang/dist/test/Sema/arm-no-fp16.c (contents, props changed) vendor/clang/dist/test/Sema/arm64-neon-header.c (contents, props changed) vendor/clang/dist/test/Sema/arm_vfma.c (contents, props changed) vendor/clang/dist/test/Sema/attr-ifunc.c (contents, props changed) vendor/clang/dist/test/Sema/attr-mode-enums.c (contents, props changed) vendor/clang/dist/test/Sema/attr-swiftcall.c (contents, props changed) vendor/clang/dist/test/Sema/attr-x86-interrupt.c (contents, props changed) vendor/clang/dist/test/Sema/bitfield-layout_1.c (contents, props changed) vendor/clang/dist/test/Sema/builtin-classify-type.c (contents, props changed) vendor/clang/dist/test/Sema/callingconv-cast.c (contents, props changed) vendor/clang/dist/test/Sema/enable_if-ext.c (contents, props changed) vendor/clang/dist/test/Sema/float128-ld-incompatibility.cpp (contents, props changed) vendor/clang/dist/test/Sema/libbuiltins-ctype-powerpc64.c (contents, props changed) vendor/clang/dist/test/Sema/libbuiltins-ctype-x86_64.c (contents, props changed) vendor/clang/dist/test/Sema/pr25786.c (contents, props changed) vendor/clang/dist/test/Sema/preserve-call-conv.c (contents, props changed) vendor/clang/dist/test/Sema/renderscript.rs vendor/clang/dist/test/Sema/xray-always-instrument-attr.c (contents, props changed) vendor/clang/dist/test/Sema/xray-always-instrument-attr.cpp (contents, props changed) vendor/clang/dist/test/SemaCUDA/Inputs/cuda-initializers.h (contents, props changed) vendor/clang/dist/test/SemaCUDA/Inputs/overload.h (contents, props changed) vendor/clang/dist/test/SemaCUDA/addr-of-overloaded-fn.cu vendor/clang/dist/test/SemaCUDA/alias.cu vendor/clang/dist/test/SemaCUDA/call-overloaded-destructor.cu vendor/clang/dist/test/SemaCUDA/cxx11-kernel-call.cu vendor/clang/dist/test/SemaCUDA/device-var-init.cu vendor/clang/dist/test/SemaCUDA/host-device-constexpr.cu vendor/clang/dist/test/SemaCUDA/no-host-device-constexpr.cu vendor/clang/dist/test/SemaCUDA/overloaded-delete.cu vendor/clang/dist/test/SemaCUDA/pr27778.cu vendor/clang/dist/test/SemaCUDA/vararg.cu vendor/clang/dist/test/SemaCXX/atomic-ops.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/attr-abi-tag-syntax.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/attr-deprecated-replacement-error.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/attr-deprecated-replacement-fixit.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/attr-lto-visibility-public.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/attr-mode-tmpl.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/attr-swiftcall.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/attr-x86-interrupt.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/builtin-classify-type.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/builtin-object-size-cxx14.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/constant-expression-cxx1z.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/cxx1z-constexpr-lambdas.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/cxx1z-init-statement-warn-unused.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/cxx1z-init-statement.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/cxx1z-lambda-star-this.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/delete-and-function-templates.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/diagnostic-order.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/eval-sizeof-dependent-type.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/ms-const-member-expr.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/ms-empty_bases.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/ms-layout_version.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/pr25181-crash-on-invalid.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/pr27047-default-init-expr-name-conflict.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/return-stack-addr-2.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/switch-implicit-fallthrough-off-by-default.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/type_pack_element.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/typo-correction-crash.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/unaddressable-functions.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/varargs.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/vartemplate-lambda.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/vla-consruct.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/warn-comma-operator.cpp (contents, props changed) vendor/clang/dist/test/SemaObjC/arc-objc-lifetime-conflict.m vendor/clang/dist/test/SemaObjC/attr-nodebug.m vendor/clang/dist/test/SemaObjC/attr-objc-runtime-visible.m vendor/clang/dist/test/SemaObjC/block-omitted-return-type.m vendor/clang/dist/test/SemaObjC/dllexport.m vendor/clang/dist/test/SemaObjC/dllimport.m vendor/clang/dist/test/SemaObjC/format-strings-utf8.m vendor/clang/dist/test/SemaObjC/objc-class-property.m vendor/clang/dist/test/SemaObjC/property-atomic-bool.m vendor/clang/dist/test/SemaObjC/typo-correction-arc.m vendor/clang/dist/test/SemaObjC/warn-loop-analysis.m vendor/clang/dist/test/SemaObjCXX/base-type-as-written.mm vendor/clang/dist/test/SemaObjCXX/block-cleanup.mm vendor/clang/dist/test/SemaObjCXX/block-for-lambda-conversion.mm vendor/clang/dist/test/SemaObjCXX/dllexport.mm vendor/clang/dist/test/SemaObjCXX/dllimport.mm vendor/clang/dist/test/SemaObjCXX/typeloc-data-alignment.mm vendor/clang/dist/test/SemaObjCXX/typo-correction.mm vendor/clang/dist/test/SemaOpenCL/access-qualifier.cl vendor/clang/dist/test/SemaOpenCL/as_type.cl vendor/clang/dist/test/SemaOpenCL/bool-vectors.cl vendor/clang/dist/test/SemaOpenCL/builtin.cl vendor/clang/dist/test/SemaOpenCL/cl20-device-side-enqueue.cl vendor/clang/dist/test/SemaOpenCL/clang-builtin-version.cl vendor/clang/dist/test/SemaOpenCL/extension-version.cl vendor/clang/dist/test/SemaOpenCL/extensions.cl vendor/clang/dist/test/SemaOpenCL/images.cl vendor/clang/dist/test/SemaOpenCL/invalid-block.cl vendor/clang/dist/test/SemaOpenCL/invalid-image.cl vendor/clang/dist/test/SemaOpenCL/invalid-pipe-builtin-cl2.0.cl vendor/clang/dist/test/SemaOpenCL/nosvm.cl vendor/clang/dist/test/SemaOpenCL/to_addr_builtin.cl vendor/clang/dist/test/SemaOpenCL/unroll-hint.cl vendor/clang/dist/test/SemaTemplate/undefined-template.cpp (contents, props changed) vendor/clang/dist/tools/c-index-test/core_main.cpp (contents, props changed) vendor/clang/dist/tools/libclang/CXIndexDataConsumer.cpp (contents, props changed) vendor/clang/dist/tools/libclang/CXIndexDataConsumer.h (contents, props changed) vendor/clang/dist/tools/scan-build-py/bin/analyze-build.bat vendor/clang/dist/tools/scan-build-py/bin/analyze-c++.bat vendor/clang/dist/tools/scan-build-py/bin/analyze-cc.bat vendor/clang/dist/tools/scan-build-py/bin/intercept-build.bat vendor/clang/dist/tools/scan-build-py/bin/intercept-c++.bat vendor/clang/dist/tools/scan-build-py/bin/intercept-cc.bat vendor/clang/dist/tools/scan-build-py/bin/scan-build.bat vendor/clang/dist/tools/scan-build-py/libscanbuild/compilation.py (contents, props changed) vendor/clang/dist/tools/scan-build-py/tests/unit/test_compilation.py (contents, props changed) vendor/clang/dist/tools/scan-build-py/tests/unit/test_libear.py (contents, props changed) vendor/clang/dist/unittests/AST/ASTImporterTest.cpp (contents, props changed) vendor/clang/dist/unittests/AST/PostOrderASTVisitor.cpp (contents, props changed) vendor/clang/dist/unittests/ASTMatchers/ASTMatchersInternalTest.cpp (contents, props changed) vendor/clang/dist/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp (contents, props changed) vendor/clang/dist/unittests/ASTMatchers/ASTMatchersNodeTest.cpp (contents, props changed) vendor/clang/dist/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp (contents, props changed) vendor/clang/dist/unittests/Analysis/ vendor/clang/dist/unittests/Analysis/CFGTest.cpp (contents, props changed) vendor/clang/dist/unittests/Analysis/CMakeLists.txt (contents, props changed) vendor/clang/dist/unittests/Format/CleanupTest.cpp (contents, props changed) vendor/clang/dist/unittests/Format/SortImportsTestJS.cpp (contents, props changed) vendor/clang/dist/unittests/Frontend/CodeGenActionTest.cpp (contents, props changed) vendor/clang/dist/unittests/Lex/HeaderMapTest.cpp (contents, props changed) vendor/clang/dist/unittests/Tooling/FixItTest.cpp (contents, props changed) vendor/clang/dist/unittests/Tooling/QualTypeNamesTest.cpp (contents, props changed) vendor/clang/dist/utils/ClangVisualizers/ vendor/clang/dist/utils/ClangVisualizers/CMakeLists.txt (contents, props changed) vendor/clang/dist/utils/ClangVisualizers/clang.natvis vendor/clang/dist/utils/modfuzz.py (contents, props changed) vendor/clang/dist/utils/perf-training/order-files.lit.cfg vendor/clang/dist/utils/perf-training/order-files.lit.site.cfg.in (contents, props changed) Deleted: vendor/clang/dist/Makefile vendor/clang/dist/cmake/modules/ClangConfig.cmake vendor/clang/dist/docs/Makefile vendor/clang/dist/docs/analyzer/Makefile vendor/clang/dist/docs/doxygen.intro vendor/clang/dist/examples/Makefile vendor/clang/dist/examples/PrintFunctionNames/Makefile vendor/clang/dist/examples/analyzer-plugin/Makefile vendor/clang/dist/examples/clang-interpreter/Makefile vendor/clang/dist/include/Makefile vendor/clang/dist/include/clang-c/Makefile vendor/clang/dist/include/clang/AST/Makefile vendor/clang/dist/include/clang/Basic/Makefile vendor/clang/dist/include/clang/Config/config.h.in vendor/clang/dist/include/clang/Driver/Makefile vendor/clang/dist/include/clang/Makefile vendor/clang/dist/include/clang/Parse/Makefile vendor/clang/dist/include/clang/Sema/LocInfoType.h vendor/clang/dist/include/clang/Sema/Makefile vendor/clang/dist/include/clang/Serialization/Makefile vendor/clang/dist/lib/ARCMigrate/Makefile vendor/clang/dist/lib/AST/Makefile vendor/clang/dist/lib/ASTMatchers/Dynamic/Makefile vendor/clang/dist/lib/ASTMatchers/Makefile vendor/clang/dist/lib/Analysis/Makefile vendor/clang/dist/lib/Basic/Makefile vendor/clang/dist/lib/CodeGen/Makefile vendor/clang/dist/lib/Driver/Makefile vendor/clang/dist/lib/Edit/Makefile vendor/clang/dist/lib/Format/Makefile vendor/clang/dist/lib/Frontend/Makefile vendor/clang/dist/lib/Frontend/Rewrite/Makefile vendor/clang/dist/lib/FrontendTool/Makefile vendor/clang/dist/lib/Headers/Intrin.h vendor/clang/dist/lib/Headers/Makefile vendor/clang/dist/lib/Index/Makefile vendor/clang/dist/lib/Lex/Makefile vendor/clang/dist/lib/Makefile vendor/clang/dist/lib/Parse/Makefile vendor/clang/dist/lib/Rewrite/Makefile vendor/clang/dist/lib/Sema/Makefile vendor/clang/dist/lib/Serialization/Makefile vendor/clang/dist/lib/StaticAnalyzer/Checkers/Checkers.td vendor/clang/dist/lib/StaticAnalyzer/Checkers/Makefile vendor/clang/dist/lib/StaticAnalyzer/Core/Makefile vendor/clang/dist/lib/StaticAnalyzer/Frontend/Makefile vendor/clang/dist/lib/StaticAnalyzer/Makefile vendor/clang/dist/lib/Tooling/Core/Makefile vendor/clang/dist/lib/Tooling/Makefile vendor/clang/dist/runtime/Makefile vendor/clang/dist/runtime/compiler-rt/Makefile vendor/clang/dist/runtime/libcxx/Makefile vendor/clang/dist/test/ARCMT/with space/ vendor/clang/dist/test/Analysis/analyze_display_progress.c vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p3-cxx0x.cpp vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p6-cxx0x.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.aggr/p1-0x.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.init/dcl.init.list/p3-0x.cpp vendor/clang/dist/test/CodeGen/arm64-scalar-test.c vendor/clang/dist/test/CodeGen/arm64-vrsqrt.c vendor/clang/dist/test/CodeGen/arm64_neon_high_half.c vendor/clang/dist/test/CodeGen/arm64_vCMP.c vendor/clang/dist/test/CodeGen/arm64_vLdStNum_lane.c vendor/clang/dist/test/CodeGen/arm64_vMaxMin.c vendor/clang/dist/test/CodeGen/arm64_vadd.c vendor/clang/dist/test/CodeGen/arm64_vca.c vendor/clang/dist/test/CodeGen/arm64_vcvtfp.c vendor/clang/dist/test/CodeGen/arm64_vecCmpBr.c vendor/clang/dist/test/CodeGen/arm64_vext.c vendor/clang/dist/test/CodeGen/arm64_vfma.c vendor/clang/dist/test/CodeGen/arm64_vneg.c vendor/clang/dist/test/CodeGen/arm64_vqmov.c vendor/clang/dist/test/CodeGen/arm64_vrecps.c vendor/clang/dist/test/CodeGen/arm64_vshift.c vendor/clang/dist/test/CodeGen/arm64_vsli.c vendor/clang/dist/test/CodeGen/arm64_vsri.c vendor/clang/dist/test/CodeGen/arm64_vtst.c vendor/clang/dist/test/CodeGen/thinlto_backend.c vendor/clang/dist/test/CodeGenCXX/cfi-vcall.cpp vendor/clang/dist/test/Driver/Inputs/basic_nacl_tree/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/fp64/ vendor/clang/dist/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/fp64/ vendor/clang/dist/test/Frontend/std.cl vendor/clang/dist/test/Makefile vendor/clang/dist/test/PCH/libroot/ vendor/clang/dist/test/Profile/max-function-count.c vendor/clang/dist/test/Sema/varargs.cpp vendor/clang/dist/test/SemaCUDA/function-target-disabled-check.cu vendor/clang/dist/test/SemaCUDA/function-target-hd.cu vendor/clang/dist/test/SemaOpenCL/extension-fp64-cl1.1.cl vendor/clang/dist/test/SemaOpenCL/extension-fp64.cl vendor/clang/dist/test/SemaOpenCL/optional-core-fp64-cl1.2.cl vendor/clang/dist/test/SemaOpenCL/optional-core-fp64-cl2.0.cl vendor/clang/dist/tools/Makefile vendor/clang/dist/tools/arcmt-test/Makefile vendor/clang/dist/tools/c-arcmt-test/Makefile vendor/clang/dist/tools/c-index-test/Makefile vendor/clang/dist/tools/clang-check/Makefile vendor/clang/dist/tools/clang-format/Makefile vendor/clang/dist/tools/diagtool/Makefile vendor/clang/dist/tools/driver/Makefile vendor/clang/dist/tools/libclang/IndexBody.cpp vendor/clang/dist/tools/libclang/IndexDecl.cpp vendor/clang/dist/tools/libclang/IndexTypeSourceInfo.cpp vendor/clang/dist/tools/libclang/IndexingContext.cpp vendor/clang/dist/tools/libclang/IndexingContext.h vendor/clang/dist/tools/libclang/Makefile vendor/clang/dist/tools/scan-build-py/libscanbuild/command.py vendor/clang/dist/tools/scan-build-py/tests/unit/fixtures.py vendor/clang/dist/tools/scan-build-py/tests/unit/test_command.py vendor/clang/dist/tools/scan-build/Makefile vendor/clang/dist/tools/scan-view/Makefile vendor/clang/dist/unittests/AST/Makefile vendor/clang/dist/unittests/ASTMatchers/ASTMatchersTest.cpp vendor/clang/dist/unittests/ASTMatchers/Dynamic/Makefile vendor/clang/dist/unittests/ASTMatchers/Makefile vendor/clang/dist/unittests/Basic/Makefile vendor/clang/dist/unittests/CodeGen/Makefile vendor/clang/dist/unittests/Driver/Makefile vendor/clang/dist/unittests/Format/Makefile vendor/clang/dist/unittests/Frontend/Makefile vendor/clang/dist/unittests/Lex/Makefile vendor/clang/dist/unittests/Makefile vendor/clang/dist/unittests/Rewrite/Makefile vendor/clang/dist/unittests/Sema/Makefile vendor/clang/dist/unittests/StaticAnalyzer/Makefile vendor/clang/dist/unittests/Tooling/Makefile vendor/clang/dist/unittests/libclang/Makefile vendor/clang/dist/utils/TableGen/Makefile vendor/clang/dist/utils/VtableTest/Makefile vendor/clang/dist/utils/clang.natvis Modified: vendor/clang/dist/.arcconfig vendor/clang/dist/.clang-tidy vendor/clang/dist/.gitignore vendor/clang/dist/CMakeLists.txt vendor/clang/dist/CODE_OWNERS.TXT vendor/clang/dist/LICENSE.TXT vendor/clang/dist/bindings/python/clang/cindex.py vendor/clang/dist/bindings/python/tests/cindex/test_cdb.py vendor/clang/dist/bindings/python/tests/cindex/test_cursor.py vendor/clang/dist/bindings/python/tests/cindex/test_diagnostics.py vendor/clang/dist/cmake/caches/Apple-stage1.cmake vendor/clang/dist/cmake/caches/Apple-stage2.cmake vendor/clang/dist/cmake/caches/README.txt vendor/clang/dist/docs/AddressSanitizer.rst vendor/clang/dist/docs/AttributeReference.rst vendor/clang/dist/docs/CMakeLists.txt vendor/clang/dist/docs/ClangFormat.rst vendor/clang/dist/docs/ClangFormatStyleOptions.rst vendor/clang/dist/docs/ClangPlugins.rst vendor/clang/dist/docs/CommandGuide/clang.rst vendor/clang/dist/docs/ControlFlowIntegrity.rst vendor/clang/dist/docs/ControlFlowIntegrityDesign.rst vendor/clang/dist/docs/CrossCompilation.rst vendor/clang/dist/docs/InternalsManual.rst vendor/clang/dist/docs/LanguageExtensions.rst vendor/clang/dist/docs/LeakSanitizer.rst vendor/clang/dist/docs/LibASTMatchersReference.html vendor/clang/dist/docs/MSVCCompatibility.rst vendor/clang/dist/docs/MemorySanitizer.rst vendor/clang/dist/docs/PCHInternals.rst vendor/clang/dist/docs/ReleaseNotes.rst vendor/clang/dist/docs/SafeStack.rst vendor/clang/dist/docs/SanitizerCoverage.rst vendor/clang/dist/docs/ThreadSanitizer.rst vendor/clang/dist/docs/UndefinedBehaviorSanitizer.rst vendor/clang/dist/docs/UsersManual.rst vendor/clang/dist/docs/analyzer/DebugChecks.rst vendor/clang/dist/docs/analyzer/conf.py vendor/clang/dist/docs/conf.py vendor/clang/dist/docs/doxygen.cfg.in vendor/clang/dist/docs/index.rst vendor/clang/dist/docs/tools/dump_ast_matchers.py vendor/clang/dist/docs/tools/dump_format_style.py vendor/clang/dist/examples/CMakeLists.txt vendor/clang/dist/examples/PrintFunctionNames/CMakeLists.txt vendor/clang/dist/examples/analyzer-plugin/CMakeLists.txt vendor/clang/dist/include/clang-c/Index.h vendor/clang/dist/include/clang/ARCMigrate/ARCMTActions.h vendor/clang/dist/include/clang/AST/ASTConsumer.h vendor/clang/dist/include/clang/AST/ASTContext.h vendor/clang/dist/include/clang/AST/ASTImporter.h vendor/clang/dist/include/clang/AST/ASTMutationListener.h vendor/clang/dist/include/clang/AST/ASTTypeTraits.h vendor/clang/dist/include/clang/AST/Attr.h vendor/clang/dist/include/clang/AST/BaseSubobject.h vendor/clang/dist/include/clang/AST/BuiltinTypes.def vendor/clang/dist/include/clang/AST/CanonicalType.h vendor/clang/dist/include/clang/AST/CharUnits.h vendor/clang/dist/include/clang/AST/Decl.h vendor/clang/dist/include/clang/AST/DeclBase.h vendor/clang/dist/include/clang/AST/DeclCXX.h vendor/clang/dist/include/clang/AST/DeclFriend.h vendor/clang/dist/include/clang/AST/DeclObjC.h vendor/clang/dist/include/clang/AST/DeclOpenMP.h vendor/clang/dist/include/clang/AST/DeclTemplate.h vendor/clang/dist/include/clang/AST/DeclarationName.h vendor/clang/dist/include/clang/AST/Expr.h vendor/clang/dist/include/clang/AST/ExprCXX.h vendor/clang/dist/include/clang/AST/ExprObjC.h vendor/clang/dist/include/clang/AST/ExprOpenMP.h vendor/clang/dist/include/clang/AST/GlobalDecl.h vendor/clang/dist/include/clang/AST/LambdaCapture.h vendor/clang/dist/include/clang/AST/Mangle.h vendor/clang/dist/include/clang/AST/OpenMPClause.h vendor/clang/dist/include/clang/AST/OperationKinds.h vendor/clang/dist/include/clang/AST/PrettyPrinter.h vendor/clang/dist/include/clang/AST/RecordLayout.h vendor/clang/dist/include/clang/AST/RecursiveASTVisitor.h vendor/clang/dist/include/clang/AST/Stmt.h vendor/clang/dist/include/clang/AST/StmtCXX.h vendor/clang/dist/include/clang/AST/StmtObjC.h vendor/clang/dist/include/clang/AST/StmtOpenMP.h vendor/clang/dist/include/clang/AST/TemplateBase.h vendor/clang/dist/include/clang/AST/TemplateName.h vendor/clang/dist/include/clang/AST/Type.h vendor/clang/dist/include/clang/AST/TypeLoc.h vendor/clang/dist/include/clang/AST/UnresolvedSet.h vendor/clang/dist/include/clang/ASTMatchers/ASTMatchFinder.h vendor/clang/dist/include/clang/ASTMatchers/ASTMatchers.h vendor/clang/dist/include/clang/ASTMatchers/ASTMatchersInternal.h vendor/clang/dist/include/clang/Analysis/Analyses/FormatString.h vendor/clang/dist/include/clang/Analysis/Analyses/ThreadSafetyUtil.h vendor/clang/dist/include/clang/Analysis/AnalysisContext.h vendor/clang/dist/include/clang/Analysis/ProgramPoint.h vendor/clang/dist/include/clang/Basic/AddressSpaces.h vendor/clang/dist/include/clang/Basic/Attr.td vendor/clang/dist/include/clang/Basic/AttrDocs.td vendor/clang/dist/include/clang/Basic/AttrKinds.h vendor/clang/dist/include/clang/Basic/Builtins.def vendor/clang/dist/include/clang/Basic/Builtins.h vendor/clang/dist/include/clang/Basic/BuiltinsAArch64.def vendor/clang/dist/include/clang/Basic/BuiltinsAMDGPU.def vendor/clang/dist/include/clang/Basic/BuiltinsARM.def vendor/clang/dist/include/clang/Basic/BuiltinsHexagon.def vendor/clang/dist/include/clang/Basic/BuiltinsNVPTX.def vendor/clang/dist/include/clang/Basic/BuiltinsPPC.def vendor/clang/dist/include/clang/Basic/BuiltinsSystemZ.def vendor/clang/dist/include/clang/Basic/BuiltinsWebAssembly.def vendor/clang/dist/include/clang/Basic/BuiltinsX86.def vendor/clang/dist/include/clang/Basic/DeclNodes.td vendor/clang/dist/include/clang/Basic/Diagnostic.h vendor/clang/dist/include/clang/Basic/DiagnosticASTKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticCommonKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticDriverKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticFrontendKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticGroups.td vendor/clang/dist/include/clang/Basic/DiagnosticIDs.h vendor/clang/dist/include/clang/Basic/DiagnosticLexKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticParseKinds.td vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td vendor/clang/dist/include/clang/Basic/FileManager.h vendor/clang/dist/include/clang/Basic/IdentifierTable.h vendor/clang/dist/include/clang/Basic/Lambda.h vendor/clang/dist/include/clang/Basic/LangOptions.def vendor/clang/dist/include/clang/Basic/LangOptions.h vendor/clang/dist/include/clang/Basic/ObjCRuntime.h vendor/clang/dist/include/clang/Basic/OpenCLExtensions.def vendor/clang/dist/include/clang/Basic/OpenMPKinds.def vendor/clang/dist/include/clang/Basic/OpenMPKinds.h vendor/clang/dist/include/clang/Basic/Sanitizers.def vendor/clang/dist/include/clang/Basic/Sanitizers.h vendor/clang/dist/include/clang/Basic/SourceLocation.h vendor/clang/dist/include/clang/Basic/SourceManager.h vendor/clang/dist/include/clang/Basic/Specifiers.h vendor/clang/dist/include/clang/Basic/StmtNodes.td vendor/clang/dist/include/clang/Basic/TargetCXXABI.h vendor/clang/dist/include/clang/Basic/TargetInfo.h vendor/clang/dist/include/clang/Basic/TargetOptions.h vendor/clang/dist/include/clang/Basic/TokenKinds.def vendor/clang/dist/include/clang/Basic/TypeTraits.h vendor/clang/dist/include/clang/Basic/VersionTuple.h vendor/clang/dist/include/clang/Basic/VirtualFileSystem.h vendor/clang/dist/include/clang/Basic/arm_neon.td vendor/clang/dist/include/clang/CMakeLists.txt vendor/clang/dist/include/clang/CodeGen/BackendUtil.h vendor/clang/dist/include/clang/CodeGen/CGFunctionInfo.h vendor/clang/dist/include/clang/CodeGen/CodeGenABITypes.h vendor/clang/dist/include/clang/CodeGen/ModuleBuilder.h vendor/clang/dist/include/clang/CodeGen/ObjectFilePCHContainerOperations.h vendor/clang/dist/include/clang/Config/config.h.cmake vendor/clang/dist/include/clang/Driver/Action.h vendor/clang/dist/include/clang/Driver/CC1Options.td vendor/clang/dist/include/clang/Driver/CLCompatOptions.td vendor/clang/dist/include/clang/Driver/Compilation.h vendor/clang/dist/include/clang/Driver/Driver.h vendor/clang/dist/include/clang/Driver/Job.h vendor/clang/dist/include/clang/Driver/Multilib.h vendor/clang/dist/include/clang/Driver/Options.td vendor/clang/dist/include/clang/Driver/SanitizerArgs.h vendor/clang/dist/include/clang/Driver/ToolChain.h vendor/clang/dist/include/clang/Driver/Types.def vendor/clang/dist/include/clang/Format/Format.h vendor/clang/dist/include/clang/Frontend/ASTConsumers.h vendor/clang/dist/include/clang/Frontend/ASTUnit.h vendor/clang/dist/include/clang/Frontend/CodeGenOptions.def vendor/clang/dist/include/clang/Frontend/CodeGenOptions.h vendor/clang/dist/include/clang/Frontend/CompilerInstance.h vendor/clang/dist/include/clang/Frontend/CompilerInvocation.h vendor/clang/dist/include/clang/Frontend/DependencyOutputOptions.h vendor/clang/dist/include/clang/Frontend/FrontendAction.h vendor/clang/dist/include/clang/Frontend/FrontendActions.h vendor/clang/dist/include/clang/Frontend/FrontendOptions.h vendor/clang/dist/include/clang/Frontend/LangStandards.def vendor/clang/dist/include/clang/Frontend/MultiplexConsumer.h vendor/clang/dist/include/clang/Frontend/PCHContainerOperations.h vendor/clang/dist/include/clang/Frontend/TextDiagnosticPrinter.h vendor/clang/dist/include/clang/Frontend/Utils.h vendor/clang/dist/include/clang/Index/USRGeneration.h vendor/clang/dist/include/clang/Lex/DirectoryLookup.h vendor/clang/dist/include/clang/Lex/HeaderMap.h vendor/clang/dist/include/clang/Lex/HeaderSearch.h vendor/clang/dist/include/clang/Lex/Lexer.h vendor/clang/dist/include/clang/Lex/LiteralSupport.h vendor/clang/dist/include/clang/Lex/MacroArgs.h vendor/clang/dist/include/clang/Lex/MacroInfo.h vendor/clang/dist/include/clang/Lex/ModuleMap.h vendor/clang/dist/include/clang/Lex/Preprocessor.h vendor/clang/dist/include/clang/Lex/Token.h vendor/clang/dist/include/clang/Parse/Parser.h vendor/clang/dist/include/clang/Rewrite/Frontend/ASTConsumers.h vendor/clang/dist/include/clang/Rewrite/Frontend/FrontendActions.h vendor/clang/dist/include/clang/Sema/AttributeList.h vendor/clang/dist/include/clang/Sema/CodeCompleteConsumer.h vendor/clang/dist/include/clang/Sema/DeclSpec.h vendor/clang/dist/include/clang/Sema/ExternalSemaSource.h vendor/clang/dist/include/clang/Sema/Initialization.h vendor/clang/dist/include/clang/Sema/Lookup.h vendor/clang/dist/include/clang/Sema/MultiplexExternalSemaSource.h vendor/clang/dist/include/clang/Sema/ObjCMethodList.h vendor/clang/dist/include/clang/Sema/Overload.h vendor/clang/dist/include/clang/Sema/Ownership.h vendor/clang/dist/include/clang/Sema/ParsedTemplate.h vendor/clang/dist/include/clang/Sema/Scope.h vendor/clang/dist/include/clang/Sema/ScopeInfo.h vendor/clang/dist/include/clang/Sema/Sema.h vendor/clang/dist/include/clang/Sema/SemaInternal.h vendor/clang/dist/include/clang/Sema/SemaLambda.h vendor/clang/dist/include/clang/Sema/TemplateDeduction.h vendor/clang/dist/include/clang/Serialization/ASTBitCodes.h vendor/clang/dist/include/clang/Serialization/ASTReader.h vendor/clang/dist/include/clang/Serialization/ASTWriter.h vendor/clang/dist/include/clang/Serialization/Module.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/Checker.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/CheckerManager.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h vendor/clang/dist/include/clang/Tooling/CommonOptionsParser.h vendor/clang/dist/include/clang/Tooling/Core/Replacement.h vendor/clang/dist/include/clang/Tooling/Refactoring.h vendor/clang/dist/include/clang/Tooling/Tooling.h vendor/clang/dist/include/clang/module.modulemap vendor/clang/dist/lib/ARCMigrate/ARCMT.cpp vendor/clang/dist/lib/ARCMigrate/ARCMTActions.cpp vendor/clang/dist/lib/ARCMigrate/ObjCMT.cpp vendor/clang/dist/lib/ARCMigrate/TransProperties.cpp vendor/clang/dist/lib/AST/APValue.cpp vendor/clang/dist/lib/AST/ASTConsumer.cpp vendor/clang/dist/lib/AST/ASTContext.cpp vendor/clang/dist/lib/AST/ASTDiagnostic.cpp vendor/clang/dist/lib/AST/ASTDumper.cpp vendor/clang/dist/lib/AST/ASTImporter.cpp vendor/clang/dist/lib/AST/ASTTypeTraits.cpp vendor/clang/dist/lib/AST/CXXInheritance.cpp vendor/clang/dist/lib/AST/Comment.cpp vendor/clang/dist/lib/AST/CommentLexer.cpp vendor/clang/dist/lib/AST/CommentSema.cpp vendor/clang/dist/lib/AST/Decl.cpp vendor/clang/dist/lib/AST/DeclBase.cpp vendor/clang/dist/lib/AST/DeclCXX.cpp vendor/clang/dist/lib/AST/DeclObjC.cpp vendor/clang/dist/lib/AST/DeclOpenMP.cpp vendor/clang/dist/lib/AST/DeclPrinter.cpp vendor/clang/dist/lib/AST/DeclTemplate.cpp vendor/clang/dist/lib/AST/DeclarationName.cpp vendor/clang/dist/lib/AST/Expr.cpp vendor/clang/dist/lib/AST/ExprCXX.cpp vendor/clang/dist/lib/AST/ExprClassification.cpp vendor/clang/dist/lib/AST/ExprConstant.cpp vendor/clang/dist/lib/AST/ItaniumMangle.cpp vendor/clang/dist/lib/AST/Mangle.cpp vendor/clang/dist/lib/AST/MicrosoftCXXABI.cpp vendor/clang/dist/lib/AST/MicrosoftMangle.cpp vendor/clang/dist/lib/AST/NSAPI.cpp vendor/clang/dist/lib/AST/NestedNameSpecifier.cpp vendor/clang/dist/lib/AST/OpenMPClause.cpp vendor/clang/dist/lib/AST/ParentMap.cpp vendor/clang/dist/lib/AST/RecordLayout.cpp vendor/clang/dist/lib/AST/RecordLayoutBuilder.cpp vendor/clang/dist/lib/AST/Stmt.cpp vendor/clang/dist/lib/AST/StmtCXX.cpp vendor/clang/dist/lib/AST/StmtOpenMP.cpp vendor/clang/dist/lib/AST/StmtPrinter.cpp vendor/clang/dist/lib/AST/StmtProfile.cpp vendor/clang/dist/lib/AST/TemplateBase.cpp vendor/clang/dist/lib/AST/TemplateName.cpp vendor/clang/dist/lib/AST/Type.cpp vendor/clang/dist/lib/AST/TypeLoc.cpp vendor/clang/dist/lib/AST/TypePrinter.cpp vendor/clang/dist/lib/AST/VTableBuilder.cpp vendor/clang/dist/lib/ASTMatchers/ASTMatchFinder.cpp vendor/clang/dist/lib/ASTMatchers/ASTMatchersInternal.cpp vendor/clang/dist/lib/ASTMatchers/Dynamic/CMakeLists.txt vendor/clang/dist/lib/ASTMatchers/Dynamic/Marshallers.h vendor/clang/dist/lib/ASTMatchers/Dynamic/Registry.cpp vendor/clang/dist/lib/Analysis/AnalysisDeclContext.cpp vendor/clang/dist/lib/Analysis/BodyFarm.cpp vendor/clang/dist/lib/Analysis/BodyFarm.h vendor/clang/dist/lib/Analysis/CFG.cpp vendor/clang/dist/lib/Analysis/CallGraph.cpp vendor/clang/dist/lib/Analysis/Consumed.cpp vendor/clang/dist/lib/Analysis/FormatString.cpp vendor/clang/dist/lib/Analysis/FormatStringParsing.h vendor/clang/dist/lib/Analysis/PrintfFormatString.cpp vendor/clang/dist/lib/Analysis/PseudoConstantAnalysis.cpp vendor/clang/dist/lib/Analysis/ScanfFormatString.cpp vendor/clang/dist/lib/Basic/Builtins.cpp vendor/clang/dist/lib/Basic/CMakeLists.txt vendor/clang/dist/lib/Basic/Diagnostic.cpp vendor/clang/dist/lib/Basic/DiagnosticIDs.cpp vendor/clang/dist/lib/Basic/FileManager.cpp vendor/clang/dist/lib/Basic/IdentifierTable.cpp vendor/clang/dist/lib/Basic/LangOptions.cpp vendor/clang/dist/lib/Basic/Module.cpp vendor/clang/dist/lib/Basic/OpenMPKinds.cpp vendor/clang/dist/lib/Basic/OperatorPrecedence.cpp vendor/clang/dist/lib/Basic/SourceManager.cpp vendor/clang/dist/lib/Basic/TargetInfo.cpp vendor/clang/dist/lib/Basic/Targets.cpp vendor/clang/dist/lib/Basic/Version.cpp vendor/clang/dist/lib/Basic/VirtualFileSystem.cpp vendor/clang/dist/lib/CodeGen/ABIInfo.h vendor/clang/dist/lib/CodeGen/BackendUtil.cpp vendor/clang/dist/lib/CodeGen/CGAtomic.cpp vendor/clang/dist/lib/CodeGen/CGBlocks.cpp vendor/clang/dist/lib/CodeGen/CGBuilder.h vendor/clang/dist/lib/CodeGen/CGBuiltin.cpp vendor/clang/dist/lib/CodeGen/CGCUDANV.cpp vendor/clang/dist/lib/CodeGen/CGCUDARuntime.h vendor/clang/dist/lib/CodeGen/CGCXX.cpp vendor/clang/dist/lib/CodeGen/CGCXXABI.h vendor/clang/dist/lib/CodeGen/CGCall.cpp vendor/clang/dist/lib/CodeGen/CGClass.cpp vendor/clang/dist/lib/CodeGen/CGCleanup.cpp vendor/clang/dist/lib/CodeGen/CGCleanup.h vendor/clang/dist/lib/CodeGen/CGDebugInfo.cpp vendor/clang/dist/lib/CodeGen/CGDebugInfo.h vendor/clang/dist/lib/CodeGen/CGDecl.cpp vendor/clang/dist/lib/CodeGen/CGDeclCXX.cpp vendor/clang/dist/lib/CodeGen/CGException.cpp vendor/clang/dist/lib/CodeGen/CGExpr.cpp vendor/clang/dist/lib/CodeGen/CGExprAgg.cpp vendor/clang/dist/lib/CodeGen/CGExprCXX.cpp vendor/clang/dist/lib/CodeGen/CGExprConstant.cpp vendor/clang/dist/lib/CodeGen/CGExprScalar.cpp vendor/clang/dist/lib/CodeGen/CGLoopInfo.cpp vendor/clang/dist/lib/CodeGen/CGLoopInfo.h vendor/clang/dist/lib/CodeGen/CGObjC.cpp vendor/clang/dist/lib/CodeGen/CGObjCGNU.cpp vendor/clang/dist/lib/CodeGen/CGObjCMac.cpp vendor/clang/dist/lib/CodeGen/CGObjCRuntime.cpp vendor/clang/dist/lib/CodeGen/CGObjCRuntime.h vendor/clang/dist/lib/CodeGen/CGOpenCLRuntime.cpp vendor/clang/dist/lib/CodeGen/CGOpenMPRuntime.cpp vendor/clang/dist/lib/CodeGen/CGOpenMPRuntime.h vendor/clang/dist/lib/CodeGen/CGRecordLayout.h vendor/clang/dist/lib/CodeGen/CGRecordLayoutBuilder.cpp vendor/clang/dist/lib/CodeGen/CGStmt.cpp vendor/clang/dist/lib/CodeGen/CGStmtOpenMP.cpp vendor/clang/dist/lib/CodeGen/CGVTT.cpp vendor/clang/dist/lib/CodeGen/CGVTables.cpp vendor/clang/dist/lib/CodeGen/CGValue.h vendor/clang/dist/lib/CodeGen/CMakeLists.txt vendor/clang/dist/lib/CodeGen/CodeGenABITypes.cpp vendor/clang/dist/lib/CodeGen/CodeGenAction.cpp vendor/clang/dist/lib/CodeGen/CodeGenFunction.cpp vendor/clang/dist/lib/CodeGen/CodeGenFunction.h vendor/clang/dist/lib/CodeGen/CodeGenModule.cpp vendor/clang/dist/lib/CodeGen/CodeGenModule.h vendor/clang/dist/lib/CodeGen/CodeGenPGO.cpp vendor/clang/dist/lib/CodeGen/CodeGenPGO.h vendor/clang/dist/lib/CodeGen/CodeGenTBAA.cpp vendor/clang/dist/lib/CodeGen/CodeGenTBAA.h vendor/clang/dist/lib/CodeGen/CodeGenTypes.cpp vendor/clang/dist/lib/CodeGen/CodeGenTypes.h vendor/clang/dist/lib/CodeGen/CoverageMappingGen.cpp vendor/clang/dist/lib/CodeGen/CoverageMappingGen.h vendor/clang/dist/lib/CodeGen/EHScopeStack.h vendor/clang/dist/lib/CodeGen/ItaniumCXXABI.cpp vendor/clang/dist/lib/CodeGen/MicrosoftCXXABI.cpp vendor/clang/dist/lib/CodeGen/ModuleBuilder.cpp vendor/clang/dist/lib/CodeGen/ObjectFilePCHContainerOperations.cpp vendor/clang/dist/lib/CodeGen/TargetInfo.cpp vendor/clang/dist/lib/CodeGen/TargetInfo.h vendor/clang/dist/lib/Driver/Action.cpp vendor/clang/dist/lib/Driver/CMakeLists.txt vendor/clang/dist/lib/Driver/Compilation.cpp vendor/clang/dist/lib/Driver/CrossWindowsToolChain.cpp vendor/clang/dist/lib/Driver/Driver.cpp vendor/clang/dist/lib/Driver/Job.cpp vendor/clang/dist/lib/Driver/MSVCToolChain.cpp vendor/clang/dist/lib/Driver/SanitizerArgs.cpp vendor/clang/dist/lib/Driver/ToolChain.cpp vendor/clang/dist/lib/Driver/ToolChains.cpp vendor/clang/dist/lib/Driver/ToolChains.h vendor/clang/dist/lib/Driver/Tools.cpp vendor/clang/dist/lib/Driver/Tools.h vendor/clang/dist/lib/Driver/Types.cpp vendor/clang/dist/lib/Format/CMakeLists.txt vendor/clang/dist/lib/Format/ContinuationIndenter.cpp vendor/clang/dist/lib/Format/ContinuationIndenter.h vendor/clang/dist/lib/Format/Encoding.h vendor/clang/dist/lib/Format/Format.cpp vendor/clang/dist/lib/Format/FormatToken.cpp vendor/clang/dist/lib/Format/FormatToken.h vendor/clang/dist/lib/Format/TokenAnnotator.cpp vendor/clang/dist/lib/Format/TokenAnnotator.h vendor/clang/dist/lib/Format/UnwrappedLineFormatter.cpp vendor/clang/dist/lib/Format/UnwrappedLineParser.cpp vendor/clang/dist/lib/Format/UnwrappedLineParser.h vendor/clang/dist/lib/Format/WhitespaceManager.cpp vendor/clang/dist/lib/Format/WhitespaceManager.h vendor/clang/dist/lib/Frontend/ASTConsumers.cpp vendor/clang/dist/lib/Frontend/ASTMerge.cpp vendor/clang/dist/lib/Frontend/ASTUnit.cpp vendor/clang/dist/lib/Frontend/CMakeLists.txt vendor/clang/dist/lib/Frontend/CacheTokens.cpp vendor/clang/dist/lib/Frontend/ChainedIncludesSource.cpp vendor/clang/dist/lib/Frontend/CompilerInstance.cpp vendor/clang/dist/lib/Frontend/CompilerInvocation.cpp vendor/clang/dist/lib/Frontend/CreateInvocationFromCommandLine.cpp vendor/clang/dist/lib/Frontend/DependencyFile.cpp vendor/clang/dist/lib/Frontend/DiagnosticRenderer.cpp vendor/clang/dist/lib/Frontend/FrontendAction.cpp vendor/clang/dist/lib/Frontend/FrontendActions.cpp vendor/clang/dist/lib/Frontend/HeaderIncludeGen.cpp vendor/clang/dist/lib/Frontend/InitHeaderSearch.cpp vendor/clang/dist/lib/Frontend/InitPreprocessor.cpp vendor/clang/dist/lib/Frontend/LayoutOverrideSource.cpp vendor/clang/dist/lib/Frontend/ModuleDependencyCollector.cpp vendor/clang/dist/lib/Frontend/MultiplexConsumer.cpp vendor/clang/dist/lib/Frontend/PCHContainerOperations.cpp vendor/clang/dist/lib/Frontend/PrintPreprocessedOutput.cpp vendor/clang/dist/lib/Frontend/Rewrite/FrontendActions.cpp vendor/clang/dist/lib/Frontend/Rewrite/HTMLPrint.cpp vendor/clang/dist/lib/Frontend/Rewrite/InclusionRewriter.cpp vendor/clang/dist/lib/Frontend/Rewrite/RewriteModernObjC.cpp vendor/clang/dist/lib/Frontend/Rewrite/RewriteObjC.cpp vendor/clang/dist/lib/Frontend/SerializedDiagnosticPrinter.cpp vendor/clang/dist/lib/Frontend/TestModuleFileExtension.cpp vendor/clang/dist/lib/Frontend/TextDiagnostic.cpp vendor/clang/dist/lib/FrontendTool/ExecuteCompilerInvocation.cpp vendor/clang/dist/lib/Headers/CMakeLists.txt vendor/clang/dist/lib/Headers/__clang_cuda_runtime_wrapper.h vendor/clang/dist/lib/Headers/__wmmintrin_aes.h vendor/clang/dist/lib/Headers/__wmmintrin_pclmul.h vendor/clang/dist/lib/Headers/altivec.h vendor/clang/dist/lib/Headers/ammintrin.h vendor/clang/dist/lib/Headers/arm_acle.h vendor/clang/dist/lib/Headers/avx2intrin.h vendor/clang/dist/lib/Headers/avx512bwintrin.h vendor/clang/dist/lib/Headers/avx512cdintrin.h vendor/clang/dist/lib/Headers/avx512dqintrin.h vendor/clang/dist/lib/Headers/avx512erintrin.h vendor/clang/dist/lib/Headers/avx512fintrin.h vendor/clang/dist/lib/Headers/avx512vlbwintrin.h vendor/clang/dist/lib/Headers/avx512vldqintrin.h vendor/clang/dist/lib/Headers/avx512vlintrin.h vendor/clang/dist/lib/Headers/avxintrin.h vendor/clang/dist/lib/Headers/bmiintrin.h vendor/clang/dist/lib/Headers/cuda_builtin_vars.h vendor/clang/dist/lib/Headers/emmintrin.h vendor/clang/dist/lib/Headers/f16cintrin.h vendor/clang/dist/lib/Headers/float.h vendor/clang/dist/lib/Headers/fma4intrin.h vendor/clang/dist/lib/Headers/fmaintrin.h vendor/clang/dist/lib/Headers/htmintrin.h vendor/clang/dist/lib/Headers/htmxlintrin.h vendor/clang/dist/lib/Headers/ia32intrin.h vendor/clang/dist/lib/Headers/immintrin.h vendor/clang/dist/lib/Headers/inttypes.h vendor/clang/dist/lib/Headers/mm3dnow.h vendor/clang/dist/lib/Headers/mmintrin.h vendor/clang/dist/lib/Headers/module.modulemap vendor/clang/dist/lib/Headers/pkuintrin.h vendor/clang/dist/lib/Headers/pmmintrin.h vendor/clang/dist/lib/Headers/popcntintrin.h vendor/clang/dist/lib/Headers/smmintrin.h vendor/clang/dist/lib/Headers/tbmintrin.h vendor/clang/dist/lib/Headers/tmmintrin.h vendor/clang/dist/lib/Headers/unwind.h vendor/clang/dist/lib/Headers/x86intrin.h vendor/clang/dist/lib/Headers/xmmintrin.h vendor/clang/dist/lib/Headers/xopintrin.h vendor/clang/dist/lib/Index/CMakeLists.txt vendor/clang/dist/lib/Index/CommentToXML.cpp vendor/clang/dist/lib/Index/USRGeneration.cpp vendor/clang/dist/lib/Lex/HeaderMap.cpp vendor/clang/dist/lib/Lex/HeaderSearch.cpp vendor/clang/dist/lib/Lex/Lexer.cpp vendor/clang/dist/lib/Lex/LiteralSupport.cpp vendor/clang/dist/lib/Lex/MacroInfo.cpp vendor/clang/dist/lib/Lex/ModuleMap.cpp vendor/clang/dist/lib/Lex/PPCaching.cpp vendor/clang/dist/lib/Lex/PPDirectives.cpp vendor/clang/dist/lib/Lex/PPExpressions.cpp vendor/clang/dist/lib/Lex/PPLexerChange.cpp vendor/clang/dist/lib/Lex/PPMacroExpansion.cpp vendor/clang/dist/lib/Lex/Pragma.cpp vendor/clang/dist/lib/Lex/Preprocessor.cpp vendor/clang/dist/lib/Lex/TokenLexer.cpp vendor/clang/dist/lib/Parse/ParseAST.cpp vendor/clang/dist/lib/Parse/ParseCXXInlineMethods.cpp vendor/clang/dist/lib/Parse/ParseDecl.cpp vendor/clang/dist/lib/Parse/ParseDeclCXX.cpp vendor/clang/dist/lib/Parse/ParseExpr.cpp vendor/clang/dist/lib/Parse/ParseExprCXX.cpp vendor/clang/dist/lib/Parse/ParseInit.cpp vendor/clang/dist/lib/Parse/ParseObjc.cpp vendor/clang/dist/lib/Parse/ParseOpenMP.cpp vendor/clang/dist/lib/Parse/ParsePragma.cpp vendor/clang/dist/lib/Parse/ParseStmt.cpp vendor/clang/dist/lib/Parse/ParseStmtAsm.cpp vendor/clang/dist/lib/Parse/ParseTemplate.cpp vendor/clang/dist/lib/Parse/ParseTentative.cpp vendor/clang/dist/lib/Parse/Parser.cpp vendor/clang/dist/lib/Rewrite/HTMLRewrite.cpp vendor/clang/dist/lib/Rewrite/RewriteRope.cpp vendor/clang/dist/lib/Sema/AnalysisBasedWarnings.cpp vendor/clang/dist/lib/Sema/AttributeList.cpp vendor/clang/dist/lib/Sema/CMakeLists.txt vendor/clang/dist/lib/Sema/CodeCompleteConsumer.cpp vendor/clang/dist/lib/Sema/DeclSpec.cpp vendor/clang/dist/lib/Sema/IdentifierResolver.cpp vendor/clang/dist/lib/Sema/JumpDiagnostics.cpp vendor/clang/dist/lib/Sema/MultiplexExternalSemaSource.cpp vendor/clang/dist/lib/Sema/Scope.cpp vendor/clang/dist/lib/Sema/ScopeInfo.cpp vendor/clang/dist/lib/Sema/Sema.cpp vendor/clang/dist/lib/Sema/SemaAccess.cpp vendor/clang/dist/lib/Sema/SemaAttr.cpp vendor/clang/dist/lib/Sema/SemaCUDA.cpp vendor/clang/dist/lib/Sema/SemaCXXScopeSpec.cpp vendor/clang/dist/lib/Sema/SemaCast.cpp vendor/clang/dist/lib/Sema/SemaChecking.cpp vendor/clang/dist/lib/Sema/SemaCodeComplete.cpp vendor/clang/dist/lib/Sema/SemaCoroutine.cpp vendor/clang/dist/lib/Sema/SemaDecl.cpp vendor/clang/dist/lib/Sema/SemaDeclAttr.cpp vendor/clang/dist/lib/Sema/SemaDeclCXX.cpp vendor/clang/dist/lib/Sema/SemaDeclObjC.cpp vendor/clang/dist/lib/Sema/SemaExceptionSpec.cpp vendor/clang/dist/lib/Sema/SemaExpr.cpp vendor/clang/dist/lib/Sema/SemaExprCXX.cpp vendor/clang/dist/lib/Sema/SemaExprMember.cpp vendor/clang/dist/lib/Sema/SemaExprObjC.cpp vendor/clang/dist/lib/Sema/SemaInit.cpp vendor/clang/dist/lib/Sema/SemaLambda.cpp vendor/clang/dist/lib/Sema/SemaLookup.cpp vendor/clang/dist/lib/Sema/SemaObjCProperty.cpp vendor/clang/dist/lib/Sema/SemaOpenMP.cpp vendor/clang/dist/lib/Sema/SemaOverload.cpp vendor/clang/dist/lib/Sema/SemaPseudoObject.cpp vendor/clang/dist/lib/Sema/SemaStmt.cpp vendor/clang/dist/lib/Sema/SemaStmtAsm.cpp vendor/clang/dist/lib/Sema/SemaStmtAttr.cpp vendor/clang/dist/lib/Sema/SemaTemplate.cpp vendor/clang/dist/lib/Sema/SemaTemplateDeduction.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiate.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiateDecl.cpp vendor/clang/dist/lib/Sema/SemaTemplateVariadic.cpp vendor/clang/dist/lib/Sema/SemaType.cpp vendor/clang/dist/lib/Sema/TreeTransform.h vendor/clang/dist/lib/Sema/TypeLocBuilder.cpp vendor/clang/dist/lib/Sema/TypeLocBuilder.h vendor/clang/dist/lib/Serialization/ASTCommon.cpp vendor/clang/dist/lib/Serialization/ASTCommon.h vendor/clang/dist/lib/Serialization/ASTReader.cpp vendor/clang/dist/lib/Serialization/ASTReaderDecl.cpp vendor/clang/dist/lib/Serialization/ASTReaderStmt.cpp vendor/clang/dist/lib/Serialization/ASTWriter.cpp vendor/clang/dist/lib/Serialization/ASTWriterDecl.cpp vendor/clang/dist/lib/Serialization/ASTWriterStmt.cpp vendor/clang/dist/lib/Serialization/GeneratePCH.cpp vendor/clang/dist/lib/Serialization/GlobalModuleIndex.cpp vendor/clang/dist/lib/Serialization/Module.cpp vendor/clang/dist/lib/Serialization/ModuleManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CMakeLists.txt vendor/clang/dist/lib/StaticAnalyzer/Checkers/CStringChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ClangCheckers.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ClangSACheckers.h vendor/clang/dist/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MallocChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Checkers/VforkChecker.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/BugReporter.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CallEvent.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CheckerContext.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CheckerHelpers.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CheckerManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CheckerRegistry.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/CoreEngine.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExplodedGraph.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngine.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/IssueHash.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/MemRegion.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/PathDiagnostic.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/ProgramState.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/RegionStore.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SValBuilder.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SVals.cpp vendor/clang/dist/lib/StaticAnalyzer/Core/SymbolManager.cpp vendor/clang/dist/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp vendor/clang/dist/lib/Tooling/CMakeLists.txt vendor/clang/dist/lib/Tooling/CommonOptionsParser.cpp vendor/clang/dist/lib/Tooling/CompilationDatabase.cpp vendor/clang/dist/lib/Tooling/Core/CMakeLists.txt vendor/clang/dist/lib/Tooling/Core/Replacement.cpp vendor/clang/dist/lib/Tooling/Refactoring.cpp vendor/clang/dist/lib/Tooling/Tooling.cpp vendor/clang/dist/runtime/CMakeLists.txt vendor/clang/dist/test/ARCMT/migrate-space-in-path.m vendor/clang/dist/test/ARCMT/objcmt-ns-macros.m.result vendor/clang/dist/test/ARCMT/whitelisted/header1.h vendor/clang/dist/test/ARCMT/whitelisted/header1.h.result vendor/clang/dist/test/ARCMT/whitelisted/header2.h vendor/clang/dist/test/ARCMT/whitelisted/header2.h.result vendor/clang/dist/test/ARCMT/whitelisted/objcmt-with-whitelist.m vendor/clang/dist/test/ASTMerge/Inputs/class1.cpp vendor/clang/dist/test/ASTMerge/Inputs/class2.cpp vendor/clang/dist/test/ASTMerge/class.cpp vendor/clang/dist/test/Analysis/Inputs/system-header-simulator-cxx.h vendor/clang/dist/test/Analysis/MissingDealloc.m vendor/clang/dist/test/Analysis/NSString.m vendor/clang/dist/test/Analysis/PR24184.cpp vendor/clang/dist/test/Analysis/PR2978.m vendor/clang/dist/test/Analysis/blocks.m vendor/clang/dist/test/Analysis/bool-assignment.c vendor/clang/dist/test/Analysis/call-invalidation.cpp vendor/clang/dist/test/Analysis/cxx11-crashes.cpp vendor/clang/dist/test/Analysis/dead-stores.c vendor/clang/dist/test/Analysis/diagnostics/explicit-suppression.cpp vendor/clang/dist/test/Analysis/fields.c vendor/clang/dist/test/Analysis/generics.m vendor/clang/dist/test/Analysis/initializers-cfg-output.cpp vendor/clang/dist/test/Analysis/inlining/false-positive-suppression.c vendor/clang/dist/test/Analysis/inlining/false-positive-suppression.m vendor/clang/dist/test/Analysis/inlining/stl.cpp vendor/clang/dist/test/Analysis/lambdas.mm vendor/clang/dist/test/Analysis/localization.m vendor/clang/dist/test/Analysis/malloc.c vendor/clang/dist/test/Analysis/nullability.mm vendor/clang/dist/test/Analysis/nullability_nullonly.mm vendor/clang/dist/test/Analysis/properties.m vendor/clang/dist/test/Analysis/ptr-arith.c vendor/clang/dist/test/Analysis/ptr-arith.cpp vendor/clang/dist/test/Analysis/rdar-6442306-1.m vendor/clang/dist/test/Analysis/stackaddrleak.c vendor/clang/dist/test/Analysis/string.c vendor/clang/dist/test/Analysis/temp-obj-dtors-cfg-output.cpp vendor/clang/dist/test/Analysis/traversal-path-unification.c vendor/clang/dist/test/CMakeLists.txt vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.classref/p1.cpp vendor/clang/dist/test/CXX/basic/basic.lookup/basic.lookup.qual/class.qual/p2.cpp vendor/clang/dist/test/CXX/basic/basic.types/p10.cpp vendor/clang/dist/test/CXX/class.access/class.access.dcl/p1.cpp vendor/clang/dist/test/CXX/class/class.friend/p1.cpp vendor/clang/dist/test/CXX/class/class.friend/p2.cpp vendor/clang/dist/test/CXX/class/class.static/class.static.data/p3.cpp vendor/clang/dist/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/p1.cpp vendor/clang/dist/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/p5.cpp vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p12.cpp vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p4.cpp vendor/clang/dist/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p8-cxx0x.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.type/p3-0x.cpp vendor/clang/dist/test/CXX/dcl.dcl/dcl.spec/dcl.typedef/p2-0x.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.fct.def/dcl.fct.def.default/p2.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.init/p6.cpp vendor/clang/dist/test/CXX/dcl.decl/dcl.meaning/dcl.array/p3.cpp vendor/clang/dist/test/CXX/drs/dr13xx.cpp vendor/clang/dist/test/CXX/drs/dr15xx.cpp vendor/clang/dist/test/CXX/drs/dr16xx.cpp vendor/clang/dist/test/CXX/drs/dr17xx.cpp vendor/clang/dist/test/CXX/drs/dr19xx.cpp vendor/clang/dist/test/CXX/drs/dr1xx.cpp vendor/clang/dist/test/CXX/drs/dr4xx.cpp vendor/clang/dist/test/CXX/drs/dr5xx.cpp vendor/clang/dist/test/CXX/drs/dr6xx.cpp vendor/clang/dist/test/CXX/except/except.spec/p14.cpp vendor/clang/dist/test/CXX/expr/expr.const/p2-0x.cpp vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p5.cpp vendor/clang/dist/test/CXX/over/over.oper/over.literal/p5.cpp vendor/clang/dist/test/CXX/over/over.oper/over.literal/p8.cpp vendor/clang/dist/test/CXX/special/class.copy/implicit-move-def.cpp vendor/clang/dist/test/CXX/special/class.inhctor/p1.cpp vendor/clang/dist/test/CXX/special/class.inhctor/p2.cpp vendor/clang/dist/test/CXX/special/class.inhctor/p3.cpp vendor/clang/dist/test/CXX/special/class.inhctor/p4.cpp vendor/clang/dist/test/CXX/special/class.inhctor/p7.cpp vendor/clang/dist/test/CXX/special/class.inhctor/p8.cpp vendor/clang/dist/test/CXX/stmt.stmt/stmt.dcl/p3.cpp vendor/clang/dist/test/CXX/stmt.stmt/stmt.iter/stmt.ranged/p1.cpp vendor/clang/dist/test/CXX/temp/temp.arg/temp.arg.nontype/p1.cpp vendor/clang/dist/test/CXX/temp/temp.arg/temp.arg.type/p2.cpp vendor/clang/dist/test/CXX/temp/temp.decls/temp.mem/p1.cpp vendor/clang/dist/test/CXX/temp/temp.decls/temp.mem/p2.cpp vendor/clang/dist/test/CXX/temp/temp.decls/temp.variadic/p5.cpp vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/p9.cpp vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p3.cpp vendor/clang/dist/test/CXX/temp/temp.param/p15-cxx0x.cpp vendor/clang/dist/test/CXX/temp/temp.res/temp.local/p6.cpp vendor/clang/dist/test/CXX/temp/temp.spec/no-body.cpp vendor/clang/dist/test/CXX/temp/temp.spec/temp.expl.spec/p2.cpp vendor/clang/dist/test/CXX/temp/temp.spec/temp.expl.spec/p3.cpp vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p2.cpp vendor/clang/dist/test/CXX/temp/temp.spec/temp.explicit/p5.cpp vendor/clang/dist/test/CXX/temp/temp.spec/temp.inst/p1.cpp vendor/clang/dist/test/CodeCompletion/Inputs/reserved.h vendor/clang/dist/test/CodeCompletion/ordinary-name.c vendor/clang/dist/test/CodeGen/3dnow-builtins.c vendor/clang/dist/test/CodeGen/aarch64-fix-cortex-a53-835769.c vendor/clang/dist/test/CodeGen/aarch64-neon-2velem.c vendor/clang/dist/test/CodeGen/aarch64-neon-3v.c vendor/clang/dist/test/CodeGen/aarch64-neon-across.c vendor/clang/dist/test/CodeGen/aarch64-neon-extract.c vendor/clang/dist/test/CodeGen/aarch64-neon-fcvt-intrinsics.c vendor/clang/dist/test/CodeGen/aarch64-neon-fma.c vendor/clang/dist/test/CodeGen/aarch64-neon-intrinsics.c vendor/clang/dist/test/CodeGen/aarch64-neon-ldst-one.c vendor/clang/dist/test/CodeGen/aarch64-neon-misc.c vendor/clang/dist/test/CodeGen/aarch64-neon-perm.c vendor/clang/dist/test/CodeGen/aarch64-neon-scalar-copy.c vendor/clang/dist/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c vendor/clang/dist/test/CodeGen/aarch64-neon-shifts.c vendor/clang/dist/test/CodeGen/aarch64-neon-tbl.c vendor/clang/dist/test/CodeGen/aarch64-neon-vcombine.c vendor/clang/dist/test/CodeGen/aarch64-neon-vget-hilo.c vendor/clang/dist/test/CodeGen/aarch64-neon-vget.c vendor/clang/dist/test/CodeGen/aarch64-poly128.c vendor/clang/dist/test/CodeGen/aarch64-poly64.c vendor/clang/dist/test/CodeGen/aarch64-type-sizes.c vendor/clang/dist/test/CodeGen/adc-builtins.c vendor/clang/dist/test/CodeGen/alias.c vendor/clang/dist/test/CodeGen/align_value.cpp vendor/clang/dist/test/CodeGen/arm-bitfield-alignment.c vendor/clang/dist/test/CodeGen/arm-cc.c vendor/clang/dist/test/CodeGen/arm-crc32.c vendor/clang/dist/test/CodeGen/arm-eabi.c vendor/clang/dist/test/CodeGen/arm-fp16-arguments.c vendor/clang/dist/test/CodeGen/arm-neon-directed-rounding.c vendor/clang/dist/test/CodeGen/arm-neon-fma.c vendor/clang/dist/test/CodeGen/arm-neon-numeric-maxmin.c vendor/clang/dist/test/CodeGen/arm-neon-shifts.c vendor/clang/dist/test/CodeGen/arm-neon-vcvtX.c vendor/clang/dist/test/CodeGen/arm-neon-vget.c vendor/clang/dist/test/CodeGen/arm-target-features.c vendor/clang/dist/test/CodeGen/arm64-abi-vector.c vendor/clang/dist/test/CodeGen/arm64-arguments.c vendor/clang/dist/test/CodeGen/arm64-be-bitfield.c vendor/clang/dist/test/CodeGen/arm64-crc32.c vendor/clang/dist/test/CodeGen/arm64-lanes.c vendor/clang/dist/test/CodeGen/arm64_vcopy.c vendor/clang/dist/test/CodeGen/arm64_vcreate.c vendor/clang/dist/test/CodeGen/arm64_vdupq_n_f64.c vendor/clang/dist/test/CodeGen/arm_neon_intrinsics.c vendor/clang/dist/test/CodeGen/asm-errors.c vendor/clang/dist/test/CodeGen/atomics-inlining.c vendor/clang/dist/test/CodeGen/attr-func-def.c vendor/clang/dist/test/CodeGen/attr-target-x86-mmx.c vendor/clang/dist/test/CodeGen/attr-target-x86.c vendor/clang/dist/test/CodeGen/attr-used.c vendor/clang/dist/test/CodeGen/avx-builtins.c vendor/clang/dist/test/CodeGen/avx2-builtins.c vendor/clang/dist/test/CodeGen/avx512bw-builtins.c vendor/clang/dist/test/CodeGen/avx512cdintrin.c vendor/clang/dist/test/CodeGen/avx512dq-builtins.c vendor/clang/dist/test/CodeGen/avx512f-builtins.c vendor/clang/dist/test/CodeGen/avx512vl-builtins.c vendor/clang/dist/test/CodeGen/avx512vlbw-builtins.c vendor/clang/dist/test/CodeGen/avx512vldq-builtins.c vendor/clang/dist/test/CodeGen/blocks-opencl.cl vendor/clang/dist/test/CodeGen/bmi-builtins.c vendor/clang/dist/test/CodeGen/builtin-expect.c vendor/clang/dist/test/CodeGen/builtins-arm-exclusive.c vendor/clang/dist/test/CodeGen/builtins-arm.c vendor/clang/dist/test/CodeGen/builtins-arm64.c vendor/clang/dist/test/CodeGen/builtins-nvptx.c vendor/clang/dist/test/CodeGen/builtins-ppc-altivec.c vendor/clang/dist/test/CodeGen/builtins-ppc-p8vector.c vendor/clang/dist/test/CodeGen/builtins-ppc-quadword.c vendor/clang/dist/test/CodeGen/builtins-ppc-vsx.c vendor/clang/dist/test/CodeGen/builtins-wasm.c vendor/clang/dist/test/CodeGen/builtins-x86.c vendor/clang/dist/test/CodeGen/builtins.c vendor/clang/dist/test/CodeGen/cfi-icall-cross-dso.c vendor/clang/dist/test/CodeGen/cfi-icall.c vendor/clang/dist/test/CodeGen/cfstring.c vendor/clang/dist/test/CodeGen/cleanup-destslot-simple.c vendor/clang/dist/test/CodeGen/const-init.c vendor/clang/dist/test/CodeGen/convertvector.c vendor/clang/dist/test/CodeGen/debug-info-packed-struct.c vendor/clang/dist/test/CodeGen/debug-info-scope-file.c vendor/clang/dist/test/CodeGen/debug-info.c vendor/clang/dist/test/CodeGen/dependent-lib.c vendor/clang/dist/test/CodeGen/dllimport.c vendor/clang/dist/test/CodeGen/enable_if.c vendor/clang/dist/test/CodeGen/exceptions-seh-finally.c vendor/clang/dist/test/CodeGen/exceptions-seh-leave.c vendor/clang/dist/test/CodeGen/exceptions-seh.c vendor/clang/dist/test/CodeGen/f16c-builtins.c vendor/clang/dist/test/CodeGen/fp128_complex.c vendor/clang/dist/test/CodeGen/fp16-ops.c vendor/clang/dist/test/CodeGen/function-target-features.c vendor/clang/dist/test/CodeGen/init.c vendor/clang/dist/test/CodeGen/inline-asm-immediate-ubsan.c vendor/clang/dist/test/CodeGen/instrument-functions.c vendor/clang/dist/test/CodeGen/le32-vaarg.c vendor/clang/dist/test/CodeGen/mips-byval-arg.c vendor/clang/dist/test/CodeGen/mips-inline-asm.c vendor/clang/dist/test/CodeGen/mips-interrupt-attr.c vendor/clang/dist/test/CodeGen/mips-vector-arg.c vendor/clang/dist/test/CodeGen/mips-zero-sized-struct.c vendor/clang/dist/test/CodeGen/mips64-class-return.cpp vendor/clang/dist/test/CodeGen/mips64-padding-arg.c vendor/clang/dist/test/CodeGen/mmx-builtins.c vendor/clang/dist/test/CodeGen/ms-inline-asm.c vendor/clang/dist/test/CodeGen/ms-intrinsics.c vendor/clang/dist/test/CodeGen/ms-mm-align.c vendor/clang/dist/test/CodeGen/ms-volatile.c vendor/clang/dist/test/CodeGen/neon-immediate-ubsan.c vendor/clang/dist/test/CodeGen/nvptx-cpus.c vendor/clang/dist/test/CodeGen/object-size.c vendor/clang/dist/test/CodeGen/overloadable.c vendor/clang/dist/test/CodeGen/packed-arrays.c vendor/clang/dist/test/CodeGen/pass-object-size.c vendor/clang/dist/test/CodeGen/ppc64le-aggregates.c vendor/clang/dist/test/CodeGen/pr18235.c vendor/clang/dist/test/CodeGen/pragma-comment.c vendor/clang/dist/test/CodeGen/pragma-detect_mismatch.c vendor/clang/dist/test/CodeGen/sret.c vendor/clang/dist/test/CodeGen/sret2.c vendor/clang/dist/test/CodeGen/sse-builtins.c vendor/clang/dist/test/CodeGen/sse2-builtins.c vendor/clang/dist/test/CodeGen/sse3-builtins.c vendor/clang/dist/test/CodeGen/sse41-builtins.c vendor/clang/dist/test/CodeGen/sse42-builtins.c vendor/clang/dist/test/CodeGen/sse4a-builtins.c vendor/clang/dist/test/CodeGen/ssse3-builtins.c vendor/clang/dist/test/CodeGen/stack-protector.c vendor/clang/dist/test/CodeGen/target-builtin-error-2.c vendor/clang/dist/test/CodeGen/target-builtin-noerror.c vendor/clang/dist/test/CodeGen/target-data.c vendor/clang/dist/test/CodeGen/target-features-error-2.c vendor/clang/dist/test/CodeGen/tbaa-class.cpp vendor/clang/dist/test/CodeGen/tbaa-for-vptr.cpp vendor/clang/dist/test/CodeGen/tbaa.cpp vendor/clang/dist/test/CodeGen/tbm-builtins.c vendor/clang/dist/test/CodeGen/vector.c vendor/clang/dist/test/CodeGen/vectorcall.c vendor/clang/dist/test/CodeGen/windows-struct-abi.c vendor/clang/dist/test/CodeGen/x86_32-arguments-win32.c vendor/clang/dist/test/CodeGen/x86_64-arguments.c vendor/clang/dist/test/CodeGen/x86_64-longdouble.c vendor/clang/dist/test/CodeGen/xop-builtins.c vendor/clang/dist/test/CodeGenCUDA/Inputs/cuda.h vendor/clang/dist/test/CodeGenCUDA/address-spaces.cu vendor/clang/dist/test/CodeGenCUDA/cuda-builtin-vars.cu vendor/clang/dist/test/CodeGenCUDA/device-stub.cu vendor/clang/dist/test/CodeGenCUDA/filter-decl.cu vendor/clang/dist/test/CodeGenCUDA/function-overload.cu vendor/clang/dist/test/CodeGenCUDA/host-device-calls-host.cu vendor/clang/dist/test/CodeGenCUDA/launch-bounds.cu vendor/clang/dist/test/CodeGenCUDA/link-device-bitcode.cu vendor/clang/dist/test/CodeGenCUDA/ptx-kernels.cu vendor/clang/dist/test/CodeGenCXX/2009-05-04-PureConstNounwind.cpp vendor/clang/dist/test/CodeGenCXX/Inputs/debug-info-class-limited.cpp vendor/clang/dist/test/CodeGenCXX/PR20038.cpp vendor/clang/dist/test/CodeGenCXX/align-avx-complete-objects.cpp vendor/clang/dist/test/CodeGenCXX/alignment.cpp vendor/clang/dist/test/CodeGenCXX/arm.cpp vendor/clang/dist/test/CodeGenCXX/atomicinit.cpp vendor/clang/dist/test/CodeGenCXX/c-linkage.cpp vendor/clang/dist/test/CodeGenCXX/cfi-blacklist.cpp vendor/clang/dist/test/CodeGenCXX/cfi-cast.cpp vendor/clang/dist/test/CodeGenCXX/cfi-cross-dso.cpp vendor/clang/dist/test/CodeGenCXX/cfi-icall.cpp vendor/clang/dist/test/CodeGenCXX/cfi-ms-rtti.cpp vendor/clang/dist/test/CodeGenCXX/cfi-nvcall.cpp vendor/clang/dist/test/CodeGenCXX/const-init-cxx11.cpp vendor/clang/dist/test/CodeGenCXX/const-init.cpp vendor/clang/dist/test/CodeGenCXX/constructor-init.cpp vendor/clang/dist/test/CodeGenCXX/copy-constructor-elim.cpp vendor/clang/dist/test/CodeGenCXX/copy-constructor-synthesis-2.cpp vendor/clang/dist/test/CodeGenCXX/copy-constructor-synthesis.cpp vendor/clang/dist/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp vendor/clang/dist/test/CodeGenCXX/cxx11-exception-spec.cpp vendor/clang/dist/test/CodeGenCXX/cxx11-initializer-array-new.cpp vendor/clang/dist/test/CodeGenCXX/cxx11-thread-local-reference.cpp vendor/clang/dist/test/CodeGenCXX/cxx11-thread-local.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-access.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-anon-union-vars.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-artificial-arg.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-class-limited-plugin.test vendor/clang/dist/test/CodeGenCXX/debug-info-class-limited.test vendor/clang/dist/test/CodeGenCXX/debug-info-class.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-codeview-display-name.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-cxx1y.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-enum-class.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-function-context.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-global.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-indirect-field-decl.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-limited.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-line-if.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-line.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-method.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-namespace.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-ptr-to-member-function.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-static-member.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template-limit.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template-member.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template-quals.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-template.cpp vendor/clang/dist/test/CodeGenCXX/debug-info-varargs.cpp vendor/clang/dist/test/CodeGenCXX/debug-info.cpp vendor/clang/dist/test/CodeGenCXX/debug-lambda-expressions.cpp vendor/clang/dist/test/CodeGenCXX/debug-lambda-this.cpp vendor/clang/dist/test/CodeGenCXX/delete-two-arg.cpp vendor/clang/dist/test/CodeGenCXX/destructors.cpp vendor/clang/dist/test/CodeGenCXX/dllexport-members.cpp vendor/clang/dist/test/CodeGenCXX/dllexport.cpp vendor/clang/dist/test/CodeGenCXX/dllimport-members.cpp vendor/clang/dist/test/CodeGenCXX/dllimport-rtti.cpp vendor/clang/dist/test/CodeGenCXX/dllimport.cpp vendor/clang/dist/test/CodeGenCXX/duplicate-mangled-name.cpp vendor/clang/dist/test/CodeGenCXX/eh.cpp vendor/clang/dist/test/CodeGenCXX/exceptions-cxx-new.cpp vendor/clang/dist/test/CodeGenCXX/exceptions-seh-filter-captures.cpp vendor/clang/dist/test/CodeGenCXX/exceptions-seh.cpp vendor/clang/dist/test/CodeGenCXX/exceptions.cpp vendor/clang/dist/test/CodeGenCXX/explicit-instantiation.cpp vendor/clang/dist/test/CodeGenCXX/extern-c.cpp vendor/clang/dist/test/CodeGenCXX/goto.cpp vendor/clang/dist/test/CodeGenCXX/inheriting-constructor.cpp vendor/clang/dist/test/CodeGenCXX/init-invariant.cpp vendor/clang/dist/test/CodeGenCXX/lambda-expressions.cpp vendor/clang/dist/test/CodeGenCXX/linetable-virtual-variadic.cpp vendor/clang/dist/test/CodeGenCXX/mangle-address-space.cpp vendor/clang/dist/test/CodeGenCXX/mangle-ms-cxx11.cpp vendor/clang/dist/test/CodeGenCXX/mangle-ms-cxx14.cpp vendor/clang/dist/test/CodeGenCXX/mangle-ms.cpp vendor/clang/dist/test/CodeGenCXX/mangle-template.cpp vendor/clang/dist/test/CodeGenCXX/mangle.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-array-cookies.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-cdecl-method-sret.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-eh-catch.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-member-pointers.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-structors.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-throw.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-try-throw.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-typeid.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-vbtables.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-vftables.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-interface.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-templ-uuidof.cpp vendor/clang/dist/test/CodeGenCXX/microsoft-uuidof.cpp vendor/clang/dist/test/CodeGenCXX/mips-size_t-ptrdiff_t.cpp vendor/clang/dist/test/CodeGenCXX/multi-dim-operator-new.cpp vendor/clang/dist/test/CodeGenCXX/new-alias.cpp vendor/clang/dist/test/CodeGenCXX/new-array-init.cpp vendor/clang/dist/test/CodeGenCXX/new-overflow.cpp vendor/clang/dist/test/CodeGenCXX/new.cpp vendor/clang/dist/test/CodeGenCXX/operator-new.cpp vendor/clang/dist/test/CodeGenCXX/optnone-and-attributes.cpp vendor/clang/dist/test/CodeGenCXX/optnone-class-members.cpp vendor/clang/dist/test/CodeGenCXX/optnone-def-decl.cpp vendor/clang/dist/test/CodeGenCXX/optnone-templates.cpp vendor/clang/dist/test/CodeGenCXX/pass-object-size.cpp vendor/clang/dist/test/CodeGenCXX/pr20719.cpp vendor/clang/dist/test/CodeGenCXX/pragma-loop.cpp vendor/clang/dist/test/CodeGenCXX/rtti-fundamental.cpp vendor/clang/dist/test/CodeGenCXX/sections.cpp vendor/clang/dist/test/CodeGenCXX/skip-vtable-pointer-initialization.cpp vendor/clang/dist/test/CodeGenCXX/stack-reuse.cpp vendor/clang/dist/test/CodeGenCXX/static-init.cpp vendor/clang/dist/test/CodeGenCXX/strict-vtable-pointers.cpp vendor/clang/dist/test/CodeGenCXX/virtual-base-ctor.cpp vendor/clang/dist/test/CodeGenCXX/vtable-assume-load.cpp vendor/clang/dist/test/CodeGenCXX/vtable-key-function-arm.cpp vendor/clang/dist/test/CodeGenCXX/vtable-key-function-ios.cpp vendor/clang/dist/test/CodeGenCXX/vtable-linkage.cpp vendor/clang/dist/test/CodeGenCXX/vtable-pointer-initialization.cpp vendor/clang/dist/test/CodeGenCXX/vtt-layout.cpp vendor/clang/dist/test/CodeGenObjC/2009-08-05-utf16.m vendor/clang/dist/test/CodeGenObjC/2010-02-01-utf16-with-null.m vendor/clang/dist/test/CodeGenObjC/arc-foreach.m vendor/clang/dist/test/CodeGenObjC/arc-no-arc-exceptions.m vendor/clang/dist/test/CodeGenObjC/constant-strings.m vendor/clang/dist/test/CodeGenObjC/debug-info-block-type.m vendor/clang/dist/test/CodeGenObjC/debug-property-synth.m vendor/clang/dist/test/CodeGenObjC/exceptions-asm-attribute.m vendor/clang/dist/test/CodeGenObjC/hidden-visibility.m vendor/clang/dist/test/CodeGenObjC/messages-2.m vendor/clang/dist/test/CodeGenObjC/metadata-symbols-64.m vendor/clang/dist/test/CodeGenObjC/metadata_symbols.m vendor/clang/dist/test/CodeGenObjC/objc2-protocol-metadata.m vendor/clang/dist/test/CodeGenObjC/tentative-cfconstantstring.m vendor/clang/dist/test/CodeGenObjCXX/arc-cxx11-init-list.mm vendor/clang/dist/test/CodeGenObjCXX/arc-mangle.mm vendor/clang/dist/test/CodeGenObjCXX/arc-move.mm vendor/clang/dist/test/CodeGenObjCXX/arc-new-delete.mm vendor/clang/dist/test/CodeGenObjCXX/copy.mm vendor/clang/dist/test/CodeGenObjCXX/debug-info-cyclic.mm vendor/clang/dist/test/CodeGenObjCXX/mangle.mm vendor/clang/dist/test/CodeGenObjCXX/personality-abuse.mm vendor/clang/dist/test/CodeGenOpenCL/address-spaces-conversions.cl vendor/clang/dist/test/CodeGenOpenCL/amdgpu-num-gpr-attr.cl vendor/clang/dist/test/CodeGenOpenCL/builtins-r600.cl vendor/clang/dist/test/CodeGenOpenCL/constant-addr-space-globals.cl vendor/clang/dist/test/CodeGenOpenCL/event_t.cl vendor/clang/dist/test/CodeGenOpenCL/fpmath.cl vendor/clang/dist/test/CodeGenOpenCL/half.cl vendor/clang/dist/test/CodeGenOpenCL/kernel-arg-info.cl vendor/clang/dist/test/CodeGenOpenCL/kernel-attributes.cl vendor/clang/dist/test/CodeGenOpenCL/kernel-metadata.cl vendor/clang/dist/test/CodeGenOpenCL/opencl_types.cl vendor/clang/dist/test/CodeGenOpenCL/pipe_types.cl vendor/clang/dist/test/CodeGenOpenCL/shifts.cl vendor/clang/dist/test/CodeGenOpenCL/str_literals.cl vendor/clang/dist/test/CoverageMapping/block-storage-starts-region.m vendor/clang/dist/test/CoverageMapping/break.c vendor/clang/dist/test/CoverageMapping/builtinmacro.c vendor/clang/dist/test/CoverageMapping/casts.c vendor/clang/dist/test/CoverageMapping/classtemplate.cpp vendor/clang/dist/test/CoverageMapping/comment-in-macro.c vendor/clang/dist/test/CoverageMapping/continue.c vendor/clang/dist/test/CoverageMapping/control-flow-macro.c vendor/clang/dist/test/CoverageMapping/decl.c vendor/clang/dist/test/CoverageMapping/header.cpp vendor/clang/dist/test/CoverageMapping/if.c vendor/clang/dist/test/CoverageMapping/implicit-def-in-macro.m vendor/clang/dist/test/CoverageMapping/includehell.cpp vendor/clang/dist/test/CoverageMapping/ir.c vendor/clang/dist/test/CoverageMapping/label.cpp vendor/clang/dist/test/CoverageMapping/lambda.cpp vendor/clang/dist/test/CoverageMapping/logical.cpp vendor/clang/dist/test/CoverageMapping/loopmacro.c vendor/clang/dist/test/CoverageMapping/loops.cpp vendor/clang/dist/test/CoverageMapping/macro-expansion.c vendor/clang/dist/test/CoverageMapping/macro-expressions.cpp vendor/clang/dist/test/CoverageMapping/macroception.c vendor/clang/dist/test/CoverageMapping/macroparams.c vendor/clang/dist/test/CoverageMapping/macroparams2.c vendor/clang/dist/test/CoverageMapping/macros.c vendor/clang/dist/test/CoverageMapping/macroscopes.cpp vendor/clang/dist/test/CoverageMapping/md.cpp vendor/clang/dist/test/CoverageMapping/moremacros.c vendor/clang/dist/test/CoverageMapping/nestedclass.cpp vendor/clang/dist/test/CoverageMapping/objc.m vendor/clang/dist/test/CoverageMapping/preprocessor.c vendor/clang/dist/test/CoverageMapping/return.c vendor/clang/dist/test/CoverageMapping/switch.c vendor/clang/dist/test/CoverageMapping/switchmacro.c vendor/clang/dist/test/CoverageMapping/system_macro.c vendor/clang/dist/test/CoverageMapping/templates.cpp vendor/clang/dist/test/CoverageMapping/test.c vendor/clang/dist/test/CoverageMapping/trycatch.cpp vendor/clang/dist/test/CoverageMapping/trymacro.cpp vendor/clang/dist/test/CoverageMapping/unreachable-macro.c vendor/clang/dist/test/CoverageMapping/unused_names.c vendor/clang/dist/test/CoverageMapping/while.c vendor/clang/dist/test/Driver/aarch64-cpus.c vendor/clang/dist/test/Driver/amdgpu-toolchain.c vendor/clang/dist/test/Driver/android-standalone.cpp vendor/clang/dist/test/Driver/arc.c vendor/clang/dist/test/Driver/arch-armv7k.c vendor/clang/dist/test/Driver/arm-abi.c vendor/clang/dist/test/Driver/arm-alignment.c vendor/clang/dist/test/Driver/arm-cortex-cpus.c vendor/clang/dist/test/Driver/arm-features.c vendor/clang/dist/test/Driver/arm-mfpu.c vendor/clang/dist/test/Driver/at_file.c vendor/clang/dist/test/Driver/at_file.c.args vendor/clang/dist/test/Driver/at_file_missing.c vendor/clang/dist/test/Driver/bitrig.c vendor/clang/dist/test/Driver/cl-eh.cpp vendor/clang/dist/test/Driver/cl-fallback.c vendor/clang/dist/test/Driver/cl-link.c vendor/clang/dist/test/Driver/cl-options.c vendor/clang/dist/test/Driver/cl-runtime-flags.c vendor/clang/dist/test/Driver/clang-translation.c vendor/clang/dist/test/Driver/clang_f_opts.c vendor/clang/dist/test/Driver/cloudabi.c vendor/clang/dist/test/Driver/cloudabi.cpp vendor/clang/dist/test/Driver/cuda-options.cu vendor/clang/dist/test/Driver/cuda-unused-arg-warning.cu vendor/clang/dist/test/Driver/darwin-embedded.c vendor/clang/dist/test/Driver/darwin-iphone-defaults.m vendor/clang/dist/test/Driver/darwin-ld.c vendor/clang/dist/test/Driver/darwin-objc-gc.m vendor/clang/dist/test/Driver/darwin-sanitizer-ld.c vendor/clang/dist/test/Driver/dyld-prefix.c vendor/clang/dist/test/Driver/frame-pointer.c vendor/clang/dist/test/Driver/freebsd-mips-as.c vendor/clang/dist/test/Driver/freebsd.c vendor/clang/dist/test/Driver/freebsd.cpp vendor/clang/dist/test/Driver/fsanitize-coverage.c vendor/clang/dist/test/Driver/fsanitize.c vendor/clang/dist/test/Driver/fuse-ld.c vendor/clang/dist/test/Driver/gcc-toolchain.cpp vendor/clang/dist/test/Driver/hexagon-toolchain-elf.c vendor/clang/dist/test/Driver/linker-opts.c vendor/clang/dist/test/Driver/linux-header-search.cpp vendor/clang/dist/test/Driver/linux-ld.c vendor/clang/dist/test/Driver/lit.local.cfg vendor/clang/dist/test/Driver/lto.c vendor/clang/dist/test/Driver/mips-abi.c vendor/clang/dist/test/Driver/mips-as.c vendor/clang/dist/test/Driver/mips-cs.cpp vendor/clang/dist/test/Driver/mips-features.c vendor/clang/dist/test/Driver/mips-fsf.cpp vendor/clang/dist/test/Driver/mips-ias-Wa.s vendor/clang/dist/test/Driver/mips-img.cpp vendor/clang/dist/test/Driver/msc-version.c vendor/clang/dist/test/Driver/msvc-link.c vendor/clang/dist/test/Driver/msvc-triple.c vendor/clang/dist/test/Driver/myriad-toolchain.c vendor/clang/dist/test/Driver/netbsd.c vendor/clang/dist/test/Driver/netbsd.cpp vendor/clang/dist/test/Driver/noinline.c vendor/clang/dist/test/Driver/nostdlib.c vendor/clang/dist/test/Driver/nozlibcompress.c vendor/clang/dist/test/Driver/objc-weak.m vendor/clang/dist/test/Driver/output-file-cleanup.c vendor/clang/dist/test/Driver/pic.c vendor/clang/dist/test/Driver/ps4-header-search.c vendor/clang/dist/test/Driver/ps4-linker-non-win.c vendor/clang/dist/test/Driver/ps4-linker-win.c vendor/clang/dist/test/Driver/ps4-pic.c vendor/clang/dist/test/Driver/ps4-sdk-root.c vendor/clang/dist/test/Driver/r600-mcpu.cl vendor/clang/dist/test/Driver/response-file.c vendor/clang/dist/test/Driver/sanitize_unwind_tables.c vendor/clang/dist/test/Driver/sanitizer-ld.c vendor/clang/dist/test/Driver/save-temps.c vendor/clang/dist/test/Driver/sparc-as.c vendor/clang/dist/test/Driver/sparc-float.c vendor/clang/dist/test/Driver/unknown-arg.c vendor/clang/dist/test/Driver/wasm-toolchain.c vendor/clang/dist/test/Driver/windows-cross.c vendor/clang/dist/test/FixIt/fixit-errors.c vendor/clang/dist/test/FixIt/fixit-interface-as-param.m vendor/clang/dist/test/FixIt/fixit-objc.m vendor/clang/dist/test/FixIt/fixit-vexing-parse.cpp vendor/clang/dist/test/FixIt/typo.m vendor/clang/dist/test/Frontend/dependency-gen.c vendor/clang/dist/test/Frontend/lit.local.cfg vendor/clang/dist/test/Frontend/optimization-remark-analysis.c vendor/clang/dist/test/Frontend/optimization-remark-options.c vendor/clang/dist/test/Frontend/optimization-remark.c vendor/clang/dist/test/Frontend/print-header-includes.c vendor/clang/dist/test/Frontend/profile-sample-use-loc-tracking.c vendor/clang/dist/test/Frontend/stdlang.c vendor/clang/dist/test/Headers/cxx11.cpp vendor/clang/dist/test/Headers/ms-intrin.cpp vendor/clang/dist/test/Headers/x86intrin-2.c vendor/clang/dist/test/Headers/xmmintrin.c vendor/clang/dist/test/Index/Inputs/module.map vendor/clang/dist/test/Index/annotate-comments-availability-attrs.cpp vendor/clang/dist/test/Index/annotate-tokens.c vendor/clang/dist/test/Index/availability.c vendor/clang/dist/test/Index/availability.cpp vendor/clang/dist/test/Index/c-index-api-loadTU-test.m vendor/clang/dist/test/Index/file-refs.cpp vendor/clang/dist/test/Index/get-cursor.cpp vendor/clang/dist/test/Index/index-decls.m vendor/clang/dist/test/Index/index-file.cpp vendor/clang/dist/test/Index/index-many-logical-ops.c vendor/clang/dist/test/Index/index-module.m vendor/clang/dist/test/Index/index-refs.cpp vendor/clang/dist/test/Index/index-refs.m vendor/clang/dist/test/Index/load-classes.cpp vendor/clang/dist/test/Index/print-cxx-manglings.cpp vendor/clang/dist/test/Index/print-type.c vendor/clang/dist/test/Index/print-type.cpp vendor/clang/dist/test/Index/print-type.m vendor/clang/dist/test/Index/properties-class-extensions.m vendor/clang/dist/test/Index/recursive-cxx-member-calls.cpp vendor/clang/dist/test/Index/remap-load.c vendor/clang/dist/test/Index/retain-comments-from-system-headers.c vendor/clang/dist/test/Index/skip-parsed-bodies/compile_commands.json vendor/clang/dist/test/Index/usrs.m vendor/clang/dist/test/Lexer/cxx-features.cpp vendor/clang/dist/test/Lexer/cxx1y_digit_separators.cpp vendor/clang/dist/test/Lexer/hexfloat.cpp vendor/clang/dist/test/Misc/ast-dump-color.cpp vendor/clang/dist/test/Misc/ast-dump-decl.mm vendor/clang/dist/test/Misc/ast-dump-invalid.cpp vendor/clang/dist/test/Misc/ast-print-char-literal.cpp vendor/clang/dist/test/Misc/ast-print-objectivec.m vendor/clang/dist/test/Misc/ast-print-pragmas.cpp vendor/clang/dist/test/Misc/backend-optimization-failure-nodbg.cpp vendor/clang/dist/test/Misc/backend-optimization-failure.cpp vendor/clang/dist/test/Misc/diag-format.c vendor/clang/dist/test/Misc/diag-template-diffing-color.cpp vendor/clang/dist/test/Misc/diag-template-diffing-cxx98.cpp vendor/clang/dist/test/Misc/diag-template-diffing.cpp vendor/clang/dist/test/Misc/languageOptsOpenCL.cl vendor/clang/dist/test/Misc/serialized-diags-driver.c vendor/clang/dist/test/Misc/thinlto.c vendor/clang/dist/test/Modules/DebugInfoSubmoduleImport.c vendor/clang/dist/test/Modules/DebugInfoTransitiveImport.m vendor/clang/dist/test/Modules/ExtDebugInfo.cpp vendor/clang/dist/test/Modules/ExtDebugInfo.m vendor/clang/dist/test/Modules/Inputs/DebugCXX.h vendor/clang/dist/test/Modules/Inputs/DebugObjC.h vendor/clang/dist/test/Modules/Inputs/builtin.h vendor/clang/dist/test/Modules/Inputs/category_right.h vendor/clang/dist/test/Modules/Inputs/cxx-decls-imported.h vendor/clang/dist/test/Modules/Inputs/cxx-templates-common.h vendor/clang/dist/test/Modules/Inputs/explicit-build/a.h vendor/clang/dist/test/Modules/Inputs/merge-decl-context/a.h vendor/clang/dist/test/Modules/Inputs/module.map vendor/clang/dist/test/Modules/ModuleDebugInfo.cpp vendor/clang/dist/test/Modules/ModuleDebugInfo.m vendor/clang/dist/test/Modules/builtins.m vendor/clang/dist/test/Modules/cxx-templates.cpp vendor/clang/dist/test/Modules/debug-info-moduleimport.m vendor/clang/dist/test/Modules/embed-files.cpp vendor/clang/dist/test/Modules/explicit-build-flags.cpp vendor/clang/dist/test/Modules/explicit-build-missing-files.cpp vendor/clang/dist/test/Modules/explicit-build.cpp vendor/clang/dist/test/Modules/implementation-of-module.m vendor/clang/dist/test/Modules/import-self.m vendor/clang/dist/test/Modules/merge-decl-context.cpp vendor/clang/dist/test/Modules/no-implicit-builds.cpp vendor/clang/dist/test/Modules/objc-categories.m vendor/clang/dist/test/Modules/submodules-merge-defs.cpp vendor/clang/dist/test/OpenMP/critical_codegen.cpp vendor/clang/dist/test/OpenMP/distribute_ast_print.cpp vendor/clang/dist/test/OpenMP/distribute_private_messages.cpp vendor/clang/dist/test/OpenMP/driver.c vendor/clang/dist/test/OpenMP/for_ast_print.cpp vendor/clang/dist/test/OpenMP/for_codegen.cpp vendor/clang/dist/test/OpenMP/for_collapse_messages.cpp vendor/clang/dist/test/OpenMP/for_firstprivate_codegen.cpp vendor/clang/dist/test/OpenMP/for_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/for_lastprivate_codegen.cpp vendor/clang/dist/test/OpenMP/for_linear_codegen.cpp vendor/clang/dist/test/OpenMP/for_linear_messages.cpp vendor/clang/dist/test/OpenMP/for_loop_messages.cpp vendor/clang/dist/test/OpenMP/for_ordered_clause.cpp vendor/clang/dist/test/OpenMP/for_private_messages.cpp vendor/clang/dist/test/OpenMP/for_reduction_codegen.cpp vendor/clang/dist/test/OpenMP/for_reduction_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_aligned_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_ast_print.cpp vendor/clang/dist/test/OpenMP/for_simd_codegen.cpp vendor/clang/dist/test/OpenMP/for_simd_collapse_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_linear_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_loop_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_private_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_reduction_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_safelen_messages.cpp vendor/clang/dist/test/OpenMP/for_simd_simdlen_messages.cpp vendor/clang/dist/test/OpenMP/nesting_of_regions.cpp vendor/clang/dist/test/OpenMP/parallel_ast_print.cpp vendor/clang/dist/test/OpenMP/parallel_copyin_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_firstprivate_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_for_ast_print.cpp vendor/clang/dist/test/OpenMP/parallel_for_collapse_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_linear_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_loop_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_ordered_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_private_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_reduction_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_aligned_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_ast_print.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_collapse_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_linear_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_loop_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_private_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_reduction_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_safelen_messages.cpp vendor/clang/dist/test/OpenMP/parallel_for_simd_simdlen_messages.cpp vendor/clang/dist/test/OpenMP/parallel_num_threads_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_private_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_reduction_codegen.cpp vendor/clang/dist/test/OpenMP/parallel_reduction_messages.cpp vendor/clang/dist/test/OpenMP/parallel_sections_ast_print.cpp vendor/clang/dist/test/OpenMP/parallel_sections_private_messages.cpp vendor/clang/dist/test/OpenMP/parallel_sections_reduction_messages.cpp vendor/clang/dist/test/OpenMP/predefined_macro.c vendor/clang/dist/test/OpenMP/sections_firstprivate_codegen.cpp vendor/clang/dist/test/OpenMP/sections_private_messages.cpp vendor/clang/dist/test/OpenMP/sections_reduction_messages.cpp vendor/clang/dist/test/OpenMP/simd_aligned_messages.cpp vendor/clang/dist/test/OpenMP/simd_ast_print.cpp vendor/clang/dist/test/OpenMP/simd_codegen.cpp vendor/clang/dist/test/OpenMP/simd_collapse_messages.cpp vendor/clang/dist/test/OpenMP/simd_lastprivate_messages.cpp vendor/clang/dist/test/OpenMP/simd_private_messages.cpp vendor/clang/dist/test/OpenMP/simd_reduction_messages.cpp vendor/clang/dist/test/OpenMP/simd_safelen_messages.cpp vendor/clang/dist/test/OpenMP/simd_simdlen_messages.cpp vendor/clang/dist/test/OpenMP/single_ast_print.cpp vendor/clang/dist/test/OpenMP/single_codegen.cpp vendor/clang/dist/test/OpenMP/single_firstprivate_codegen.cpp vendor/clang/dist/test/OpenMP/single_private_messages.cpp vendor/clang/dist/test/OpenMP/target_ast_print.cpp vendor/clang/dist/test/OpenMP/target_codegen.cpp vendor/clang/dist/test/OpenMP/target_codegen_global_capture.cpp vendor/clang/dist/test/OpenMP/target_codegen_registration.cpp vendor/clang/dist/test/OpenMP/target_codegen_registration_naming.cpp vendor/clang/dist/test/OpenMP/target_data_ast_print.cpp vendor/clang/dist/test/OpenMP/target_data_device_messages.cpp vendor/clang/dist/test/OpenMP/target_data_if_messages.cpp vendor/clang/dist/test/OpenMP/target_data_messages.c vendor/clang/dist/test/OpenMP/target_device_messages.cpp vendor/clang/dist/test/OpenMP/target_if_messages.cpp vendor/clang/dist/test/OpenMP/target_map_codegen.cpp vendor/clang/dist/test/OpenMP/target_map_messages.cpp vendor/clang/dist/test/OpenMP/target_messages.cpp vendor/clang/dist/test/OpenMP/task_ast_print.cpp vendor/clang/dist/test/OpenMP/task_codegen.cpp vendor/clang/dist/test/OpenMP/task_firstprivate_codegen.cpp vendor/clang/dist/test/OpenMP/task_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/task_if_codegen.cpp vendor/clang/dist/test/OpenMP/task_messages.cpp vendor/clang/dist/test/OpenMP/task_private_codegen.cpp vendor/clang/dist/test/OpenMP/taskgroup_codegen.cpp vendor/clang/dist/test/OpenMP/taskloop_collapse_messages.cpp vendor/clang/dist/test/OpenMP/taskloop_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/taskloop_loop_messages.cpp vendor/clang/dist/test/OpenMP/taskloop_private_messages.cpp vendor/clang/dist/test/OpenMP/taskloop_simd_aligned_messages.cpp vendor/clang/dist/test/OpenMP/taskloop_simd_collapse_messages.cpp vendor/clang/dist/test/OpenMP/taskloop_simd_firstprivate_messages.cpp vendor/clang/dist/test/OpenMP/taskloop_simd_loop_messages.cpp vendor/clang/dist/test/OpenMP/taskloop_simd_private_messages.cpp vendor/clang/dist/test/OpenMP/taskloop_simd_safelen_messages.cpp vendor/clang/dist/test/OpenMP/taskloop_simd_simdlen_messages.cpp vendor/clang/dist/test/OpenMP/teams_ast_print.cpp vendor/clang/dist/test/OpenMP/teams_reduction_messages.cpp vendor/clang/dist/test/OpenMP/threadprivate_ast_print.cpp vendor/clang/dist/test/OpenMP/threadprivate_codegen.cpp vendor/clang/dist/test/OpenMP/threadprivate_messages.cpp vendor/clang/dist/test/PCH/Inputs/cxx11-statement-attributes.h vendor/clang/dist/test/PCH/attrs.c vendor/clang/dist/test/PCH/case-insensitive-include.c vendor/clang/dist/test/PCH/cxx-traits.cpp vendor/clang/dist/test/PCH/cxx-traits.h vendor/clang/dist/test/PCH/cxx11-inheriting-ctors.cpp vendor/clang/dist/test/PCH/cxx11-statement-attributes.cpp vendor/clang/dist/test/PCH/missing-file.cpp vendor/clang/dist/test/PCH/opencl-extensions.cl vendor/clang/dist/test/PCH/pragma-loop.cpp vendor/clang/dist/test/PCH/reloc.c vendor/clang/dist/test/Parser/MicrosoftExtensions.c vendor/clang/dist/test/Parser/cxx-altivec.cpp vendor/clang/dist/test/Parser/cxx-ambig-paren-expr.cpp vendor/clang/dist/test/Parser/cxx-casting.cpp vendor/clang/dist/test/Parser/cxx-class.cpp vendor/clang/dist/test/Parser/cxx-decl.cpp vendor/clang/dist/test/Parser/cxx-friend.cpp vendor/clang/dist/test/Parser/cxx0x-attributes.cpp vendor/clang/dist/test/Parser/cxx0x-condition.cpp vendor/clang/dist/test/Parser/cxx0x-decl.cpp vendor/clang/dist/test/Parser/extra-semi.cpp vendor/clang/dist/test/Parser/ms-inline-asm.c vendor/clang/dist/test/Parser/objcxx11-protocol-in-template.mm vendor/clang/dist/test/Parser/opencl-astype.cl vendor/clang/dist/test/Parser/opencl-atomics-cl20.cl vendor/clang/dist/test/Parser/opencl-cl20.cl vendor/clang/dist/test/Parser/opencl-image-access.cl vendor/clang/dist/test/Parser/opencl-pragma.cl vendor/clang/dist/test/Parser/opencl-storage-class.cl vendor/clang/dist/test/Parser/pragma-loop-safety.cpp vendor/clang/dist/test/Parser/pragma-loop.cpp vendor/clang/dist/test/Parser/pragma-pack.c vendor/clang/dist/test/Parser/skip-function-bodies.mm vendor/clang/dist/test/Preprocessor/aarch64-target-features.c vendor/clang/dist/test/Preprocessor/arm-acle-6.4.c vendor/clang/dist/test/Preprocessor/arm-acle-6.5.c vendor/clang/dist/test/Preprocessor/arm-target-features.c vendor/clang/dist/test/Preprocessor/comment_save_macro.c vendor/clang/dist/test/Preprocessor/elfiamcu-predefines.c vendor/clang/dist/test/Preprocessor/expr_define_expansion.c vendor/clang/dist/test/Preprocessor/expr_invalid_tok.c vendor/clang/dist/test/Preprocessor/feature_tests.c vendor/clang/dist/test/Preprocessor/has_attribute.c vendor/clang/dist/test/Preprocessor/has_attribute.cpp vendor/clang/dist/test/Preprocessor/init.c vendor/clang/dist/test/Preprocessor/invalid-__has_warning1.c vendor/clang/dist/test/Preprocessor/invalid-__has_warning2.c vendor/clang/dist/test/Preprocessor/macro_expand.c vendor/clang/dist/test/Preprocessor/microsoft-ext.c vendor/clang/dist/test/Preprocessor/pic.c vendor/clang/dist/test/Preprocessor/pragma_diagnostic.c vendor/clang/dist/test/Preprocessor/predefined-arch-macros.c vendor/clang/dist/test/Preprocessor/predefined-macros.c vendor/clang/dist/test/Preprocessor/pushable-diagnostics.c vendor/clang/dist/test/Preprocessor/stringize_misc.c vendor/clang/dist/test/Preprocessor/stringize_space.c vendor/clang/dist/test/Preprocessor/warning_tests.c vendor/clang/dist/test/Preprocessor/x86_target_features.c vendor/clang/dist/test/Profile/c-captured.c vendor/clang/dist/test/Profile/c-counter-overflows.c vendor/clang/dist/test/Profile/c-general.c vendor/clang/dist/test/Profile/c-generate.c vendor/clang/dist/test/Profile/c-linkage-available_externally.c vendor/clang/dist/test/Profile/c-linkage.c vendor/clang/dist/test/Profile/c-outdated-data.c vendor/clang/dist/test/Profile/c-unprofiled-blocks.c vendor/clang/dist/test/Profile/c-unprofiled.c vendor/clang/dist/test/Profile/c-unreachable-after-switch.c vendor/clang/dist/test/Profile/cxx-class.cpp vendor/clang/dist/test/Profile/cxx-implicit.cpp vendor/clang/dist/test/Profile/cxx-lambda.cpp vendor/clang/dist/test/Profile/cxx-linkage.cpp vendor/clang/dist/test/Profile/cxx-rangefor.cpp vendor/clang/dist/test/Profile/cxx-structors.cpp vendor/clang/dist/test/Profile/cxx-templates.cpp vendor/clang/dist/test/Profile/cxx-throws.cpp vendor/clang/dist/test/Profile/cxx-virtual-destructor-calls.cpp vendor/clang/dist/test/Profile/func-entry.c vendor/clang/dist/test/Profile/gcc-flag-compatibility.c vendor/clang/dist/test/Profile/objc-general.m vendor/clang/dist/test/Profile/profile-does-not-exist.c vendor/clang/dist/test/Sema/128bitfloat.cpp vendor/clang/dist/test/Sema/MicrosoftExtensions.c vendor/clang/dist/test/Sema/aarch64-special-register.c vendor/clang/dist/test/Sema/address_spaces.c vendor/clang/dist/test/Sema/asm.c vendor/clang/dist/test/Sema/ast-print.c vendor/clang/dist/test/Sema/atomic-ops.c vendor/clang/dist/test/Sema/attr-alias-elf.c vendor/clang/dist/test/Sema/attr-aligned.c vendor/clang/dist/test/Sema/attr-availability-macosx.c vendor/clang/dist/test/Sema/attr-availability-tvos.c vendor/clang/dist/test/Sema/attr-availability.c vendor/clang/dist/test/Sema/attr-deprecated.c vendor/clang/dist/test/Sema/attr-mode.c vendor/clang/dist/test/Sema/attr-nodebug.c vendor/clang/dist/test/Sema/attr-print.c vendor/clang/dist/test/Sema/bitfield-layout.c vendor/clang/dist/test/Sema/builtin-longjmp.c vendor/clang/dist/test/Sema/builtin-object-size.c vendor/clang/dist/test/Sema/builtins-arm.c vendor/clang/dist/test/Sema/constant-conversion.c vendor/clang/dist/test/Sema/dllexport.c vendor/clang/dist/test/Sema/dllimport.c vendor/clang/dist/test/Sema/enable_if.c vendor/clang/dist/test/Sema/ext_vector_casts.c vendor/clang/dist/test/Sema/format-strings-freebsd.c vendor/clang/dist/test/Sema/format-strings-scanf.c vendor/clang/dist/test/Sema/format-strings.c vendor/clang/dist/test/Sema/integer-overflow.c vendor/clang/dist/test/Sema/invalid-assignment-constant-address-space.c vendor/clang/dist/test/Sema/nonnull.c vendor/clang/dist/test/Sema/nullability.c vendor/clang/dist/test/Sema/overloadable.c vendor/clang/dist/test/Sema/pass-object-size.c vendor/clang/dist/test/Sema/predefined-function.c vendor/clang/dist/test/Sema/typo-correction.c vendor/clang/dist/test/Sema/unused-expr.c vendor/clang/dist/test/Sema/varargs-x86-64.c vendor/clang/dist/test/Sema/varargs.c vendor/clang/dist/test/Sema/vector-cast.c vendor/clang/dist/test/Sema/warn-double-promotion.c vendor/clang/dist/test/Sema/wchar.c vendor/clang/dist/test/SemaCUDA/bad-attributes.cu vendor/clang/dist/test/SemaCUDA/builtins.cu vendor/clang/dist/test/SemaCUDA/cuda-builtin-vars.cu vendor/clang/dist/test/SemaCUDA/function-overload.cu vendor/clang/dist/test/SemaCUDA/implicit-intrinsic.cu vendor/clang/dist/test/SemaCUDA/implicit-member-target-collision-cxx11.cu vendor/clang/dist/test/SemaCUDA/implicit-member-target.cu vendor/clang/dist/test/SemaCUDA/kernel-call.cu vendor/clang/dist/test/SemaCUDA/method-target.cu vendor/clang/dist/test/SemaCXX/MicrosoftExtensions.cpp vendor/clang/dist/test/SemaCXX/PR10177.cpp vendor/clang/dist/test/SemaCXX/access.cpp vendor/clang/dist/test/SemaCXX/aggregate-initialization.cpp vendor/clang/dist/test/SemaCXX/alias-template.cpp vendor/clang/dist/test/SemaCXX/anonymous-struct.cpp vendor/clang/dist/test/SemaCXX/ast-print.cpp vendor/clang/dist/test/SemaCXX/attr-selectany.cpp vendor/clang/dist/test/SemaCXX/attr-unavailable.cpp vendor/clang/dist/test/SemaCXX/c99-variable-length-array-cxx11.cpp vendor/clang/dist/test/SemaCXX/c99-variable-length-array.cpp vendor/clang/dist/test/SemaCXX/class.cpp vendor/clang/dist/test/SemaCXX/condition.cpp vendor/clang/dist/test/SemaCXX/conditional-expr.cpp vendor/clang/dist/test/SemaCXX/constant-expression-cxx11.cpp vendor/clang/dist/test/SemaCXX/constant-expression-cxx1y.cpp vendor/clang/dist/test/SemaCXX/constexpr-nqueens.cpp vendor/clang/dist/test/SemaCXX/constexpr-value-init.cpp vendor/clang/dist/test/SemaCXX/constructor-recovery.cpp vendor/clang/dist/test/SemaCXX/conversion-function.cpp vendor/clang/dist/test/SemaCXX/conversion.cpp vendor/clang/dist/test/SemaCXX/crashes.cpp vendor/clang/dist/test/SemaCXX/cstyle-cast.cpp vendor/clang/dist/test/SemaCXX/cxx0x-cursory-default-delete.cpp vendor/clang/dist/test/SemaCXX/cxx0x-defaulted-functions.cpp vendor/clang/dist/test/SemaCXX/cxx11-attr-print.cpp vendor/clang/dist/test/SemaCXX/cxx11-gnu-attrs.cpp vendor/clang/dist/test/SemaCXX/cxx11-inheriting-ctors.cpp vendor/clang/dist/test/SemaCXX/cxx1y-deduced-return-type.cpp vendor/clang/dist/test/SemaCXX/cxx1y-init-captures.cpp vendor/clang/dist/test/SemaCXX/cxx1y-variable-templates_in_class.cpp vendor/clang/dist/test/SemaCXX/cxx1y-variable-templates_top_level.cpp vendor/clang/dist/test/SemaCXX/dcl_init_aggr.cpp vendor/clang/dist/test/SemaCXX/default2.cpp vendor/clang/dist/test/SemaCXX/deleted-operator.cpp vendor/clang/dist/test/SemaCXX/destructor.cpp vendor/clang/dist/test/SemaCXX/dllexport.cpp vendor/clang/dist/test/SemaCXX/dllimport.cpp vendor/clang/dist/test/SemaCXX/enable_if.cpp vendor/clang/dist/test/SemaCXX/enum-scoped.cpp vendor/clang/dist/test/SemaCXX/exceptions.cpp vendor/clang/dist/test/SemaCXX/extern-c.cpp vendor/clang/dist/test/SemaCXX/for-range-examples.cpp vendor/clang/dist/test/SemaCXX/format-strings-0x.cpp vendor/clang/dist/test/SemaCXX/format-strings.cpp vendor/clang/dist/test/SemaCXX/friend.cpp vendor/clang/dist/test/SemaCXX/function-redecl.cpp vendor/clang/dist/test/SemaCXX/functional-cast.cpp vendor/clang/dist/test/SemaCXX/generalized-deprecated.cpp vendor/clang/dist/test/SemaCXX/illegal-member-initialization.cpp vendor/clang/dist/test/SemaCXX/inline.cpp vendor/clang/dist/test/SemaCXX/integer-overflow.cpp vendor/clang/dist/test/SemaCXX/lambda-expressions.cpp vendor/clang/dist/test/SemaCXX/literal-operators.cpp vendor/clang/dist/test/SemaCXX/make_integer_seq.cpp vendor/clang/dist/test/SemaCXX/member-init.cpp vendor/clang/dist/test/SemaCXX/ms-exception-spec.cpp vendor/clang/dist/test/SemaCXX/new-delete.cpp vendor/clang/dist/test/SemaCXX/no-wchar.cpp vendor/clang/dist/test/SemaCXX/overload-call.cpp vendor/clang/dist/test/SemaCXX/overloaded-builtin-operators.cpp vendor/clang/dist/test/SemaCXX/pragma-optimize.cpp vendor/clang/dist/test/SemaCXX/pragma-vtordisp.cpp vendor/clang/dist/test/SemaCXX/qual-id-test.cpp vendor/clang/dist/test/SemaCXX/return.cpp vendor/clang/dist/test/SemaCXX/rval-references.cpp vendor/clang/dist/test/SemaCXX/static-cast.cpp vendor/clang/dist/test/SemaCXX/switch-implicit-fallthrough-macro.cpp vendor/clang/dist/test/SemaCXX/switch-implicit-fallthrough-per-method.cpp vendor/clang/dist/test/SemaCXX/switch-implicit-fallthrough.cpp vendor/clang/dist/test/SemaCXX/type-convert-construct.cpp vendor/clang/dist/test/SemaCXX/type-traits.cpp vendor/clang/dist/test/SemaCXX/typo-correction.cpp vendor/clang/dist/test/SemaCXX/undefined-inline.cpp vendor/clang/dist/test/SemaCXX/undefined-internal.cpp vendor/clang/dist/test/SemaCXX/underlying_type.cpp vendor/clang/dist/test/SemaCXX/unknown-anytype.cpp vendor/clang/dist/test/SemaCXX/unused.cpp vendor/clang/dist/test/SemaCXX/using-decl-1.cpp vendor/clang/dist/test/SemaCXX/using-decl-templates.cpp vendor/clang/dist/test/SemaCXX/vararg-non-pod.cpp vendor/clang/dist/test/SemaCXX/warn-bad-memaccess.cpp vendor/clang/dist/test/SemaCXX/warn-float-conversion.cpp vendor/clang/dist/test/SemaCXX/warn-literal-conversion.cpp vendor/clang/dist/test/SemaCXX/warn-loop-analysis.cpp vendor/clang/dist/test/SemaCXX/warn-shadow.cpp vendor/clang/dist/test/SemaCXX/warn-unused-private-field.cpp vendor/clang/dist/test/SemaCXX/warn-unused-value.cpp vendor/clang/dist/test/SemaObjC/Inputs/arc-system-header.h vendor/clang/dist/test/SemaObjC/arc-repeated-weak.mm vendor/clang/dist/test/SemaObjC/arc-system-header.m vendor/clang/dist/test/SemaObjC/attr-availability-1.m vendor/clang/dist/test/SemaObjC/attr-availability.m vendor/clang/dist/test/SemaObjC/attr-deprecated.m vendor/clang/dist/test/SemaObjC/enum-fixed-type.m vendor/clang/dist/test/SemaObjC/format-strings-objc.m vendor/clang/dist/test/SemaObjC/iboutlet.m vendor/clang/dist/test/SemaObjC/kindof.m vendor/clang/dist/test/SemaObjC/method-warn-unused-attribute.m vendor/clang/dist/test/SemaObjC/objcbridge-attribute-arc.m vendor/clang/dist/test/SemaObjC/ovl-check.m vendor/clang/dist/test/SemaObjC/parameterized_classes.m vendor/clang/dist/test/SemaObjC/property-noninherited-availability-attr.m vendor/clang/dist/test/SemaObjC/warn-strict-selector-match.m vendor/clang/dist/test/SemaObjCXX/arc-nsconsumed-errors.mm vendor/clang/dist/test/SemaObjCXX/arc-templates.mm vendor/clang/dist/test/SemaObjCXX/foreach.mm vendor/clang/dist/test/SemaObjCXX/instancetype.mm vendor/clang/dist/test/SemaOpenCL/address-spaces-conversions-cl2.0.cl vendor/clang/dist/test/SemaOpenCL/event_t.cl vendor/clang/dist/test/SemaOpenCL/extern.cl vendor/clang/dist/test/SemaOpenCL/half.cl vendor/clang/dist/test/SemaOpenCL/invalid-kernel-attrs.cl vendor/clang/dist/test/SemaOpenCL/invalid-kernel-parameters.cl vendor/clang/dist/test/SemaOpenCL/invalid-logical-ops-1.2.cl vendor/clang/dist/test/SemaOpenCL/invalid-pipes-cl2.0.cl vendor/clang/dist/test/SemaOpenCL/sampler_t.cl vendor/clang/dist/test/SemaOpenCL/storageclass-cl20.cl vendor/clang/dist/test/SemaOpenCL/storageclass.cl vendor/clang/dist/test/SemaOpenCL/unsupported.cl vendor/clang/dist/test/SemaTemplate/alias-templates.cpp vendor/clang/dist/test/SemaTemplate/class-template-spec.cpp vendor/clang/dist/test/SemaTemplate/cxx1z-fold-expressions.cpp vendor/clang/dist/test/SemaTemplate/deduction.cpp vendor/clang/dist/test/SemaTemplate/default-arguments-cxx0x.cpp vendor/clang/dist/test/SemaTemplate/extern-templates.cpp vendor/clang/dist/test/SemaTemplate/instantiate-cast.cpp vendor/clang/dist/test/SemaTemplate/instantiate-expr-4.cpp vendor/clang/dist/test/SemaTemplate/instantiate-member-class.cpp vendor/clang/dist/test/SemaTemplate/instantiate-sizeof.cpp vendor/clang/dist/test/SemaTemplate/member-access-expr.cpp vendor/clang/dist/test/SemaTemplate/ms-delayed-default-template-args.cpp vendor/clang/dist/test/SemaTemplate/ms-function-specialization-class-scope.cpp vendor/clang/dist/test/SemaTemplate/ms-lookup-template-base-classes.cpp vendor/clang/dist/test/SemaTemplate/recovery-crash.cpp vendor/clang/dist/test/SemaTemplate/temp_arg_type.cpp vendor/clang/dist/test/SemaTemplate/template-id-expr.cpp vendor/clang/dist/test/Unit/lit.site.cfg.in vendor/clang/dist/test/lit.cfg vendor/clang/dist/test/lit.site.cfg.in vendor/clang/dist/tools/CMakeLists.txt vendor/clang/dist/tools/arcmt-test/arcmt-test.cpp vendor/clang/dist/tools/c-index-test/CMakeLists.txt vendor/clang/dist/tools/c-index-test/c-index-test.c vendor/clang/dist/tools/clang-check/ClangCheck.cpp vendor/clang/dist/tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs vendor/clang/dist/tools/clang-format/CMakeLists.txt vendor/clang/dist/tools/clang-format/ClangFormat.cpp vendor/clang/dist/tools/clang-format/clang-format-diff.py vendor/clang/dist/tools/driver/CMakeLists.txt vendor/clang/dist/tools/driver/cc1_main.cpp vendor/clang/dist/tools/driver/cc1as_main.cpp vendor/clang/dist/tools/driver/driver.cpp vendor/clang/dist/tools/libclang/CIndex.cpp vendor/clang/dist/tools/libclang/CIndexUSRs.cpp vendor/clang/dist/tools/libclang/CIndexer.h vendor/clang/dist/tools/libclang/CMakeLists.txt vendor/clang/dist/tools/libclang/CXCursor.cpp vendor/clang/dist/tools/libclang/CXSourceLocation.cpp vendor/clang/dist/tools/libclang/CXType.cpp vendor/clang/dist/tools/libclang/CursorVisitor.h vendor/clang/dist/tools/libclang/Indexing.cpp vendor/clang/dist/tools/libclang/libclang.exports vendor/clang/dist/tools/scan-build-py/libscanbuild/analyze.py vendor/clang/dist/tools/scan-build-py/libscanbuild/intercept.py vendor/clang/dist/tools/scan-build-py/libscanbuild/report.py vendor/clang/dist/tools/scan-build-py/libscanbuild/runner.py vendor/clang/dist/tools/scan-build-py/tests/functional/cases/test_create_cdb.py vendor/clang/dist/tools/scan-build-py/tests/functional/cases/test_exec_anatomy.py vendor/clang/dist/tools/scan-build-py/tests/functional/cases/test_from_cdb.py vendor/clang/dist/tools/scan-build-py/tests/functional/cases/test_from_cmd.py vendor/clang/dist/tools/scan-build-py/tests/functional/exec/CMakeLists.txt vendor/clang/dist/tools/scan-build-py/tests/unit/__init__.py vendor/clang/dist/tools/scan-build-py/tests/unit/test_analyze.py vendor/clang/dist/tools/scan-build-py/tests/unit/test_clang.py vendor/clang/dist/tools/scan-build-py/tests/unit/test_intercept.py vendor/clang/dist/tools/scan-build-py/tests/unit/test_report.py vendor/clang/dist/tools/scan-build-py/tests/unit/test_runner.py vendor/clang/dist/tools/scan-build/bin/scan-build vendor/clang/dist/tools/scan-build/libexec/ccc-analyzer vendor/clang/dist/unittests/AST/ASTContextParentMapTest.cpp vendor/clang/dist/unittests/AST/ASTTypeTraitsTest.cpp vendor/clang/dist/unittests/AST/CMakeLists.txt vendor/clang/dist/unittests/AST/MatchVerifier.h vendor/clang/dist/unittests/ASTMatchers/ASTMatchersTest.h vendor/clang/dist/unittests/ASTMatchers/CMakeLists.txt vendor/clang/dist/unittests/ASTMatchers/Dynamic/ParserTest.cpp vendor/clang/dist/unittests/ASTMatchers/Dynamic/RegistryTest.cpp vendor/clang/dist/unittests/ASTMatchers/Dynamic/VariantValueTest.cpp vendor/clang/dist/unittests/Basic/DiagnosticTest.cpp vendor/clang/dist/unittests/Basic/SourceManagerTest.cpp vendor/clang/dist/unittests/Basic/VirtualFileSystemTest.cpp vendor/clang/dist/unittests/CMakeLists.txt vendor/clang/dist/unittests/CodeGen/BufferSourceTest.cpp vendor/clang/dist/unittests/Format/CMakeLists.txt vendor/clang/dist/unittests/Format/FormatTest.cpp vendor/clang/dist/unittests/Format/FormatTestJS.cpp vendor/clang/dist/unittests/Format/FormatTestJava.cpp vendor/clang/dist/unittests/Format/FormatTestProto.cpp vendor/clang/dist/unittests/Format/FormatTestSelective.cpp vendor/clang/dist/unittests/Format/SortIncludesTest.cpp vendor/clang/dist/unittests/Frontend/CMakeLists.txt vendor/clang/dist/unittests/Lex/CMakeLists.txt vendor/clang/dist/unittests/Lex/LexerTest.cpp vendor/clang/dist/unittests/Lex/PPConditionalDirectiveRecordTest.cpp vendor/clang/dist/unittests/Sema/ExternalSemaSourceTest.cpp vendor/clang/dist/unittests/Tooling/CMakeLists.txt vendor/clang/dist/unittests/Tooling/RecursiveASTVisitorTest.cpp vendor/clang/dist/unittests/Tooling/RefactoringTest.cpp vendor/clang/dist/unittests/Tooling/RewriterTest.cpp vendor/clang/dist/unittests/Tooling/ToolingTest.cpp vendor/clang/dist/unittests/libclang/LibclangTest.cpp vendor/clang/dist/utils/TableGen/ClangAttrEmitter.cpp vendor/clang/dist/utils/TableGen/ClangDiagnosticsEmitter.cpp vendor/clang/dist/utils/TableGen/NeonEmitter.cpp vendor/clang/dist/utils/TableGen/TableGen.cpp vendor/clang/dist/utils/analyzer/SATestBuild.py vendor/clang/dist/utils/perf-training/CMakeLists.txt vendor/clang/dist/utils/perf-training/cxx/hello_world.cpp vendor/clang/dist/utils/perf-training/lit.cfg vendor/clang/dist/utils/perf-training/lit.site.cfg.in vendor/clang/dist/utils/perf-training/perf-helper.py vendor/clang/dist/www/analyzer/faq.html vendor/clang/dist/www/analyzer/latest_checker.html.incl vendor/clang/dist/www/analyzer/release_notes.html vendor/clang/dist/www/analyzer/scan-build.html vendor/clang/dist/www/compatibility.html vendor/clang/dist/www/cxx_dr_status.html vendor/clang/dist/www/cxx_status.html vendor/clang/dist/www/get_started.html vendor/clang/dist/www/hacking.html vendor/clang/dist/www/index.html Modified: vendor/clang/dist/.arcconfig ============================================================================== --- vendor/clang/dist/.arcconfig Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/.arcconfig Sat Jul 23 20:44:14 2016 (r303233) @@ -1,4 +1,4 @@ { "project_id" : "clang", - "conduit_uri" : "http://reviews.llvm.org/" + "conduit_uri" : "https://reviews.llvm.org/" } Modified: vendor/clang/dist/.clang-tidy ============================================================================== --- vendor/clang/dist/.clang-tidy Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/.clang-tidy Sat Jul 23 20:44:14 2016 (r303233) @@ -1 +1,12 @@ -Checks: '-*,clang-diagnostic-*,llvm-*,misc-*' +Checks: '-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,readability-identifier-naming' +CheckOptions: + - key: readability-identifier-naming.ClassCase + value: CamelCase + - key: readability-identifier-naming.EnumCase + value: CamelCase + - key: readability-identifier-naming.FunctionCase + value: lowerCase + - key: readability-identifier-naming.UnionCase + value: CamelCase + - key: readability-identifier-naming.VariableCase + value: CamelCase Modified: vendor/clang/dist/.gitignore ============================================================================== --- vendor/clang/dist/.gitignore Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/.gitignore Sat Jul 23 20:44:14 2016 (r303233) @@ -33,3 +33,5 @@ tools/extra # Sphinx build products docs/_build docs/analyzer/_build +# debug info testsuite +test/debuginfo-tests Modified: vendor/clang/dist/CMakeLists.txt ============================================================================== --- vendor/clang/dist/CMakeLists.txt Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/CMakeLists.txt Sat Jul 23 20:44:14 2016 (r303233) @@ -1,18 +1,4 @@ -cmake_minimum_required(VERSION 2.8.8) - -# FIXME: It may be removed when we use 2.8.12. -if(CMAKE_VERSION VERSION_LESS 2.8.12) - # Invalidate a couple of keywords. - set(cmake_2_8_12_INTERFACE) - set(cmake_2_8_12_PRIVATE) -else() - # Use ${cmake_2_8_12_KEYWORD} intead of KEYWORD in target_link_libraries(). - set(cmake_2_8_12_INTERFACE INTERFACE) - set(cmake_2_8_12_PRIVATE PRIVATE) - if(POLICY CMP0022) - cmake_policy(SET CMP0022 NEW) # automatic when 2.8.12 is required - endif() -endif() +cmake_minimum_required(VERSION 3.4.3) # If we are not building as a part of LLVM, build Clang as an # standalone project, using LLVM as an external library: @@ -72,7 +58,7 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) - set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR}/share/llvm/cmake") + set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm") set(LLVMCONFIG_FILE "${LLVM_CMAKE_PATH}/LLVMConfig.cmake") if(EXISTS ${LLVMCONFIG_FILE}) list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}") @@ -101,6 +87,7 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR include(AddLLVM) include(TableGen) include(HandleLLVMOptions) + include(VersionFromVCS) set(PACKAGE_VERSION "${LLVM_PACKAGE_VERSION}") @@ -181,6 +168,10 @@ else() set(BACKEND_PACKAGE_STRING "${PACKAGE_STRING}") endif() +# Make sure that our source directory is on the current cmake module path so that +# we can include cmake files from this directory. +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") + find_package(LibXml2 2.5.3 QUIET) if (LIBXML2_FOUND) set(CLANG_HAVE_LIBXML 1) @@ -196,10 +187,24 @@ set(GCC_INSTALL_PREFIX "" CACHE PATH "Di set(DEFAULT_SYSROOT "" CACHE PATH "Default to all compiler invocations for --sysroot=." ) +set(ENABLE_LINKER_BUILD_ID OFF CACHE BOOL "pass --build-id to ld") + +set(ENABLE_X86_RELAX_RELOCATIONS OFF CACHE BOOL + "enable x86 relax relocations by default") + +set(CLANG_DEFAULT_CXX_STDLIB "" CACHE STRING + "Default C++ stdlib to use (empty for architecture default, \"libstdc++\" or \"libc++\"") +if (NOT(CLANG_DEFAULT_CXX_STDLIB STREQUAL "" OR + CLANG_DEFAULT_CXX_STDLIB STREQUAL "libstdc++" OR + CLANG_DEFAULT_CXX_STDLIB STREQUAL "libc++")) + message(WARNING "Resetting default C++ stdlib to use architecture default") + set(CLANG_DEFAULT_CXX_STDLIB "") +endif() + set(CLANG_DEFAULT_OPENMP_RUNTIME "libomp" CACHE STRING "Default OpenMP runtime used by -fopenmp.") -set(CLANG_VENDOR "" CACHE STRING +set(CLANG_VENDOR ${PACKAGE_VENDOR} CACHE STRING "Vendor-specific text for showing with version information.") if( CLANG_VENDOR ) @@ -307,134 +312,7 @@ configure_file( ${CLANG_BINARY_DIR}/include/clang/Config/config.h) include(CMakeParseArguments) - -function(clang_tablegen) - # Syntax: - # clang_tablegen output-file [tablegen-arg ...] SOURCE source-file - # [[TARGET cmake-target-name] [DEPENDS extra-dependency ...]] - # - # Generates a custom command for invoking tblgen as - # - # tblgen source-file -o=output-file tablegen-arg ... - # - # and, if cmake-target-name is provided, creates a custom target for - # executing the custom command depending on output-file. It is - # possible to list more files to depend after DEPENDS. - - cmake_parse_arguments(CTG "" "SOURCE;TARGET" "" ${ARGN}) - - if( NOT CTG_SOURCE ) - message(FATAL_ERROR "SOURCE source-file required by clang_tablegen") - endif() - - set( LLVM_TARGET_DEFINITIONS ${CTG_SOURCE} ) - tablegen(CLANG ${CTG_UNPARSED_ARGUMENTS}) - - if(CTG_TARGET) - add_public_tablegen_target(${CTG_TARGET}) - set_target_properties( ${CTG_TARGET} PROPERTIES FOLDER "Clang tablegenning") - set_property(GLOBAL APPEND PROPERTY CLANG_TABLEGEN_TARGETS ${CTG_TARGET}) - endif() -endfunction(clang_tablegen) - -macro(set_clang_windows_version_resource_properties name) - if(DEFINED windows_resource_file) - set_windows_version_resource_properties(${name} ${windows_resource_file} - VERSION_MAJOR ${CLANG_VERSION_MAJOR} - VERSION_MINOR ${CLANG_VERSION_MINOR} - VERSION_PATCHLEVEL ${CLANG_VERSION_PATCHLEVEL} - VERSION_STRING "${CLANG_VERSION} (${BACKEND_PACKAGE_STRING})" - PRODUCT_NAME "clang") - endif() -endmacro() - -macro(add_clang_subdirectory name) - add_llvm_subdirectory(CLANG TOOL ${name}) -endmacro() - -macro(add_clang_library name) - cmake_parse_arguments(ARG - "SHARED" - "" - "ADDITIONAL_HEADERS" - ${ARGN}) - set(srcs) - if(MSVC_IDE OR XCODE) - # Add public headers - file(RELATIVE_PATH lib_path - ${CLANG_SOURCE_DIR}/lib/ - ${CMAKE_CURRENT_SOURCE_DIR} - ) - if(NOT lib_path MATCHES "^[.][.]") - file( GLOB_RECURSE headers - ${CLANG_SOURCE_DIR}/include/clang/${lib_path}/*.h - ${CLANG_SOURCE_DIR}/include/clang/${lib_path}/*.def - ) - set_source_files_properties(${headers} PROPERTIES HEADER_FILE_ONLY ON) - - file( GLOB_RECURSE tds - ${CLANG_SOURCE_DIR}/include/clang/${lib_path}/*.td - ) - source_group("TableGen descriptions" FILES ${tds}) - set_source_files_properties(${tds}} PROPERTIES HEADER_FILE_ONLY ON) - - if(headers OR tds) - set(srcs ${headers} ${tds}) - endif() - endif() - endif(MSVC_IDE OR XCODE) - if(srcs OR ARG_ADDITIONAL_HEADERS) - set(srcs - ADDITIONAL_HEADERS - ${srcs} - ${ARG_ADDITIONAL_HEADERS} # It may contain unparsed unknown args. - ) - endif() - if(ARG_SHARED) - set(ARG_ENABLE_SHARED SHARED) - endif() - llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS} ${srcs}) - - if(TARGET ${name}) - target_link_libraries(${name} ${cmake_2_8_12_INTERFACE} ${LLVM_COMMON_LIBS}) - - if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "libclang") - install(TARGETS ${name} - COMPONENT ${name} - EXPORT ClangTargets - LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} - ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} - RUNTIME DESTINATION bin) - - if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) - add_custom_target(install-${name} - DEPENDS ${name} - COMMAND "${CMAKE_COMMAND}" - -DCMAKE_INSTALL_COMPONENT=${name} - -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") - endif() - endif() - set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${name}) - else() - # Add empty "phony" target - add_custom_target(${name}) - endif() - - set_target_properties(${name} PROPERTIES FOLDER "Clang libraries") - set_clang_windows_version_resource_properties(${name}) -endmacro(add_clang_library) - -macro(add_clang_executable name) - add_llvm_executable( ${name} ${ARGN} ) - set_target_properties(${name} PROPERTIES FOLDER "Clang executables") - set_clang_windows_version_resource_properties(${name}) -endmacro(add_clang_executable) - -macro(add_clang_symlink name dest) - add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE) - # Always generate install targets - llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE) -endmacro() +include(AddClang) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -462,30 +340,11 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) ) endif() -if(INTERNAL_INSTALL_PREFIX) - set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include") -else() - set(LIBCLANG_HEADERS_INSTALL_DESTINATION include) -endif() - -install(DIRECTORY include/clang-c - COMPONENT libclang-headers - DESTINATION "${LIBCLANG_HEADERS_INSTALL_DESTINATION}" - FILES_MATCHING - PATTERN "*.h" - PATTERN ".svn" EXCLUDE - ) - -if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDE's. - add_custom_target(install-libclang-headers - DEPENDS - COMMAND "${CMAKE_COMMAND}" - -DCMAKE_INSTALL_COMPONENT=libclang-headers - -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") -endif() - add_definitions( -D_GNU_SOURCE ) +option(CLANG_BUILD_TOOLS + "Build the Clang tools. If OFF, just generate build targets." ON) + option(CLANG_ENABLE_ARCMT "Build ARCMT." ON) if (CLANG_ENABLE_ARCMT) set(ENABLE_CLANG_ARCMT "1") @@ -579,50 +438,33 @@ if( CLANG_INCLUDE_DOCS ) add_subdirectory(docs) endif() -set(CLANG_ORDER_FILE "" CACHE FILEPATH - "Order file to use when compiling clang in order to improve startup time.") -if (CLANG_BUILT_STANDALONE OR CMAKE_VERSION VERSION_EQUAL 3 OR - CMAKE_VERSION VERSION_GREATER 3) - # Generate a list of CMake library targets so that other CMake projects can - # link against them. LLVM calls its version of this file LLVMExports.cmake, but - # the usual CMake convention seems to be ${Project}Targets.cmake. - set(CLANG_INSTALL_PACKAGE_DIR share/clang/cmake) - set(clang_cmake_builddir "${CMAKE_BINARY_DIR}/${CLANG_INSTALL_PACKAGE_DIR}") - get_property(CLANG_EXPORTS GLOBAL PROPERTY CLANG_EXPORTS) - export(TARGETS ${CLANG_EXPORTS} FILE ${clang_cmake_builddir}/ClangTargets.cmake) - - # Install a /share/clang/cmake/ClangConfig.cmake file so that - # find_package(Clang) works. Install the target list with it. - install(EXPORT ClangTargets DESTINATION ${CLANG_INSTALL_PACKAGE_DIR}) - - install(FILES - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/ClangConfig.cmake - DESTINATION share/clang/cmake) - - # Also copy ClangConfig.cmake to the build directory so that dependent projects - # can build against a build directory of Clang more easily. - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/ClangConfig.cmake - ${CLANG_BINARY_DIR}/share/clang/cmake/ClangConfig.cmake - COPYONLY) -endif () +if(APPLE) + # this line is needed as a cleanup to ensure that any CMakeCaches with the old + # default value get updated to the new default. + if(CLANG_ORDER_FILE STREQUAL "") + unset(CLANG_ORDER_FILE CACHE) + unset(CLANG_ORDER_FILE) + endif() -if (CLANG_ENABLE_BOOTSTRAP) - include(ExternalProject) - if(CMAKE_VERSION VERSION_GREATER 3.1.0) - set(cmake_3_1_EXCLUDE_FROM_ALL EXCLUDE_FROM_ALL 1) + set(CLANG_ORDER_FILE ${CMAKE_CURRENT_BINARY_DIR}/clang.order CACHE FILEPATH + "Order file to use when compiling clang in order to improve startup time (Darwin Only - requires ld64).") + + if(CLANG_ORDER_FILE AND NOT EXISTS ${CLANG_ORDER_FILE}) + string(FIND "${CLANG_ORDER_FILE}" "${CMAKE_CURRENT_BINARY_DIR}" PATH_START) + if(PATH_START EQUAL 0) + file(WRITE ${CLANG_ORDER_FILE} "\n") + else() + message(FATAL_ERROR "Specified order file '${CLANG_ORDER_FILE}' does not exist.") + endif() endif() +endif() - if(CMAKE_VERSION VERSION_GREATER 3.3.20150708) - set(cmake_3_4_USES_TERMINAL_OPTIONS - USES_TERMINAL_CONFIGURE 1 - USES_TERMINAL_BUILD 1 - USES_TERMINAL_INSTALL 1 - ) - set(cmake_3_4_USES_TERMINAL USES_TERMINAL 1) - endif() +add_subdirectory(cmake/modules) + +if (CLANG_ENABLE_BOOTSTRAP) + include(ExternalProject) if(NOT CLANG_STAGE) set(CLANG_STAGE stage1) @@ -649,14 +491,22 @@ if (CLANG_ENABLE_BOOTSTRAP) set(STAMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-stamps/) set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${NEXT_CLANG_STAGE}-bins/) + set(cmake_command ${CMAKE_COMMAND}) - # If on Darwin we need to make bootstrap depend on LTO and pass - # DARWIN_LTO_LIBRARY so that -flto will work using the just-built compiler - if(APPLE) - set(LTO_DEP LTO llvm-ar llvm-ranlib) - set(LTO_LIBRARY -DDARWIN_LTO_LIBRARY=${LLVM_SHLIB_OUTPUT_INTDIR}/libLTO.dylib) - set(LTO_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) - set(LTO_RANLIB -DCMAKE_RANLIB=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ranlib) + # If the next stage is LTO we need to depend on LTO and possibly LLVMgold + if(BOOTSTRAP_LLVM_ENABLE_LTO OR LLVM_ENABLE_LTO) + set(LTO_DEP LTO) + if(APPLE) + # on Darwin we need to set DARWIN_LTO_LIBRARY so that -flto will work + # using the just-built compiler, and we need to override DYLD_LIBRARY_PATH + # so that the host object file tools will use the just-built libLTO. + set(LTO_LIBRARY -DDARWIN_LTO_LIBRARY=${LLVM_SHLIB_OUTPUT_INTDIR}/libLTO.dylib) + set(cmake_command ${CMAKE_COMMAND} -E env DYLD_LIBRARY_PATH=${LLVM_LIBRARY_OUTPUT_INTDIR} ${CMAKE_COMMAND}) + elseif(NOT WIN32) + list(APPEND LTO_DEP LLVMgold llvm-ar llvm-ranlib) + set(LTO_AR -DCMAKE_AR=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ar) + set(LTO_RANLIB -DCMAKE_RANLIB=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-ranlib) + endif() endif() add_custom_target(${NEXT_CLANG_STAGE}-clear @@ -682,6 +532,7 @@ if (CLANG_ENABLE_BOOTSTRAP) LLVM_VERSION_MINOR LLVM_VERSION_PATCH LLVM_VERSION_SUFFIX + LLVM_BINUTILS_INCDIR CLANG_REPOSITORY_STRING CMAKE_MAKE_PROGRAM) @@ -719,6 +570,10 @@ if (CLANG_ENABLE_BOOTSTRAP) list(APPEND PASSTHROUGH_VARIABLES -D${varName}=${value}) endif() + if(${variableName} AND variableName MATCHES "LLVM_EXTERNAL_.*_SOURCE_DIR") + list(APPEND PASSTHROUGH_VARIABLES + -D${variableName}=${${variableName}}) + endif() endforeach() # Populate the passthrough variables @@ -736,7 +591,7 @@ if (CLANG_ENABLE_BOOTSTRAP) SOURCE_DIR ${CMAKE_SOURCE_DIR} STAMP_DIR ${STAMP_DIR} BINARY_DIR ${BINARY_DIR} - ${cmake_3_1_EXCLUDE_FROM_ALL} + EXCLUDE_FROM_ALL 1 CMAKE_ARGS # We shouldn't need to set this here, but INSTALL_DIR doesn't # seem to work, so instead I'm passing this through @@ -746,18 +601,21 @@ if (CLANG_ENABLE_BOOTSTRAP) -DCLANG_STAGE=${NEXT_CLANG_STAGE} ${COMPILER_OPTIONS} ${LTO_LIBRARY} ${LTO_AR} ${LTO_RANLIB} ${verbose} ${PGO_OPT} + CMAKE_COMMAND ${cmake_command} INSTALL_COMMAND "" STEP_TARGETS configure build - ${cmake_3_4_USES_TERMINAL_OPTIONS} + USES_TERMINAL_CONFIGURE 1 + USES_TERMINAL_BUILD 1 + USES_TERMINAL_INSTALL 1 ) # exclude really-install from main target set_target_properties(${NEXT_CLANG_STAGE} PROPERTIES _EP_really-install_EXCLUDE_FROM_MAIN On) ExternalProject_Add_Step(${NEXT_CLANG_STAGE} really-install - COMMAND ${CMAKE_COMMAND} --build --target install + COMMAND ${cmake_command} --build --target install COMMENT "Performing install step for '${NEXT_CLANG_STAGE}'" DEPENDEES build - ${cmake_3_4_USES_TERMINAL} + USES_TERMINAL 1 ) ExternalProject_Add_StepTargets(${NEXT_CLANG_STAGE} really-install) add_custom_target(${NEXT_CLANG_STAGE}-install DEPENDS ${NEXT_CLANG_STAGE}-really-install) @@ -770,10 +628,10 @@ if (CLANG_ENABLE_BOOTSTRAP) set_target_properties(${NEXT_CLANG_STAGE} PROPERTIES _EP_${target}_EXCLUDE_FROM_MAIN On) ExternalProject_Add_Step(${NEXT_CLANG_STAGE} ${target} - COMMAND ${CMAKE_COMMAND} --build --target ${target} + COMMAND ${cmake_command} --build --target ${target} COMMENT "Performing ${target} for '${NEXT_CLANG_STAGE}'" DEPENDEES configure - ${cmake_3_4_USES_TERMINAL} + USES_TERMINAL 1 ) if(target MATCHES "^stage[0-9]*") @@ -783,3 +641,7 @@ if (CLANG_ENABLE_BOOTSTRAP) ExternalProject_Add_StepTargets(${NEXT_CLANG_STAGE} ${target}) endforeach() endif() + +if (LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION) + add_subdirectory(utils/ClangVisualizers) +endif() Modified: vendor/clang/dist/CODE_OWNERS.TXT ============================================================================== --- vendor/clang/dist/CODE_OWNERS.TXT Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/CODE_OWNERS.TXT Sat Jul 23 20:44:14 2016 (r303233) @@ -23,7 +23,7 @@ D: CMake, library layering N: Eric Christopher E: echristo@gmail.com -D: Debug Information, autotools/configure/make build, inline assembly +D: Debug Information, inline assembly N: Doug Gregor E: dgregor@apple.com @@ -52,3 +52,7 @@ D: Clang LLVM IR generation N: Richard Smith E: richard@metafoo.co.uk D: All parts of Clang not covered by someone else + +N: Anastasia Stulova +E: anastasia.stulova@arm.com +D: OpenCL support Modified: vendor/clang/dist/LICENSE.TXT ============================================================================== --- vendor/clang/dist/LICENSE.TXT Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/LICENSE.TXT Sat Jul 23 20:44:14 2016 (r303233) @@ -4,7 +4,7 @@ LLVM Release License University of Illinois/NCSA Open Source License -Copyright (c) 2007-2015 University of Illinois at Urbana-Champaign. +Copyright (c) 2007-2016 University of Illinois at Urbana-Champaign. All rights reserved. Developed by: Modified: vendor/clang/dist/bindings/python/clang/cindex.py ============================================================================== --- vendor/clang/dist/bindings/python/clang/cindex.py Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/bindings/python/clang/cindex.py Sat Jul 23 20:44:14 2016 (r303233) @@ -360,6 +360,23 @@ class Diagnostic(object): return FixItIterator(self) @property + def children(self): + class ChildDiagnosticsIterator: + def __init__(self, diag): + self.diag_set = conf.lib.clang_getChildDiagnostics(diag) + + def __len__(self): + return int(conf.lib.clang_getNumDiagnosticsInSet(self.diag_set)) + + def __getitem__(self, key): + diag = conf.lib.clang_getDiagnosticInSet(self.diag_set, key) + if not diag: + raise IndexError + return Diagnostic(diag) + + return ChildDiagnosticsIterator(self) + + @property def category_number(self): """The category number for this diagnostic or 0 if unavailable.""" return conf.lib.clang_getDiagnosticCategory(self) @@ -1120,6 +1137,9 @@ CursorKind.MODULE_IMPORT_DECL = CursorKi # A type alias template declaration CursorKind.TYPE_ALIAS_TEMPLATE_DECL = CursorKind(601) +# A code completion overload candidate. +CursorKind.OVERLOAD_CANDIDATE = CursorKind(700) + ### Template Argument Kinds ### class TemplateArgumentKind(BaseEnumeration): """ @@ -1174,6 +1194,32 @@ class Cursor(Structure): """ return conf.lib.clang_CXXMethod_isConst(self) + def is_converting_constructor(self): + """Returns True if the cursor refers to a C++ converting constructor. + """ + return conf.lib.clang_CXXConstructor_isConvertingConstructor(self) + + def is_copy_constructor(self): + """Returns True if the cursor refers to a C++ copy constructor. + """ + return conf.lib.clang_CXXConstructor_isCopyConstructor(self) + + def is_default_constructor(self): + """Returns True if the cursor refers to a C++ default constructor. + """ + return conf.lib.clang_CXXConstructor_isDefaultConstructor(self) + + def is_move_constructor(self): + """Returns True if the cursor refers to a C++ move constructor. + """ + return conf.lib.clang_CXXConstructor_isMoveConstructor(self) + + def is_default_method(self): + """Returns True if the cursor refers to a C++ member function or member + function template that is declared '= default'. + """ + return conf.lib.clang_CXXMethod_isDefaulted(self) + def is_mutable_field(self): """Returns True if the cursor refers to a C++ field that is declared 'mutable'. @@ -1685,6 +1731,7 @@ TypeKind.DEPENDENT = TypeKind(26) TypeKind.OBJCID = TypeKind(27) TypeKind.OBJCCLASS = TypeKind(28) TypeKind.OBJCSEL = TypeKind(29) +TypeKind.FLOAT128 = TypeKind(30) TypeKind.COMPLEX = TypeKind(100) TypeKind.POINTER = TypeKind(101) TypeKind.BLOCKPOINTER = TypeKind(102) @@ -1704,6 +1751,7 @@ TypeKind.VARIABLEARRAY = TypeKind(115) TypeKind.DEPENDENTSIZEDARRAY = TypeKind(116) TypeKind.MEMBERPOINTER = TypeKind(117) TypeKind.AUTO = TypeKind(118) +TypeKind.ELABORATED = TypeKind(119) class RefQualifierKind(BaseEnumeration): """Describes a specific ref-qualifier of a type.""" @@ -1902,6 +1950,12 @@ class Type(Structure): """ return conf.lib.clang_Type_getClassType(self) + def get_named_type(self): + """ + Retrieve the type named by the qualified-id. + """ + return conf.lib.clang_Type_getNamedType(self) + def get_align(self): """ Retrieve the alignment of the record. @@ -2383,7 +2437,7 @@ class TranslationUnit(ClangObject): functions above. __init__ is only called internally. """ assert isinstance(index, Index) - + self.index = index ClangObject.__init__(self, ptr) def __del__(self): @@ -2703,6 +2757,11 @@ class CompileCommand(object): return conf.lib.clang_CompileCommand_getDirectory(self.cmd) @property + def filename(self): + """Get the working filename for this CompileCommand""" + return conf.lib.clang_CompileCommand_getFilename(self.cmd) + + @property def arguments(self): """ Get an iterable object providing each argument in the @@ -2884,6 +2943,11 @@ functionList = [ _CXString, _CXString.from_result), + ("clang_CompileCommand_getFilename", + [c_object_p], + _CXString, + _CXString.from_result), + ("clang_CompileCommand_getNumArgs", [c_object_p], c_uint), @@ -2908,6 +2972,22 @@ functionList = [ [Index, c_char_p], c_object_p), + ("clang_CXXConstructor_isConvertingConstructor", + [Cursor], + bool), + + ("clang_CXXConstructor_isCopyConstructor", + [Cursor], + bool), + + ("clang_CXXConstructor_isDefaultConstructor", + [Cursor], + bool), + + ("clang_CXXConstructor_isMoveConstructor", + [Cursor], + bool), + ("clang_CXXField_isMutable", [Cursor], bool), @@ -2916,6 +2996,10 @@ functionList = [ [Cursor], bool), + ("clang_CXXMethod_isDefaulted", + [Cursor], + bool), + ("clang_CXXMethod_isPureVirtual", [Cursor], bool), @@ -2997,6 +3081,10 @@ functionList = [ Type, Type.from_result), + ("clang_getChildDiagnostics", + [Diagnostic], + c_object_p), + ("clang_getCompletionAvailability", [c_void_p], c_int), @@ -3117,6 +3205,10 @@ functionList = [ _CXString, _CXString.from_result), + ("clang_getDiagnosticInSet", + [c_object_p, c_uint], + c_object_p), + ("clang_getDiagnosticLocation", [Diagnostic], SourceLocation), @@ -3218,6 +3310,10 @@ functionList = [ [c_object_p], c_uint), + ("clang_getNumDiagnosticsInSet", + [c_object_p], + c_uint), + ("clang_getNumElements", [Type], c_longlong), @@ -3477,6 +3573,11 @@ functionList = [ [Type], c_uint), + ("clang_Type_getNamedType", + [Type], + Type, + Type.from_result), + ("clang_Type_visitFields", [Type, callbacks['fields_visit'], py_object], c_uint), Modified: vendor/clang/dist/bindings/python/tests/cindex/test_cdb.py ============================================================================== --- vendor/clang/dist/bindings/python/tests/cindex/test_cdb.py Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/bindings/python/tests/cindex/test_cdb.py Sat Jul 23 20:44:14 2016 (r303233) @@ -38,27 +38,34 @@ def test_all_compilecommand(): cmds = cdb.getAllCompileCommands() assert len(cmds) == 3 expected = [ + { 'wd': '/home/john.doe/MyProject', + 'file': '/home/john.doe/MyProject/project.cpp', + 'line': ['clang++', '-o', 'project.o', '-c', + '/home/john.doe/MyProject/project.cpp']}, { 'wd': '/home/john.doe/MyProjectA', + 'file': '/home/john.doe/MyProject/project2.cpp', 'line': ['clang++', '-o', 'project2.o', '-c', '/home/john.doe/MyProject/project2.cpp']}, { 'wd': '/home/john.doe/MyProjectB', + 'file': '/home/john.doe/MyProject/project2.cpp', 'line': ['clang++', '-DFEATURE=1', '-o', 'project2-feature.o', '-c', '/home/john.doe/MyProject/project2.cpp']}, - { 'wd': '/home/john.doe/MyProject', - 'line': ['clang++', '-o', 'project.o', '-c', - '/home/john.doe/MyProject/project.cpp']} + ] for i in range(len(cmds)): assert cmds[i].directory == expected[i]['wd'] + assert cmds[i].filename == expected[i]['file'] for arg, exp in zip(cmds[i].arguments, expected[i]['line']): assert arg == exp def test_1_compilecommand(): """Check file with single compile command""" cdb = CompilationDatabase.fromDirectory(kInputsDir) - cmds = cdb.getCompileCommands('/home/john.doe/MyProject/project.cpp') + file = '/home/john.doe/MyProject/project.cpp' + cmds = cdb.getCompileCommands(file) assert len(cmds) == 1 - assert cmds[0].directory == '/home/john.doe/MyProject' + assert cmds[0].directory == os.path.dirname(file) + assert cmds[0].filename == file expected = [ 'clang++', '-o', 'project.o', '-c', '/home/john.doe/MyProject/project.cpp'] for arg, exp in zip(cmds[0].arguments, expected): Modified: vendor/clang/dist/bindings/python/tests/cindex/test_cursor.py ============================================================================== --- vendor/clang/dist/bindings/python/tests/cindex/test_cursor.py Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/bindings/python/tests/cindex/test_cursor.py Sat Jul 23 20:44:14 2016 (r303233) @@ -112,6 +112,88 @@ def test_is_const_method(): assert foo.is_const_method() assert not bar.is_const_method() +def test_is_converting_constructor(): + """Ensure Cursor.is_converting_constructor works.""" + source = 'class X { explicit X(int); X(double); X(); };' + tu = get_tu(source, lang='cpp') + + xs = get_cursors(tu, 'X') + + assert len(xs) == 4 + assert xs[0].kind == CursorKind.CLASS_DECL + cs = xs[1:] + assert cs[0].kind == CursorKind.CONSTRUCTOR + assert cs[1].kind == CursorKind.CONSTRUCTOR + assert cs[2].kind == CursorKind.CONSTRUCTOR + + assert not cs[0].is_converting_constructor() + assert cs[1].is_converting_constructor() + assert not cs[2].is_converting_constructor() + + +def test_is_copy_constructor(): + """Ensure Cursor.is_copy_constructor works.""" + source = 'class X { X(); X(const X&); X(X&&); };' + tu = get_tu(source, lang='cpp') + + xs = get_cursors(tu, 'X') + assert xs[0].kind == CursorKind.CLASS_DECL + cs = xs[1:] + assert cs[0].kind == CursorKind.CONSTRUCTOR + assert cs[1].kind == CursorKind.CONSTRUCTOR + assert cs[2].kind == CursorKind.CONSTRUCTOR + + assert not cs[0].is_copy_constructor() + assert cs[1].is_copy_constructor() + assert not cs[2].is_copy_constructor() + +def test_is_default_constructor(): + """Ensure Cursor.is_default_constructor works.""" + source = 'class X { X(); X(int); };' + tu = get_tu(source, lang='cpp') + + xs = get_cursors(tu, 'X') + assert xs[0].kind == CursorKind.CLASS_DECL + cs = xs[1:] + assert cs[0].kind == CursorKind.CONSTRUCTOR + assert cs[1].kind == CursorKind.CONSTRUCTOR + + assert cs[0].is_default_constructor() + assert not cs[1].is_default_constructor() + +def test_is_move_constructor(): + """Ensure Cursor.is_move_constructor works.""" + source = 'class X { X(); X(const X&); X(X&&); };' + tu = get_tu(source, lang='cpp') + + xs = get_cursors(tu, 'X') + assert xs[0].kind == CursorKind.CLASS_DECL + cs = xs[1:] + assert cs[0].kind == CursorKind.CONSTRUCTOR + assert cs[1].kind == CursorKind.CONSTRUCTOR + assert cs[2].kind == CursorKind.CONSTRUCTOR + + assert not cs[0].is_move_constructor() + assert not cs[1].is_move_constructor() + assert cs[2].is_move_constructor() + +def test_is_default_method(): + """Ensure Cursor.is_default_method works.""" + source = 'class X { X() = default; }; class Y { Y(); };' + tu = get_tu(source, lang='cpp') + + xs = get_cursors(tu, 'X') + ys = get_cursors(tu, 'Y') + + assert len(xs) == 2 + assert len(ys) == 2 + + xc = xs[1] + yc = ys[1] + + assert xc.is_default_method() + assert not yc.is_default_method() + def test_is_mutable_field(): """Ensure Cursor.is_mutable_field works.""" source = 'class X { int x_; mutable int y_; };' Modified: vendor/clang/dist/bindings/python/tests/cindex/test_diagnostics.py ============================================================================== --- vendor/clang/dist/bindings/python/tests/cindex/test_diagnostics.py Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/bindings/python/tests/cindex/test_diagnostics.py Sat Jul 23 20:44:14 2016 (r303233) @@ -80,3 +80,15 @@ def test_diagnostic_option(): assert d.option == '-Wunused-parameter' assert d.disable_option == '-Wno-unused-parameter' + +def test_diagnostic_children(): + tu = get_tu('void f(int x) {} void g() { f(); }') + assert len(tu.diagnostics) == 1 + d = tu.diagnostics[0] + + children = d.children + assert len(children) == 1 + assert children[0].severity == Diagnostic.Note + assert children[0].spelling.endswith('declared here') + assert children[0].location.line == 1 + assert children[0].location.column == 1 Added: vendor/clang/dist/cmake/caches/3-stage-base.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/cmake/caches/3-stage-base.cmake Sat Jul 23 20:44:14 2016 (r303233) @@ -0,0 +1,15 @@ +set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "") +set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") +set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "") +set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") + +set(CLANG_BOOTSTRAP_TARGETS + clang + check-all + check-llvm + check-clang + test-suite CACHE STRING "") + +set(CLANG_BOOTSTRAP_CMAKE_ARGS + -C ${CMAKE_CURRENT_LIST_DIR}/3-stage-base.cmake + CACHE STRING "") Added: vendor/clang/dist/cmake/caches/3-stage.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/clang/dist/cmake/caches/3-stage.cmake Sat Jul 23 20:44:14 2016 (r303233) @@ -0,0 +1,16 @@ +set(CLANG_BOOTSTRAP_TARGETS + clang + check-all + check-llvm + check-clang + test-suite + stage3 + stage3-clang + stage3-check-all + stage3-check-llvm + stage3-check-clang + stage3-test-suite CACHE STRING "") + +set(LLVM_TARGETS_TO_BUILD Native CACHE STRING "") + +include(${CMAKE_CURRENT_LIST_DIR}/3-stage-base.cmake) Modified: vendor/clang/dist/cmake/caches/Apple-stage1.cmake ============================================================================== --- vendor/clang/dist/cmake/caches/Apple-stage1.cmake Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/cmake/caches/Apple-stage1.cmake Sat Jul 23 20:44:14 2016 (r303233) @@ -16,15 +16,36 @@ set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") set(COMPILER_RT_INCLUDE_TESTS OFF CACHE BOOL "") set(COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "") +set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") +set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "") +set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") +set(CLANG_BOOTSTRAP_PASSTHROUGH + CMAKE_OSX_ARCHITECTURES + CACHE STRING "") +set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") -set(PACKAGE_VERSION 7.1.0 CACHE STRING "") # LIBCXX Settings set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") set(LIBCXX_INSTALL_HEADERS ON CACHE BOOL "") set(LIBCXX_OVERRIDE_DARWIN_INSTALL ON CACHE BOOL "") +set(CLANG_BOOTSTRAP_TARGETS + generate-order-file + check-all + check-llvm + check-clang + llvm-config + test-suite + test-depends + llvm-test-depends + clang-test-depends + distribution + install-distribution + clang CACHE STRING "") + #bootstrap set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") set(CLANG_BOOTSTRAP_CMAKE_ARGS Modified: vendor/clang/dist/cmake/caches/Apple-stage2.cmake ============================================================================== --- vendor/clang/dist/cmake/caches/Apple-stage2.cmake Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/cmake/caches/Apple-stage2.cmake Sat Jul 23 20:44:14 2016 (r303233) @@ -2,23 +2,37 @@ # specified by the stage1 build. set(LLVM_TARGETS_TO_BUILD X86 ARM AArch64 CACHE STRING "") -set(CLANG_VENDOR Apple CACHE STRING "") -set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") +set(PACKAGE_VENDOR Apple CACHE STRING "") set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "") -set(LLVM_INCLUDE_UTILS OFF CACHE BOOL "") set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "") -set(CLANG_INCLUDE_TESTS OFF CACHE BOOL "") -set(COMPILER_RT_INCLUDE_TESTS OFF CACHE BOOL "") -set(COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "") +set(LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD OFF CACHE BOOL "") +set(CLANG_TOOL_SCAN_BUILD_BUILD OFF CACHE BOOL "") +set(CLANG_TOOL_SCAN_VIEW_BUILD OFF CACHE BOOL "") set(CLANG_LINKS_TO_CREATE clang++ cc c++ CACHE STRING "") +set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") +set(LLVM_ENABLE_ZLIB ON CACHE BOOL "") +set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") +set(LLVM_EXTERNALIZE_DEBUGINFO ON CACHE BOOL "") +set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") +set(BUG_REPORT_URL "http://developer.apple.com/bugreporter/" CACHE STRING "") -set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Os -flto -gline-tables-only -DNDEBUG" CACHE STRING "") -set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-Os -flto -gline-tables-only -DNDEBUG" CACHE STRING "") +set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "Build Compiler-RT with just-built clang") +set(COMPILER_RT_ENABLE_IOS ON CACHE BOOL "Build iOS Compiler-RT libraries") + +# Make unit tests (if present) part of the ALL target +set(LLVM_BUILD_TESTS ON CACHE BOOL "") + +set(LLVM_ENABLE_LTO ON CACHE BOOL "") +set(CMAKE_C_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") +set(CMAKE_CXX_FLAGS "-fno-stack-protector -fno-common -Wno-profile-instr-unprofiled" CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -gline-tables-only -DNDEBUG" CACHE STRING "") set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "") -set(PACKAGE_VERSION 7.1.0 CACHE STRING "") set(LIBCXX_INSTALL_LIBRARY OFF CACHE BOOL "") -set(LIBCXX_INSTALL_HEADERS OFF CACHE BOOL "") +set(LIBCXX_INSTALL_HEADERS ON CACHE BOOL "") +set(LIBCXX_INCLUDE_TESTS OFF CACHE BOOL "") +set(LLVM_LTO_VERSION_OFFSET 3000 CACHE STRING "") # setup toolchain set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") @@ -27,4 +41,20 @@ set(LLVM_TOOLCHAIN_TOOLS llvm-cov llvm-dwarfdump llvm-profdata + llvm-objdump + llvm-nm + llvm-size + CACHE STRING "") + +set(LLVM_DISTRIBUTION_COMPONENTS + clang + LTO + clang-format + clang-headers + libcxx-headers + ${LLVM_TOOLCHAIN_TOOLS} CACHE STRING "") + +# test args + +set(LLVM_LIT_ARGS "--xunit-xml-output=testresults.xunit.xml -v" CACHE STRING "") Modified: vendor/clang/dist/cmake/caches/README.txt ============================================================================== --- vendor/clang/dist/cmake/caches/README.txt Sat Jul 23 20:41:56 2016 (r303232) +++ vendor/clang/dist/cmake/caches/README.txt Sat Jul 23 20:44:14 2016 (r303233) @@ -4,15 +4,71 @@ CMake Caches This directory contains CMake cache scripts that pre-populate the CMakeCache in a build directory with commonly used settings. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sat Jul 23 20:44:50 2016 Return-Path: Delivered-To: svn-src-all@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 80C71BA28F9; Sat, 23 Jul 2016 20:44:50 +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 3B0DA1475; Sat, 23 Jul 2016 20:44:50 +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 u6NKin3r011951; Sat, 23 Jul 2016 20:44:49 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKin5K011950; Sat, 23 Jul 2016 20:44:49 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232044.u6NKin5K011950@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:44:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303234 - vendor/clang/clang-release_39-r276489 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:44:50 -0000 Author: dim Date: Sat Jul 23 20:44:49 2016 New Revision: 303234 URL: https://svnweb.freebsd.org/changeset/base/303234 Log: Tag clang release_39 branch r276489. Added: vendor/clang/clang-release_39-r276489/ - copied from r303233, vendor/clang/dist/ From owner-svn-src-all@freebsd.org Sat Jul 23 20:45:39 2016 Return-Path: Delivered-To: svn-src-all@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 747C5BA2977; Sat, 23 Jul 2016 20:45: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 D9ED91624; Sat, 23 Jul 2016 20:45:38 +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 u6NKjcNP012045; Sat, 23 Jul 2016 20:45:38 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKjbVT012031; Sat, 23 Jul 2016 20:45:37 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232045.u6NKjbVT012031@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:45:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303235 - in vendor/compiler-rt/dist: . SDKs cmake cmake/Modules cmake/caches include include/sanitizer lib lib/asan lib/asan/scripts lib/asan/tests lib/builtins lib/builtins/Darwin-exc... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:45:39 -0000 Author: dim Date: Sat Jul 23 20:45:36 2016 New Revision: 303235 URL: https://svnweb.freebsd.org/changeset/base/303235 Log: Vendor import of compiler-rt release_39 branch r276489: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_39@276489 Added: vendor/compiler-rt/dist/cmake/Modules/BuiltinTests.cmake vendor/compiler-rt/dist/cmake/base-config-ix.cmake vendor/compiler-rt/dist/cmake/builtin-config-ix.cmake vendor/compiler-rt/dist/cmake/caches/ vendor/compiler-rt/dist/cmake/caches/Apple.cmake vendor/compiler-rt/dist/include/sanitizer/esan_interface.h (contents, props changed) vendor/compiler-rt/dist/lib/asan/asan_memory_profile.cc (contents, props changed) vendor/compiler-rt/dist/lib/asan/asan_scariness_score.h (contents, props changed) vendor/compiler-rt/dist/lib/builtins/cpu_model.c (contents, props changed) vendor/compiler-rt/dist/lib/esan/ vendor/compiler-rt/dist/lib/esan/CMakeLists.txt (contents, props changed) vendor/compiler-rt/dist/lib/esan/cache_frag.cpp (contents, props changed) vendor/compiler-rt/dist/lib/esan/cache_frag.h (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan.cpp (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan.h (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan.syms.extra vendor/compiler-rt/dist/lib/esan/esan_circular_buffer.h (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan_flags.cpp (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan_flags.h (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan_flags.inc (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan_interceptors.cpp (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan_interface.cpp (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan_interface_internal.h (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan_linux.cpp (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan_shadow.h (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan_sideline.h (contents, props changed) vendor/compiler-rt/dist/lib/esan/esan_sideline_linux.cpp (contents, props changed) vendor/compiler-rt/dist/lib/esan/working_set.cpp (contents, props changed) vendor/compiler-rt/dist/lib/esan/working_set.h (contents, props changed) vendor/compiler-rt/dist/lib/esan/working_set_posix.cpp (contents, props changed) vendor/compiler-rt/dist/lib/interception/tests/ vendor/compiler-rt/dist/lib/interception/tests/CMakeLists.txt (contents, props changed) vendor/compiler-rt/dist/lib/interception/tests/interception_linux_test.cc (contents, props changed) vendor/compiler-rt/dist/lib/interception/tests/interception_test_main.cc (contents, props changed) vendor/compiler-rt/dist/lib/interception/tests/interception_win_test.cc (contents, props changed) vendor/compiler-rt/dist/lib/profile/InstrProfilingMerge.c (contents, props changed) vendor/compiler-rt/dist/lib/profile/InstrProfilingMergeFile.c (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/.clang-tidy vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_s390.cc (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_x86_64.S (contents, props changed) vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_termination.cc (contents, props changed) vendor/compiler-rt/dist/lib/scudo/ vendor/compiler-rt/dist/lib/scudo/CMakeLists.txt (contents, props changed) vendor/compiler-rt/dist/lib/scudo/scudo_allocator.cpp (contents, props changed) vendor/compiler-rt/dist/lib/scudo/scudo_allocator.h (contents, props changed) vendor/compiler-rt/dist/lib/scudo/scudo_flags.cpp (contents, props changed) vendor/compiler-rt/dist/lib/scudo/scudo_flags.h (contents, props changed) vendor/compiler-rt/dist/lib/scudo/scudo_flags.inc (contents, props changed) vendor/compiler-rt/dist/lib/scudo/scudo_interceptors.cpp (contents, props changed) vendor/compiler-rt/dist/lib/scudo/scudo_new_delete.cpp (contents, props changed) vendor/compiler-rt/dist/lib/scudo/scudo_termination.cpp (contents, props changed) vendor/compiler-rt/dist/lib/scudo/scudo_utils.cpp (contents, props changed) vendor/compiler-rt/dist/lib/scudo/scudo_utils.h (contents, props changed) vendor/compiler-rt/dist/lib/stats/ vendor/compiler-rt/dist/lib/stats/CMakeLists.txt (contents, props changed) vendor/compiler-rt/dist/lib/stats/stats.cc (contents, props changed) vendor/compiler-rt/dist/lib/stats/stats.h (contents, props changed) vendor/compiler-rt/dist/lib/stats/stats_client.cc (contents, props changed) vendor/compiler-rt/dist/lib/tsan/rtl/tsan_debugging.cc (contents, props changed) vendor/compiler-rt/dist/lib/tsan/rtl/tsan_preinit.cc (contents, props changed) vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_proc.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Darwin/dead-strip.c (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Darwin/malloc_size_crash.mm vendor/compiler-rt/dist/test/asan/TestCases/Darwin/segv_read_write.c (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/coverage_html_report.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/local_alias.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/memmem_test.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/new_delete_mismatch.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/odr_c_test.c (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/print_memory_profile_test.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/recvfrom.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/scariness_score_test.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/segv_read_write.c (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/stack-overflow-recovery-mode.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Linux/swapcontext_annotation.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/dump_instruction_bytes.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/global-registration.c (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/mmap_limit_mb.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Posix/print_cmdline.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/Windows/crash_read_write.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/alloca_constant_size.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/coverage-trace-pc.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/invalid-pointer-pairs.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-capture.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-chars.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-if.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-loop-bug.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-loop-removed.cc (contents, props changed) vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-loop.cc (contents, props changed) vendor/compiler-rt/dist/test/builtins/Unit/cpu_model_test.c (contents, props changed) vendor/compiler-rt/dist/test/cfi/cross-dso/dlopen.cpp (contents, props changed) vendor/compiler-rt/dist/test/cfi/cross-dso/icall/diag.cpp (contents, props changed) vendor/compiler-rt/dist/test/cfi/cross-dso/shadow_is_read_only.cpp (contents, props changed) vendor/compiler-rt/dist/test/cfi/cross-dso/stats.cpp (contents, props changed) vendor/compiler-rt/dist/test/cfi/cross-dso/target_out_of_bounds.cpp (contents, props changed) vendor/compiler-rt/dist/test/cfi/stats.cpp (contents, props changed) vendor/compiler-rt/dist/test/cfi/target_uninstrumented.cpp (contents, props changed) vendor/compiler-rt/dist/test/esan/ vendor/compiler-rt/dist/test/esan/CMakeLists.txt (contents, props changed) vendor/compiler-rt/dist/test/esan/TestCases/ vendor/compiler-rt/dist/test/esan/TestCases/large-stack-linux.c (contents, props changed) vendor/compiler-rt/dist/test/esan/TestCases/libc-intercept.c (contents, props changed) vendor/compiler-rt/dist/test/esan/TestCases/mmap-shadow-conflict.c (contents, props changed) vendor/compiler-rt/dist/test/esan/TestCases/struct-simple.cpp (contents, props changed) vendor/compiler-rt/dist/test/esan/TestCases/verbose-simple.c (contents, props changed) vendor/compiler-rt/dist/test/esan/TestCases/workingset-early-fault.c (contents, props changed) vendor/compiler-rt/dist/test/esan/TestCases/workingset-memset.cpp (contents, props changed) vendor/compiler-rt/dist/test/esan/TestCases/workingset-midreport.cpp (contents, props changed) vendor/compiler-rt/dist/test/esan/TestCases/workingset-samples.cpp (contents, props changed) vendor/compiler-rt/dist/test/esan/TestCases/workingset-signal-posix.cpp (contents, props changed) vendor/compiler-rt/dist/test/esan/TestCases/workingset-simple.cpp (contents, props changed) vendor/compiler-rt/dist/test/esan/Unit/ vendor/compiler-rt/dist/test/esan/Unit/circular_buffer.cpp (contents, props changed) vendor/compiler-rt/dist/test/esan/lit.cfg vendor/compiler-rt/dist/test/esan/lit.site.cfg.in (contents, props changed) vendor/compiler-rt/dist/test/lsan/TestCases/guard-page.c (contents, props changed) vendor/compiler-rt/dist/test/msan/Linux/cmsghdr.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/Linux/eventfd.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/Linux/sendmsg.cc (contents, props changed) vendor/compiler-rt/dist/test/msan/Linux/syscalls_sigaction.cc (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/extern_template.cpp (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/extern_template.h (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/extern_template1.cpp (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/extern_template2.cpp (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-alloc.c (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-comdat-1.cpp (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-comdat-2.cpp (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-comdat.h (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-file_ex.c (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-icall-promo.h (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-icall-promo_1.cc (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-icall-promo_2.cc (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-merge-match-lib.c (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-merge-match.c (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-value-prof-evict.c (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-value-prof-real.c (contents, props changed) vendor/compiler-rt/dist/test/profile/Inputs/instrprof-visibility-helper.cpp (contents, props changed) vendor/compiler-rt/dist/test/profile/Linux/coverage_ctors.cpp (contents, props changed) vendor/compiler-rt/dist/test/profile/Linux/coverage_dtor.cpp (contents, props changed) vendor/compiler-rt/dist/test/profile/Linux/coverage_shared.test vendor/compiler-rt/dist/test/profile/Linux/coverage_test.cpp (contents, props changed) vendor/compiler-rt/dist/test/profile/Linux/extern_template.test vendor/compiler-rt/dist/test/profile/Linux/instrprof-alloc.test vendor/compiler-rt/dist/test/profile/Linux/instrprof-comdat.test vendor/compiler-rt/dist/test/profile/Linux/instrprof-file_ex.test vendor/compiler-rt/dist/test/profile/Linux/instrprof-merge-vp.c (contents, props changed) vendor/compiler-rt/dist/test/profile/Linux/instrprof-set-filename-shared.test vendor/compiler-rt/dist/test/profile/Linux/instrprof-value-prof-warn.test vendor/compiler-rt/dist/test/profile/instrprof-hostname.c (contents, props changed) vendor/compiler-rt/dist/test/profile/instrprof-icall-promo.test vendor/compiler-rt/dist/test/profile/instrprof-merge-match.test vendor/compiler-rt/dist/test/profile/instrprof-merge.c (contents, props changed) vendor/compiler-rt/dist/test/profile/instrprof-value-prof-evict.test vendor/compiler-rt/dist/test/profile/instrprof-value-prof-shared.test vendor/compiler-rt/dist/test/profile/instrprof-value-prof.test vendor/compiler-rt/dist/test/profile/instrprof-visibility-kinds.inc (contents, props changed) vendor/compiler-rt/dist/test/profile/instrprof-visibility.cpp (contents, props changed) vendor/compiler-rt/dist/test/safestack/canary.c (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/decorate_proc_maps.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/recv_msg_trunc.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/weak_hook_test.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/dedup_token_length_test.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/getpass.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/sanitizer_set_report_fd_test.cc (contents, props changed) vendor/compiler-rt/dist/test/sanitizer_common/TestCases/strnlen.c (contents, props changed) vendor/compiler-rt/dist/test/scudo/ vendor/compiler-rt/dist/test/scudo/CMakeLists.txt (contents, props changed) vendor/compiler-rt/dist/test/scudo/alignment.cpp (contents, props changed) vendor/compiler-rt/dist/test/scudo/double-free.cpp (contents, props changed) vendor/compiler-rt/dist/test/scudo/lit.cfg vendor/compiler-rt/dist/test/scudo/lit.site.cfg.in (contents, props changed) vendor/compiler-rt/dist/test/scudo/malloc.cpp (contents, props changed) vendor/compiler-rt/dist/test/scudo/memalign.cpp (contents, props changed) vendor/compiler-rt/dist/test/scudo/mismatch.cpp (contents, props changed) vendor/compiler-rt/dist/test/scudo/overflow.cpp (contents, props changed) vendor/compiler-rt/dist/test/scudo/preinit.cpp (contents, props changed) vendor/compiler-rt/dist/test/scudo/quarantine.cpp (contents, props changed) vendor/compiler-rt/dist/test/scudo/realloc.cpp (contents, props changed) vendor/compiler-rt/dist/test/scudo/sized-delete.cpp (contents, props changed) vendor/compiler-rt/dist/test/scudo/sizes.cpp (contents, props changed) vendor/compiler-rt/dist/test/tsan/Darwin/dispatch_main.mm vendor/compiler-rt/dist/test/tsan/Darwin/dispatch_once_deadlock.mm vendor/compiler-rt/dist/test/tsan/Darwin/dlopen.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/Darwin/gcd-after.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-apply-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-apply.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-barrier-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-barrier.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-blocks.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-data.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-fd.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-destructor.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-leave.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-barrier-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-barrier.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-cleanup.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-io.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-cancel.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-cancel2.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-event.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-event2.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-registration.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-registration2.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-source-serial.mm vendor/compiler-rt/dist/test/tsan/Darwin/ignored-interceptors.mm vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-shared-ptr-recursive.mm vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-shared-ptr-stress.mm vendor/compiler-rt/dist/test/tsan/Darwin/libcxx-shared-ptr.mm vendor/compiler-rt/dist/test/tsan/Darwin/malloc-stack-logging.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/Darwin/malloc_size.mm vendor/compiler-rt/dist/test/tsan/Darwin/osatomics-add.mm vendor/compiler-rt/dist/test/tsan/Darwin/osatomics-list.mm vendor/compiler-rt/dist/test/tsan/Darwin/xpc-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/xpc.mm vendor/compiler-rt/dist/test/tsan/Linux/check_preinit.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/debugging.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/dtls.c (contents, props changed) vendor/compiler-rt/dist/test/tsan/ignore_lib4.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/ignored-interceptors-mmap.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/lots_of_threads.c (contents, props changed) vendor/compiler-rt/dist/test/tsan/mutex_annotations.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/mutex_cycle_long.c (contents, props changed) vendor/compiler-rt/dist/test/tsan/mutex_lock_destroyed.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/pthread_key.cc (contents, props changed) vendor/compiler-rt/dist/test/tsan/signal_sync2.cc (contents, props changed) vendor/compiler-rt/dist/test/ubsan/TestCases/TypeCheck/Helpers/ vendor/compiler-rt/dist/test/ubsan/TestCases/TypeCheck/vptr-corrupted-vtable-itanium.cpp (contents, props changed) vendor/compiler-rt/dist/test/ubsan/TestCases/TypeCheck/vptr-non-unique-typeinfo.cpp (contents, props changed) Deleted: vendor/compiler-rt/dist/SDKs/ vendor/compiler-rt/dist/lib/asan/Makefile.mk vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/10.4-x86_64.txt vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/osx-x86_64.txt vendor/compiler-rt/dist/lib/interception/Makefile.mk vendor/compiler-rt/dist/lib/lsan/Makefile.mk vendor/compiler-rt/dist/lib/profile/Makefile.mk vendor/compiler-rt/dist/lib/sanitizer_common/Makefile.mk vendor/compiler-rt/dist/lib/ubsan/Makefile.mk vendor/compiler-rt/dist/test/asan/TestCases/Windows/throw_catch.cc vendor/compiler-rt/dist/test/asan/TestCases/dump_instruction_bytes.cc vendor/compiler-rt/dist/test/asan/TestCases/mmap_limit_mb.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/getpass.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/sanitizer_set_death_callback_test.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/decorate_proc_maps.cc Modified: vendor/compiler-rt/dist/.arcconfig vendor/compiler-rt/dist/CMakeLists.txt vendor/compiler-rt/dist/CODE_OWNERS.TXT vendor/compiler-rt/dist/LICENSE.TXT vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake vendor/compiler-rt/dist/cmake/Modules/CompilerRTCompile.cmake vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake vendor/compiler-rt/dist/cmake/config-ix.cmake vendor/compiler-rt/dist/include/CMakeLists.txt vendor/compiler-rt/dist/include/sanitizer/allocator_interface.h vendor/compiler-rt/dist/include/sanitizer/common_interface_defs.h vendor/compiler-rt/dist/include/sanitizer/linux_syscall_hooks.h vendor/compiler-rt/dist/lib/CMakeLists.txt vendor/compiler-rt/dist/lib/Makefile.mk vendor/compiler-rt/dist/lib/asan/CMakeLists.txt vendor/compiler-rt/dist/lib/asan/asan_activation.cc vendor/compiler-rt/dist/lib/asan/asan_allocator.cc vendor/compiler-rt/dist/lib/asan/asan_allocator.h vendor/compiler-rt/dist/lib/asan/asan_fake_stack.cc vendor/compiler-rt/dist/lib/asan/asan_fake_stack.h vendor/compiler-rt/dist/lib/asan/asan_flags.cc vendor/compiler-rt/dist/lib/asan/asan_flags.inc vendor/compiler-rt/dist/lib/asan/asan_globals.cc vendor/compiler-rt/dist/lib/asan/asan_init_version.h vendor/compiler-rt/dist/lib/asan/asan_interceptors.cc vendor/compiler-rt/dist/lib/asan/asan_interceptors.h vendor/compiler-rt/dist/lib/asan/asan_interface_internal.h vendor/compiler-rt/dist/lib/asan/asan_internal.h vendor/compiler-rt/dist/lib/asan/asan_linux.cc vendor/compiler-rt/dist/lib/asan/asan_mac.cc vendor/compiler-rt/dist/lib/asan/asan_malloc_linux.cc vendor/compiler-rt/dist/lib/asan/asan_malloc_win.cc vendor/compiler-rt/dist/lib/asan/asan_mapping.h vendor/compiler-rt/dist/lib/asan/asan_new_delete.cc vendor/compiler-rt/dist/lib/asan/asan_poisoning.cc vendor/compiler-rt/dist/lib/asan/asan_posix.cc vendor/compiler-rt/dist/lib/asan/asan_report.cc vendor/compiler-rt/dist/lib/asan/asan_report.h vendor/compiler-rt/dist/lib/asan/asan_rtl.cc vendor/compiler-rt/dist/lib/asan/asan_stack.h vendor/compiler-rt/dist/lib/asan/asan_suppressions.cc vendor/compiler-rt/dist/lib/asan/asan_thread.cc vendor/compiler-rt/dist/lib/asan/asan_thread.h vendor/compiler-rt/dist/lib/asan/asan_win.cc vendor/compiler-rt/dist/lib/asan/asan_win_dll_thunk.cc vendor/compiler-rt/dist/lib/asan/asan_win_dynamic_runtime_thunk.cc vendor/compiler-rt/dist/lib/asan/scripts/asan_device_setup vendor/compiler-rt/dist/lib/asan/tests/CMakeLists.txt vendor/compiler-rt/dist/lib/asan/tests/asan_noinst_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_str_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_test.cc vendor/compiler-rt/dist/lib/asan/tests/asan_test_main.cc vendor/compiler-rt/dist/lib/builtins/CMakeLists.txt vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/10.4.txt vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/osx-i386.txt vendor/compiler-rt/dist/lib/builtins/Darwin-excludes/osx.txt vendor/compiler-rt/dist/lib/builtins/arm/adddf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/addsf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cdcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_cfcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_dcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_fcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_idivmod.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_ldivmod.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_memcmp.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_memcpy.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_memmove.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_memset.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_uidivmod.S vendor/compiler-rt/dist/lib/builtins/arm/aeabi_uldivmod.S vendor/compiler-rt/dist/lib/builtins/arm/bswapdi2.S vendor/compiler-rt/dist/lib/builtins/arm/bswapsi2.S vendor/compiler-rt/dist/lib/builtins/arm/clzdi2.S vendor/compiler-rt/dist/lib/builtins/arm/clzsi2.S vendor/compiler-rt/dist/lib/builtins/arm/comparesf2.S vendor/compiler-rt/dist/lib/builtins/arm/divdf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/divmodsi4.S vendor/compiler-rt/dist/lib/builtins/arm/divsf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/divsi3.S vendor/compiler-rt/dist/lib/builtins/arm/eqdf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/eqsf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/extendsfdf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/fixdfsivfp.S vendor/compiler-rt/dist/lib/builtins/arm/fixsfsivfp.S vendor/compiler-rt/dist/lib/builtins/arm/fixunsdfsivfp.S vendor/compiler-rt/dist/lib/builtins/arm/fixunssfsivfp.S vendor/compiler-rt/dist/lib/builtins/arm/floatsidfvfp.S vendor/compiler-rt/dist/lib/builtins/arm/floatsisfvfp.S vendor/compiler-rt/dist/lib/builtins/arm/floatunssidfvfp.S vendor/compiler-rt/dist/lib/builtins/arm/floatunssisfvfp.S vendor/compiler-rt/dist/lib/builtins/arm/gedf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/gesf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/gtdf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/gtsf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/ledf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/lesf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/ltdf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/ltsf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/modsi3.S vendor/compiler-rt/dist/lib/builtins/arm/muldf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/mulsf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/nedf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/negdf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/negsf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/nesf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/restore_vfp_d8_d15_regs.S vendor/compiler-rt/dist/lib/builtins/arm/save_vfp_d8_d15_regs.S vendor/compiler-rt/dist/lib/builtins/arm/subdf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/subsf3vfp.S vendor/compiler-rt/dist/lib/builtins/arm/switch16.S vendor/compiler-rt/dist/lib/builtins/arm/switch32.S vendor/compiler-rt/dist/lib/builtins/arm/switch8.S vendor/compiler-rt/dist/lib/builtins/arm/switchu8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_add_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_add_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_and_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_and_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_max_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_max_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_min_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_min_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_nand_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_nand_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_or_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_or_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_sub_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_sub_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_umax_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_umax_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_umin_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_umin_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_xor_4.S vendor/compiler-rt/dist/lib/builtins/arm/sync_fetch_and_xor_8.S vendor/compiler-rt/dist/lib/builtins/arm/sync_synchronize.S vendor/compiler-rt/dist/lib/builtins/arm/truncdfsf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/udivmodsi4.S vendor/compiler-rt/dist/lib/builtins/arm/udivsi3.S vendor/compiler-rt/dist/lib/builtins/arm/umodsi3.S vendor/compiler-rt/dist/lib/builtins/arm/unorddf2vfp.S vendor/compiler-rt/dist/lib/builtins/arm/unordsf2vfp.S vendor/compiler-rt/dist/lib/builtins/assembly.h vendor/compiler-rt/dist/lib/builtins/clear_cache.c vendor/compiler-rt/dist/lib/builtins/emutls.c vendor/compiler-rt/dist/lib/builtins/floatdidf.c vendor/compiler-rt/dist/lib/builtins/floattidf.c vendor/compiler-rt/dist/lib/builtins/floatundidf.c vendor/compiler-rt/dist/lib/builtins/floatuntidf.c vendor/compiler-rt/dist/lib/builtins/gcc_personality_v0.c vendor/compiler-rt/dist/lib/builtins/i386/ashldi3.S vendor/compiler-rt/dist/lib/builtins/i386/ashrdi3.S vendor/compiler-rt/dist/lib/builtins/i386/divdi3.S vendor/compiler-rt/dist/lib/builtins/i386/floatdidf.S vendor/compiler-rt/dist/lib/builtins/i386/floatdisf.S vendor/compiler-rt/dist/lib/builtins/i386/floatdixf.S vendor/compiler-rt/dist/lib/builtins/i386/floatundidf.S vendor/compiler-rt/dist/lib/builtins/i386/floatundisf.S vendor/compiler-rt/dist/lib/builtins/i386/floatundixf.S vendor/compiler-rt/dist/lib/builtins/i386/lshrdi3.S vendor/compiler-rt/dist/lib/builtins/i386/moddi3.S vendor/compiler-rt/dist/lib/builtins/i386/muldi3.S vendor/compiler-rt/dist/lib/builtins/i386/udivdi3.S vendor/compiler-rt/dist/lib/builtins/i386/umoddi3.S vendor/compiler-rt/dist/lib/builtins/int_lib.h vendor/compiler-rt/dist/lib/builtins/ppc/restFP.S vendor/compiler-rt/dist/lib/builtins/ppc/saveFP.S vendor/compiler-rt/dist/lib/builtins/x86_64/floatundidf.S vendor/compiler-rt/dist/lib/builtins/x86_64/floatundisf.S vendor/compiler-rt/dist/lib/builtins/x86_64/floatundixf.S vendor/compiler-rt/dist/lib/cfi/CMakeLists.txt vendor/compiler-rt/dist/lib/cfi/cfi.cc vendor/compiler-rt/dist/lib/dfsan/CMakeLists.txt vendor/compiler-rt/dist/lib/dfsan/dfsan.cc vendor/compiler-rt/dist/lib/interception/CMakeLists.txt vendor/compiler-rt/dist/lib/interception/interception_win.cc vendor/compiler-rt/dist/lib/interception/interception_win.h vendor/compiler-rt/dist/lib/lsan/CMakeLists.txt vendor/compiler-rt/dist/lib/lsan/lsan.cc vendor/compiler-rt/dist/lib/lsan/lsan.h vendor/compiler-rt/dist/lib/lsan/lsan_allocator.cc vendor/compiler-rt/dist/lib/lsan/lsan_common.cc vendor/compiler-rt/dist/lib/lsan/lsan_common.h vendor/compiler-rt/dist/lib/lsan/lsan_common_linux.cc vendor/compiler-rt/dist/lib/lsan/lsan_flags.inc vendor/compiler-rt/dist/lib/lsan/lsan_interceptors.cc vendor/compiler-rt/dist/lib/lsan/lsan_thread.cc vendor/compiler-rt/dist/lib/lsan/lsan_thread.h vendor/compiler-rt/dist/lib/msan/CMakeLists.txt vendor/compiler-rt/dist/lib/msan/msan.cc vendor/compiler-rt/dist/lib/msan/msan.h vendor/compiler-rt/dist/lib/msan/msan_interceptors.cc vendor/compiler-rt/dist/lib/msan/msan_linux.cc vendor/compiler-rt/dist/lib/msan/msan_report.cc vendor/compiler-rt/dist/lib/msan/tests/CMakeLists.txt vendor/compiler-rt/dist/lib/msan/tests/msan_test.cc vendor/compiler-rt/dist/lib/profile/CMakeLists.txt vendor/compiler-rt/dist/lib/profile/GCDAProfiling.c vendor/compiler-rt/dist/lib/profile/InstrProfData.inc vendor/compiler-rt/dist/lib/profile/InstrProfiling.c vendor/compiler-rt/dist/lib/profile/InstrProfiling.h vendor/compiler-rt/dist/lib/profile/InstrProfilingBuffer.c vendor/compiler-rt/dist/lib/profile/InstrProfilingFile.c vendor/compiler-rt/dist/lib/profile/InstrProfilingInternal.h vendor/compiler-rt/dist/lib/profile/InstrProfilingPlatformDarwin.c vendor/compiler-rt/dist/lib/profile/InstrProfilingPlatformLinux.c vendor/compiler-rt/dist/lib/profile/InstrProfilingPlatformOther.c vendor/compiler-rt/dist/lib/profile/InstrProfilingPort.h vendor/compiler-rt/dist/lib/profile/InstrProfilingUtil.c vendor/compiler-rt/dist/lib/profile/InstrProfilingUtil.h vendor/compiler-rt/dist/lib/profile/InstrProfilingValue.c vendor/compiler-rt/dist/lib/profile/InstrProfilingWriter.c vendor/compiler-rt/dist/lib/profile/WindowsMMap.h vendor/compiler-rt/dist/lib/safestack/CMakeLists.txt vendor/compiler-rt/dist/lib/sanitizer_common/CMakeLists.txt vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_interface.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_allocator_internal.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_atomic_msvc.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_nolibc.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_common_syscalls.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_coverage_mapping_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_deadlock_detector1.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_flags.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_flags.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_flags.inc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_interface_internal.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_internal_defs.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_libc.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_libc.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_linux_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_list.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_interceptors.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_linux.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_posix.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_platform_limits_posix.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_posix_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps_common.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_procmaps_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_quarantine.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stacktrace.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stacktrace.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_internal.h vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_mac.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_symbolizer_win.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_thread_registry.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_tls_get_addr.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_win.cc vendor/compiler-rt/dist/lib/sanitizer_common/scripts/sancov.py vendor/compiler-rt/dist/lib/sanitizer_common/tests/CMakeLists.txt vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_allocator_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_allocator_testlib.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_flags_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_ioctl_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_linux_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_posix_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_printf_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_procmaps_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_pthread_wrappers.h vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc vendor/compiler-rt/dist/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cc vendor/compiler-rt/dist/lib/tsan/CMakeLists.txt vendor/compiler-rt/dist/lib/tsan/check_analyze.sh vendor/compiler-rt/dist/lib/tsan/dd/CMakeLists.txt vendor/compiler-rt/dist/lib/tsan/dd/dd_interceptors.cc vendor/compiler-rt/dist/lib/tsan/go/build.bat vendor/compiler-rt/dist/lib/tsan/go/buildgo.sh vendor/compiler-rt/dist/lib/tsan/go/test.c vendor/compiler-rt/dist/lib/tsan/go/tsan_go.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_defs.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_flags.inc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interceptors_mac.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_atomic.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_interface_java.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_libdispatch_mac.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_malloc_mac.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_mman.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_mman.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_mutex.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_mutex.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_new_delete.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform_linux.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform_mac.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_platform_posix.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_report.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_report.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_mutex.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_report.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_rtl_thread.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_stat.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_stat.h vendor/compiler-rt/dist/lib/tsan/rtl/tsan_suppressions.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_sync.cc vendor/compiler-rt/dist/lib/tsan/rtl/tsan_sync.h vendor/compiler-rt/dist/lib/tsan/tests/CMakeLists.txt vendor/compiler-rt/dist/lib/tsan/tests/rtl/tsan_test.cc vendor/compiler-rt/dist/lib/tsan/tests/unit/tsan_sync_test.cc vendor/compiler-rt/dist/lib/tsan/tests/unit/tsan_unit_test_main.cc vendor/compiler-rt/dist/lib/ubsan/CMakeLists.txt vendor/compiler-rt/dist/lib/ubsan/ubsan_diag.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_flags.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_handlers.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_handlers.h vendor/compiler-rt/dist/lib/ubsan/ubsan_handlers_cxx.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_handlers_cxx.h vendor/compiler-rt/dist/lib/ubsan/ubsan_platform.h vendor/compiler-rt/dist/lib/ubsan/ubsan_type_hash.h vendor/compiler-rt/dist/lib/ubsan/ubsan_type_hash_itanium.cc vendor/compiler-rt/dist/lib/ubsan/ubsan_value.cc vendor/compiler-rt/dist/make/platform/clang_darwin.mk vendor/compiler-rt/dist/make/platform/clang_linux.mk vendor/compiler-rt/dist/test/CMakeLists.txt vendor/compiler-rt/dist/test/asan/CMakeLists.txt vendor/compiler-rt/dist/test/asan/TestCases/Android/coverage-android.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/abort_on_error.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/address-range-limit.mm vendor/compiler-rt/dist/test/asan/TestCases/Darwin/atos-symbolizer-dyld-root-path.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/atos-symbolizer.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/dladdr-demangling.cc vendor/compiler-rt/dist/test/asan/TestCases/Darwin/objc-odr.mm vendor/compiler-rt/dist/test/asan/TestCases/Darwin/suppressions-darwin.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/abort_on_error.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/asan-asm-stacktrace-test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/asan_prelink_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/clang_gcc_abi.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/clone_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/coverage-missing.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/interface_symbols_linux.c vendor/compiler-rt/dist/test/asan/TestCases/Linux/kernel-area.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/leak_check_segv.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/malloc-in-qsort.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/nohugepage_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/odr-violation.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/overflow-in-qsort.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/ptrace.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/static_tls.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/swapcontext_test.cc vendor/compiler-rt/dist/test/asan/TestCases/Linux/unpoison_tls.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/closed-fds.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/coverage-sandboxing.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/dlclose-test.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/halt_on_error-torture.cc vendor/compiler-rt/dist/test/asan/TestCases/Posix/start-deactivated.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/bind_io_completion_callback.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/coverage-basic.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/dll_seh.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/intercept_strdup.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/oom.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/queue_user_work_item.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/queue_user_work_item_report.cc vendor/compiler-rt/dist/test/asan/TestCases/Windows/report_after_syminitialize.cc vendor/compiler-rt/dist/test/asan/TestCases/asan_and_llvm_coverage_test.cc vendor/compiler-rt/dist/test/asan/TestCases/contiguous_container_crash.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-levels.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-pc-buffer.cc vendor/compiler-rt/dist/test/asan/TestCases/coverage-reset.cc vendor/compiler-rt/dist/test/asan/TestCases/debug_ppc64_mapping.cc vendor/compiler-rt/dist/test/asan/TestCases/double-free.cc vendor/compiler-rt/dist/test/asan/TestCases/initialization-bug.cc vendor/compiler-rt/dist/test/asan/TestCases/large_func_test.cc vendor/compiler-rt/dist/test/asan/TestCases/printf-2.c vendor/compiler-rt/dist/test/asan/TestCases/printf-4.c vendor/compiler-rt/dist/test/asan/TestCases/stack-oob-frames.cc vendor/compiler-rt/dist/test/asan/TestCases/strcasestr-2.c vendor/compiler-rt/dist/test/asan/TestCases/strdup_oob_test.cc vendor/compiler-rt/dist/test/asan/TestCases/strstr-2.c vendor/compiler-rt/dist/test/asan/TestCases/throw_call_test.cc vendor/compiler-rt/dist/test/asan/TestCases/throw_invoke_test.cc vendor/compiler-rt/dist/test/asan/TestCases/uar_and_exceptions.cc vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-dtor-order.cc vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-inlined.cc vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-nobug.cc vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope-temp.cc vendor/compiler-rt/dist/test/asan/TestCases/use-after-scope.cc vendor/compiler-rt/dist/test/asan/Unit/lit.site.cfg.in vendor/compiler-rt/dist/test/asan/android_commands/android_common.py vendor/compiler-rt/dist/test/asan/lit.cfg vendor/compiler-rt/dist/test/asan/lit.site.cfg.in vendor/compiler-rt/dist/test/cfi/CMakeLists.txt vendor/compiler-rt/dist/test/cfi/create-derivers.test vendor/compiler-rt/dist/test/cfi/cross-dso/icall/icall-from-dso.cpp vendor/compiler-rt/dist/test/cfi/cross-dso/icall/icall.cpp vendor/compiler-rt/dist/test/cfi/cross-dso/simple-fail.cpp vendor/compiler-rt/dist/test/cfi/icall/bad-signature.c vendor/compiler-rt/dist/test/cfi/icall/external-call.c vendor/compiler-rt/dist/test/cfi/lit.cfg vendor/compiler-rt/dist/test/cfi/lit.site.cfg.in vendor/compiler-rt/dist/test/cfi/overwrite.cpp vendor/compiler-rt/dist/test/dfsan/CMakeLists.txt vendor/compiler-rt/dist/test/dfsan/custom.cc vendor/compiler-rt/dist/test/dfsan/lit.cfg vendor/compiler-rt/dist/test/dfsan/lit.site.cfg.in vendor/compiler-rt/dist/test/lit.common.cfg vendor/compiler-rt/dist/test/lit.common.configured.in vendor/compiler-rt/dist/test/lsan/CMakeLists.txt vendor/compiler-rt/dist/test/lsan/TestCases/disabler_in_tsd_destructor.c vendor/compiler-rt/dist/test/lsan/TestCases/high_allocator_contention.cc vendor/compiler-rt/dist/test/lsan/TestCases/leak_check_before_thread_started.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_registers.cc vendor/compiler-rt/dist/test/lsan/TestCases/use_tls_dynamic.cc vendor/compiler-rt/dist/test/lsan/lit.common.cfg vendor/compiler-rt/dist/test/lsan/lit.site.cfg.in vendor/compiler-rt/dist/test/msan/CMakeLists.txt vendor/compiler-rt/dist/test/msan/Linux/process_vm_readv.cc vendor/compiler-rt/dist/test/msan/Linux/syscalls.cc vendor/compiler-rt/dist/test/msan/Unit/lit.site.cfg.in vendor/compiler-rt/dist/test/msan/coverage-levels.cc vendor/compiler-rt/dist/test/msan/dlerror.cc vendor/compiler-rt/dist/test/msan/dtls_test.c vendor/compiler-rt/dist/test/msan/fork.cc vendor/compiler-rt/dist/test/msan/lit.cfg vendor/compiler-rt/dist/test/msan/lit.site.cfg.in vendor/compiler-rt/dist/test/msan/memcmp_test.cc vendor/compiler-rt/dist/test/msan/msan_print_shadow3.cc vendor/compiler-rt/dist/test/msan/param_tls_limit.cc vendor/compiler-rt/dist/test/msan/vector_cvt.cc vendor/compiler-rt/dist/test/profile/CMakeLists.txt vendor/compiler-rt/dist/test/profile/Inputs/instrprof-dynamic-a.cpp vendor/compiler-rt/dist/test/profile/gcc-flag-compatibility.test vendor/compiler-rt/dist/test/profile/instrprof-basic.c vendor/compiler-rt/dist/test/profile/instrprof-bufferio.c vendor/compiler-rt/dist/test/profile/instrprof-error.c vendor/compiler-rt/dist/test/profile/instrprof-set-filename.c vendor/compiler-rt/dist/test/profile/instrprof-value-prof-2.c vendor/compiler-rt/dist/test/profile/instrprof-value-prof.c vendor/compiler-rt/dist/test/profile/instrprof-version-mismatch.c vendor/compiler-rt/dist/test/profile/instrprof-without-libc.c vendor/compiler-rt/dist/test/profile/instrprof-write-file-only.c vendor/compiler-rt/dist/test/profile/lit.cfg vendor/compiler-rt/dist/test/profile/lit.site.cfg.in vendor/compiler-rt/dist/test/safestack/CMakeLists.txt vendor/compiler-rt/dist/test/safestack/lit.site.cfg.in vendor/compiler-rt/dist/test/sanitizer_common/CMakeLists.txt vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Darwin/abort_on_error.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/abort_on_error.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/fpe.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/ill.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/open_memstream.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/ptrace.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/Posix/lit.local.cfg vendor/compiler-rt/dist/test/sanitizer_common/TestCases/malloc_hook.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/options-include.cc vendor/compiler-rt/dist/test/sanitizer_common/TestCases/print-stack-trace.cc vendor/compiler-rt/dist/test/sanitizer_common/Unit/lit.site.cfg.in vendor/compiler-rt/dist/test/sanitizer_common/lit.common.cfg vendor/compiler-rt/dist/test/sanitizer_common/lit.site.cfg.in vendor/compiler-rt/dist/test/tsan/CMakeLists.txt vendor/compiler-rt/dist/test/tsan/Darwin/gcd-async-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-async-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-groups-stress.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-once.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-semaphore-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-serial-queue-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-sync-norace.mm vendor/compiler-rt/dist/test/tsan/Darwin/gcd-sync-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/objc-race.mm vendor/compiler-rt/dist/test/tsan/Darwin/objc-simple.mm vendor/compiler-rt/dist/test/tsan/Linux/user_malloc.cc vendor/compiler-rt/dist/test/tsan/Unit/lit.site.cfg.in vendor/compiler-rt/dist/test/tsan/aligned_vs_unaligned_race.cc vendor/compiler-rt/dist/test/tsan/benign_race.cc vendor/compiler-rt/dist/test/tsan/blacklist.cc vendor/compiler-rt/dist/test/tsan/blacklist2.cc vendor/compiler-rt/dist/test/tsan/dl_iterate_phdr.cc vendor/compiler-rt/dist/test/tsan/fd_close_norace.cc vendor/compiler-rt/dist/test/tsan/fd_close_norace2.cc vendor/compiler-rt/dist/test/tsan/fd_dup_norace.cc vendor/compiler-rt/dist/test/tsan/fd_dup_norace2.cc vendor/compiler-rt/dist/test/tsan/fd_dup_race.cc vendor/compiler-rt/dist/test/tsan/fd_pipe_norace.cc vendor/compiler-rt/dist/test/tsan/fd_socket_connect_norace.cc vendor/compiler-rt/dist/test/tsan/fd_socket_norace.cc vendor/compiler-rt/dist/test/tsan/fd_socketpair_norace.cc vendor/compiler-rt/dist/test/tsan/fork_atexit.cc vendor/compiler-rt/dist/test/tsan/fork_deadlock.cc vendor/compiler-rt/dist/test/tsan/fork_multithreaded.cc vendor/compiler-rt/dist/test/tsan/fork_multithreaded3.cc vendor/compiler-rt/dist/test/tsan/ignore_race.cc vendor/compiler-rt/dist/test/tsan/inlined_memcpy_race.cc vendor/compiler-rt/dist/test/tsan/inlined_memcpy_race2.cc vendor/compiler-rt/dist/test/tsan/interface_atomic_test.c vendor/compiler-rt/dist/test/tsan/java_alloc.cc vendor/compiler-rt/dist/test/tsan/java_heap_init.cc vendor/compiler-rt/dist/test/tsan/java_lock_move.cc vendor/compiler-rt/dist/test/tsan/java_lock_rec.cc vendor/compiler-rt/dist/test/tsan/java_lock_rec_race.cc vendor/compiler-rt/dist/test/tsan/java_move_overlap.cc vendor/compiler-rt/dist/test/tsan/java_move_overlap_race.cc vendor/compiler-rt/dist/test/tsan/java_race_pc.cc vendor/compiler-rt/dist/test/tsan/java_rwlock.cc vendor/compiler-rt/dist/test/tsan/lit.cfg vendor/compiler-rt/dist/test/tsan/lit.site.cfg.in vendor/compiler-rt/dist/test/tsan/longjmp.cc vendor/compiler-rt/dist/test/tsan/longjmp2.cc vendor/compiler-rt/dist/test/tsan/longjmp3.cc vendor/compiler-rt/dist/test/tsan/longjmp4.cc vendor/compiler-rt/dist/test/tsan/malloc_overflow.cc vendor/compiler-rt/dist/test/tsan/mmap_stress.cc vendor/compiler-rt/dist/test/tsan/race_on_mutex.c vendor/compiler-rt/dist/test/tsan/race_on_speculative_load.cc vendor/compiler-rt/dist/test/tsan/setuid.c vendor/compiler-rt/dist/test/tsan/setuid2.c vendor/compiler-rt/dist/test/tsan/static_init1.cc vendor/compiler-rt/dist/test/tsan/static_init2.cc vendor/compiler-rt/dist/test/tsan/static_init4.cc vendor/compiler-rt/dist/test/tsan/static_init5.cc vendor/compiler-rt/dist/test/tsan/static_init6.cc vendor/compiler-rt/dist/test/tsan/sunrpc.cc vendor/compiler-rt/dist/test/tsan/suppressions_global.cc vendor/compiler-rt/dist/test/tsan/suppressions_race.cc vendor/compiler-rt/dist/test/tsan/suppressions_race2.cc vendor/compiler-rt/dist/test/tsan/test.h vendor/compiler-rt/dist/test/tsan/thread_detach.c vendor/compiler-rt/dist/test/tsan/thread_detach2.c vendor/compiler-rt/dist/test/tsan/thread_leak.c vendor/compiler-rt/dist/test/tsan/thread_leak2.c vendor/compiler-rt/dist/test/tsan/thread_leak4.c vendor/compiler-rt/dist/test/tsan/tsan-vs-gvn.cc vendor/compiler-rt/dist/test/tsan/unaligned_norace.cc vendor/compiler-rt/dist/test/tsan/vfork.cc vendor/compiler-rt/dist/test/tsan/virtual_inheritance_compile_bug.cc vendor/compiler-rt/dist/test/ubsan/CMakeLists.txt vendor/compiler-rt/dist/test/ubsan/TestCases/Float/cast-overflow.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/Integer/suppressions.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/Misc/coverage-levels.cc vendor/compiler-rt/dist/test/ubsan/TestCases/TypeCheck/misaligned.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/TypeCheck/null.cpp vendor/compiler-rt/dist/test/ubsan/TestCases/TypeCheck/vptr.cpp vendor/compiler-rt/dist/test/ubsan/lit.common.cfg vendor/compiler-rt/dist/test/ubsan/lit.site.cfg.in vendor/compiler-rt/dist/unittests/CMakeLists.txt vendor/compiler-rt/dist/unittests/lit.common.unit.configured.in Modified: vendor/compiler-rt/dist/.arcconfig ============================================================================== --- vendor/compiler-rt/dist/.arcconfig Sat Jul 23 20:44:49 2016 (r303234) +++ vendor/compiler-rt/dist/.arcconfig Sat Jul 23 20:45:36 2016 (r303235) @@ -1,4 +1,4 @@ { "project_id" : "compiler-rt", - "conduit_uri" : "http://reviews.llvm.org/" + "conduit_uri" : "https://reviews.llvm.org/" } Modified: vendor/compiler-rt/dist/CMakeLists.txt ============================================================================== --- vendor/compiler-rt/dist/CMakeLists.txt Sat Jul 23 20:44:49 2016 (r303234) +++ vendor/compiler-rt/dist/CMakeLists.txt Sat Jul 23 20:45:36 2016 (r303235) @@ -11,80 +11,34 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) project(CompilerRT C CXX ASM) set(COMPILER_RT_STANDALONE_BUILD TRUE) -else() - set(COMPILER_RT_STANDALONE_BUILD FALSE) endif() -# The CompilerRT build system requires CMake version 2.8.8 or higher in order -# to use its support for building convenience "libraries" as a collection of -# .o files. This is particularly useful in producing larger, more complex -# runtime libraries. -if (NOT MSVC) - cmake_minimum_required(VERSION 2.8.8) -else() - # Version 2.8.12.1 is required to build with Visual Studio 2013. - cmake_minimum_required(VERSION 2.8.12.1) -endif() +cmake_minimum_required(VERSION 3.4.3) +# FIXME: +# The OLD behavior (pre 3.2) for this policy is to not set the value of the +# CMAKE_EXE_LINKER_FLAGS variable in the generated test project. The NEW behavior +# for this policy is to set the value of the CMAKE_EXE_LINKER_FLAGS variable +# in the test project to the same as it is in the calling project. The new +# behavior cause the compiler_rt test to fail during try_compile: see +# projects/compiler-rt/cmake/Modules/CompilerRTUtils.cmake:121 such that +# CAN_TARGET_${arch} is not set properly. This results in COMPILER_RT_SUPPORTED_ARCH +# not being updated properly leading to poblems. +cmake_policy(SET CMP0056 OLD) -# FIXME: It may be removed when we use 2.8.12. -if(CMAKE_VERSION VERSION_LESS 2.8.12) - # Invalidate a couple of keywords. - set(cmake_2_8_12_INTERFACE) - set(cmake_2_8_12_PRIVATE) -else() - # Use ${cmake_2_8_12_KEYWORD} intead of KEYWORD in target_link_libraries(). - set(cmake_2_8_12_INTERFACE INTERFACE) - set(cmake_2_8_12_PRIVATE PRIVATE) - if(POLICY CMP0022) - cmake_policy(SET CMP0022 NEW) # automatic when 2.8.12 is required - endif() -endif() +# Add path for custom compiler-rt modules. +list(INSERT CMAKE_MODULE_PATH 0 + "${CMAKE_CURRENT_SOURCE_DIR}/cmake" + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules" + ) -# Top level target used to build all compiler-rt libraries. -add_custom_target(compiler-rt ALL) +include(base-config-ix) option(COMPILER_RT_BUILD_BUILTINS "Build builtins" ON) mark_as_advanced(COMPILER_RT_BUILD_BUILTINS) option(COMPILER_RT_BUILD_SANITIZERS "Build sanitizers" ON) mark_as_advanced(COMPILER_RT_BUILD_SANITIZERS) -if (NOT COMPILER_RT_STANDALONE_BUILD) - # Compute the Clang version from the LLVM version. - # FIXME: We should be able to reuse CLANG_VERSION variable calculated - # in Clang cmake files, instead of copying the rules here. - string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION - ${PACKAGE_VERSION}) - # Setup the paths where compiler-rt runtimes and headers should be stored. - set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}) - set(COMPILER_RT_EXEC_OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) - set(COMPILER_RT_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}) - option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." - ${LLVM_INCLUDE_TESTS}) - option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" - ${LLVM_ENABLE_WERROR}) - # Use just-built Clang to compile/link tests on all platforms, except for - # Windows where we need to use clang-cl instead. - if(NOT MSVC) - set(COMPILER_RT_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) - set(COMPILER_RT_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++) - else() - set(COMPILER_RT_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang.exe) - set(COMPILER_RT_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++.exe) - endif() -else() - # Take output dir and install path from the user. - set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH - "Path where built compiler-rt libraries should be stored.") - set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH - "Path where built compiler-rt executables should be stored.") - set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH - "Path where built compiler-rt libraries should be installed.") - option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF) - option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF) - # Use a host compiler to compile/link tests. - set(COMPILER_RT_TEST_COMPILER ${CMAKE_C_COMPILER} CACHE PATH "Compiler to use for testing") - set(COMPILER_RT_TEST_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE PATH "C++ Compiler to use for testing") - +if (COMPILER_RT_STANDALONE_BUILD) if (NOT LLVM_CONFIG_PATH) find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary") @@ -107,7 +61,7 @@ else() # Make use of LLVM CMake modules. file(TO_CMAKE_PATH ${LLVM_BINARY_DIR} LLVM_BINARY_DIR_CMAKE_STYLE) - set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR_CMAKE_STYLE}/share/llvm/cmake") + set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR_CMAKE_STYLE}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm") list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}") # Get some LLVM variables from LLVMConfig. include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake") @@ -132,14 +86,6 @@ else() set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit") endif() -if("${COMPILER_RT_TEST_COMPILER}" MATCHES "clang[+]*$") - set(COMPILER_RT_TEST_COMPILER_ID Clang) -elseif("${COMPILER_RT_TEST_COMPILER}" MATCHES "clang.*.exe$") - set(COMPILER_RT_TEST_COMPILER_ID Clang) -else() - set(COMPILER_RT_TEST_COMPILER_ID GNU) -endif() - set(COMPILER_RT_DEFAULT_TARGET_TRIPLE ${TARGET_TRIPLE} CACHE STRING "Default triple for which compiler-rt runtimes will be built.") if(DEFINED COMPILER_RT_TEST_TARGET_TRIPLE) @@ -159,23 +105,9 @@ if(NOT COMPILER_RT_DEFAULT_TARGET_TRIPLE else() set(COMPILER_RT_HAS_EXPLICIT_DEFAULT_TARGET_TRIPLE FALSE) endif() - if ("${COMPILER_RT_DEFAULT_TARGET_ABI}" STREQUAL "androideabi") set(ANDROID 1) endif() - -string(TOLOWER ${CMAKE_SYSTEM_NAME} COMPILER_RT_OS_DIR) -set(COMPILER_RT_LIBRARY_OUTPUT_DIR - ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) -set(COMPILER_RT_LIBRARY_INSTALL_DIR - ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR}) - -# Add path for custom compiler-rt modules. -set(CMAKE_MODULE_PATH - "${CMAKE_CURRENT_SOURCE_DIR}/cmake" - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules" - ${CMAKE_MODULE_PATH} - ) include(CompilerRTUtils) set(COMPILER_RT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) @@ -200,13 +132,18 @@ pythonize_bool(COMPILER_RT_DEBUG) #================================ # Setup Compiler Flags #================================ -include(CheckIncludeFile) -check_include_file(unwind.h HAVE_UNWIND_H) include(config-ix) if(MSVC) - append_string_if(COMPILER_RT_HAS_W3_FLAG /W3 CMAKE_C_FLAGS CMAKE_CXX_FLAGS) + # Override any existing /W flags with /W4. This is what LLVM does. Failing to + # remove other /W[0-4] flags will result in a warning about overriding a + # previous flag. + if (COMPILER_RT_HAS_W4_FLAG) + string(REGEX REPLACE " /W[0-4]" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + string(REGEX REPLACE " /W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + append_string_if(COMPILER_RT_HAS_W4_FLAG /W4 CMAKE_C_FLAGS CMAKE_CXX_FLAGS) + endif() else() append_string_if(COMPILER_RT_HAS_WALL_FLAG -Wall CMAKE_C_FLAGS CMAKE_CXX_FLAGS) endif() @@ -226,7 +163,9 @@ endif() append_list_if(COMPILER_RT_HAS_FPIC_FLAG -fPIC SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FNO_BUILTIN_FLAG -fno-builtin SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG -fno-exceptions SANITIZER_COMMON_CFLAGS) -append_list_if(COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG -fomit-frame-pointer SANITIZER_COMMON_CFLAGS) +if(NOT COMPILER_RT_DEBUG) + append_list_if(COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG -fomit-frame-pointer SANITIZER_COMMON_CFLAGS) +endif() append_list_if(COMPILER_RT_HAS_FUNWIND_TABLES_FLAG -funwind-tables SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FNO_STACK_PROTECTOR_FLAG -fno-stack-protector SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FNO_SANITIZE_SAFE_STACK_FLAG -fno-sanitize=safe-stack SANITIZER_COMMON_CFLAGS) @@ -241,6 +180,8 @@ if(MSVC) # FIXME: In fact, sanitizers should support both /MT and /MD, see PR20214. if(COMPILER_RT_HAS_MT_FLAG) foreach(flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) string(REGEX REPLACE "/M[DT]d" "/MT" ${flag_var} "${${flag_var}}") @@ -250,6 +191,12 @@ if(MSVC) endif() append_list_if(COMPILER_RT_HAS_Oy_FLAG /Oy- SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_GS_FLAG /GS- SANITIZER_COMMON_CFLAGS) + # VS 2015 (version 1900) added support for thread safe static initialization. + # However, ASan interceptors run before CRT initialization, which causes the + # new thread safe code to crash. Disable this feature for now. + if (MSVC_VERSION GREATER 1899) + list(APPEND SANITIZER_COMMON_CFLAGS /Zc:threadSafeInit-) + endif() endif() append_list_if(COMPILER_RT_DEBUG -DSANITIZER_DEBUG=1 SANITIZER_COMMON_CFLAGS) @@ -292,10 +239,15 @@ append_list_if(COMPILER_RT_HAS_WD4391_FL append_list_if(COMPILER_RT_HAS_WD4722_FLAG /wd4722 SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_WD4800_FLAG /wd4800 SANITIZER_COMMON_CFLAGS) +# Warnings to turn off for all libraries, not just sanitizers. +append_string_if(COMPILER_RT_HAS_WUNUSED_PARAMETER_FLAG -Wno-unused-parameter CMAKE_C_FLAGS CMAKE_CXX_FLAGS) + if(APPLE AND SANITIZER_MIN_OSX_VERSION VERSION_LESS "10.9") # Mac OS X prior to 10.9 had problems with exporting symbols from # libc++/libc++abi. set(SANITIZER_CAN_USE_CXXABI FALSE) +elseif(MSVC) + set(SANITIZER_CAN_USE_CXXABI FALSE) else() set(SANITIZER_CAN_USE_CXXABI TRUE) endif() Modified: vendor/compiler-rt/dist/CODE_OWNERS.TXT ============================================================================== --- vendor/compiler-rt/dist/CODE_OWNERS.TXT Sat Jul 23 20:44:49 2016 (r303234) +++ vendor/compiler-rt/dist/CODE_OWNERS.TXT Sat Jul 23 20:45:36 2016 (r303235) @@ -24,10 +24,6 @@ N: Howard Hinnant E: howard.hinnant@gmail.com D: builtins library -N: Sergey Matveev -E: earthdok@google.com -D: LeakSanitizer - N: Alexander Potapenko E: glider@google.com D: MacOS/iOS port of sanitizers @@ -38,7 +34,7 @@ D: CMake build, test suite N: Kostya Serebryany E: kcc@google.com -D: AddressSanitizer, sanitizer_common, porting sanitizers to another platforms +D: AddressSanitizer, sanitizer_common, porting sanitizers to another platforms, LeakSanitizer N: Richard Smith E: richard-llvm@metafoo.co.uk Modified: vendor/compiler-rt/dist/LICENSE.TXT ============================================================================== --- vendor/compiler-rt/dist/LICENSE.TXT Sat Jul 23 20:44:49 2016 (r303234) +++ vendor/compiler-rt/dist/LICENSE.TXT Sat Jul 23 20:45:36 2016 (r303235) @@ -14,7 +14,7 @@ Full text of the relevant licenses is in University of Illinois/NCSA Open Source License -Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT +Copyright (c) 2009-2016 by the contributors listed in CREDITS.TXT All rights reserved. Modified: vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake Sat Jul 23 20:44:49 2016 (r303234) +++ vendor/compiler-rt/dist/cmake/Modules/AddCompilerRT.cmake Sat Jul 23 20:45:36 2016 (r303235) @@ -1,7 +1,28 @@ -include(AddLLVM) include(ExternalProject) include(CompilerRTUtils) +function(set_target_output_directories target output_dir) + # For RUNTIME_OUTPUT_DIRECTORY variable, Multi-configuration generators + # append a per-configuration subdirectory to the specified directory. + # To avoid the appended folder, the configuration specific variable must be + # set 'RUNTIME_OUTPUT_DIRECTORY_${CONF}': + # RUNTIME_OUTPUT_DIRECTORY_DEBUG, RUNTIME_OUTPUT_DIRECTORY_RELEASE, ... + if(CMAKE_CONFIGURATION_TYPES) + foreach(build_mode ${CMAKE_CONFIGURATION_TYPES}) + string(TOUPPER "${build_mode}" CONFIG_SUFFIX) + set_target_properties("${target}" PROPERTIES + "ARCHIVE_OUTPUT_DIRECTORY_${CONFIG_SUFFIX}" ${output_dir} + "LIBRARY_OUTPUT_DIRECTORY_${CONFIG_SUFFIX}" ${output_dir} + "RUNTIME_OUTPUT_DIRECTORY_${CONFIG_SUFFIX}" ${output_dir}) + endforeach() + else() + set_target_properties("${target}" PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY ${output_dir} + LIBRARY_OUTPUT_DIRECTORY ${output_dir} + RUNTIME_OUTPUT_DIRECTORY ${output_dir}) + endif() +endfunction() + # Tries to add an "object library" target for a given list of OSs and/or # architectures with name "." for non-Darwin platforms if # architecture can be targeted, and "." for Darwin platforms. @@ -32,13 +53,14 @@ function(add_compiler_rt_object_librarie endif() endforeach() endif() - + foreach(libname ${libnames}) add_library(${libname} OBJECT ${LIB_SOURCES}) set_target_compile_flags(${libname} ${CMAKE_CXX_FLAGS} ${extra_cflags_${libname}} ${LIB_CFLAGS}) set_property(TARGET ${libname} APPEND PROPERTY COMPILE_DEFINITIONS ${LIB_DEFS}) + set_target_properties(${libname} PROPERTIES FOLDER "Compiler-RT Libraries") if(APPLE) set_target_properties(${libname} PROPERTIES OSX_ARCHITECTURES "${LIB_ARCHS_${libname}}") @@ -107,7 +129,8 @@ function(add_compiler_rt_runtime name ty set(output_name_${libname} ${libname}${COMPILER_RT_OS_SUFFIX}) else() set(libname "${name}-dynamic-${arch}") - set(extra_linkflags_${libname} ${TARGET_${arch}_CFLAGS} ${LIB_CFLAGS} ${LIB_LINKFLAGS}) + set(extra_cflags_${libname} ${TARGET_${arch}_CFLAGS} ${LIB_CFLAGS}) + set(extra_linkflags_${libname} ${TARGET_${arch}_LINKFLAGS} ${LIB_LINKFLAGS}) if(WIN32) set(output_name_${libname} ${name}_dynamic-${arch}${COMPILER_RT_OS_SUFFIX}) else() @@ -126,21 +149,42 @@ function(add_compiler_rt_runtime name ty endif() if(LIB_PARENT_TARGET) - set(COMPONENT_OPTION COMPONENT ${LIB_PARENT_TARGET}) + # If the parent targets aren't created we should create them + if(NOT TARGET ${LIB_PARENT_TARGET}) + add_custom_target(${LIB_PARENT_TARGET}) + endif() + if(NOT TARGET install-${LIB_PARENT_TARGET}) + # The parent install target specifies the parent component to scrape up + # anything not installed by the individual install targets, and to handle + # installation when running the multi-configuration generators. + add_custom_target(install-${LIB_PARENT_TARGET} + DEPENDS ${LIB_PARENT_TARGET} + COMMAND "${CMAKE_COMMAND}" + -DCMAKE_INSTALL_COMPONENT=${LIB_PARENT_TARGET} + -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") + set_target_properties(install-${LIB_PARENT_TARGET} PROPERTIES + FOLDER "Compiler-RT Misc") + endif() endif() foreach(libname ${libnames}) + # If you are using a multi-configuration generator we don't generate + # per-library install rules, so we fall back to the parent target COMPONENT + if(CMAKE_CONFIGURATION_TYPES AND LIB_PARENT_TARGET) + set(COMPONENT_OPTION COMPONENT ${LIB_PARENT_TARGET}) + else() + set(COMPONENT_OPTION COMPONENT ${libname}) + endif() + add_library(${libname} ${type} ${sources_${libname}}) set_target_compile_flags(${libname} ${extra_cflags_${libname}}) set_target_link_flags(${libname} ${extra_linkflags_${libname}}) - set_property(TARGET ${libname} APPEND PROPERTY + set_property(TARGET ${libname} APPEND PROPERTY COMPILE_DEFINITIONS ${LIB_DEFS}) - set_target_properties(${libname} PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR} - LIBRARY_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR} - RUNTIME_OUTPUT_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}) + set_target_output_directories(${libname} ${COMPILER_RT_LIBRARY_OUTPUT_DIR}) set_target_properties(${libname} PROPERTIES OUTPUT_NAME ${output_name_${libname}}) + set_target_properties(${libname} PROPERTIES FOLDER "Compiler-RT Runtime") if(LIB_LINK_LIBS AND ${type} STREQUAL "SHARED") target_link_libraries(${libname} ${LIB_LINK_LIBS}) endif() @@ -151,6 +195,21 @@ function(add_compiler_rt_runtime name ty ${COMPONENT_OPTION} RUNTIME DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR} ${COMPONENT_OPTION}) + + # We only want to generate per-library install targets if you aren't using + # an IDE because the extra targets get cluttered in IDEs. + if(NOT CMAKE_CONFIGURATION_TYPES) + add_custom_target(install-${libname} + DEPENDS ${libname} + COMMAND "${CMAKE_COMMAND}" + -DCMAKE_INSTALL_COMPONENT=${libname} + -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") + # If you have a parent target specified, we bind the new install target + # to the parent install target. + if(LIB_PARENT_TARGET) + add_dependencies(install-${LIB_PARENT_TARGET} install-${libname}) + endif() + endif() if(APPLE) set_target_properties(${libname} PROPERTIES OSX_ARCHITECTURES "${LIB_ARCHS_${libname}}") @@ -165,7 +224,10 @@ function(add_compiler_rt_runtime name ty endif() endfunction() -set(COMPILER_RT_TEST_CFLAGS) +# when cross compiling, COMPILER_RT_TEST_COMPILER_CFLAGS help +# in compilation and linking of unittests. +string(REPLACE " " ";" COMPILER_RT_UNITTEST_CFLAGS "${COMPILER_RT_TEST_COMPILER_CFLAGS}") +set(COMPILER_RT_UNITTEST_LINKFLAGS ${COMPILER_RT_UNITTEST_CFLAGS}) # Unittests support. set(COMPILER_RT_GTEST_PATH ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest) @@ -177,14 +239,14 @@ set(COMPILER_RT_GTEST_CFLAGS -I${COMPILER_RT_GTEST_PATH} ) -append_list_if(COMPILER_RT_DEBUG -DSANITIZER_DEBUG=1 COMPILER_RT_TEST_CFLAGS) +append_list_if(COMPILER_RT_DEBUG -DSANITIZER_DEBUG=1 COMPILER_RT_UNITTEST_CFLAGS) if(MSVC) # clang doesn't support exceptions on Windows yet. - list(APPEND COMPILER_RT_TEST_CFLAGS -D_HAS_EXCEPTIONS=0) + list(APPEND COMPILER_RT_UNITTEST_CFLAGS -D_HAS_EXCEPTIONS=0) # We should teach clang to understand "#pragma intrinsic", see PR19898. - list(APPEND COMPILER_RT_TEST_CFLAGS -Wno-undefined-inline) + list(APPEND COMPILER_RT_UNITTEST_CFLAGS -Wno-undefined-inline) # Clang doesn't support SEH on Windows yet. list(APPEND COMPILER_RT_GTEST_CFLAGS -DGTEST_HAS_SEH=0) @@ -209,14 +271,18 @@ endif() # LINK_FLAGS ) macro(add_compiler_rt_test test_suite test_name) cmake_parse_arguments(TEST "" "SUBDIR" "OBJECTS;DEPS;LINK_FLAGS" "" ${ARGN}) + set(output_bin ${CMAKE_CURRENT_BINARY_DIR}) if(TEST_SUBDIR) - set(output_bin "${CMAKE_CURRENT_BINARY_DIR}/${TEST_SUBDIR}/${test_name}") - else() - set(output_bin "${CMAKE_CURRENT_BINARY_DIR}/${test_name}") + set(output_bin "${output_bin}/${TEST_SUBDIR}") + endif() + if(CMAKE_CONFIGURATION_TYPES) + set(output_bin "${output_bin}/${CMAKE_CFG_INTDIR}") endif() + set(output_bin "${output_bin}/${test_name}") if(MSVC) set(output_bin "${output_bin}.exe") endif() + # Use host compiler in a standalone build, and just-built Clang otherwise. if(NOT COMPILER_RT_STANDALONE_BUILD) list(APPEND TEST_DEPS clang) @@ -236,11 +302,13 @@ macro(add_compiler_rt_test test_suite te -o "${output_bin}" ${TEST_LINK_FLAGS} DEPENDS ${TEST_DEPS}) + set_target_properties(${test_name} PROPERTIES FOLDER "Compiler-RT Tests") + # Make the test suite depend on the binary. add_dependencies(${test_suite} ${test_name}) endmacro() -macro(add_compiler_rt_resource_file target_name file_name) +macro(add_compiler_rt_resource_file target_name file_name component) set(src_file "${CMAKE_CURRENT_SOURCE_DIR}/${file_name}") set(dst_file "${COMPILER_RT_OUTPUT_DIR}/${file_name}") add_custom_command(OUTPUT ${dst_file} @@ -249,7 +317,12 @@ macro(add_compiler_rt_resource_file targ COMMENT "Copying ${file_name}...") add_custom_target(${target_name} DEPENDS ${dst_file}) # Install in Clang resource directory. - install(FILES ${file_name} DESTINATION ${COMPILER_RT_INSTALL_PATH}) + install(FILES ${file_name} + DESTINATION ${COMPILER_RT_INSTALL_PATH} + COMPONENT ${component}) + add_dependencies(${component} ${target_name}) + + set_target_properties(${target_name} PROPERTIES FOLDER "Compiler-RT Misc") endmacro() macro(add_compiler_rt_script name) @@ -321,6 +394,10 @@ function(rt_externalize_debuginfo name) return() endif() + if(NOT COMPILER_RT_EXTERNALIZE_DEBUGINFO_SKIP_STRIP) + set(strip_command COMMAND xcrun strip -Sl $) + endif() + if(APPLE) if(CMAKE_CXX_FLAGS MATCHES "-flto" OR CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE} MATCHES "-flto") @@ -331,7 +408,7 @@ function(rt_externalize_debuginfo name) endif() add_custom_command(TARGET ${name} POST_BUILD COMMAND xcrun dsymutil $ - COMMAND xcrun strip -Sl $) + ${strip_command}) else() message(FATAL_ERROR "COMPILER_RT_EXTERNALIZE_DEBUGINFO isn't implemented for non-darwin platforms!") endif() Added: vendor/compiler-rt/dist/cmake/Modules/BuiltinTests.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/compiler-rt/dist/cmake/Modules/BuiltinTests.cmake Sat Jul 23 20:45:36 2016 (r303235) @@ -0,0 +1,62 @@ + +# This function takes an OS and a list of architectures and identifies the +# subset of the architectures list that the installed toolchain can target. +function(try_compile_only output) + set(SIMPLE_C ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/src.c) + file(WRITE ${SIMPLE_C} "int foo(int x, int y) { return x + y; }\n") + string(REGEX MATCHALL "<[A-Za-z0-9_]*>" substitutions + ${CMAKE_C_COMPILE_OBJECT}) + string(REPLACE ";" " " extra_flags "${ARGN}") + + set(test_compile_command "${CMAKE_C_COMPILE_OBJECT}") + foreach(substitution ${substitutions}) + if(substitution STREQUAL "") + string(REPLACE "" + "${CMAKE_C_COMPILER}" test_compile_command ${test_compile_command}) + elseif(substitution STREQUAL "") + string(REPLACE "" + "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/test.o" + test_compile_command ${test_compile_command}) + elseif(substitution STREQUAL "") + string(REPLACE "" "${SIMPLE_C}" test_compile_command + ${test_compile_command}) + elseif(substitution STREQUAL "") + string(REPLACE "" "${CMAKE_C_FLAGS} ${extra_flags}" + test_compile_command ${test_compile_command}) + else() + string(REPLACE "${substitution}" "" test_compile_command + ${test_compile_command}) + endif() + endforeach() + + string(REPLACE " " ";" test_compile_command "${test_compile_command}") + + execute_process( + COMMAND ${test_compile_command} + RESULT_VARIABLE result + OUTPUT_VARIABLE TEST_OUTPUT + ERROR_VARIABLE TEST_ERROR + ) + if(result EQUAL 0) + set(${output} True PARENT_SCOPE) + else() + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Testing compiler for supporting " ${ARGN} ":\n" + "Command: ${test_compile_command}\n" + "${TEST_OUTPUT}\n${TEST_ERROR}\n${result}\n") + set(${output} False PARENT_SCOPE) + endif() +endfunction() + +function(builtin_check_c_compiler_flag flag output) + if(NOT DEFINED ${output}) + message(STATUS "Performing Test ${output}") + try_compile_only(result ${flag}) + set(${output} ${result} CACHE INTERNAL "Compiler supports ${flag}") + if(${result}) + message(STATUS "Performing Test ${output} - Success") + else() + message(STATUS "Performing Test ${output} - Failed") + endif() + endif() +endfunction() Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTCompile.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/CompilerRTCompile.cmake Sat Jul 23 20:44:49 2016 (r303234) +++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTCompile.cmake Sat Jul 23 20:45:36 2016 (r303235) @@ -90,8 +90,8 @@ macro(clang_compiler_add_cxx_check) " fi" " echo 'This can also be fixed by checking out the libcxx project from llvm.org and installing the headers'" " echo 'into your build directory:'" - " echo ' cd ${LLVM_SOURCE_DIR}/projects && svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx'" - " echo ' cd ${LLVM_BINARY_DIR} && make -C ${LLVM_SOURCE_DIR}/projects/libcxx installheaders HEADER_DIR=${LLVM_BINARY_DIR}/include'" + " echo ' cd ${LLVM_MAIN_SRC_DIR}/projects && svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx'" + " echo ' cd ${LLVM_BINARY_DIR} && make -C ${LLVM_MAIN_SRC_DIR}/projects/libcxx installheaders HEADER_DIR=${LLVM_BINARY_DIR}/include'" " echo" " false" "fi" Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake Sat Jul 23 20:44:49 2016 (r303234) +++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTDarwinUtils.cmake Sat Jul 23 20:45:36 2016 (r303235) @@ -1,3 +1,5 @@ +include(CMakeParseArguments) + # On OS X SDKs can be installed anywhere on the base system and xcode-select can # set the default Xcode to use. This function finds the SDKs that are present in # the current Xcode. @@ -16,6 +18,8 @@ function(find_darwin_sdk_dir var sdk_nam OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_FILE /dev/null ) + else() + set(${var}_INTERNAL ${var_internal} PARENT_SCOPE) endif() set(${var} ${var_internal} PARENT_SCOPE) endfunction() @@ -52,30 +56,36 @@ function(darwin_test_archs os valid_arch endif() set(archs ${ARGN}) - message(STATUS "Finding valid architectures for ${os}...") - set(SIMPLE_CPP ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/src.cpp) - file(WRITE ${SIMPLE_CPP} "#include \nint main() { std::cout << std::endl; return 0; }\n") - - set(os_linker_flags) - foreach(flag ${DARWIN_${os}_LINKFLAGS}) - set(os_linker_flags "${os_linker_flags} ${flag}") - endforeach() + if(NOT TEST_COMPILE_ONLY) + message(STATUS "Finding valid architectures for ${os}...") + set(SIMPLE_C ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/src.c) + file(WRITE ${SIMPLE_C} "#include \nint main() { printf(__FILE__); return 0; }\n") + + set(os_linker_flags) + foreach(flag ${DARWIN_${os}_LINKFLAGS}) + set(os_linker_flags "${os_linker_flags} ${flag}") + endforeach() + endif() # The simple program will build for x86_64h on the simulator because it is # compatible with x86_64 libraries (mostly), but since x86_64h isn't actually # a valid or useful architecture for the iOS simulator we should drop it. - if(${os} STREQUAL "iossim") + if(${os} MATCHES "^(iossim|tvossim|watchossim)$") list(REMOVE_ITEM archs "x86_64h") endif() set(working_archs) foreach(arch ${archs}) - + set(arch_linker_flags "-arch ${arch} ${os_linker_flags}") - try_compile(CAN_TARGET_${os}_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_CPP} - COMPILE_DEFINITIONS "-v -arch ${arch}" ${DARWIN_${os}_CFLAGS} - CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS=${arch_linker_flags}" - OUTPUT_VARIABLE TEST_OUTPUT) + if(TEST_COMPILE_ONLY) + try_compile_only(CAN_TARGET_${os}_${arch} -v -arch ${arch} ${DARWIN_${os}_CFLAGS}) + else() + try_compile(CAN_TARGET_${os}_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_C} + COMPILE_DEFINITIONS "-v -arch ${arch}" ${DARWIN_${os}_CFLAGS} + CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS=${arch_linker_flags}" + OUTPUT_VARIABLE TEST_OUTPUT) + endif() if(${CAN_TARGET_${os}_${arch}}) list(APPEND working_archs ${arch}) else() Modified: vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake Sat Jul 23 20:44:49 2016 (r303234) +++ vendor/compiler-rt/dist/cmake/Modules/CompilerRTUtils.cmake Sat Jul 23 20:45:36 2016 (r303235) @@ -1,3 +1,6 @@ +include(CMakePushCheckState) +include(CheckSymbolExists) + # Because compiler-rt spends a lot of time setting up custom compile flags, # define a handy helper function for it. The compile flags setting in CMake # has serious issues that make its syntax challenging at best. @@ -45,9 +48,14 @@ macro(append_string_if condition value) endif() endmacro() -macro(append_no_rtti_flag list) - append_list_if(COMPILER_RT_HAS_FNO_RTTI_FLAG -fno-rtti ${list}) - append_list_if(COMPILER_RT_HAS_GR_FLAG /GR- ${list}) +macro(append_rtti_flag polarity list) + if(polarity) + append_list_if(COMPILER_RT_HAS_FRTTI_FLAG -frtti ${list}) + append_list_if(COMPILER_RT_HAS_GR_FLAG /GR ${list}) + else() + append_list_if(COMPILER_RT_HAS_FNO_RTTI_FLAG -fno-rtti ${list}) + append_list_if(COMPILER_RT_HAS_GR_FLAG /GR- ${list}) + endif() endmacro() macro(append_have_file_definition filename varname list) @@ -67,3 +75,94 @@ macro(list_intersect output input1 input endif() endforeach() endmacro() + +# Takes ${ARGN} and puts only supported architectures in @out_var list. +function(filter_available_targets out_var) + set(archs ${${out_var}}) + foreach(arch ${ARGN}) + list(FIND COMPILER_RT_SUPPORTED_ARCH ${arch} ARCH_INDEX) + if(NOT (ARCH_INDEX EQUAL -1) AND CAN_TARGET_${arch}) + list(APPEND archs ${arch}) + endif() + endforeach() + set(${out_var} ${archs} PARENT_SCOPE) +endfunction() + +function(check_compile_definition def argstring out_var) + if("${def}" STREQUAL "") + set(${out_var} TRUE PARENT_SCOPE) + return() + endif() + cmake_push_check_state() + set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${argstring}") + check_symbol_exists(${def} "" ${out_var}) + cmake_pop_check_state() +endfunction() + +# test_target_arch( ) +# Checks if architecture is supported: runs host compiler with provided +# flags to verify that: +# 1) is defined (if non-empty) +# 2) simple file can be successfully built. +# If successful, saves target flags for this architecture. +macro(test_target_arch arch def) + set(TARGET_${arch}_CFLAGS ${ARGN}) + set(TARGET_${arch}_LINKFLAGS ${ARGN}) + set(argstring "") + foreach(arg ${ARGN}) + set(argstring "${argstring} ${arg}") + endforeach() + check_compile_definition("${def}" "${argstring}" HAS_${arch}_DEF) + if(NOT HAS_${arch}_DEF) + set(CAN_TARGET_${arch} FALSE) + elseif(TEST_COMPILE_ONLY) + try_compile_only(CAN_TARGET_${arch} ${TARGET_${arch}_CFLAGS}) + else() + set(argstring "${CMAKE_EXE_LINKER_FLAGS} ${argstring}") + try_compile(CAN_TARGET_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_SOURCE} + COMPILE_DEFINITIONS "${TARGET_${arch}_CFLAGS}" + OUTPUT_VARIABLE TARGET_${arch}_OUTPUT + CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS:STRING=${argstring}") + endif() + if(${CAN_TARGET_${arch}}) + list(APPEND COMPILER_RT_SUPPORTED_ARCH ${arch}) + elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "${arch}" AND + COMPILER_RT_HAS_EXPLICIT_DEFAULT_TARGET_TRIPLE) + # Bail out if we cannot target the architecture we plan to test. + message(FATAL_ERROR "Cannot compile for ${arch}:\n${TARGET_${arch}_OUTPUT}") + endif() +endmacro() + +macro(detect_target_arch) + check_symbol_exists(__arm__ "" __ARM) + check_symbol_exists(__aarch64__ "" __AARCH64) + check_symbol_exists(__x86_64__ "" __X86_64) + check_symbol_exists(__i686__ "" __I686) + check_symbol_exists(__i386__ "" __I386) + check_symbol_exists(__mips__ "" __MIPS) + check_symbol_exists(__mips64__ "" __MIPS64) + check_symbol_exists(__s390x__ "" __S390X) + check_symbol_exists(__wasm32__ "" __WEBASSEMBLY32) + check_symbol_exists(__wasm64__ "" __WEBASSEMBLY64) + if(__ARM) + add_default_target_arch(arm) + elseif(__AARCH64) + add_default_target_arch(aarch64) + elseif(__X86_64) + add_default_target_arch(x86_64) + elseif(__I686) + add_default_target_arch(i686) + elseif(__I386) + add_default_target_arch(i386) + elseif(__MIPS64) # must be checked before __MIPS + add_default_target_arch(mips64) + elseif(__MIPS) + add_default_target_arch(mips) + elseif(__S390X) + add_default_target_arch(s390x) + elseif(__WEBASSEMBLY32) + add_default_target_arch(wasm32) + elseif(__WEBASSEMBLY64) + add_default_target_arch(wasm64) + endif() +endmacro() Modified: vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake ============================================================================== --- vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake Sat Jul 23 20:44:49 2016 (r303234) +++ vendor/compiler-rt/dist/cmake/Modules/SanitizerUtils.cmake Sat Jul 23 20:45:36 2016 (r303235) @@ -38,22 +38,8 @@ macro(add_sanitizer_rt_symbols name) DEPENDS ${stamp} SOURCES ${SANITIZER_GEN_DYNAMIC_LIST} ${ARG_EXTRA}) - if(NOT CMAKE_VERSION VERSION_LESS 3.0) - install(FILES $.syms - DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) - else() - # Per-config install location. - if(CMAKE_CONFIGURATION_TYPES) - foreach(c ${CMAKE_CONFIGURATION_TYPES}) - get_target_property(libfile ${target_name} LOCATION_${c}) - install(FILES ${libfile}.syms CONFIGURATIONS ${c} + install(FILES $.syms DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) - endforeach() - else() - get_target_property(libfile ${target_name} LOCATION_${CMAKE_BUILD_TYPE}) - install(FILES ${libfile}.syms DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) - endif() - endif() if(ARG_PARENT_TARGET) add_dependencies(${ARG_PARENT_TARGET} ${target_name}-symbols) endif() @@ -84,9 +70,9 @@ macro(add_sanitizer_rt_version_list name endmacro() # Add target to check code style for sanitizer runtimes. -if(UNIX) +if(CMAKE_HOST_UNIX) add_custom_target(SanitizerLintCheck - COMMAND LLVM_CHECKOUT=${LLVM_MAIN_SRC_DIR} SILENT=1 TMPDIR= + COMMAND env LLVM_CHECKOUT=${LLVM_MAIN_SRC_DIR} SILENT=1 TMPDIR= PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} COMPILER_RT=${COMPILER_RT_SOURCE_DIR} ${SANITIZER_LINT_SCRIPT} Added: vendor/compiler-rt/dist/cmake/base-config-ix.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/compiler-rt/dist/cmake/base-config-ix.cmake Sat Jul 23 20:45:36 2016 (r303235) @@ -0,0 +1,169 @@ +# The CompilerRT build system requires CMake version 2.8.8 or higher in order +# to use its support for building convenience "libraries" as a collection of +# .o files. This is particularly useful in producing larger, more complex +# runtime libraries. + +include(CheckIncludeFile) +check_include_file(unwind.h HAVE_UNWIND_H) + +# Top level target used to build all compiler-rt libraries. +add_custom_target(compiler-rt ALL) +set_target_properties(compiler-rt PROPERTIES FOLDER "Compiler-RT Misc") + +# Setting these variables from an LLVM build is sufficient that compiler-rt can +# construct the output paths, so it can behave as if it were in-tree here. +if (LLVM_LIBRARY_OUTPUT_INTDIR AND LLVM_RUNTIME_OUTPUT_INTDIR AND PACKAGE_VERSION) + set(LLVM_TREE_AVAILABLE On) +endif() + +if (LLVM_TREE_AVAILABLE) + # Compute the Clang version from the LLVM version. + # FIXME: We should be able to reuse CLANG_VERSION variable calculated + # in Clang cmake files, instead of copying the rules here. + string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION + ${PACKAGE_VERSION}) + # Setup the paths where compiler-rt runtimes and headers should be stored. + set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}) + set(COMPILER_RT_EXEC_OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) + set(COMPILER_RT_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}) + option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." + ${LLVM_INCLUDE_TESTS}) + option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" + ${LLVM_ENABLE_WERROR}) + # Use just-built Clang to compile/link tests on all platforms, except for + # Windows where we need to use clang-cl instead. + if(NOT MSVC) + set(COMPILER_RT_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) + set(COMPILER_RT_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++) + else() + set(COMPILER_RT_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang.exe) + set(COMPILER_RT_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++.exe) + endif() +else() + # Take output dir and install path from the user. + set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH + "Path where built compiler-rt libraries should be stored.") + set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH + "Path where built compiler-rt executables should be stored.") + set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH + "Path where built compiler-rt libraries should be installed.") + option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF) + option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF) + # Use a host compiler to compile/link tests. + set(COMPILER_RT_TEST_COMPILER ${CMAKE_C_COMPILER} CACHE PATH "Compiler to use for testing") + set(COMPILER_RT_TEST_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE PATH "C++ Compiler to use for testing") +endif() + +if("${COMPILER_RT_TEST_COMPILER}" MATCHES "clang[+]*$") + set(COMPILER_RT_TEST_COMPILER_ID Clang) +elseif("${COMPILER_RT_TEST_COMPILER}" MATCHES "clang.*.exe$") + set(COMPILER_RT_TEST_COMPILER_ID Clang) +else() + set(COMPILER_RT_TEST_COMPILER_ID GNU) +endif() + +string(TOLOWER ${CMAKE_SYSTEM_NAME} COMPILER_RT_OS_DIR) +set(COMPILER_RT_LIBRARY_OUTPUT_DIR + ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR}) +set(COMPILER_RT_LIBRARY_INSTALL_DIR + ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR}) + +if(APPLE) + # On Darwin if /usr/include doesn't exist, the user probably has Xcode but not + # the command line tools. If this is the case, we need to find the OS X + # sysroot to pass to clang. + if(NOT EXISTS /usr/include) + execute_process(COMMAND xcodebuild -version -sdk macosx Path + OUTPUT_VARIABLE OSX_SYSROOT + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE) + set(OSX_SYSROOT_FLAG "-isysroot${OSX_SYSROOT}") + endif() + + option(COMPILER_RT_ENABLE_IOS "Enable building for iOS" Off) + option(COMPILER_RT_ENABLE_WATCHOS "Enable building for watchOS - Experimental" Off) + option(COMPILER_RT_ENABLE_TVOS "Enable building for tvOS - Experimental" Off) +endif() + +macro(test_targets) + # Find and run MSVC (not clang-cl) and get its version. This will tell clang-cl + # what version of MSVC to pretend to be so that the STL works. + set(MSVC_VERSION_FLAG "") + if (MSVC) + # Find and run MSVC (not clang-cl) and get its version. This will tell + # clang-cl what version of MSVC to pretend to be so that the STL works. + execute_process(COMMAND "$ENV{VSINSTALLDIR}/VC/bin/cl.exe" + OUTPUT_QUIET + ERROR_VARIABLE MSVC_COMPAT_VERSION + ) + string(REGEX REPLACE "^.*Compiler Version ([0-9.]+) for .*$" "\\1" + MSVC_COMPAT_VERSION "${MSVC_COMPAT_VERSION}") + if (MSVC_COMPAT_VERSION MATCHES "^[0-9].+$") + set(MSVC_VERSION_FLAG "-fms-compatibility-version=${MSVC_COMPAT_VERSION}") + # Add this flag into the host build if this is clang-cl. + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + append("${MSVC_VERSION_FLAG}" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) + elseif (COMPILER_RT_TEST_COMPILER_ID MATCHES "Clang") + # Add this flag to test compiles to suppress clang's auto-detection + # logic. + append("${MSVC_VERSION_FLAG}" COMPILER_RT_TEST_COMPILER_CFLAGS) + endif() + endif() + endif() + + # Generate the COMPILER_RT_SUPPORTED_ARCH list. + if(ANDROID) + # Examine compiler output to determine target architecture. + detect_target_arch() + set(COMPILER_RT_OS_SUFFIX "-android") + elseif(NOT APPLE) # Supported archs for Apple platforms are generated later + if("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "i[2-6]86|x86|amd64") + if(NOT MSVC) + test_target_arch(x86_64 "" "-m64") + # FIXME: We build runtimes for both i686 and i386, as "clang -m32" may + # target different variant than "$CMAKE_C_COMPILER -m32". This part should + # be gone after we resolve PR14109. + test_target_arch(i686 __i686__ "-m32") + test_target_arch(i386 __i386__ "-m32") + else() + if (CMAKE_SIZEOF_VOID_P EQUAL 4) + test_target_arch(i386 "" "") + else() + test_target_arch(x86_64 "" "") + endif() + endif() + elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "powerpc") + TEST_BIG_ENDIAN(HOST_IS_BIG_ENDIAN) + if(HOST_IS_BIG_ENDIAN) + test_target_arch(powerpc64 "" "-m64") + else() + test_target_arch(powerpc64le "" "-m64") + endif() + elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "s390x") + test_target_arch(s390x "" "") + elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "mipsel|mips64el") + # Gcc doesn't accept -m32/-m64 so we do the next best thing and use + # -mips32r2/-mips64r2. We don't use -mips1/-mips3 because we want to match + # clang's default CPU's. In the 64-bit case, we must also specify the ABI + # since the default ABI differs between gcc and clang. + # FIXME: Ideally, we would build the N32 library too. + test_target_arch(mipsel "" "-mips32r2" "--target=mipsel-linux-gnu") + test_target_arch(mips64el "" "-mips64r2" "--target=mips64el-linux-gnu" "-mabi=64") + elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "mips") + test_target_arch(mips "" "-mips32r2" "--target=mips-linux-gnu") + test_target_arch(mips64 "" "-mips64r2" "--target=mips64-linux-gnu" "-mabi=64") + elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "arm") + test_target_arch(arm "" "-march=armv7-a" "-mfloat-abi=soft") + test_target_arch(armhf "" "-march=armv7-a" "-mfloat-abi=hard") + elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "aarch32") + test_target_arch(aarch32 "" "-march=armv8-a") + elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "aarch64") + test_target_arch(aarch64 "" "-march=armv8-a") + elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "wasm32") + test_target_arch(wasm32 "" "--target=wasm32-unknown-unknown") + elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "wasm64") + test_target_arch(wasm64 "" "--target=wasm64-unknown-unknown") + endif() + set(COMPILER_RT_OS_SUFFIX "") + endif() +endmacro() Added: vendor/compiler-rt/dist/cmake/builtin-config-ix.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/compiler-rt/dist/cmake/builtin-config-ix.cmake Sat Jul 23 20:45:36 2016 (r303235) @@ -0,0 +1,169 @@ +include(BuiltinTests) + +# Make all the tests only check the compiler +set(TEST_COMPILE_ONLY On) + +builtin_check_c_compiler_flag(-fPIC COMPILER_RT_HAS_FPIC_FLAG) +builtin_check_c_compiler_flag(-fPIE COMPILER_RT_HAS_FPIE_FLAG) +builtin_check_c_compiler_flag(-fno-builtin COMPILER_RT_HAS_FNO_BUILTIN_FLAG) +builtin_check_c_compiler_flag(-std=c99 COMPILER_RT_HAS_STD_C99_FLAG) +builtin_check_c_compiler_flag(-fvisibility=hidden COMPILER_RT_HAS_VISIBILITY_HIDDEN_FLAG) +builtin_check_c_compiler_flag(-fomit-frame-pointer COMPILER_RT_HAS_OMIT_FRAME_POINTER_FLAG) +builtin_check_c_compiler_flag(-ffreestanding COMPILER_RT_HAS_FREESTANDING_FLAG) +builtin_check_c_compiler_flag(-mfloat-abi=soft COMPILER_RT_HAS_FLOAT_ABI_SOFT_FLAG) +builtin_check_c_compiler_flag(-mfloat-abi=hard COMPILER_RT_HAS_FLOAT_ABI_HARD_FLAG) +builtin_check_c_compiler_flag(-static COMPILER_RT_HAS_STATIC_FLAG) + +set(ARM64 aarch64) +set(ARM32 arm armhf) +set(X86 i386 i686) +set(X86_64 x86_64) +set(MIPS32 mips mipsel) +set(MIPS64 mips64 mips64el) +set(PPC64 powerpc64 powerpc64le) +set(WASM32 wasm32) +set(WASM64 wasm64) + +if(APPLE) + set(ARM64 arm64) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sat Jul 23 20:46:22 2016 Return-Path: Delivered-To: svn-src-all@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 B71E0BA29CC; Sat, 23 Jul 2016 20:46: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 6DB151776; Sat, 23 Jul 2016 20:46: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 u6NKkLvE012116; Sat, 23 Jul 2016 20:46:21 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKkLCq012115; Sat, 23 Jul 2016 20:46:21 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232046.u6NKkLCq012115@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:46:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303236 - vendor/compiler-rt/compiler-rt-release_39-r276489 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:46:22 -0000 Author: dim Date: Sat Jul 23 20:46:21 2016 New Revision: 303236 URL: https://svnweb.freebsd.org/changeset/base/303236 Log: Tag compiler-rt release_39 branch r276489. Added: vendor/compiler-rt/compiler-rt-release_39-r276489/ - copied from r303235, vendor/compiler-rt/dist/ From owner-svn-src-all@freebsd.org Sat Jul 23 20:47:31 2016 Return-Path: Delivered-To: svn-src-all@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 D2E6CBA2A37; Sat, 23 Jul 2016 20:47:31 +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 CE25918ED; Sat, 23 Jul 2016 20:47:30 +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 u6NKlUvO012213; Sat, 23 Jul 2016 20:47:30 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKlSTp012193; Sat, 23 Jul 2016 20:47:28 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232047.u6NKlSTp012193@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:47:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303237 - in vendor/libc++/dist: . benchmarks cmake cmake/Modules docs include include/experimental include/ext include/support/android include/support/ibm include/support/newlib includ... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:47:31 -0000 Author: dim Date: Sat Jul 23 20:47:26 2016 New Revision: 303237 URL: https://svnweb.freebsd.org/changeset/base/303237 Log: Vendor import of libc++ release_39 branch r276489: https://llvm.org/svn/llvm-project/libcxx/branches/release_39@276489 Added: vendor/libc++/dist/benchmarks/ vendor/libc++/dist/benchmarks/unordered_set_operations.bench.cpp (contents, props changed) vendor/libc++/dist/cmake/Modules/CheckLibcxxAtomic.cmake vendor/libc++/dist/include/__bsd_locale_defaults.h (contents, props changed) vendor/libc++/dist/include/__bsd_locale_fallbacks.h (contents, props changed) vendor/libc++/dist/include/__threading_support vendor/libc++/dist/include/experimental/__memory vendor/libc++/dist/include/experimental/deque vendor/libc++/dist/include/experimental/filesystem vendor/libc++/dist/include/experimental/forward_list vendor/libc++/dist/include/experimental/iterator vendor/libc++/dist/include/experimental/list vendor/libc++/dist/include/experimental/map vendor/libc++/dist/include/experimental/memory_resource vendor/libc++/dist/include/experimental/propagate_const vendor/libc++/dist/include/experimental/regex vendor/libc++/dist/include/experimental/set vendor/libc++/dist/include/experimental/string vendor/libc++/dist/include/experimental/unordered_map vendor/libc++/dist/include/experimental/unordered_set vendor/libc++/dist/include/experimental/vector vendor/libc++/dist/include/stdbool.h (contents, props changed) vendor/libc++/dist/include/string.h (contents, props changed) vendor/libc++/dist/include/support/ibm/locale_mgmt_aix.h (contents, props changed) vendor/libc++/dist/include/support/win32/locale_mgmt_win32.h (contents, props changed) vendor/libc++/dist/include/support/xlocale/__nop_locale_mgmt.h (contents, props changed) vendor/libc++/dist/include/support/xlocale/__posix_l_fallback.h (contents, props changed) vendor/libc++/dist/include/support/xlocale/__strtonum_fallback.h (contents, props changed) vendor/libc++/dist/src/experimental/ vendor/libc++/dist/src/experimental/filesystem/ vendor/libc++/dist/src/experimental/filesystem/directory_iterator.cpp (contents, props changed) vendor/libc++/dist/src/experimental/filesystem/operations.cpp (contents, props changed) vendor/libc++/dist/src/experimental/filesystem/path.cpp (contents, props changed) vendor/libc++/dist/src/experimental/memory_resource.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/algorithms/ vendor/libc++/dist/test/libcxx/algorithms/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/atomics/atomics.flag/ vendor/libc++/dist/test/libcxx/atomics/atomics.flag/init_bool.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/atomics/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/associative/ vendor/libc++/dist/test/libcxx/containers/associative/map/ vendor/libc++/dist/test/libcxx/containers/associative/map/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/associative/set/ vendor/libc++/dist/test/libcxx/containers/associative/set/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/associative/tree_balance_after_insert.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/associative/tree_key_value_traits.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/associative/tree_left_rotate.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/associative/tree_remove.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/associative/tree_right_rotate.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/container.adaptors/ vendor/libc++/dist/test/libcxx/containers/container.adaptors/queue/ vendor/libc++/dist/test/libcxx/containers/container.adaptors/queue/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/container.adaptors/stack/ vendor/libc++/dist/test/libcxx/containers/container.adaptors/stack/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/gnu_cxx/ vendor/libc++/dist/test/libcxx/containers/gnu_cxx/hash_map.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/gnu_cxx/hash_set.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/array/ vendor/libc++/dist/test/libcxx/containers/sequences/array/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/deque/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/forwardlist/ vendor/libc++/dist/test/libcxx/containers/sequences/forwardlist/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/ vendor/libc++/dist/test/libcxx/containers/sequences/list/db_back.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/db_cback.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/db_cfront.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/db_front.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/db_iterators_6.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/db_iterators_7.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/db_iterators_8.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/db_iterators_9.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.cons/ vendor/libc++/dist/test/libcxx/containers/sequences/list/list.cons/db_copy.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.cons/db_move.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/ vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/emplace_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_db2.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db2.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db3.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db4.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_iter_iter_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_rvalue_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_size_value_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_value_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/pop_back_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.ops/ vendor/libc++/dist/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter_iter.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.special/ vendor/libc++/dist/test/libcxx/containers/sequences/list/list.special/db_swap_1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/list.special/db_swap_2.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/list/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/const_value_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_back.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_cback.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_cfront.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_cindex.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_front.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_index.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_2.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_3.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_4.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_5.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_6.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_7.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_8.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/sequences/vector/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/unord/key_value_traits.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/unord/next_prime.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/unord/unord.map/ vendor/libc++/dist/test/libcxx/containers/unord/unord.map/db_iterators_7.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/unord/unord.map/db_iterators_8.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/unord/unord.map/db_local_iterators_7.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/unord/unord.map/db_local_iterators_8.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/unord/unord.map/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/containers/unord/unord.set/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/depr/ vendor/libc++/dist/test/libcxx/depr/depr.c.headers/ vendor/libc++/dist/test/libcxx/depr/depr.c.headers/extern_c.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/depr/depr.str.strstreams/ vendor/libc++/dist/test/libcxx/depr/depr.str.strstreams/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/diagnostics/ vendor/libc++/dist/test/libcxx/diagnostics/assertions/ vendor/libc++/dist/test/libcxx/diagnostics/assertions/version_cassert.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/diagnostics/errno/ vendor/libc++/dist/test/libcxx/diagnostics/errno/version_cerrno.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/diagnostics/std.exceptions/ vendor/libc++/dist/test/libcxx/diagnostics/std.exceptions/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/diagnostics/syserr/ vendor/libc++/dist/test/libcxx/diagnostics/syserr/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/filesystem/ vendor/libc++/dist/test/libcxx/experimental/filesystem/class.path/ vendor/libc++/dist/test/libcxx/experimental/filesystem/class.path/path.req/ vendor/libc++/dist/test/libcxx/experimental/filesystem/class.path/path.req/is_pathable.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/filesystem/lit.local.cfg vendor/libc++/dist/test/libcxx/experimental/filesystem/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/ vendor/libc++/dist/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/ vendor/libc++/dist/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/ vendor/libc++/dist/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/db_deallocate.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/max_size.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.adaptor/ vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/ vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/db_deallocate.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.aliases/ vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.aliases/header_deque_libcpp_version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.aliases/header_forward_list_libcpp_version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.aliases/header_list_libcpp_version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.aliases/header_map_libcpp_version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.aliases/header_regex_libcpp_version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.aliases/header_set_libcpp_version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.aliases/header_string_libcpp_version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.aliases/header_unordered_map_libcpp_version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.aliases/header_unordered_set_libcpp_version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.aliases/header_vector_libcpp_version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.global/ vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.global/global_memory_resource_lifetime.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.global/new_delete_resource_lifetime.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.synop/ vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.synop/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/optional/ vendor/libc++/dist/test/libcxx/experimental/optional/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/utilities/meta/ vendor/libc++/dist/test/libcxx/experimental/utilities/meta/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/experimental/utilities/utility/ vendor/libc++/dist/test/libcxx/experimental/utilities/utility/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/extensions/ vendor/libc++/dist/test/libcxx/extensions/hash/ vendor/libc++/dist/test/libcxx/extensions/hash/specializations.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/extensions/hash/specializations.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/extensions/hash_map/ vendor/libc++/dist/test/libcxx/extensions/hash_map/const_iterator.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/extensions/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/input.output/ vendor/libc++/dist/test/libcxx/input.output/file.streams/ vendor/libc++/dist/test/libcxx/input.output/file.streams/c.files/ vendor/libc++/dist/test/libcxx/input.output/file.streams/c.files/version_ccstdio.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/input.output/file.streams/c.files/version_cinttypes.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/input.output/file.streams/fstreams/ vendor/libc++/dist/test/libcxx/input.output/file.streams/fstreams/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/input.output/iostream.format/ vendor/libc++/dist/test/libcxx/input.output/iostream.format/input.streams/ vendor/libc++/dist/test/libcxx/input.output/iostream.format/input.streams/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/input.output/iostream.format/output.streams/ vendor/libc++/dist/test/libcxx/input.output/iostream.format/output.streams/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/input.output/iostream.format/std.manip/ vendor/libc++/dist/test/libcxx/input.output/iostream.format/std.manip/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/input.output/iostream.forward/ vendor/libc++/dist/test/libcxx/input.output/iostream.forward/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/input.output/iostream.objects/ vendor/libc++/dist/test/libcxx/input.output/iostream.objects/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/input.output/iostreams.base/ vendor/libc++/dist/test/libcxx/input.output/iostreams.base/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/input.output/stream.buffers/ vendor/libc++/dist/test/libcxx/input.output/stream.buffers/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/input.output/string.streams/ vendor/libc++/dist/test/libcxx/input.output/string.streams/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/iterators/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/ vendor/libc++/dist/test/libcxx/language.support/cstdint/ vendor/libc++/dist/test/libcxx/language.support/cstdint/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.dynamic/ vendor/libc++/dist/test/libcxx/language.support/support.dynamic/alloc.errors/ vendor/libc++/dist/test/libcxx/language.support/support.dynamic/alloc.errors/new.badlength/ vendor/libc++/dist/test/libcxx/language.support/support.dynamic/alloc.errors/new.badlength/bad_array_length.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.dynamic/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.exception/ vendor/libc++/dist/test/libcxx/language.support/support.exception/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.initlist/ vendor/libc++/dist/test/libcxx/language.support/support.initlist/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.limits/ vendor/libc++/dist/test/libcxx/language.support/support.limits/c.limits/ vendor/libc++/dist/test/libcxx/language.support/support.limits/c.limits/version_cfloat.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.limits/c.limits/version_climits.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.limits/limits/ vendor/libc++/dist/test/libcxx/language.support/support.limits/limits/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.rtti/ vendor/libc++/dist/test/libcxx/language.support/support.rtti/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.runtime/ vendor/libc++/dist/test/libcxx/language.support/support.runtime/version_csetjmp.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.runtime/version_csignal.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.runtime/version_cstdarg.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.runtime/version_cstdbool.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.runtime/version_cstdlib.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.runtime/version_ctime.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/support.types/ vendor/libc++/dist/test/libcxx/language.support/support.types/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/localization/ vendor/libc++/dist/test/libcxx/localization/c.locales/ vendor/libc++/dist/test/libcxx/localization/c.locales/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/localization/locale.categories/ vendor/libc++/dist/test/libcxx/localization/locale.categories/__scan_keyword.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/localization/locale.stdcvt/ vendor/libc++/dist/test/libcxx/localization/locale.stdcvt/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/localization/locales/ vendor/libc++/dist/test/libcxx/localization/locales/locale/ vendor/libc++/dist/test/libcxx/localization/locales/locale.convenience/ vendor/libc++/dist/test/libcxx/localization/locales/locale.convenience/conversions/ vendor/libc++/dist/test/libcxx/localization/locales/locale.convenience/conversions/conversions.string/ vendor/libc++/dist/test/libcxx/localization/locales/locale.convenience/conversions/conversions.string/ctor_move.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/localization/locales/locale/locale.types/ vendor/libc++/dist/test/libcxx/localization/locales/locale/locale.types/locale.facet/ vendor/libc++/dist/test/libcxx/localization/locales/locale/locale.types/locale.facet/facet.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/localization/locales/locale/locale.types/locale.id/ vendor/libc++/dist/test/libcxx/localization/locales/locale/locale.types/locale.id/id.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/localization/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/numerics/ vendor/libc++/dist/test/libcxx/numerics/cfenv/ vendor/libc++/dist/test/libcxx/numerics/cfenv/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/numerics/complex.number/ vendor/libc++/dist/test/libcxx/numerics/complex.number/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/numerics/numarray/ vendor/libc++/dist/test/libcxx/numerics/numarray/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/numerics/numeric.ops/ vendor/libc++/dist/test/libcxx/numerics/numeric.ops/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/numerics/rand/ vendor/libc++/dist/test/libcxx/numerics/rand/rand.synopsis/ vendor/libc++/dist/test/libcxx/numerics/rand/rand.synopsis/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/basic.string/ vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/ vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db2.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db2.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db3.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db4.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_pop_back_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/insert_iter_char_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/insert_iter_size_char_db1.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/c.strings/ vendor/libc++/dist/test/libcxx/strings/c.strings/version_cctype.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/c.strings/version_cstring.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/c.strings/version_cuchar.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/c.strings/version_cwchar.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/c.strings/version_cwctype.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/strings/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/futures/futures.promise/ vendor/libc++/dist/test/libcxx/thread/futures/futures.promise/set_exception.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/futures/futures.promise/set_exception_at_thread_exit.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/futures/futures.task/ vendor/libc++/dist/test/libcxx/thread/futures/futures.task/types.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.condition/ vendor/libc++/dist/test/libcxx/thread/thread.condition/thread.condition.condvar/ vendor/libc++/dist/test/libcxx/thread/thread.condition/thread.condition.condvar/native_handle.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.condition/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.mutex/ vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.lock/ vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.lock/thread.lock.guard/ vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex_mangling.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.mutex.requirements/ vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/ vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/ vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/native_handle.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/ vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/native_handle.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread_safety_annotations_not_enabled.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread_safety_lock_guard.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread_safety_lock_unlock.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread_safety_missing_unlock.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread_safety_requires_capability.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.mutex/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.threads/ vendor/libc++/dist/test/libcxx/thread/thread.threads/thread.thread.class/ vendor/libc++/dist/test/libcxx/thread/thread.threads/thread.thread.class/thread.thread.member/ vendor/libc++/dist/test/libcxx/thread/thread.threads/thread.thread.class/thread.thread.member/native_handle.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.threads/thread.thread.class/types.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/thread/thread.threads/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/function.objects/ vendor/libc++/dist/test/libcxx/utilities/function.objects/func.require/ vendor/libc++/dist/test/libcxx/utilities/function.objects/func.require/bullet_1_2_3.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/function.objects/func.require/bullet_4_5_6.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/function.objects/func.require/bullet_7.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/function.objects/func.require/invoke.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/function.objects/func.require/invoke_helpers.h (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/function.objects/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/memory/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/meta/ vendor/libc++/dist/test/libcxx/utilities/meta/is_referenceable.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/meta/meta.unary/ vendor/libc++/dist/test/libcxx/utilities/meta/meta.unary/meta.unary.prop/ vendor/libc++/dist/test/libcxx/utilities/meta/meta.unary/meta.unary.prop/__has_operator_addressof.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/meta/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/ratio/ vendor/libc++/dist/test/libcxx/utilities/ratio/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/template.bitset/ vendor/libc++/dist/test/libcxx/utilities/template.bitset/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/time/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/tuple/ vendor/libc++/dist/test/libcxx/utilities/tuple/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/type.index/ vendor/libc++/dist/test/libcxx/utilities/type.index/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/utility/ vendor/libc++/dist/test/libcxx/utilities/utility/pairs/ vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/ vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/non_trivial_copy_move_ABI.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/trivial_copy_move_ABI.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/utility/version.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.clamp/ vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.clamp/clamp.comp.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.clamp/clamp.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/iterator_types.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/map/PR28469_undefined_behavior_segfault.sh.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/map/incomplete_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/map/map.cons/compare_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/insert_and_emplace_allocator_requirements.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/multimap/incomplete_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/compare_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/insert_allocator_requirements.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/multiset/incomplete_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/multiset/insert_allocator_requirements.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/compare_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/set/incomplete_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/set/insert_and_emplace_allocator_requirements.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/set/set.cons/compare_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/types.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.defn/types.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.defn/types.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/map_allocator_requirement_test_templates.h (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/forwardlist/incomplete.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/vector.bool/reference.swap.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/set_allocator_requirement_test_templates.h (contents, props changed) vendor/libc++/dist/test/std/containers/unord/iterator_difference_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/incomplete_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/compare_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/hash_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_and_emplace_allocator_requirements.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multimap/incomplete.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/compare_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/hash_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_allocator_requirements.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multiset/incomplete.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_allocator_requirements.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/compare_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/hash_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.set/incomplete.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.set/insert_and_emplace_allocator_requirements.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/compare_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/hash_copy_constructible.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/overflow.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/ vendor/libc++/dist/test/std/experimental/filesystem/Inputs/ vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/ vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/bad_symlink (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/dir1/ vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/ vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/afile3 vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/dir3/ vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/dir3/file5 vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/file4 vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/symlink_to_dir3 (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/dir1/file1 vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/dir1/file2 vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/empty_file vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/non_empty_file vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/symlink_to_dir (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/Inputs/static_test_env/symlink_to_empty_file (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_entry/ vendor/libc++/dist/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_entry/directory_entry.mods.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/ vendor/libc++/dist/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/comparisons.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/path.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/status.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/ vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/copy.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/increment.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.nonmembers/ vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/types.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.file_status/ vendor/libc++/dist/test/std/experimental/filesystem/class.file_status/file_status.cons.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.file_status/file_status.mods.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.file_status/file_status.obs.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.filesystem_error/ vendor/libc++/dist/test/std/experimental/filesystem/class.filesystem_error/filesystem_error.members.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.itr/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.append.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.assign/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.assign/copy.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.assign/move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.assign/source.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.compare.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.concat.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.construct/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.construct/copy.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.construct/default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.construct/move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.construct/source.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.decompose/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.decompose/path.decompose.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.generic.obs/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.generic.obs/named_overloads.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.modifiers/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.modifiers/clear.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.modifiers/make_preferred.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.modifiers/remove_filename.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.modifiers/replace_extension.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.modifiers/replace_filename.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.modifiers/swap.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.native.obs/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.native.obs/c_str.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.native.obs/named_overloads.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.native.obs/native.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.native.obs/operator_string.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.native.obs/string_alloc.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.query/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.query/tested_in_path_decompose.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.nonmember/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.nonmember/append_op.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.nonmember/comparison_ops_tested_elsewhere.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.nonmember/hash_value_tested_elswhere.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.nonmember/path.factory.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.nonmember/path.io.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.nonmember/path.io.unicode_bug.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.nonmember/swap.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/synop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/ vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.nonmembers/ vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.enum/ vendor/libc++/dist/test/std/experimental/filesystem/fs.enum/check_bitmask_types.hpp vendor/libc++/dist/test/std/experimental/filesystem/fs.enum/enum.copy_options.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.enum/enum.directory_options.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.enum/enum.file_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.enum/enum.perms.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.error.report/ vendor/libc++/dist/test/std/experimental/filesystem/fs.error.report/tested_elsewhere.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.filesystem.synopsis/ vendor/libc++/dist/test/std/experimental/filesystem/fs.filesystem.synopsis/file_time_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.absolute/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.absolute/absolute.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.canonical/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.canonical/canonical.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy/copy.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_symlink/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directories/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory_symlink/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_hard_link/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_symlink/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.current_path/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.current_path/current_path.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.equivalent/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/exists.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.file_size/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.file_size/file_size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.hard_lk_ct/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_block_file/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_char_file/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_directory/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_fifo/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_other/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_other/is_other.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_regular_file/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_socket/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_symlink/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.permissions/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.permissions/permissions.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.read_symlink/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove/remove.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove_all/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.rename/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.rename/rename.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.resize_file/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.space/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.space/space.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.status/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.status/status.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.status_known/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.status_known/status_known.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.symlink_status/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.system_complete/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.system_complete/system_complete.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.temp_dir_path/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.req.macros/ vendor/libc++/dist/test/std/experimental/filesystem/fs.req.macros/feature_macro.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/fs.req.namespace/ vendor/libc++/dist/test/std/experimental/filesystem/fs.req.namespace/namespace.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/lit.local.cfg vendor/libc++/dist/test/std/experimental/iterator/ vendor/libc++/dist/test/std/experimental/iterator/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ostream.joiner.cons/ vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ostream.joiner.cons/ostream_joiner.cons.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ostream.joiner.creation/ vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ostream.joiner.creation/make_ostream_joiner.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ostream.joiner.ops/ vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ostream.joiner.ops/ostream_joiner.op.assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ostream.joiner.ops/ostream_joiner.op.postincrement.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ostream.joiner.ops/ostream_joiner.op.pretincrement.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ostream.joiner.ops/ostream_joiner.op.star.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/ vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/ vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/ vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/copy.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/memory_resource_convert.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.ctor/other_alloc.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/ vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.eq/not_equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/ vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/allocate.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_rvalue.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_pair_values.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_types.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/deallocate.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/destroy.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/resource.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/select_on_container_copy_construction.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.overview/ vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.overview/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.polymorphic.allocator.class/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource/ vendor/libc++/dist/test/std/experimental/memory/memory.resource.adaptor/ vendor/libc++/dist/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/ vendor/libc++/dist/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_copy.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/alloc_move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.ctor/default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/ vendor/libc++/dist/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_allocate_and_deallocate.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/do_is_equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.overview/ vendor/libc++/dist/test/std/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.overview/overview.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.aliases/ vendor/libc++/dist/test/std/experimental/memory/memory.resource.aliases/header_deque_synop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.aliases/header_forward_list_synop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.aliases/header_list_synop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.aliases/header_map_synop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.aliases/header_regex_synop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.aliases/header_set_synop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.aliases/header_string_synop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.aliases/header_unordered_map_synop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.aliases/header_unordered_set_synop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.aliases/header_vector_synop.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.global/ vendor/libc++/dist/test/std/experimental/memory/memory.resource.global/default_resource.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.global/new_delete_resource.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.global/null_memory_resource.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource.synop/ vendor/libc++/dist/test/std/experimental/memory/memory.resource.synop/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource/construct.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.eq/ vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.eq/equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.eq/not_equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.overview/ vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.overview/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.priv/ vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.priv/protected_members.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.public/ vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.public/allocate.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.public/deallocate.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.public/dtor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.public/is_equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/memory/nothing_to_do.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/ vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/ vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.assignment/ vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.assignment/assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.assignment/assign_convertible_element_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.assignment/assign_convertible_propagate_const.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.assignment/assign_element_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.assignment/move_assign.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.assignment/move_assign_convertible.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.assignment/move_assign_convertible_propagate_const.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.ctors/ vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.ctors/convertible_element_type.explicit.ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.ctors/convertible_element_type.non-explicit.ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.ctors/convertible_propagate_const.copy_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.ctors/convertible_propagate_const.explicit.move_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.ctors/convertible_propagate_const.move_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.ctors/copy_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.ctors/element_type.explicit.ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.ctors/element_type.non-explicit.ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.ctors/move_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.non-const_observers/ vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.non-const_observers/dereference.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.non-const_observers/explicit_operator_element_type_ptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.non-const_observers/get.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.non-const_observers/op_arrow.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.non-const_observers/operator_element_type_ptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.observers/ vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.observers/dereference.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.observers/explicit_operator_element_type_ptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.observers/get.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.observers/op_arrow.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/propagate_const.observers/operator_element_type_ptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.class/swap.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/ vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/hash.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.comparison_function_objects/ vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.comparison_function_objects/equal_to.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.comparison_function_objects/greater.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.comparison_function_objects/greater_equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.comparison_function_objects/less.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.comparison_function_objects/less_equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.comparison_function_objects/not_equal_to.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.relops/ vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.relops/equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.relops/greater_equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.relops/greater_than.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.relops/less_equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.relops/less_than.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/propagate_const.relops/not_equal.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/utilities/propagate_const/propagate_const.nonmembers/swap.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/minus1.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/narrow.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delim.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_copy.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/localization/locales/locale/locale.types/locale.facet/tested_elsewhere.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/localization/locales/locale/locale.types/locale.id/tested_elsewhere.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/ vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/ vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/assign_copy.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/assign_move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/ctor1.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/ctor2.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/ctor_copy.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/ctor_default.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/ctor_func.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/ctor_func_alloc.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/ctor_move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/dtor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/get_future.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/make_ready_at_thread_exit.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/operator.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/reset.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/swap.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.nonmembers/ vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.nonmembers/swap.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.nonmembers/uses_allocator.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_adopt_lock.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_assign.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_copy.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_mutex_cxx03.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/variadic_types.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/PR23141_invoke_not_constexpr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/bind_return_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/comparisons/pointer_comparison_test_helper.hpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/func.not_fn/ vendor/libc++/dist/test/std/utilities/function.objects/func.not_fn/not_fn.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/func.require/INVOKE_tested_elsewhere.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/default.allocator/allocator.members/allocate.size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/specialized.addressof/constexpr_addressof.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/storage.iterator/raw_storage_iterator.base.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/storage.iterator/raw_storage_iterator.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/unique.ptr.dltr.dflt1/convert_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared_cxx03.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.help/ vendor/libc++/dist/test/std/utilities/meta/meta.help/bool_constant.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.help/integral_constant.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_callable.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_nothrow_callable.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_swappable.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_swappable_with.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_swappable.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_swappable_include_order.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_swappable_with.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.apply/ vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply_extended_types.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.apply/apply_large_arity.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.apply/make_from_tuple.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR22806_constrain_tuple_like_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR23256_constrain_UTypes_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR27684_contains_ref_to_incomplete_type.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_Types.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_copy.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/test_lazy_sfinae.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_element.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_v.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_v.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/move_ctor.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/trivial_copy_move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/utility/synopsis.pass.cpp (contents, props changed) vendor/libc++/dist/test/support/assert_checkpoint.h (contents, props changed) vendor/libc++/dist/test/support/container_test_types.h (contents, props changed) vendor/libc++/dist/test/support/filesystem_dynamic_test_helper.py (contents, props changed) vendor/libc++/dist/test/support/filesystem_test_helper.hpp vendor/libc++/dist/test/support/propagate_const_helpers.h (contents, props changed) vendor/libc++/dist/test/support/rapid-cxx-test.hpp vendor/libc++/dist/test/support/test.support/ vendor/libc++/dist/test/support/test.support/test_convertible_header.pass.cpp (contents, props changed) vendor/libc++/dist/test/support/test.support/test_macros_header_exceptions.fail.cpp (contents, props changed) vendor/libc++/dist/test/support/test.support/test_macros_header_exceptions.pass.cpp (contents, props changed) vendor/libc++/dist/test/support/test.support/test_macros_header_rtti.fail.cpp (contents, props changed) vendor/libc++/dist/test/support/test.support/test_macros_header_rtti.pass.cpp (contents, props changed) vendor/libc++/dist/test/support/test_convertible.hpp vendor/libc++/dist/test/support/test_memory_resource.hpp vendor/libc++/dist/test/support/type_id.h (contents, props changed) vendor/libc++/dist/test/support/uses_alloc_types.hpp vendor/libc++/dist/test/ubsan_blacklist.txt (contents, props changed) vendor/libc++/dist/www/upcoming_meeting.html (contents, props changed) Deleted: vendor/libc++/dist/Makefile vendor/libc++/dist/test/libcxx/containers/unord/unord.set/insert_dup_alloc.pass.cpp vendor/libc++/dist/test/std/algorithms/version.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.flag/init03.pass.cpp vendor/libc++/dist/test/std/atomics/version.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/version.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/version.pass.cpp vendor/libc++/dist/test/std/containers/associative/tree_balance_after_insert.pass.cpp vendor/libc++/dist/test/std/containers/associative/tree_left_rotate.pass.cpp vendor/libc++/dist/test/std/containers/associative/tree_remove.pass.cpp vendor/libc++/dist/test/std/containers/associative/tree_right_rotate.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/version.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/version.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/version.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/version.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/version.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/db_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/db_cback.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/db_cfront.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/db_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/db_iterators_6.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/db_iterators_7.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/db_iterators_8.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/db_iterators_9.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/erase_iter_db1.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/erase_iter_db2.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/erase_iter_iter_db1.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/erase_iter_iter_db2.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/erase_iter_iter_db3.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/erase_iter_iter_db4.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.special/db_swap_1.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/version.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/const_value_type.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_cback.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_cfront.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_cindex.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_index.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_iterators_2.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_iterators_3.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_iterators_4.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_iterators_5.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_iterators_6.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_iterators_7.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/db_iterators_8.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/version.pass.cpp vendor/libc++/dist/test/std/containers/unord/next_prime.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/db_iterators_7.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/db_iterators_8.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/db_local_iterators_7.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/db_local_iterators_8.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/version.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/version.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/extern_c.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/version.pass.cpp vendor/libc++/dist/test/std/diagnostics/std.exceptions/version.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/version.pass.cpp vendor/libc++/dist/test/std/experimental/optional/version.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/meta/version.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/utility/version.pass.cpp vendor/libc++/dist/test/std/extensions/ vendor/libc++/dist/test/std/input.output/file.streams/c.files/version_ccstdio.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/c.files/version_cinttypes.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/version.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/version.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/minus1.pass vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/version.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/std.manip/version.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.forward/version.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.objects/version.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/narow.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/version.pass.cpp vendor/libc++/dist/test/std/input.output/stream.buffers/version.pass.cpp vendor/libc++/dist/test/std/input.output/string.streams/version.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delem.pass.cpp vendor/libc++/dist/test/std/iterators/version.pass.cpp vendor/libc++/dist/test/std/language.support/cstdint/version.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/alloc.errors/new.badlength/bad_array_length.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/version.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/version.pass.cpp vendor/libc++/dist/test/std/language.support/support.initlist/version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/c.limits/version_cfloat.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/c.limits/version_climits.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/version.pass.cpp vendor/libc++/dist/test/std/language.support/support.rtti/version.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/version_csetjmp.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/version_csignal.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/version_cstdarg.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/version_cstdbool.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/version_cstdlib.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/version_ctime.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/version.pass.cpp vendor/libc++/dist/test/std/localization/c.locales/version.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/__scan_keyword.pass.cpp vendor/libc++/dist/test/std/localization/locale.stdcvt/version.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.types/locale.facet/facet.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.types/locale.id/id.pass.cpp vendor/libc++/dist/test/std/localization/version.pass.cpp vendor/libc++/dist/test/std/numerics/c.math/cmath_isinf.pass.cpp vendor/libc++/dist/test/std/numerics/c.math/cmath_isnan.pass.cpp vendor/libc++/dist/test/std/numerics/cfenv/version.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/version.pass.cpp vendor/libc++/dist/test/std/numerics/numarray/version.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/version.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.synopsis/ vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/erase_iter_db1.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/erase_iter_db2.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/erase_iter_iter_db1.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/erase_iter_iter_db2.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/erase_iter_iter_db3.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/erase_iter_iter_db4.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/version_cctype.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/version_cstring.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/version_cuchar.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/version_cwchar.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/version_cwctype.pass.cpp vendor/libc++/dist/test/std/strings/version.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.tas/ vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvar/native_handle.pass.cpp vendor/libc++/dist/test/std/thread/thread.condition/version.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/native_handle.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/native_handle.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/version.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.member/native_handle.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/types.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/version.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.require/bullet_1_and_2.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.require/bullet_3_and_4.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.require/bullet_5.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.require/invoke.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.require/invoke_helpers.h vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/version.pass.cpp vendor/libc++/dist/test/std/utilities/memory/storage.iterator/raw_storag_iterator.base.pass.cpp vendor/libc++/dist/test/std/utilities/memory/storage.iterator/raw_storag_iterator.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared_no_variadics.pass.cpp vendor/libc++/dist/test/std/utilities/memory/version.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.hel/ vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/__has_operator_addressof.pass.cpp vendor/libc++/dist/test/std/utilities/meta/version.pass.cpp vendor/libc++/dist/test/std/utilities/ratio/version.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/version.pass.cpp vendor/libc++/dist/test/std/utilities/time/version.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type1.fail.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type2.fail.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type3.fail.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type4.fail.cpp vendor/libc++/dist/test/std/utilities/tuple/version.pass.cpp vendor/libc++/dist/test/std/utilities/type.index/version.pass.cpp vendor/libc++/dist/test/std/utilities/utility/version.pass.cpp vendor/libc++/dist/www/kona.html vendor/libc++/dist/www/lit_usage.html Modified: vendor/libc++/dist/.arcconfig vendor/libc++/dist/CMakeLists.txt vendor/libc++/dist/CREDITS.TXT vendor/libc++/dist/LICENSE.TXT vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake vendor/libc++/dist/cmake/config-ix.cmake vendor/libc++/dist/docs/BuildingLibcxx.rst vendor/libc++/dist/docs/TestingLibcxx.rst vendor/libc++/dist/docs/UsingLibcxx.rst vendor/libc++/dist/docs/conf.py vendor/libc++/dist/include/CMakeLists.txt vendor/libc++/dist/include/__config vendor/libc++/dist/include/__config_site.in vendor/libc++/dist/include/__functional_base vendor/libc++/dist/include/__hash_table vendor/libc++/dist/include/__mutex_base vendor/libc++/dist/include/__tree vendor/libc++/dist/include/__tuple vendor/libc++/dist/include/__undef___deallocate vendor/libc++/dist/include/__undef_min_max vendor/libc++/dist/include/algorithm vendor/libc++/dist/include/array vendor/libc++/dist/include/atomic vendor/libc++/dist/include/bitset vendor/libc++/dist/include/cctype vendor/libc++/dist/include/cmath vendor/libc++/dist/include/complex vendor/libc++/dist/include/cstring vendor/libc++/dist/include/cwchar vendor/libc++/dist/include/deque vendor/libc++/dist/include/exception vendor/libc++/dist/include/experimental/__config vendor/libc++/dist/include/experimental/algorithm vendor/libc++/dist/include/experimental/any vendor/libc++/dist/include/experimental/dynarray vendor/libc++/dist/include/experimental/functional vendor/libc++/dist/include/experimental/optional vendor/libc++/dist/include/experimental/string_view vendor/libc++/dist/include/experimental/tuple vendor/libc++/dist/include/ext/hash_map vendor/libc++/dist/include/ext/hash_set vendor/libc++/dist/include/forward_list vendor/libc++/dist/include/fstream vendor/libc++/dist/include/functional vendor/libc++/dist/include/future vendor/libc++/dist/include/iomanip vendor/libc++/dist/include/ios vendor/libc++/dist/include/iosfwd vendor/libc++/dist/include/istream vendor/libc++/dist/include/iterator vendor/libc++/dist/include/list vendor/libc++/dist/include/locale vendor/libc++/dist/include/map vendor/libc++/dist/include/memory vendor/libc++/dist/include/mutex vendor/libc++/dist/include/queue vendor/libc++/dist/include/shared_mutex vendor/libc++/dist/include/stack vendor/libc++/dist/include/stdexcept vendor/libc++/dist/include/streambuf vendor/libc++/dist/include/string vendor/libc++/dist/include/support/android/locale_bionic.h vendor/libc++/dist/include/support/ibm/xlocale.h vendor/libc++/dist/include/support/newlib/xlocale.h vendor/libc++/dist/include/support/solaris/xlocale.h vendor/libc++/dist/include/support/win32/locale_win32.h vendor/libc++/dist/include/support/xlocale/xlocale.h vendor/libc++/dist/include/thread vendor/libc++/dist/include/tuple vendor/libc++/dist/include/type_traits vendor/libc++/dist/include/unordered_map vendor/libc++/dist/include/unordered_set vendor/libc++/dist/include/utility vendor/libc++/dist/include/vector vendor/libc++/dist/include/wchar.h vendor/libc++/dist/lib/CMakeLists.txt vendor/libc++/dist/lib/buildit vendor/libc++/dist/src/algorithm.cpp vendor/libc++/dist/src/bind.cpp vendor/libc++/dist/src/condition_variable.cpp vendor/libc++/dist/src/locale.cpp vendor/libc++/dist/src/memory.cpp vendor/libc++/dist/src/mutex.cpp vendor/libc++/dist/src/regex.cpp vendor/libc++/dist/src/strstream.cpp vendor/libc++/dist/src/system_error.cpp vendor/libc++/dist/src/thread.cpp vendor/libc++/dist/test/CMakeLists.txt vendor/libc++/dist/test/libcxx/compiler.py vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.cons/alloc.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.cons/default.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.data/default.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.mutate/default.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/at.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/begin_end.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/capacity.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/front_back.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/indexing.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.traits/default.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.zero/default.pass.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/ratio/header.ratio.synop/includes.pass.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/syserror/header.system_error.synop/includes.pass.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/time/header.chrono.synop/includes.pass.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/tuple/header.tuple.synop/includes.pass.cpp vendor/libc++/dist/test/libcxx/iterators/trivial_iterators.pass.cpp vendor/libc++/dist/test/libcxx/selftest/test_macros.pass.cpp vendor/libc++/dist/test/libcxx/strings/iterators.exceptions.pass.cpp vendor/libc++/dist/test/libcxx/strings/iterators.noexcept.pass.cpp vendor/libc++/dist/test/libcxx/test/config.py vendor/libc++/dist/test/libcxx/test/format.py vendor/libc++/dist/test/libcxx/test/target_info.py vendor/libc++/dist/test/lit.site.cfg.in vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.fill/fill_n.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.equal/equal.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.heap.operations/make.heap/make_heap_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.merge/inplace_merge.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.merge/inplace_merge_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/max_element.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/max_element_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/min_element.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/minmax.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/minmax_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/minmax_element.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/minmax_element_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort_comp.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.flag/atomic_flag_clear.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.flag/atomic_flag_clear_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.flag/clear.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.lockfree/lockfree.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/address.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/bool.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/cstdint_typedefs.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/integral.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/integral_typedefs.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/trivially_copyable.fail.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/trivially_copyable.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_and.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_and_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_or.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_or_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_xor.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_xor_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_helpers.h vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_is_lock_free.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/at.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/empty.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/index_key.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/index_rv_key.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/iterator.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/max_size.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/size.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/compare_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/copy.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/copy_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/copy_assign.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/default.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/initializer_list_compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/initializer_list_compare_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/iter_iter_comp.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/iter_iter_comp_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/erase_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/erase_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/erase_key.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/insert_cv.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/insert_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/insert_iter_cv.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/insert_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/insert_iter_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/insert_or_assign.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/insert_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/try.emplace.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/count.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/count0.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/count1.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/count2.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/count3.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/equal_range.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/equal_range0.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/equal_range1.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/equal_range2.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/equal_range3.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/find.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/find0.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/find1.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/find2.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/find3.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/lower_bound.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/lower_bound0.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/lower_bound1.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/lower_bound2.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/lower_bound3.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/upper_bound.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/upper_bound0.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/upper_bound1.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/upper_bound2.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/upper_bound3.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.special/member_swap.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.special/non_member_swap.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/types.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/empty.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/iterator.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/max_size.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/compare_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/copy.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/copy_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/copy_assign.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/default.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/initializer_list_compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/initializer_list_compare_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/iter_iter_comp.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/iter_iter_comp_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/erase_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/erase_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/erase_key.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/insert_cv.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/insert_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/insert_iter_cv.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/insert_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/insert_iter_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/insert_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/count.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/count0.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/count1.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/count2.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/count3.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/equal_range.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/equal_range0.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/equal_range1.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/equal_range2.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/equal_range3.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/find.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/find0.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/find1.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/find2.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/find3.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/lower_bound.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/lower_bound0.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/lower_bound1.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/lower_bound2.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/lower_bound3.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/upper_bound.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/upper_bound0.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/upper_bound1.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/upper_bound2.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/upper_bound3.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.special/member_swap.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.special/non_member_swap.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/size.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/types.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/clear.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/count.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/emplace.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/empty.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/equal_range.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/erase_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/erase_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/erase_key.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/find.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/insert_cv.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/insert_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/insert_iter_cv.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/insert_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/insert_iter_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/insert_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/iterator.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/lower_bound.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/max_size.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/default.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/iter_iter_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.special/member_swap.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.special/non_member_swap.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/size.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/types.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/upper_bound.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/clear.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/count.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/emplace.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/empty.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/equal_range.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/erase_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/erase_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/erase_key.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/find.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/insert_cv.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/insert_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/insert_iter_cv.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/insert_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/insert_iter_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/insert_rv.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/iterator.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/lower_bound.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/max_size.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/default.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/iter_iter_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.special/member_swap.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.special/non_member_swap.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/size.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/types.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/upper_bound.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_comp_cont_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_comp_rcont_alloc.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/types.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.defn/types.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.defn/types.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.special/swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.swap/swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/at.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/front_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/indexing.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/iterators.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/types.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/access.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/resize_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/copy.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/copy_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/default.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/initializer_list_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/op_equal.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/op_equal_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/size_value_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/erase_iter.invalidation.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/erase_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/erase_iter_iter.invalidation.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/erase_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/pop_back.invalidation.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/pop_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/pop_front.invalidation.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/pop_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_back_exception_safety.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_back_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_front_exception_safety.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_front_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.special/copy.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.special/copy_backward.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.special/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.special/move_backward.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.special/swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/iterators.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/types.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.access/front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_op_init.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/copy.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/copy_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/init.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/init_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/size_value_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.iter/before_begin.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_after.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_many.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_one.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_const.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_init.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_rv.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/pop_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_const.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_rv.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/resize_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/resize_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/merge.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_pred.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/remove.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/reverse.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/sort.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/sort_pred.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_flist.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_range.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/max_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/types.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/iterators.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.capacity/resize_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.capacity/resize_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/copy.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/copy_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/default.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/default_stack_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/initializer_list_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/input_iterator.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/op_equal_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/size_type.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/size_value_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/emplace_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/emplace_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/erase_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/erase_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/pop_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/pop_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/push_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/push_back_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/push_front.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/push_front_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/merge.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/merge_comp.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/remove.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/remove_if.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/reverse.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/sort.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/sort_comp.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/splice_pos_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/splice_pos_list_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/splice_pos_list_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/unique.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/unique_pred.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.special/swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/types.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/capacity.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/construct_default.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/construct_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/construct_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/construct_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/construct_size_value_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/copy.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/copy_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/emplace.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/emplace_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/erase_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/erase_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/initializer_list_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/insert_iter_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/insert_iter_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/insert_iter_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/insert_iter_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/iterators.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/op_equal_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/push_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/reserve.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/resize_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/resize_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/shrink_to_fit.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/types.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/vector_bool.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/contiguous.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/iterators.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/types.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.capacity/capacity.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.capacity/reserve.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.capacity/resize_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.capacity/resize_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.capacity/swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/assign_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/assign_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/construct_default.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/construct_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/construct_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/construct_size_value_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/copy.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/copy_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/initializer_list_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/op_equal_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.data/data.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.data/data_const.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/emplace_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/emplace_extra.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/erase_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/erase_iter_db1.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/erase_iter_db2.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/erase_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/erase_iter_iter_db1.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/erase_iter_iter_db2.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/erase_iter_iter_db3.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/erase_iter_iter_db4.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/insert_iter_initializer_list.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/insert_iter_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/insert_iter_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/insert_iter_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/pop_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/push_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/push_back_exception_safety.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/push_back_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.special/db_swap_1.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.special/swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/bucket.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/bucket_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/eq.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/equal_range_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/equal_range_non_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/find_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/find_non_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/iterators.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/local_iterators.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/max_load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/max_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/reserve.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/types.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/copy_alloc.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/default.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/init_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/range_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/size.fail.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.elem/at.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.elem/index.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.elem/index_tuple.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_const_lvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/try.emplace.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.swap/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/bucket.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/bucket_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/db_iterators_7.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/db_iterators_8.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/eq.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/equal_range_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/equal_range_non_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/find_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/find_non_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/iterators.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/local_iterators.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/max_bucket_count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/max_load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/max_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/reserve.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/swap_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/types.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/copy_alloc.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/default.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size.fail.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_const_iter.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_key.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_const_lvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.swap/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.swap/swap_non_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/bucket.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/bucket_count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/bucket_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/clear.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/db_iterators_7.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/db_iterators_8.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/emplace.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/eq.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/equal_range_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/equal_range_non_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/erase_const_iter.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/erase_key.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/erase_range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/find_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/find_non_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_const_lvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_hint_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/iterators.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/local_iterators.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/max_bucket_count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/max_load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/max_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/reserve.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/swap_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/types.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/copy_alloc.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/default.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/size.fail.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.swap/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.swap/swap_non_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/bucket.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/bucket_count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/bucket_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/clear.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/db_iterators_7.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/db_iterators_8.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/db_local_iterators_7.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/db_local_iterators_8.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/emplace.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/emplace_hint.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/eq.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/equal_range_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/equal_range_non_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/erase_const_iter.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/erase_key.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/erase_range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/find_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/find_non_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/insert_const_lvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/insert_hint_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/insert_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/insert_range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/insert_rvalue.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/iterators.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/local_iterators.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/max_bucket_count.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/max_load_factor.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/max_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/reserve.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/swap_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/types.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/copy_alloc.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/init_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/move_alloc.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/range_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/range_size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/size_hash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/size_hash_equal.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/size_hash_equal_allocator.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.swap/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.swap/swap_non_member.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/fenv_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/inttypes_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/math_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/setjmp_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/stdarg_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/stdint_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/stdio_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/string_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/time_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/wchar_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/ccp.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/ccp_size.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/cp.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/cp_size.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons/cp_size_mode.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons/default.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons/cp_size_mode.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons/default.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/custom_alloc.pass.cpp vendor/libc++/dist/test/std/depr/exception.unexpected/set.unexpected/get_unexpected.pass.cpp vendor/libc++/dist/test/std/diagnostics/assertions/cassert.pass.cpp vendor/libc++/dist/test/std/diagnostics/errno/cerrno.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.nonvirtuals/default_ctor.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.hash/error_code.pass.cpp vendor/libc++/dist/test/std/experimental/algorithms/alg.random.sample/sample.pass.cpp vendor/libc++/dist/test/std/experimental/algorithms/alg.search/search.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/default.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/hash.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/hash.pred.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/pred.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/default.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/hash.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/hash.pred.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/pred.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/default.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/default.pred.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/func.searchers.default.creation/make_default_searcher.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/func.searchers.default.creation/make_default_searcher.pred.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.bad_optional_access/default.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.bad_optional_access/derive.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.comp_with_t/equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.comp_with_t/greater.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.comp_with_t/greater_equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.comp_with_t/less_equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.comp_with_t/less_than.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.comp_with_t/not_equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.hash/hash.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.inplace/in_place_t.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.nullops/equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.nullops/greater.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.nullops/greater_equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.nullops/less_equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.nullops/less_than.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.nullops/not_equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.nullopt/nullopt_t.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/default.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.dtor/dtor.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/bool.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/dereference.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/dereference_const.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/value_const.fail.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/value_or_const.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional_const_void.fail.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional_not_destructible.fail.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional_not_noexcept_destructible.fail.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/optional_void.fail.cpp vendor/libc++/dist/test/std/experimental/optional/optional.object/types.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.relops/equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.relops/greater_equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.relops/greater_than.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.relops/less_equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.relops/less_than.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.relops/not_equal.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.specalg/make_optional.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.specalg/swap.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.syn/optional_const_in_place_t.fail.cpp vendor/libc++/dist/test/std/experimental/optional/optional.syn/optional_const_lvalue_ref.fail.cpp vendor/libc++/dist/test/std/experimental/optional/optional.syn/optional_const_nullopt_t.fail.cpp vendor/libc++/dist/test/std/experimental/optional/optional.syn/optional_in_place_t.fail.cpp vendor/libc++/dist/test/std/experimental/optional/optional.syn/optional_includes_initializer_list.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.syn/optional_lvalue_ref.fail.cpp vendor/libc++/dist/test/std/experimental/optional/optional.syn/optional_nullopt_t.fail.cpp vendor/libc++/dist/test/std/experimental/optional/optional.syn/optional_rvalue_ref.fail.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.access/at.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.access/back.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.access/data.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.access/front.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.access/index.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.capacity/capacity.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.comparison/opeq.string_view.pointer.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.comparison/opeq.string_view.string.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.comparison/opge.string_view.pointer.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.comparison/opgt.string_view.pointer.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.comparison/ople.string_view.pointer.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.comparison/oplt.string_view.pointer.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.comparison/opne.string_view.pointer.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.cons/default.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.cons/from_literal.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.cons/from_ptr_len.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.cons/from_string.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.cons/from_string1.fail.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.cons/from_string2.fail.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.iterators/begin.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.iterators/end.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.iterators/rbegin.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.iterators/rend.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.modifiers/remove_prefix.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.modifiers/remove_suffix.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.modifiers/swap.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.nonmem/quoted.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/basic_string.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.pointer.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.pointer_size.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.size_size_sv.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.sv.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/copy.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/substr.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/to_string.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/meta/meta.type.synop/includes.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/meta/meta.type.synop/meta.rel.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.cat.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.comp.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.query.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/tuple/tuple.apply/constexpr_types.pass.cpp vendor/libc++/dist/test/std/experimental/utilities/tuple/tuple.apply/return_type.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/c.files/cinttypes.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/c.files/cstdio.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/c.files/gets.fail.cpp vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/get_time.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/put_time.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/ignore_0xff.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/seekg_off.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/quoted.manip/quoted_char.fail.cpp vendor/libc++/dist/test/std/input.output/iostream.format/quoted.manip/quoted_traits.fail.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/move.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/swap.pass.cpp vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.members/streambuf.pub.get/sgetn.pass.cpp vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.members/streambuf.pub.pback/sputbackc.pass.cpp vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.members/streambuf.pub.pback/sungetc.pass.cpp vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.members/streambuf.pub.put/sputc.pass.cpp vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.members/streambuf.pub.put/sputn.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.container/data.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.container/empty.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.container/size.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.primitives/std.iterator.tags/bidirectional_iterator_tag.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.primitives/std.iterator.tags/forward_iterator_tag.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.primitives/std.iterator.tags/input_iterator_tag.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.primitives/std.iterator.tags/output_iterator_tag.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.primitives/std.iterator.tags/random_access_iterator_tag.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.range/begin-end.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/insert.iterators/back.insert.iterator/types.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/insert.iterators/front.insert.iterator/types.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/insert.iterators/insert.iterator/types.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.make/make_reverse_iterator.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opref/op_arrow.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/default.fail.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/default.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.ops/arrow.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator.cons/default.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istreambuf.iterator/types.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream.pass.cpp vendor/libc++/dist/test/std/language.support/cstdint/cstdint.syn/cstdint.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.placement/new_array.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_nothrow_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_calls_unsized_delete.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.sh.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/propagation/current_exception.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/csetjmp.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/cstdarg.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/ctime.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/nullptr_t.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/offsetof.pass.cpp vendor/libc++/dist/test/std/localization/c.locales/clocale.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/transform.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/facet.ctype.special/facet.ctype.char.statics/classic_table.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/types.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.moneypunct/money_base.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_double.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_double.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_float.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long_double.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/test_min_max.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/assign.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/copy.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/string.pass.cpp vendor/libc++/dist/test/std/numerics/c.math/cmath.pass.cpp vendor/libc++/dist/test/std/numerics/cfenv/cfenv.syn/cfenv.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/cases.h vendor/libc++/dist/test/std/numerics/complex.number/cmplx.over/imag.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/cmplx.over/real.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.literals/literals.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.literals/literals1.fail.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.literals/literals1.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.literals/literals2.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.member.ops/divide_equal_complex.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.member.ops/plus_equal_complex.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.member.ops/times_equal_complex.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.ops/complex_divide_complex.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.ops/complex_times_complex.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/acos.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/acosh.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/asin.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/asinh.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/atan.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/atanh.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/cos.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/cosh.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/exp.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/log.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/log10.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/pow_complex_complex.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/pow_complex_scalar.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/pow_scalar_complex.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/sin.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/sinh.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/sqrt.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/tan.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/tanh.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.value.ops/abs.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.value.ops/arg.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.value.ops/norm.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.value.ops/polar.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.value.ops/proj.pass.cpp vendor/libc++/dist/test/std/numerics/numarray/template.valarray/valarray.unary/not.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.device/ctor.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.device/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bernoulli/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bernoulli/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.geo/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.geo/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.negbin/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.negbin/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.chisq/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.chisq/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.normal/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.normal/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.exp/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.exp/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.poisson/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.poisson/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.weibull/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.weibull/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.pconst/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.pconst/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.plinear/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.plinear/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.int/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.int/eval_param.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.real/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.real/eval_param.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/awk.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/basic.fail.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/basic.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/ecma.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/egrep.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/extended.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/grep.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/lookahead_capture.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/parse_curly_brackets.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.replace/test1.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.replace/test2.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.replace/test3.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.replace/test4.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.replace/test5.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.replace/test6.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/awk.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/backup.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/basic.fail.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/basic.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/ecma.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/egrep.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/extended.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/grep.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/lookahead.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/no_update_pos.pass.cpp vendor/libc++/dist/test/std/re/re.badexp/regex_error.pass.cpp vendor/libc++/dist/test/std/re/re.const/re.err/error_type.pass.cpp vendor/libc++/dist/test/std/re/re.const/re.matchflag/match_flag_type.pass.cpp vendor/libc++/dist/test/std/re/re.const/re.matchflag/match_not_bol.pass.cpp vendor/libc++/dist/test/std/re/re.const/re.matchflag/match_not_eol.pass.cpp vendor/libc++/dist/test/std/re/re.const/re.synopt/syntax_option_type.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.regiter/re.regiter.cnstr/cnstr.fail.cpp vendor/libc++/dist/test/std/re/re.iter/re.regiter/re.regiter.cnstr/cnstr.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.regiter/re.regiter.cnstr/default.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.regiter/re.regiter.deref/deref.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.regiter/re.regiter.incr/post.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.regiter/types.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/array.fail.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/array.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/default.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/init.fail.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/init.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/int.fail.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/int.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/vector.fail.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.cnstr/vector.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.comp/equal.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.deref/deref.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/re.tokiter.incr/post.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.tokiter/types.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/assign.il.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/assign.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/assign_iter_iter_flag.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/assign_ptr_flag.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/assign_ptr_size_flag.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/assign_string_flag.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/copy.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/il.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/ptr.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/string.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.const/constants.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/awk_oct.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/bad_repeat.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/copy.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/default.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/il_flg.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/iter_iter.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/iter_iter_flg.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/ptr.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/ptr_flg.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/ptr_size_flg.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/string.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/string_flg.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.locale/imbue.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.nonmemb/re.regex.nmswap/swap.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.swap/swap.pass.cpp vendor/libc++/dist/test/std/re/re.regex/types.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.acc/begin_end.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.acc/cbegin_cend.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.acc/index.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.acc/length.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.acc/position.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.acc/prefix.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.acc/str.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.acc/suffix.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.all/get_allocator.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.const/allocator.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.const/default.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.form/form1.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.form/form2.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.form/form3.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.form/form4.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.nonmember/equal.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.size/empty.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.size/max_size.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.state/ready.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.swap/member_swap.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.swap/non_member_swap.pass.cpp vendor/libc++/dist/test/std/re/re.results/types.pass.cpp vendor/libc++/dist/test/std/re/re.submatch/re.submatch.members/compare_string_type.pass.cpp vendor/libc++/dist/test/std/re/re.submatch/re.submatch.members/compare_sub_match.pass.cpp vendor/libc++/dist/test/std/re/re.submatch/re.submatch.members/compare_value_type_ptr.pass.cpp vendor/libc++/dist/test/std/re/re.submatch/re.submatch.members/default.pass.cpp vendor/libc++/dist/test/std/re/re.submatch/re.submatch.members/length.pass.cpp vendor/libc++/dist/test/std/re/re.submatch/re.submatch.members/operator_string.pass.cpp vendor/libc++/dist/test/std/re/re.submatch/re.submatch.members/str.pass.cpp vendor/libc++/dist/test/std/re/re.submatch/re.submatch.op/compare.pass.cpp vendor/libc++/dist/test/std/re/re.submatch/re.submatch.op/stream.pass.cpp vendor/libc++/dist/test/std/re/re.submatch/types.pass.cpp vendor/libc++/dist/test/std/re/re.syn/cmatch.pass.cpp vendor/libc++/dist/test/std/re/re.syn/cregex_iterator.pass.cpp vendor/libc++/dist/test/std/re/re.syn/cregex_token_iterator.pass.cpp vendor/libc++/dist/test/std/re/re.syn/csub_match.pass.cpp vendor/libc++/dist/test/std/re/re.syn/regex.pass.cpp vendor/libc++/dist/test/std/re/re.syn/smatch.pass.cpp vendor/libc++/dist/test/std/re/re.syn/sregex_iterator.pass.cpp vendor/libc++/dist/test/std/re/re.syn/sregex_token_iterator.pass.cpp vendor/libc++/dist/test/std/re/re.syn/ssub_match.pass.cpp vendor/libc++/dist/test/std/re/re.syn/wcmatch.pass.cpp vendor/libc++/dist/test/std/re/re.syn/wcregex_iterator.pass.cpp vendor/libc++/dist/test/std/re/re.syn/wcregex_token_iterator.pass.cpp vendor/libc++/dist/test/std/re/re.syn/wcsub_match.pass.cpp vendor/libc++/dist/test/std/re/re.syn/wregex.pass.cpp vendor/libc++/dist/test/std/re/re.syn/wsmatch.pass.cpp vendor/libc++/dist/test/std/re/re.syn/wsregex_iterator.pass.cpp vendor/libc++/dist/test/std/re/re.syn/wsregex_token_iterator.pass.cpp vendor/libc++/dist/test/std/re/re.syn/wssub_match.pass.cpp vendor/libc++/dist/test/std/re/re.traits/default.pass.cpp vendor/libc++/dist/test/std/re/re.traits/getloc.pass.cpp vendor/libc++/dist/test/std/re/re.traits/imbue.pass.cpp vendor/libc++/dist/test/std/re/re.traits/isctype.pass.cpp vendor/libc++/dist/test/std/re/re.traits/length.pass.cpp vendor/libc++/dist/test/std/re/re.traits/lookup_classname.pass.cpp vendor/libc++/dist/test/std/re/re.traits/lookup_collatename.pass.cpp vendor/libc++/dist/test/std/re/re.traits/transform.pass.cpp vendor/libc++/dist/test/std/re/re.traits/transform_primary.pass.cpp vendor/libc++/dist/test/std/re/re.traits/translate.pass.cpp vendor/libc++/dist/test/std/re/re.traits/translate_nocase.pass.cpp vendor/libc++/dist/test/std/re/re.traits/types.pass.cpp vendor/libc++/dist/test/std/re/re.traits/value.pass.cpp vendor/libc++/dist/test/std/strings/basic.string.literals/literal.pass.cpp vendor/libc++/dist/test/std/strings/basic.string.literals/literal1.fail.cpp vendor/libc++/dist/test/std/strings/basic.string.literals/literal1.pass.cpp vendor/libc++/dist/test/std/strings/basic.string.literals/literal2.fail.cpp vendor/libc++/dist/test/std/strings/basic.string.literals/literal2.pass.cpp vendor/libc++/dist/test/std/strings/basic.string.literals/literal3.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/at.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/back.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/db_back.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/db_cback.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/db_cfront.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/db_cindex.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/db_front.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/db_index.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/front.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/index.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/capacity.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/clear.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/empty.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/length.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/max_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/reserve.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/resize_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/resize_size_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/char_assignment.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/copy.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/copy_assignment.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/dtor_noexcept.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/initializer_list.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/initializer_list_assignment.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/iter_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/move.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/move_assignment.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/pointer_assignment.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/pointer_size_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/substr.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/begin.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/cbegin.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/cend.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/crbegin.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/crend.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/db_iterators_2.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/db_iterators_3.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/db_iterators_4.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/db_iterators_5.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/db_iterators_6.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/db_iterators_7.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/db_iterators_8.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/end.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/iterators.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/rbegin.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/rend.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/initializer_list.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/size_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/initializer_list.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/rv_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/size_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/iter.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/iter_iter.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/pop_back.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/initializer_list.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_size_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_swap/swap.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.io/get_line.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim_rv.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.io/get_line_rv.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.io/stream_extract.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.io/stream_insert.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string.accessors/c_str.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string.accessors/data.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string.accessors/get_allocator.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.first.not.of/char_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.first.not.of/string_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.first.of/char_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.first.of/string_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.last.not.of/char_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.last.of/char_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.last.of/string_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find/char_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find/pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find/pointer_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find/string_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_rfind/char_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_rfind/pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_rfind/pointer_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_rfind/string_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_substr/substr.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.require/contiguous.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/types.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/cstring.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/cwchar.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign2.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/compare.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq_int_type.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/length.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/lt.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/not_eof.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_char_type.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_int_type.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign2.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/compare.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq_int_type.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/length.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/lt.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/not_eof.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_char_type.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_int_type.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.async/async.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.overview/future_errc.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.overview/launch.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/copy_assign.fail.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/copy_ctor.fail.cpp vendor/libc++/dist/test/std/thread/futures/futures.promise/set_rvalue.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/copy_assign.fail.cpp vendor/libc++/dist/test/std/thread/futures/futures.unique_future/copy_ctor.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/mutex.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/copy_assign.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/copy_ctor.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_ctor.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_adopt_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_defer_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/copy_assign.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/copy_ctor.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_ctor.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_adopt_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_defer_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/assign.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/copy.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/assign.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/copy.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.once/thread.once.callonce/call_once.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.constr/F.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.constr/constr.fail.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.member/detach.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.member/join.pass.cpp vendor/libc++/dist/test/std/utilities/allocator.adaptor/allocator.adaptor.types/allocator_pointers.pass.cpp vendor/libc++/dist/test/std/utilities/allocator.adaptor/allocator.adaptor.types/is_always_equal.pass.cpp vendor/libc++/dist/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/eq.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/arithmetic.operations/plus.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/arithmetic.operations/transparent.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_function_object.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_lvalue.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.place/placeholders.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bitwise.operations/bit_not.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bitwise.operations/transparent.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/comparisons/equal_to.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/comparisons/greater.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/comparisons/greater_equal.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/comparisons/less.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/comparisons/less_equal.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/comparisons/not_equal_to.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/comparisons/transparent.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.invoke/invoke.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.memfn/member_function.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_rfunction.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.mod/assign_F_alloc.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/types.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/logical.operations/transparent.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/refwrap/type_properties.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/enum.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/floating.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/integral.pass.cpp vendor/libc++/dist/test/std/utilities/intseq/intseq.general/integer_seq.pass.cpp vendor/libc++/dist/test/std/utilities/intseq/intseq.intseq/integer_seq.fail.cpp vendor/libc++/dist/test/std/utilities/intseq/intseq.intseq/integer_seq.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.members/max_size.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.types/const_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.types/const_void_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.types/difference_type.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.types/pointer.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_copy_assignment.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_move_assignment.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.types/propagate_on_container_swap.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.types/rebind_alloc.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.types/size_type.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.types/void_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.uses/allocator.uses.trait/uses_allocator.pass.cpp vendor/libc++/dist/test/std/utilities/memory/default.allocator/allocator_pointers.pass.cpp vendor/libc++/dist/test/std/utilities/memory/pointer.traits/pointer.traits.types/difference_type.pass.cpp vendor/libc++/dist/test/std/utilities/memory/pointer.traits/pointer.traits.types/element_type.pass.cpp vendor/libc++/dist/test/std/utilities/memory/pointer.traits/pointer.traits.types/rebind.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy_n.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.fill.n/uninitialized_fill_n.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.create/make_unique.array.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.create/make_unique.array4.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.create/make_unique.single.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter02.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter03.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter04.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/pointer_type.pass.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.special/swap.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.enab/enable_shared_from_this.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_is_lock_free.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/test_deleter.h vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/types.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/auto_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_allocator.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_allocator.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_throw.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.volatile.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.ownerless/owner_less.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.logical/conjunction.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.logical/disjunction.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.logical/negation.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/aligned_storage.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/enable_if2.fail.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/result_of.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/underlying_type.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.ptr/add_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.ptr/remove_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.ref/add_lvalue_ref.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.ref/add_rvalue_ref.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.ref/remove_ref.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary.prop.query/void_t.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/array.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/class.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/enum.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/floating_point.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/function.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_array.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_class.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_enum.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_floating_point.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_function.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_integral.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_lvalue_reference.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_member_object_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_member_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_null_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_rvalue_reference.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_union.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_void.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/lvalue_ref.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/member_function_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/member_function_pointer_no_variadics.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/member_object_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/nullptr.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/rvalue_ref.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/union.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/void.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/array.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/class.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_arithmetic.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_compound.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_fundamental.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_member_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_object.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_reference.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_scalar.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/has_virtual_destructor.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_const.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_final.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_destructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_polymorphic.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_destructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_volatile.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/default.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/string_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.hash/bitset.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/count.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/flip_all.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/flip_one.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/index.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/left_shift.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/not_all.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/reset_all.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/reset_one.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/right_shift.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/set_all.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/test.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/to_string.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.operators/op_and.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.operators/op_not.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.operators/op_or.pass.cpp vendor/libc++/dist/test/std/utilities/time/date.time/ctime.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.system/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.alg/abs.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/ceil.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/floor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/round.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.literals/literals.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.literals/literals1.fail.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.literals/literals1.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.literals/literals2.fail.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.literals/literals2.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/ceil.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/floor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/round.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.point/time.point.comparisons/op_equal.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.traits/time.traits.is_fp/treat_as_floating_point.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.general/tuple.smartptr.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/TupleFunction.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_move.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_UTypes.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_const_Types.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_copy.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_convert_move.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_copy.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc_move.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/const_Types.fail.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/const_Types.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/const_pair.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_copy.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_move.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/move.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.creation/forward_as_tuple.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.creation/make_tuple.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_non_const.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple.include.array.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple.include.utility.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.rel/lt.pass.cpp vendor/libc++/dist/test/std/utilities/utility/as_const/as_const.pass.cpp vendor/libc++/dist/test/std/utilities/utility/exchange/exchange.pass.cpp vendor/libc++/dist/test/std/utilities/utility/forward/forward.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pair.astuple/get_const.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pair.astuple/get_non_const.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type1.fail.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type2.fail.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type3.fail.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/copy_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/swap.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.spec/make_pair.pass.cpp vendor/libc++/dist/test/std/utilities/utility/utility.swap/swap.pass.cpp vendor/libc++/dist/test/std/utilities/utility/utility.swap/swap_array.pass.cpp vendor/libc++/dist/test/support/Counter.h vendor/libc++/dist/test/support/MoveOnly.h vendor/libc++/dist/test/support/allocators.h vendor/libc++/dist/test/support/asan_testing.h vendor/libc++/dist/test/support/constexpr_char_traits.hpp vendor/libc++/dist/test/support/count_new.hpp vendor/libc++/dist/test/support/counting_predicates.hpp vendor/libc++/dist/test/support/disable_missing_braces_warning.h vendor/libc++/dist/test/support/hexfloat.h vendor/libc++/dist/test/support/is_transparent.h vendor/libc++/dist/test/support/min_allocator.h vendor/libc++/dist/test/support/nasty_containers.hpp vendor/libc++/dist/test/support/platform_support.h vendor/libc++/dist/test/support/test_allocator.h vendor/libc++/dist/test/support/test_iterators.h vendor/libc++/dist/test/support/test_macros.h vendor/libc++/dist/www/cxx1z_status.html vendor/libc++/dist/www/index.html vendor/libc++/dist/www/ts1z_status.html Modified: vendor/libc++/dist/.arcconfig ============================================================================== --- vendor/libc++/dist/.arcconfig Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/.arcconfig Sat Jul 23 20:47:26 2016 (r303237) @@ -1,4 +1,4 @@ { "project_id" : "libcxx", - "conduit_uri" : "http://reviews.llvm.org/" + "conduit_uri" : "https://reviews.llvm.org/" } Modified: vendor/libc++/dist/CMakeLists.txt ============================================================================== --- vendor/libc++/dist/CMakeLists.txt Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/CMakeLists.txt Sat Jul 23 20:47:26 2016 (r303237) @@ -3,7 +3,7 @@ #=============================================================================== # Setup Project #=============================================================================== -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.4.3) if(POLICY CMP0042) cmake_policy(SET CMP0042 NEW) # Set MACOSX_RPATH=YES by default @@ -12,13 +12,6 @@ if(POLICY CMP0022) cmake_policy(SET CMP0022 NEW) # Required when interacting with LLVM and Clang endif() -project(libcxx CXX C) - -set(PACKAGE_NAME libcxx) -set(PACKAGE_VERSION trunk-svn) -set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") -set(PACKAGE_BUGREPORT "llvm-bugs@lists.llvm.org") - # Add path for custom modules set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" @@ -26,15 +19,18 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ) -# Require out of source build. -include(MacroEnsureOutOfSourceBuild) -MACRO_ENSURE_OUT_OF_SOURCE_BUILD( - "${PROJECT_NAME} requires an out of source build. Please create a separate - build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there." - ) - # Find the LLVM sources and simulate LLVM CMake options. include(HandleOutOfTreeLLVM) + +if (LIBCXX_BUILT_STANDALONE) + project(libcxx CXX C) + + set(PACKAGE_NAME libcxx) + set(PACKAGE_VERSION trunk-svn) + set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") + set(PACKAGE_BUGREPORT "llvm-bugs@lists.llvm.org") +endif () + if (LIBCXX_BUILT_STANDALONE AND NOT LLVM_FOUND) message(WARNING "UNSUPPORTED LIBCXX CONFIGURATION DETECTED: " "llvm-config not found and LLVM_PATH not defined.\n" @@ -42,6 +38,13 @@ if (LIBCXX_BUILT_STANDALONE AND NOT LLVM "or -DLLVM_PATH=path/to/llvm-source-root.") endif() +# Require out of source build. +include(MacroEnsureOutOfSourceBuild) +MACRO_ENSURE_OUT_OF_SOURCE_BUILD( + "${PROJECT_NAME} requires an out of source build. Please create a separate + build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there." + ) + #=============================================================================== # Setup CMake Options #=============================================================================== @@ -49,7 +52,9 @@ endif() # Basic options --------------------------------------------------------------- option(LIBCXX_ENABLE_ASSERTIONS "Enable assertions independent of build mode." ON) option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON) - +option(LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY "Build libc++experimental.a" ON) +option(LIBCXX_ENABLE_FILESYSTEM + "Build filesystem as part of libc++experimental.a" ${LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY}) option(LIBCXX_INCLUDE_TESTS "Build the libc++ tests." ${LLVM_INCLUDE_TESTS}) option(LIBCXX_INCLUDE_DOCS "Build the libc++ documentation." ${LLVM_INCLUDE_DOCS}) set(LIBCXX_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING @@ -57,6 +62,7 @@ set(LIBCXX_LIBDIR_SUFFIX "${LLVM_LIBDIR_ option(LIBCXX_INSTALL_HEADERS "Install the libc++ headers." ON) option(LIBCXX_INSTALL_LIBRARY "Install the libc++ library." ON) option(LIBCXX_INSTALL_SUPPORT_HEADERS "Install libc++ support headers." ON) +option(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY "Install libc++experimental.a" OFF) set(LIBCXX_ABI_VERSION 1 CACHE STRING "ABI version of libc++.") option(LIBCXX_ABI_UNSTABLE "Unstable ABI of libc++." OFF) @@ -92,7 +98,8 @@ option(LIBCXX_ENABLE_STATIC_ABI_LIBRARY set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE OFF) if (LLVM_HAVE_LINK_VERSION_SCRIPT AND NOT LIBCXX_ENABLE_STATIC_ABI_LIBRARY AND NOT LIBCXX_CXX_ABI_LIBNAME STREQUAL "none" - AND PYTHONINTERP_FOUND) + AND PYTHONINTERP_FOUND + AND LIBCXX_ENABLE_SHARED) set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE ON) endif() @@ -121,12 +128,14 @@ option(LIBCXX_ENABLE_MONOTONIC_CLOCK "Build libc++ with support for a monotonic clock. This option may only be set to OFF when LIBCXX_ENABLE_THREADS=OFF." ON) option(LIBCXX_HAS_MUSL_LIBC "Build libc++ with support for the Musl C library" OFF) +option(LIBCXX_HAS_PTHREAD_API "Ignore auto-detection and force use of pthread API" OFF) # Misc options ---------------------------------------------------------------- # FIXME: Turn -pedantic back ON. It is currently off because it warns # about #include_next which is used everywhere. option(LIBCXX_ENABLE_PEDANTIC "Compile with pedantic enabled." OFF) option(LIBCXX_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF) +option(LIBCXX_DISABLE_MACRO_CONFLICT_WARNINGS "Disable #warnings about conflicting macros." OFF) option(LIBCXX_GENERATE_COVERAGE "Enable generating code coverage." OFF) set(LIBCXX_COVERAGE_LIBRARY "" CACHE STRING @@ -160,6 +169,11 @@ option(LIBCXX_CONFIGURE_IDE "Configure l # Check option configurations #=============================================================================== +if (LIBCXX_ENABLE_FILESYSTEM AND NOT LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY) + message(FATAL_ERROR + "LIBCXX_ENABLE_FILESYSTEM cannot be turned on when LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF") +endif() + # Ensure LIBCXX_ENABLE_MONOTONIC_CLOCK is set to ON only when # LIBCXX_ENABLE_THREADS is on. if(LIBCXX_ENABLE_THREADS AND NOT LIBCXX_ENABLE_MONOTONIC_CLOCK) @@ -167,6 +181,11 @@ if(LIBCXX_ENABLE_THREADS AND NOT LIBCXX_ " when LIBCXX_ENABLE_THREADS is also set to OFF.") endif() +if(LIBCXX_HAS_PTHREAD_API AND NOT LIBCXX_ENABLE_THREADS) + message(FATAL_ERROR "LIBCXX_HAS_PTHREAD_API can only be set to ON" + " when LIBCXX_ENABLE_THREADS is also set to ON.") +endif() + # Ensure LLVM_USE_SANITIZER is not specified when LIBCXX_GENERATE_COVERAGE # is ON. if (LLVM_USE_SANITIZER AND LIBCXX_GENERATE_COVERAGE) @@ -199,6 +218,9 @@ if (LIBCXX_ENABLE_ABI_LINKER_SCRIPT) if (NOT PYTHONINTERP_FOUND) message(FATAL_ERROR "LIBCXX_ENABLE_ABI_LINKER_SCRIPT requires python but it was not found.") endif() + if (NOT LIBCXX_ENABLE_SHARED) + message(FATAL_ERROR "LIBCXX_ENABLE_ABI_LINKER_SCRIPT is only available for shared library builds.") + endif() endif() if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY AND LIBCXX_ENABLE_ABI_LINKER_SCRIPT) @@ -233,6 +255,18 @@ set(LIBCXX_COMPILE_FLAGS "") set(LIBCXX_LINK_FLAGS "") set(LIBCXX_LIBRARIES "") +# Include macros for adding and removing libc++ flags. +include(HandleLibcxxFlags) + +# Target flags ================================================================ +# These flags get added to CMAKE_CXX_FLAGS and CMAKE_C_FLAGS so that +# 'config-ix' use them during feature checks. It also adds them to both +# 'LIBCXX_COMPILE_FLAGS' and 'LIBCXX_LINK_FLAGS' +add_target_flags_if(LIBCXX_BUILD_32_BITS "-m32") +add_target_flags_if(LIBCXX_TARGET_TRIPLE "-target ${LIBCXX_TARGET_TRIPLE}") +add_target_flags_if(LIBCXX_SYSROOT "--sysroot=${LIBCXX_SYSROOT}") +add_target_flags_if(LIBCXX_GCC_TOOLCHAIN "-gcc-toolchain ${LIBCXX_GCC_TOOLCHAIN}") + # Configure compiler. include(config-ix) @@ -248,10 +282,7 @@ string(TOUPPER "${CMAKE_BUILD_TYPE}" upp # Setup Compiler Flags #=============================================================================== -include(HandleLibCXXABI) # Steup the ABI library flags - -# Include macros for adding and removing libc++ flags. -include(HandleLibcxxFlags) +include(HandleLibCXXABI) # Setup the ABI library flags # Remove flags that may have snuck in. remove_flags(-DNDEBUG -UNDEBUG -D_DEBUG @@ -274,17 +305,13 @@ endif() # headers add_compile_flags_if_supported(-nostdinc++) -# Target flags ================================================================ -add_flags_if(LIBCXX_BUILD_32_BITS -m32) -add_flags_if(LIBCXX_TARGET_TRIPLE "-target ${LIBCXX_TARGET_TRIPLE}") -add_flags_if(LIBCXX_SYSROOT "--sysroot ${LIBCXX_SYSROOT}") -add_flags_if(LIBCXX_GCC_TOOLCHAIN "-gcc-toolchain ${LIBCXX_GCC_TOOLCHAIN}") # Warning flags =============================================================== add_definitions(-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) add_compile_flags_if_supported( -Wall -W -Wwrite-strings - -Wno-unused-parameter -Wno-long-long + -Wno-unused-parameter -Wno-long-long -Wno-user-defined-literals + -Wno-covered-switch-default -Werror=return-type) if (LIBCXX_ENABLE_WERROR) add_compile_flags_if_supported(-Werror) @@ -297,6 +324,9 @@ endif() if (LIBCXX_ENABLE_PEDANTIC) add_compile_flags_if_supported(-pedantic) endif() +if (LIBCXX_DISABLE_MACRO_CONFLICT_WARNINGS) + add_definitions(-D_LIBCPP_DISABLE_MACRO_CONFLICT_WARNINGS) +endif() # Exception flags ============================================================= if (LIBCXX_ENABLE_EXCEPTIONS) @@ -376,6 +406,7 @@ config_define_if_not(LIBCXX_ENABLE_THREA config_define_if_not(LIBCXX_ENABLE_MONOTONIC_CLOCK _LIBCPP_HAS_NO_MONOTONIC_CLOCK) config_define_if_not(LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS) +config_define_if(LIBCXX_HAS_PTHREAD_API _LIBCPP_HAS_THREAD_API_PTHREAD) config_define_if(LIBCXX_HAS_MUSL_LIBC _LIBCPP_HAS_MUSL_LIBC) if (LIBCXX_NEEDS_SITE_CONFIG) Modified: vendor/libc++/dist/CREDITS.TXT ============================================================================== --- vendor/libc++/dist/CREDITS.TXT Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/CREDITS.TXT Sat Jul 23 20:47:26 2016 (r303237) @@ -37,6 +37,10 @@ E: mclow.lists@gmail.com E: marshall@idio.com D: C++14 support, patches and bug fixes. +N: Jonathan B Coe +E: jbcoe@me.com +D: Implementation of propagate_const. + N: Eric Fiselier E: eric@efcs.ca D: LFTS support, patches and bug fixes. Modified: vendor/libc++/dist/LICENSE.TXT ============================================================================== --- vendor/libc++/dist/LICENSE.TXT Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/LICENSE.TXT Sat Jul 23 20:47:26 2016 (r303237) @@ -14,7 +14,7 @@ Full text of the relevant licenses is in University of Illinois/NCSA Open Source License -Copyright (c) 2009-2015 by the contributors listed in CREDITS.TXT +Copyright (c) 2009-2016 by the contributors listed in CREDITS.TXT All rights reserved. Added: vendor/libc++/dist/benchmarks/unordered_set_operations.bench.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/benchmarks/unordered_set_operations.bench.cpp Sat Jul 23 20:47:26 2016 (r303237) @@ -0,0 +1,44 @@ +#include +#include +#include + +#include "benchmark/benchmark_api.h" + +template +std::vector getInputs(size_t N) { + std::vector inputs; + for (size_t i=0; i < N; ++i) { + inputs.push_back(i); + } + return inputs; +} + +template +void BM_SetInsert(benchmark::State& st, Container c, Inputs const& in) { + const auto end = in.end(); + while (st.KeepRunning()) { + c.clear(); + for (auto it = in.begin(); it != end; ++it) { + benchmark::DoNotOptimize(c.insert(*it)); + } + benchmark::DoNotOptimize(c); + } +} +BENCHMARK_CAPTURE(BM_SetInsert, uint32_insert, + std::unordered_set{}, getInputs(1024)); + +template +void BM_SetFind(benchmark::State& st, Container c, Inputs const& in) { + c.insert(in.begin(), in.end()); + const auto end = in.end(); + while (st.KeepRunning()) { + for (auto it = in.begin(); it != end; ++it) { + benchmark::DoNotOptimize(c.find(*it)); + } + } +} +BENCHMARK_CAPTURE(BM_SetFind, uint32_lookup, + std::unordered_set{}, getInputs(1024)); + + +BENCHMARK_MAIN() Added: vendor/libc++/dist/cmake/Modules/CheckLibcxxAtomic.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/cmake/Modules/CheckLibcxxAtomic.cmake Sat Jul 23 20:47:26 2016 (r303237) @@ -0,0 +1,41 @@ +INCLUDE(CheckCXXSourceCompiles) + +# Sometimes linking against libatomic is required for atomic ops, if +# the platform doesn't support lock-free atomics. +# +# We could modify LLVM's CheckAtomic module and have it check for 64-bit +# atomics instead. However, we would like to avoid careless uses of 64-bit +# atomics inside LLVM over time on 32-bit platforms. + +function(check_cxx_atomics varname) + set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) + set(CMAKE_REQUIRED_FLAGS "-std=c++11 -nostdinc++ -isystem ${LIBCXX_SOURCE_DIR}/include") + if (${LIBCXX_GCC_TOOLCHAIN}) + set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} --gcc-toolchain=${LIBCXX_GCC_TOOLCHAIN}") + endif() + check_cxx_source_compiles(" +#include +#include +std::atomic x; +std::atomic y; +int main() { + return x + y; +} +" ${varname}) + set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS}) +endfunction(check_cxx_atomics) + +check_cxx_atomics(LIBCXX_HAVE_CXX_ATOMICS_WITHOUT_LIB) +check_library_exists(atomic __atomic_fetch_add_8 "" LIBCXX_HAS_ATOMIC_LIB) +# If not, check if the library exists, and atomics work with it. +if(NOT LIBCXX_HAVE_CXX_ATOMICS_WITHOUT_LIB) + if(LIBCXX_HAS_ATOMIC_LIB) + list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic") + check_cxx_atomics(LIBCXX_HAVE_CXX_ATOMICS_WITH_LIB) + if (NOT LIBCXX_HAVE_CXX_ATOMICS_WITH_LIB) + message(WARNING "Host compiler must support std::atomic!") + endif() + else() + message(WARNING "Host compiler appears to require libatomic, but cannot find it.") + endif() +endif() Modified: vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake ============================================================================== --- vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake Sat Jul 23 20:47:26 2016 (r303237) @@ -21,9 +21,11 @@ macro(setup_abi_lib abidefines abilib ab CACHE PATH "Paths to C++ ABI header directories separated by ';'." FORCE ) - + set(LIBCXX_CXX_ABI_LIBRARY_PATH "${LIBCXX_CXX_ABI_LIBRARY_PATH}" + CACHE PATH + "Paths to C++ ABI library directory" + ) set(LIBCXX_CXX_ABI_LIBRARY ${abilib}) - set(LIBCXX_ABILIB_FILES ${abifiles}) file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/include") Modified: vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake ============================================================================== --- vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake Sat Jul 23 20:47:26 2016 (r303237) @@ -35,6 +35,11 @@ macro(remove_flags) endforeach() endmacro(remove_flags) +macro(check_flag_supported flag) + mangle_name("${flag}" flagname) + check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG") +endmacro() + # Add a macro definition if condition is true. macro(define_if condition def) if (${condition}) @@ -71,6 +76,26 @@ macro(config_define value def) set(LIBCXX_NEEDS_SITE_CONFIG ON) endmacro() +# Add a list of flags to all of 'CMAKE_CXX_FLAGS', 'CMAKE_C_FLAGS', +# 'LIBCXX_COMPILE_FLAGS' and 'LIBCXX_LINK_FLAGS'. +macro(add_target_flags) + foreach(value ${ARGN}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${value}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${value}") + list(APPEND LIBCXX_COMPILE_FLAGS ${value}) + list(APPEND LIBCXX_LINK_FLAGS ${value}) + endforeach() +endmacro() + +# If the specified 'condition' is true then add a list of flags to +# all of 'CMAKE_CXX_FLAGS', 'CMAKE_C_FLAGS', 'LIBCXX_COMPILE_FLAGS' +# and 'LIBCXX_LINK_FLAGS'. +macro(add_target_flags_if condition) + if (${condition}) + add_target_flags(${ARGN}) + endif() +endmacro() + # Add a specified list of flags to both 'LIBCXX_COMPILE_FLAGS' and # 'LIBCXX_LINK_FLAGS'. macro(add_flags) Modified: vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake ============================================================================== --- vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake Sat Jul 23 20:47:26 2016 (r303237) @@ -35,7 +35,7 @@ macro(find_llvm_parts) set(LLVM_INCLUDE_DIR ${INCLUDE_DIR} CACHE PATH "Path to llvm/include") set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree") set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree") - set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR}/share/llvm/cmake") + set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm") else() set(LLVM_FOUND OFF) return() @@ -93,14 +93,6 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR endif() set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit") - # Make sure we can use the console pool for recent cmake and ninja > 1.5 - # Needed for add_lit_testsuite - if(CMAKE_VERSION VERSION_LESS 3.1.20141117) - set(cmake_3_2_USES_TERMINAL) - else() - set(cmake_3_2_USES_TERMINAL USES_TERMINAL) - endif() - # Required doc configuration if (LLVM_ENABLE_SPHINX) message(STATUS "Sphinx enabled.") Modified: vendor/libc++/dist/cmake/config-ix.cmake ============================================================================== --- vendor/libc++/dist/cmake/config-ix.cmake Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/cmake/config-ix.cmake Sat Jul 23 20:47:26 2016 (r303237) @@ -1,5 +1,6 @@ include(CheckLibraryExists) include(CheckCXXCompilerFlag) +include(CheckLibcxxAtomic) # Check compiler flags Modified: vendor/libc++/dist/docs/BuildingLibcxx.rst ============================================================================== --- vendor/libc++/dist/docs/BuildingLibcxx.rst Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/docs/BuildingLibcxx.rst Sat Jul 23 20:47:26 2016 (r303237) @@ -1,3 +1,4 @@ +.. _BuildingLibcxx: =============== Building libc++ @@ -6,6 +7,8 @@ Building libc++ .. contents:: :local: +.. _build instructions: + Getting Started =============== @@ -34,8 +37,7 @@ The basic steps needed to build libc++ a #. Configure and build libc++ with libc++abi: - CMake is the only supported configuration system. Unlike other LLVM - projects autotools is not supported for either libc++ or libc++abi. + CMake is the only supported configuration system. Clang is the preferred compiler when building and using libc++. @@ -120,6 +122,18 @@ CMake docs or execute ``cmake --help-var libc++ specific options ----------------------- +.. option:: LIBCXX_INSTALL_LIBRARY:BOOL + + **Default**: ``ON`` + + Toggle the installation of the library portion of libc++. + +.. option:: LIBCXX_INSTALL_HEADERS:BOOL + + **Default**: ``ON`` + + Toggle the installation of the libc++ headers. + .. option:: LIBCXX_ENABLE_ASSERTIONS:BOOL **Default**: ``ON`` @@ -144,6 +158,33 @@ libc++ specific options Extra suffix to append to the directory where libraries are to be installed. This option overrides :option:`LLVM_LIBDIR_SUFFIX`. + +.. _libc++experimental options: + +libc++experimental Specific Options +------------------------------------ + +.. option:: LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY:BOOL + + **Default**: ``ON`` + + Build and test libc++experimental.a. + +.. option:: LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY:BOOL + + **Default**: ``OFF`` + + Install libc++experimental.a alongside libc++. + + +.. option:: LIBCXX_ENABLE_FILESYSTEM:BOOL + + **Default**: ``LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY`` + + Build filesystem as part of libc++experimental.a. This allows filesystem + to be disabled without turning off the entire experimental library. + + .. _ABI Library Specific Options: ABI Library Specific Options @@ -304,3 +345,72 @@ own copy of libsupc++ and this can lead $ make install You can now run clang with -stdlib=libc++. + + +.. _libcxxrt_ref: + +Using libcxxrt on Linux +------------------------ + +You will need to keep the source tree of `libcxxrt`_ available +on your build machine and your copy of the libcxxrt shared library must +be placed where your linker will find it. + +We can now run CMake like: + +.. code-block:: bash + + $ CC=clang CXX=clang++ cmake -G "Unix Makefiles" \ + -DLIBCXX_CXX_ABI=libcxxrt \ + -DLIBCXX_CXX_ABI_INCLUDE_PATHS=path/to/libcxxrt-sources/src \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + + $ make cxx + $ make install + +Unfortunately you can't simply run clang with "-stdlib=libc++" at this point, as +clang is set up to link for libc++ linked to libsupc++. To get around this +you'll have to set up your linker yourself (or patch clang). For example, + +.. code-block:: bash + + $ clang++ -stdlib=libc++ helloworld.cpp \ + -nodefaultlibs -lc++ -lcxxrt -lm -lc -lgcc_s -lgcc + +Alternately, you could just add libcxxrt to your libraries list, which in most +situations will give the same result: + +.. code-block:: bash + + $ clang++ -stdlib=libc++ helloworld.cpp -lcxxrt + +.. _`libcxxrt`: https://github.com/pathscale/libcxxrt/ + + +Using a local ABI library installation +--------------------------------------- + +.. warning:: + This is not recommended in almost all cases. + +These instructions should only be used when you can't install your ABI library. + +Normally you must link libc++ against a ABI shared library that the +linker can find. If you want to build and test libc++ against an ABI +library not in the linker's path you needq to set +``-DLIBCXX_CXX_ABI_LIBRARY_PATH=/path/to/abi/lib`` when configuring CMake. + +An example build using libc++abi would look like: + +.. code-block:: bash + + $ CC=clang CXX=clang++ cmake \ + -DLIBCXX_CXX_ABI=libc++abi \ + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="/path/to/libcxxabi/include" \ + -DLIBCXX_CXX_ABI_LIBRARY_PATH="/path/to/libcxxabi-build/lib" \ + path/to/libcxx + $ make + +When testing libc++ LIT will automatically link against the proper ABI +library. Modified: vendor/libc++/dist/docs/TestingLibcxx.rst ============================================================================== --- vendor/libc++/dist/docs/TestingLibcxx.rst Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/docs/TestingLibcxx.rst Sat Jul 23 20:47:26 2016 (r303237) @@ -98,7 +98,7 @@ configuration. Passing the option on the .. program:: lit -.. option:: cxx_under_test= +.. option:: --cxx_under_test= Specify the compiler used to build the tests. @@ -108,37 +108,46 @@ configuration. Passing the option on the Change the standard version used when building the tests. -.. option:: libcxx_site_config= +.. option:: --libcxx_site_config= Specify the site configuration to use when running the tests. This option overrides the enviroment variable LIBCXX_SITE_CONFIG. -.. option:: libcxx_headers= +.. option:: --libcxx_headers= Specify the libc++ headers that are tested. By default the headers in the source tree are used. -.. option:: libcxx_library= +.. option:: --cxx_library_root= - Specify the libc++ library that is tested. By default the library in the - build directory is used. This option cannot be used when use_system_lib is - provided. + Specify the directory of the libc++ library to be tested. By default the + library folder of the build directory is used. This option cannot be used + when use_system_lib is provided. -.. option:: use_system_lib= + +.. option:: --cxx_runtime_root= + + Specify the directory of the libc++ library to use at runtime. This directory + is not added to the linkers search path. This can be used to compile tests + against one version of libc++ and run them using another. The default value + for this option is `cxx_library_root`. This option cannot be used + when use_system_lib is provided. + +.. option:: --use_system_lib= **Default**: False Enable or disable testing against the installed version of libc++ library. Note: This does not use the installed headers. -.. option:: use_lit_shell= +.. option:: --use_lit_shell= Enable or disable the use of LIT's internal shell in ShTests. If the environment variable LIT_USE_INTERNAL_SHELL is present then that is used as the default value. Otherwise the default value is True on Windows and False on every other platform. -.. option:: no_default_flags= +.. option:: --no_default_flags= **Default**: False @@ -146,16 +155,16 @@ configuration. Passing the option on the option is used only flags specified using the compile_flags and link_flags will be used. -.. option:: compile_flags="" +.. option:: --compile_flags="" Specify additional compile flags as a space delimited string. Note: This options should not be used to change the standard version used. -.. option:: link_flags="" +.. option:: --link_flags="" Specify additional link flags as a space delimited string. -.. option:: debug_level= +.. option:: --debug_level= **Values**: 0, 1 Modified: vendor/libc++/dist/docs/UsingLibcxx.rst ============================================================================== --- vendor/libc++/dist/docs/UsingLibcxx.rst Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/docs/UsingLibcxx.rst Sat Jul 23 20:47:26 2016 (r303237) @@ -49,7 +49,30 @@ An example of using ``LD_LIBRARY_PATH``: $ export LD_LIBRARY_PATH=/lib $ ./a.out # Searches for libc++ along LD_LIBRARY_PATH +Using libc++experimental and ```` +===================================================== +Libc++ provides implementations of experimental technical specifications +in a separate library, ``libc++experimental.a``. Users of ```` +headers may be required to link ``-lc++experimental``. + +.. code-block:: bash + + $ clang++ -std=c++14 -stdlib=libc++ test.cpp -lc++experimental + +Libc++experimental.a may not always be available, even when libc++ is already +installed. For information on building libc++experimental from source see +:ref:`Building Libc++ ` and +:ref:`libc++experimental CMake Options `. + +Also see the `Experimental Library Implementation Status `__ +page. + +.. warning:: + Experimental libraries are Experimental. + * The contents of the ```` headers and ``libc++experimental.a`` + library will not remain compatible between versions. + * No guarantees of API or ABI stability are provided. Using libc++ on Linux ===================== @@ -87,3 +110,16 @@ not just libstdc++ so they must be manua $ g++ -nostdinc++ -I/include/c++/v1 \ test.cpp -nodefaultlibs -lc++ -lc++abi -lm -lc -lgcc_s -lgcc + + +GDB Pretty printers for libc++ +------------------------------ + +GDB does not support pretty-printing of libc++ symbols by default. Unfortunately +libc++ does not provide pretty-printers itself. However there are 3rd +party implementations available and although they are not officially +supported by libc++ they may be useful to users. + +Known 3rd Party Implementations Include: + +* `Koutheir's libc++ pretty-printers `_. Modified: vendor/libc++/dist/docs/conf.py ============================================================================== --- vendor/libc++/dist/docs/conf.py Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/docs/conf.py Sat Jul 23 20:47:26 2016 (r303237) @@ -40,16 +40,16 @@ master_doc = 'index' # General information about the project. project = u'libc++' -copyright = u'2011-2015, LLVM Project' +copyright = u'2011-2016, LLVM Project' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '3.8' +version = '3.9' # The full version, including alpha/beta/rc tags. -release = '3.8' +release = '3.9' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. Modified: vendor/libc++/dist/include/CMakeLists.txt ============================================================================== --- vendor/libc++/dist/include/CMakeLists.txt Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/include/CMakeLists.txt Sat Jul 23 20:47:26 2016 (r303237) @@ -19,7 +19,7 @@ file(COPY . if (LIBCXX_INSTALL_HEADERS) install(DIRECTORY . DESTINATION include/c++/v1 - COMPONENT libcxx + COMPONENT libcxx-headers FILES_MATCHING ${LIBCXX_HEADER_PATTERN} PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ @@ -41,12 +41,23 @@ if (LIBCXX_INSTALL_HEADERS) # Add a target that executes the generation commands. add_custom_target(generate_config_header ALL DEPENDS ${LIBCXX_BINARY_DIR}/__generated_config) + set(generated_config_deps generate_config_header) # Install the generated header as __config. install(FILES ${LIBCXX_BINARY_DIR}/__generated_config DESTINATION include/c++/v1 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ RENAME __config - COMPONENT libcxx) + COMPONENT libcxx-headers) + endif() + + if (NOT CMAKE_CONFIGURATION_TYPES) + # this target is just needed as a placeholder for the distribution target + add_custom_target(libcxx-headers) + add_custom_target(install-libcxx-headers + DEPENDS libcxx-headers ${generated_config_deps} + COMMAND "${CMAKE_COMMAND}" + -DCMAKE_INSTALL_COMPONENT=libcxx-headers + -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") endif() endif() Added: vendor/libc++/dist/include/__bsd_locale_defaults.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/include/__bsd_locale_defaults.h Sat Jul 23 20:47:26 2016 (r303237) @@ -0,0 +1,33 @@ +// -*- C++ -*- +//===---------------------- __bsd_locale_defaults.h -----------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// The BSDs have lots of *_l functions. We don't want to define those symbols +// on other platforms though, for fear of conflicts with user code. So here, +// we will define the mapping from an internal macro to the real BSD symbol. +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP_BSD_LOCALE_DEFAULTS_H +#define _LIBCPP_BSD_LOCALE_DEFAULTS_H + +#define __libcpp_mb_cur_max_l(loc) MB_CUR_MAX_L(loc) +#define __libcpp_btowc_l(ch, loc) btowc_l(ch, loc) +#define __libcpp_wctob_l(wch, loc) wctob_l(wch, loc) +#define __libcpp_wcsnrtombs_l(dst, src, nwc, len, ps, loc) wcsnrtombs_l(dst, src, nwc, len, ps, loc) +#define __libcpp_wcrtomb_l(src, wc, ps, loc) wcrtomb_l(src, wc, ps, loc) +#define __libcpp_mbsnrtowcs_l(dst, src, nms, len, ps, loc) mbsnrtowcs_l(dst, src, nms, len, ps, loc) +#define __libcpp_mbrtowc_l(pwc, s, n, ps, l) mbrtowc_l(pwc, s, n, ps, l) +#define __libcpp_mbtowc_l(pwc, pmb, max, l) mbtowc_l(pwc, pmb, max, l) +#define __libcpp_mbrlen_l(s, n, ps, l) mbrlen_l(s, n, ps, l) +#define __libcpp_localeconv_l(l) localeconv_l(l) +#define __libcpp_mbsrtowcs_l(dest, src, len, ps, l) mbsrtowcs_l(dest, src, len, ps, l) +#define __libcpp_snprintf_l(...) snprintf_l(__VA_ARGS__) +#define __libcpp_asprintf_l(...) asprintf_l(__VA_ARGS__) +#define __libcpp_sscanf_l(...) sscanf_l(__VA_ARGS__) + +#endif // _LIBCPP_BSD_LOCALE_DEFAULTS_H Added: vendor/libc++/dist/include/__bsd_locale_fallbacks.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/include/__bsd_locale_fallbacks.h Sat Jul 23 20:47:26 2016 (r303237) @@ -0,0 +1,138 @@ +// -*- C++ -*- +//===---------------------- __bsd_locale_fallbacks.h ----------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// The BSDs have lots of *_l functions. This file provides reimplementations +// of those functions for non-BSD platforms. +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP_BSD_LOCALE_FALLBACKS_DEFAULTS_H +#define _LIBCPP_BSD_LOCALE_FALLBACKS_DEFAULTS_H + +#include +#include + +_LIBCPP_BEGIN_NAMESPACE_STD + +typedef _VSTD::remove_pointer::type __use_locale_struct; +typedef _VSTD::unique_ptr<__use_locale_struct, decltype(&uselocale)> __locale_raii; + +inline _LIBCPP_ALWAYS_INLINE +decltype(MB_CUR_MAX) __libcpp_mb_cur_max_l(locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return MB_CUR_MAX; +} + +inline _LIBCPP_ALWAYS_INLINE +wint_t __libcpp_btowc_l(int __c, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return btowc(__c); +} + +inline _LIBCPP_ALWAYS_INLINE +int __libcpp_wctob_l(wint_t __c, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return wctob(__c); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_wcsnrtombs_l(char *__dest, const wchar_t **__src, size_t __nwc, + size_t __len, mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return wcsnrtombs(__dest, __src, __nwc, __len, __ps); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_wcrtomb_l(char *__s, wchar_t __wc, mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return wcrtomb(__s, __wc, __ps); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_mbsnrtowcs_l(wchar_t * __dest, const char **__src, size_t __nms, + size_t __len, mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return mbsnrtowcs(__dest, __src, __nms, __len, __ps); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_mbrtowc_l(wchar_t *__pwc, const char *__s, size_t __n, + mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return mbrtowc(__pwc, __s, __n, __ps); +} + +inline _LIBCPP_ALWAYS_INLINE +int __libcpp_mbtowc_l(wchar_t *__pwc, const char *__pmb, size_t __max, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return mbtowc(__pwc, __pmb, __max); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_mbrlen_l(const char *__s, size_t __n, mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return mbrlen(__s, __n, __ps); +} + +inline _LIBCPP_ALWAYS_INLINE +lconv *__libcpp_localeconv_l(locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return localeconv(); +} + +inline _LIBCPP_ALWAYS_INLINE +size_t __libcpp_mbsrtowcs_l(wchar_t *__dest, const char **__src, size_t __len, + mbstate_t *__ps, locale_t __l) +{ + __locale_raii __current( uselocale(__l), uselocale ); + return mbsrtowcs(__dest, __src, __len, __ps); +} + +inline +int __libcpp_snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, ...) { + va_list __va; + va_start(__va, __format); + __locale_raii __current( uselocale(__l), uselocale ); + int __res = vsnprintf(__s, __n, __format, __va); + va_end(__va); + return __res; +} + +inline +int __libcpp_asprintf_l(char **__s, locale_t __l, const char *__format, ...) { + va_list __va; + va_start(__va, __format); + __locale_raii __current( uselocale(__l), uselocale ); + int __res = vasprintf(__s, __format, __va); + va_end(__va); + return __res; +} + +inline +int __libcpp_sscanf_l(const char *__s, locale_t __l, const char *__format, ...) { + va_list __va; + va_start(__va, __format); + __locale_raii __current( uselocale(__l), uselocale ); + int __res = vsscanf(__s, __format, __va); + va_end(__va); + return __res; +} + +_LIBCPP_END_NAMESPACE_STD + +#endif // _LIBCPP_BSD_LOCALE_FALLBACKS_DEFAULTS_H Modified: vendor/libc++/dist/include/__config ============================================================================== --- vendor/libc++/dist/include/__config Sat Jul 23 20:46:21 2016 (r303236) +++ vendor/libc++/dist/include/__config Sat Jul 23 20:47:26 2016 (r303237) @@ -27,7 +27,7 @@ #define _GNUC_VER 0 #endif -#define _LIBCPP_VERSION 3800 +#define _LIBCPP_VERSION 3900 #ifndef _LIBCPP_ABI_VERSION #define _LIBCPP_ABI_VERSION 1 @@ -41,6 +41,22 @@ #define _LIBCPP_ABI_INCOMPLETE_TYPES_IN_DEQUE // Fix undefined behavior in how std::list stores it's linked nodes. #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 +#define _LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB +#define _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE +#define _LIBCPP_ABI_VARIADIC_LOCK_GUARD +#elif _LIBCPP_ABI_VERSION == 1 +// Feature macros for disabling pre ABI v1 features. All of these options +// are deprecated. +#if defined(__FreeBSD__) +#define _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR +#endif +#endif + +#ifdef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR +#error "_LIBCPP_TRIVIAL_PAIR_COPY_CTOR" is no longer supported. \ + use _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR instead #endif #define _LIBCPP_CONCAT1(_LIBCPP_X,_LIBCPP_Y) _LIBCPP_X##_LIBCPP_Y @@ -178,6 +194,12 @@ # endif #endif // !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN) +#if __has_attribute(__no_sanitize__) +#define _LIBCPP_NO_CFI __attribute__((__no_sanitize__("cfi"))) +#else +#define _LIBCPP_NO_CFI +#endif + #ifdef _WIN32 // only really useful for a DLL @@ -236,6 +258,12 @@ # endif *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sat Jul 23 20:48:11 2016 Return-Path: Delivered-To: svn-src-all@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 E5AD3BA2A7C; Sat, 23 Jul 2016 20:48:11 +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 9AFD11A7F; Sat, 23 Jul 2016 20:48:11 +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 u6NKmAE7012284; Sat, 23 Jul 2016 20:48:10 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKmA5b012283; Sat, 23 Jul 2016 20:48:10 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232048.u6NKmA5b012283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:48:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303238 - vendor/libc++/libc++-release_39-r276489 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:48:12 -0000 Author: dim Date: Sat Jul 23 20:48:10 2016 New Revision: 303238 URL: https://svnweb.freebsd.org/changeset/base/303238 Log: Tag libc++ release_39 branch r276489. Added: vendor/libc++/libc++-release_39-r276489/ - copied from r303237, vendor/libc++/dist/ From owner-svn-src-all@freebsd.org Sat Jul 23 20:48:54 2016 Return-Path: Delivered-To: svn-src-all@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 247F1BA2B06; Sat, 23 Jul 2016 20:48:54 +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 898F11C07; Sat, 23 Jul 2016 20:48:53 +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 u6NKmqCo012366; Sat, 23 Jul 2016 20:48:52 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKmpYv012350; Sat, 23 Jul 2016 20:48:51 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232048.u6NKmpYv012350@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:48:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303239 - in vendor/lld/dist: . COFF ELF docs include/lld/Core include/lld/Driver include/lld/ReaderWriter lib/Config lib/Core lib/Driver lib/ReaderWriter lib/ReaderWriter/ELF lib/Reade... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:48:54 -0000 Author: dim Date: Sat Jul 23 20:48:50 2016 New Revision: 303239 URL: https://svnweb.freebsd.org/changeset/base/303239 Log: Vendor import of lld release_39 branch r276489: https://llvm.org/svn/llvm-project/lld/branches/release_39@276489 Added: vendor/lld/dist/COFF/Librarian.cpp (contents, props changed) vendor/lld/dist/ELF/EhFrame.cpp (contents, props changed) vendor/lld/dist/ELF/EhFrame.h (contents, props changed) vendor/lld/dist/ELF/ICF.cpp (contents, props changed) vendor/lld/dist/ELF/ICF.h (contents, props changed) vendor/lld/dist/ELF/LTO.cpp (contents, props changed) vendor/lld/dist/ELF/LTO.h (contents, props changed) vendor/lld/dist/ELF/LinkerScript.h (contents, props changed) vendor/lld/dist/ELF/Relocations.cpp (contents, props changed) vendor/lld/dist/ELF/Relocations.h (contents, props changed) vendor/lld/dist/ELF/ScriptParser.cpp (contents, props changed) vendor/lld/dist/ELF/ScriptParser.h (contents, props changed) vendor/lld/dist/ELF/Strings.cpp (contents, props changed) vendor/lld/dist/ELF/Strings.h (contents, props changed) vendor/lld/dist/ELF/SymbolListFile.cpp (contents, props changed) vendor/lld/dist/ELF/SymbolListFile.h (contents, props changed) vendor/lld/dist/ELF/Thunks.cpp (contents, props changed) vendor/lld/dist/ELF/Thunks.h (contents, props changed) vendor/lld/dist/docs/AtomLLD.rst vendor/lld/dist/docs/NewLLD.rst vendor/lld/dist/docs/ReleaseNotes.rst vendor/lld/dist/lib/ReaderWriter/MachO/ObjCPass.cpp (contents, props changed) vendor/lld/dist/test/COFF/Inputs/manifestinput.test vendor/lld/dist/test/COFF/manifestinput.test vendor/lld/dist/test/COFF/section.test vendor/lld/dist/test/ELF/Inputs/aarch64-copy2.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/aarch64-tls-gdie.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/abs-hidden.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/arm-plt-reloc.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/arm-thumb-blx-targets.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/arm-thumb-narrow-branch.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/conflict.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/copy-in-shared.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/copy-rel-corrupted.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/copy-rel-pie.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/ctors_dtors_priority1.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/ctors_dtors_priority2.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/ctors_dtors_priority3.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/duplicated-plt-entry.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/dynamic-reloc-weak.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/ehframe-relocation.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/empty-ver.ver vendor/lld/dist/test/ELF/Inputs/far-arm-abs.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/far-arm-thumb-abs.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/gc-sections-weak.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/gnu-ifunc-gotpcrel.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/gotpc-relax-und-dso.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/icf2.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/invalid-cie-version2.elf (contents, props changed) vendor/lld/dist/test/ELF/Inputs/mips-align-err.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/mips-nonalloc.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/mips-pic.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/mips-tls.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/plt-aarch64.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/ppc64-addr16-error.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/protected-shared.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/relocatable-ehframe.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/relocatable.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/relocatable2.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/relocation-copy-alias.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/relocation-copy-arm.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/resolution-shared.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/start-lib-comdat.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/start-lib1.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/start-lib2.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/symbol-override.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/tls-got-entry.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/tls-in-archive.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/trace-ar1.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/trace-ar2.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/trace-symbols-foo-strong.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/trace-symbols-foo-weak.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/undef-with-plt-addr.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/undef.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/unresolved-symbols.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/verdef-defaultver.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/verdef.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/verneed.so.sh (contents, props changed) vendor/lld/dist/test/ELF/Inputs/version-script-err.script vendor/lld/dist/test/ELF/Inputs/version-use.script vendor/lld/dist/test/ELF/Inputs/warn-common.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/warn-common2.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/x86-64-relax-offset.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/x86-64-reloc-error.s (contents, props changed) vendor/lld/dist/test/ELF/Inputs/x86-64-tls-gd-got.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-abs64-dyn.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-copy2.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-fpic-got.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-got-relocations.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-got.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-relative.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-tls-gdie.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-tls-gdle.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-tls-iele.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-tls-le.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-tls-pie.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-tls-static.s (contents, props changed) vendor/lld/dist/test/ELF/aarch64-tlsdesc.s (contents, props changed) vendor/lld/dist/test/ELF/abs-hidden.s (contents, props changed) vendor/lld/dist/test/ELF/amdgpu-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/arm-abs32-dyn.s (contents, props changed) vendor/lld/dist/test/ELF/arm-attributes-remove.s (contents, props changed) vendor/lld/dist/test/ELF/arm-blx.s (contents, props changed) vendor/lld/dist/test/ELF/arm-branch-error.s (contents, props changed) vendor/lld/dist/test/ELF/arm-branch.s (contents, props changed) vendor/lld/dist/test/ELF/arm-copy.s (contents, props changed) vendor/lld/dist/test/ELF/arm-data-prel.s (contents, props changed) vendor/lld/dist/test/ELF/arm-data-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/arm-fpic-got.s (contents, props changed) vendor/lld/dist/test/ELF/arm-gnu-ifunc-nosym.s (contents, props changed) vendor/lld/dist/test/ELF/arm-gnu-ifunc.s (contents, props changed) vendor/lld/dist/test/ELF/arm-got-relative.s (contents, props changed) vendor/lld/dist/test/ELF/arm-gotoff.s (contents, props changed) vendor/lld/dist/test/ELF/arm-mov-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/arm-plt-reloc.s (contents, props changed) vendor/lld/dist/test/ELF/arm-thumb-blx.s (contents, props changed) vendor/lld/dist/test/ELF/arm-thumb-branch-error.s (contents, props changed) vendor/lld/dist/test/ELF/arm-thumb-branch.s (contents, props changed) vendor/lld/dist/test/ELF/arm-thumb-interwork-thunk.s (contents, props changed) vendor/lld/dist/test/ELF/arm-thumb-narrow-branch-check.s (contents, props changed) vendor/lld/dist/test/ELF/arm-thumb-plt-reloc.s (contents, props changed) vendor/lld/dist/test/ELF/as-needed-no-reloc.s (contents, props changed) vendor/lld/dist/test/ELF/avoid-empty-program-headers.s (contents, props changed) vendor/lld/dist/test/ELF/bsymbolic-undef.s (contents, props changed) vendor/lld/dist/test/ELF/bsymbolic.s (contents, props changed) vendor/lld/dist/test/ELF/build-id.s (contents, props changed) vendor/lld/dist/test/ELF/combrelocs.s (contents, props changed) vendor/lld/dist/test/ELF/compressed-debug-input.s (contents, props changed) vendor/lld/dist/test/ELF/conflict.s (contents, props changed) vendor/lld/dist/test/ELF/copy-errors.s (contents, props changed) vendor/lld/dist/test/ELF/copy-in-shared.s (contents, props changed) vendor/lld/dist/test/ELF/copy-rel-corrupted.s (contents, props changed) vendor/lld/dist/test/ELF/copy-rel-pie-error.s (contents, props changed) vendor/lld/dist/test/ELF/copy-rel-pie.s (contents, props changed) vendor/lld/dist/test/ELF/ctors_dtors_priority.s (contents, props changed) vendor/lld/dist/test/ELF/dont-export-hidden.s (contents, props changed) vendor/lld/dist/test/ELF/driver.test vendor/lld/dist/test/ELF/duplicated-plt-entry.s (contents, props changed) vendor/lld/dist/test/ELF/dynamic-list.s (contents, props changed) vendor/lld/dist/test/ELF/dynamic-reloc-in-ro.s (contents, props changed) vendor/lld/dist/test/ELF/dynamic.s (contents, props changed) vendor/lld/dist/test/ELF/dynsym-pie.s (contents, props changed) vendor/lld/dist/test/ELF/edata-etext.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-dyn-rel.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-gc.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-hdr-abs-fde.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-hdr-augmentation.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-hdr-icf.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-hdr-no-out.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-hdr-no-out2.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-hdr.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-marker.s (contents, props changed) vendor/lld/dist/test/ELF/eh-frame-multilpe-cie.s (contents, props changed) vendor/lld/dist/test/ELF/empty-ver.s (contents, props changed) vendor/lld/dist/test/ELF/fatal-warnings.s (contents, props changed) vendor/lld/dist/test/ELF/file-sym.s (contents, props changed) vendor/lld/dist/test/ELF/gc-merge-local-sym.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-local-sym.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-lsda.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-merge-addend.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-merge-implicit-addend.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-merge.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-protected.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-shared.s (contents, props changed) vendor/lld/dist/test/ELF/gc-sections-weak.s (contents, props changed) vendor/lld/dist/test/ELF/global_offset_table_shared.s (contents, props changed) vendor/lld/dist/test/ELF/gnu-ifunc-gotpcrel.s (contents, props changed) vendor/lld/dist/test/ELF/gnu-ifunc-relative.s (contents, props changed) vendor/lld/dist/test/ELF/got-plt-header.s (contents, props changed) vendor/lld/dist/test/ELF/gotpc-relax-nopic.s (contents, props changed) vendor/lld/dist/test/ELF/gotpc-relax-und-dso.s (contents, props changed) vendor/lld/dist/test/ELF/gotpc-relax.s (contents, props changed) vendor/lld/dist/test/ELF/gotpcrelx.s (contents, props changed) vendor/lld/dist/test/ELF/i386-got-and-copy.s (contents, props changed) vendor/lld/dist/test/ELF/i386-gotpc.s (contents, props changed) vendor/lld/dist/test/ELF/i386-merge.s (contents, props changed) vendor/lld/dist/test/ELF/i386-relative.s (contents, props changed) vendor/lld/dist/test/ELF/i386-relax-reloc.s (contents, props changed) vendor/lld/dist/test/ELF/i386-tls-ie-shared.s (contents, props changed) vendor/lld/dist/test/ELF/icf1.s (contents, props changed) vendor/lld/dist/test/ELF/icf2.s (contents, props changed) vendor/lld/dist/test/ELF/icf3.s (contents, props changed) vendor/lld/dist/test/ELF/icf4.s (contents, props changed) vendor/lld/dist/test/ELF/icf5.s (contents, props changed) vendor/lld/dist/test/ELF/icf6.s (contents, props changed) vendor/lld/dist/test/ELF/icf7.s (contents, props changed) vendor/lld/dist/test/ELF/image-base.s (contents, props changed) vendor/lld/dist/test/ELF/init_fini_priority.s (contents, props changed) vendor/lld/dist/test/ELF/invalid-dynamic-list.test vendor/lld/dist/test/ELF/invalid-linkerscript.test vendor/lld/dist/test/ELF/linkerscript-align.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-diagnostic.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-locationcounter.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-orphans.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-phdr-check.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-repsection-va.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-sections-keep.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-sections-padding.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-symbol-conflict.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-symbols.s (contents, props changed) vendor/lld/dist/test/ELF/linkerscript-va.s (contents, props changed) vendor/lld/dist/test/ELF/llvm33-rela-outside-group.s (contents, props changed) vendor/lld/dist/test/ELF/local-got-pie.s (contents, props changed) vendor/lld/dist/test/ELF/local-undefined-symbol.s (contents, props changed) vendor/lld/dist/test/ELF/lto/ vendor/lld/dist/test/ELF/lto/Inputs/ vendor/lld/dist/test/ELF/lto/Inputs/archive-2.ll vendor/lld/dist/test/ELF/lto/Inputs/archive-3.ll vendor/lld/dist/test/ELF/lto/Inputs/archive.ll vendor/lld/dist/test/ELF/lto/Inputs/available-externally.ll vendor/lld/dist/test/ELF/lto/Inputs/comdat.s (contents, props changed) vendor/lld/dist/test/ELF/lto/Inputs/common.s (contents, props changed) vendor/lld/dist/test/ELF/lto/Inputs/drop-debug-info.bc (contents, props changed) vendor/lld/dist/test/ELF/lto/Inputs/drop-linkage.ll vendor/lld/dist/test/ELF/lto/Inputs/dynsym.s (contents, props changed) vendor/lld/dist/test/ELF/lto/Inputs/internalize-exportdyn.ll vendor/lld/dist/test/ELF/lto/Inputs/internalize-undef.ll vendor/lld/dist/test/ELF/lto/Inputs/irmover-error.ll vendor/lld/dist/test/ELF/lto/Inputs/linkonce-odr.ll vendor/lld/dist/test/ELF/lto/Inputs/linkonce.ll vendor/lld/dist/test/ELF/lto/Inputs/resolution.s (contents, props changed) vendor/lld/dist/test/ELF/lto/Inputs/save-temps.ll vendor/lld/dist/test/ELF/lto/Inputs/shared.s (contents, props changed) vendor/lld/dist/test/ELF/lto/Inputs/start-lib1.ll vendor/lld/dist/test/ELF/lto/Inputs/start-lib2.ll vendor/lld/dist/test/ELF/lto/Inputs/tls-mixed.s (contents, props changed) vendor/lld/dist/test/ELF/lto/Inputs/type-merge.ll vendor/lld/dist/test/ELF/lto/Inputs/type-merge2.ll vendor/lld/dist/test/ELF/lto/Inputs/undef-mixed.s (contents, props changed) vendor/lld/dist/test/ELF/lto/Inputs/unnamed-addr-lib.s (contents, props changed) vendor/lld/dist/test/ELF/lto/Inputs/visibility.s (contents, props changed) vendor/lld/dist/test/ELF/lto/archive-2.ll vendor/lld/dist/test/ELF/lto/archive-3.ll vendor/lld/dist/test/ELF/lto/archive.ll vendor/lld/dist/test/ELF/lto/asmundef.ll vendor/lld/dist/test/ELF/lto/available-externally.ll vendor/lld/dist/test/ELF/lto/combined-lto-object-name.ll vendor/lld/dist/test/ELF/lto/comdat.ll vendor/lld/dist/test/ELF/lto/comdat2.ll vendor/lld/dist/test/ELF/lto/common.ll vendor/lld/dist/test/ELF/lto/common2.ll vendor/lld/dist/test/ELF/lto/ctors.ll vendor/lld/dist/test/ELF/lto/discard-value-names.ll vendor/lld/dist/test/ELF/lto/drop-debug-info.ll vendor/lld/dist/test/ELF/lto/drop-linkage.ll vendor/lld/dist/test/ELF/lto/duplicated.ll vendor/lld/dist/test/ELF/lto/dynamic-list.ll vendor/lld/dist/test/ELF/lto/dynsym.ll vendor/lld/dist/test/ELF/lto/inline-asm.ll vendor/lld/dist/test/ELF/lto/internalize-basic.ll vendor/lld/dist/test/ELF/lto/internalize-exportdyn.ll vendor/lld/dist/test/ELF/lto/internalize-llvmused.ll vendor/lld/dist/test/ELF/lto/internalize-undef.ll vendor/lld/dist/test/ELF/lto/internalize-version-script.ll vendor/lld/dist/test/ELF/lto/invalid-bitcode.ll vendor/lld/dist/test/ELF/lto/irmover-error.ll vendor/lld/dist/test/ELF/lto/linkage.ll vendor/lld/dist/test/ELF/lto/linkonce-odr.ll vendor/lld/dist/test/ELF/lto/linkonce.ll vendor/lld/dist/test/ELF/lto/lto-start.ll vendor/lld/dist/test/ELF/lto/ltopasses-basic.ll vendor/lld/dist/test/ELF/lto/ltopasses-custom.ll vendor/lld/dist/test/ELF/lto/metadata.ll vendor/lld/dist/test/ELF/lto/mix-platforms.ll vendor/lld/dist/test/ELF/lto/module-asm.ll vendor/lld/dist/test/ELF/lto/opt-level.ll vendor/lld/dist/test/ELF/lto/parallel-internalize.ll vendor/lld/dist/test/ELF/lto/parallel.ll vendor/lld/dist/test/ELF/lto/pic.ll vendor/lld/dist/test/ELF/lto/relax-relocs.ll vendor/lld/dist/test/ELF/lto/resolution.ll vendor/lld/dist/test/ELF/lto/save-temps.ll vendor/lld/dist/test/ELF/lto/shlib-undefined.ll vendor/lld/dist/test/ELF/lto/start-lib.ll vendor/lld/dist/test/ELF/lto/tls-mixed.ll vendor/lld/dist/test/ELF/lto/tls-preserve.ll vendor/lld/dist/test/ELF/lto/type-merge.ll vendor/lld/dist/test/ELF/lto/type-merge2.ll vendor/lld/dist/test/ELF/lto/undef-mixed.ll vendor/lld/dist/test/ELF/lto/undef-weak.ll vendor/lld/dist/test/ELF/lto/undef.ll vendor/lld/dist/test/ELF/lto/undefined-puts.ll vendor/lld/dist/test/ELF/lto/unnamed-addr-comdat.ll vendor/lld/dist/test/ELF/lto/unnamed-addr-lib.ll vendor/lld/dist/test/ELF/lto/unnamed-addr.ll vendor/lld/dist/test/ELF/lto/verify-invalid.ll vendor/lld/dist/test/ELF/lto/version-script.ll vendor/lld/dist/test/ELF/lto/visibility.ll vendor/lld/dist/test/ELF/lto/weak.ll vendor/lld/dist/test/ELF/merge-shared-str.s (contents, props changed) vendor/lld/dist/test/ELF/mips-26.s (contents, props changed) vendor/lld/dist/test/ELF/mips-32.s (contents, props changed) vendor/lld/dist/test/ELF/mips-64-disp.s (contents, props changed) vendor/lld/dist/test/ELF/mips-64-got.s (contents, props changed) vendor/lld/dist/test/ELF/mips-64-gprel-so.s (contents, props changed) vendor/lld/dist/test/ELF/mips-64-rels.s (contents, props changed) vendor/lld/dist/test/ELF/mips-64.s (contents, props changed) vendor/lld/dist/test/ELF/mips-align-err.s (contents, props changed) vendor/lld/dist/test/ELF/mips-got-and-copy.s (contents, props changed) vendor/lld/dist/test/ELF/mips-got-extsym.s (contents, props changed) vendor/lld/dist/test/ELF/mips-got-redundant.s (contents, props changed) vendor/lld/dist/test/ELF/mips-got-weak.s (contents, props changed) vendor/lld/dist/test/ELF/mips-got16.s (contents, props changed) vendor/lld/dist/test/ELF/mips-gp-local.s (contents, props changed) vendor/lld/dist/test/ELF/mips-gprel32-relocs-gp0.test vendor/lld/dist/test/ELF/mips-lo16-not-relative.s (contents, props changed) vendor/lld/dist/test/ELF/mips-nonalloc.s (contents, props changed) vendor/lld/dist/test/ELF/mips-npic-call-pic.s (contents, props changed) vendor/lld/dist/test/ELF/mips-options-r.test vendor/lld/dist/test/ELF/mips-options.s (contents, props changed) vendor/lld/dist/test/ELF/mips-plt-copy.s (contents, props changed) vendor/lld/dist/test/ELF/mips-sto-plt.s (contents, props changed) vendor/lld/dist/test/ELF/mips-tls-64.s (contents, props changed) vendor/lld/dist/test/ELF/mips-tls-hilo.s (contents, props changed) vendor/lld/dist/test/ELF/mips-tls.s (contents, props changed) vendor/lld/dist/test/ELF/no-augmentation.s (contents, props changed) vendor/lld/dist/test/ELF/no-plt-shared.s (contents, props changed) vendor/lld/dist/test/ELF/noplt-pie.s (contents, props changed) vendor/lld/dist/test/ELF/note.s (contents, props changed) vendor/lld/dist/test/ELF/phdr-align.s (contents, props changed) vendor/lld/dist/test/ELF/pie-weak.s (contents, props changed) vendor/lld/dist/test/ELF/pie.s (contents, props changed) vendor/lld/dist/test/ELF/protected-shared.s (contents, props changed) vendor/lld/dist/test/ELF/rel-offset.s (contents, props changed) vendor/lld/dist/test/ELF/relative-dynamic-reloc-pie.s (contents, props changed) vendor/lld/dist/test/ELF/relocatable-bss.s (contents, props changed) vendor/lld/dist/test/ELF/relocatable-ehframe.s (contents, props changed) vendor/lld/dist/test/ELF/relocatable-reloc.s (contents, props changed) vendor/lld/dist/test/ELF/relocatable-symbols.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-copy-alias.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-copy-flags.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-non-alloc.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-relative-absolute.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-relative-synthetic.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-relative-weak.s (contents, props changed) vendor/lld/dist/test/ELF/relocation-shared.s (contents, props changed) vendor/lld/dist/test/ELF/relro-tls.s (contents, props changed) vendor/lld/dist/test/ELF/reproduce-error.s (contents, props changed) vendor/lld/dist/test/ELF/reproduce-linkerscript.s (contents, props changed) vendor/lld/dist/test/ELF/reproduce-thin-archive.s (contents, props changed) vendor/lld/dist/test/ELF/reproduce-windows.s (contents, props changed) vendor/lld/dist/test/ELF/reproduce.s (contents, props changed) vendor/lld/dist/test/ELF/resolution-shared.s (contents, props changed) vendor/lld/dist/test/ELF/splitstacks.s (contents, props changed) vendor/lld/dist/test/ELF/start-lib-comdat.s (contents, props changed) vendor/lld/dist/test/ELF/start-lib.s (contents, props changed) vendor/lld/dist/test/ELF/startstop-gccollect.s (contents, props changed) vendor/lld/dist/test/ELF/string-gc.s (contents, props changed) vendor/lld/dist/test/ELF/strip-debug.s (contents, props changed) vendor/lld/dist/test/ELF/symbol-override.s (contents, props changed) vendor/lld/dist/test/ELF/tail-merge-string-align.s (contents, props changed) vendor/lld/dist/test/ELF/tls-archive.s (contents, props changed) vendor/lld/dist/test/ELF/tls-got-entry.s (contents, props changed) vendor/lld/dist/test/ELF/tls-in-archive.s (contents, props changed) vendor/lld/dist/test/ELF/tls-initial-exec-local.s (contents, props changed) vendor/lld/dist/test/ELF/tls-offset.s (contents, props changed) vendor/lld/dist/test/ELF/tls-opt-no-plt.s (contents, props changed) vendor/lld/dist/test/ELF/tls-two-relocs.s (contents, props changed) vendor/lld/dist/test/ELF/trace-ar.s (contents, props changed) vendor/lld/dist/test/ELF/trace-symbols.s (contents, props changed) vendor/lld/dist/test/ELF/trace.s (contents, props changed) vendor/lld/dist/test/ELF/undef-shared.s (contents, props changed) vendor/lld/dist/test/ELF/undef-version-script.s (contents, props changed) vendor/lld/dist/test/ELF/undef-with-plt-addr-i686.s (contents, props changed) vendor/lld/dist/test/ELF/undef-with-plt-addr.s (contents, props changed) vendor/lld/dist/test/ELF/unresolved-symbols.s (contents, props changed) vendor/lld/dist/test/ELF/user_def_init_array_start.s (contents, props changed) vendor/lld/dist/test/ELF/verdef-defaultver.s (contents, props changed) vendor/lld/dist/test/ELF/verdef-dependency.s (contents, props changed) vendor/lld/dist/test/ELF/verdef.s (contents, props changed) vendor/lld/dist/test/ELF/verneed-as-needed-weak.s (contents, props changed) vendor/lld/dist/test/ELF/verneed-local.s (contents, props changed) vendor/lld/dist/test/ELF/verneed.s (contents, props changed) vendor/lld/dist/test/ELF/version-script-err.s (contents, props changed) vendor/lld/dist/test/ELF/version-script-extern.s (contents, props changed) vendor/lld/dist/test/ELF/version-script-noundef.s (contents, props changed) vendor/lld/dist/test/ELF/version-script.s (contents, props changed) vendor/lld/dist/test/ELF/version-undef-sym.s (contents, props changed) vendor/lld/dist/test/ELF/version-use.s (contents, props changed) vendor/lld/dist/test/ELF/version-wildcard.test vendor/lld/dist/test/ELF/warn-common.s (contents, props changed) vendor/lld/dist/test/ELF/weak-undef-hidden.s (contents, props changed) vendor/lld/dist/test/ELF/weak-undef-shared.s (contents, props changed) vendor/lld/dist/test/ELF/weak-undef.s (contents, props changed) vendor/lld/dist/test/ELF/wildcards.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-dyn-rel-error.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-dyn-rel-error2.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-rela.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-relax-offset.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-reloc-32-fpic.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-reloc-error.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-reloc-pc32-fpic.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-reloc-range.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-tls-gd-got.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-tls-gd-local.s (contents, props changed) vendor/lld/dist/test/ELF/x86-64-tls-pie.s (contents, props changed) vendor/lld/dist/test/ELF/zdefs.s (contents, props changed) vendor/lld/dist/test/darwin/cmdline-objc_gc.objtxt vendor/lld/dist/test/darwin/cmdline-objc_gc_compaction.objtxt vendor/lld/dist/test/darwin/cmdline-objc_gc_only.objtxt vendor/lld/dist/test/mach-o/Inputs/no-version-min-load-command-object.yaml vendor/lld/dist/test/mach-o/Inputs/swift-version-1.yaml vendor/lld/dist/test/mach-o/data-in-code-load-command.yaml vendor/lld/dist/test/mach-o/dead-strip-globals.yaml vendor/lld/dist/test/mach-o/eh-frame-relocs-arm64.yaml vendor/lld/dist/test/mach-o/error-simulator-vs-macosx.yaml vendor/lld/dist/test/mach-o/function-starts-load-command.yaml vendor/lld/dist/test/mach-o/mach_header-cpusubtype.yaml vendor/lld/dist/test/mach-o/objc-category-list-atom.yaml vendor/lld/dist/test/mach-o/objc-image-info-host-vs-simulator.yaml vendor/lld/dist/test/mach-o/objc-image-info-invalid-size.yaml vendor/lld/dist/test/mach-o/objc-image-info-invalid-version.yaml vendor/lld/dist/test/mach-o/objc-image-info-mismatched-swift-version.yaml vendor/lld/dist/test/mach-o/objc-image-info-pass-output.yaml vendor/lld/dist/test/mach-o/objc-image-info-simulator-vs-host.yaml vendor/lld/dist/test/mach-o/objc-image-info-unsupported-gc.yaml vendor/lld/dist/test/mach-o/sdk-version-error.yaml vendor/lld/dist/test/mach-o/sectattrs.yaml vendor/lld/dist/test/mach-o/seg-protection-arm64.yaml vendor/lld/dist/test/mach-o/seg-protection-x86_64.yaml vendor/lld/dist/test/mach-o/source-version.yaml vendor/lld/dist/test/mach-o/subsections-via-symbols-default.yaml vendor/lld/dist/test/mach-o/version-min-load-command-object.yaml vendor/lld/dist/test/mach-o/version-min-load-command.yaml Deleted: vendor/lld/dist/include/lld/Core/Alias.h vendor/lld/dist/include/lld/Core/STDExtras.h vendor/lld/dist/include/lld/Core/range.h vendor/lld/dist/include/lld/ReaderWriter/AtomLayout.h vendor/lld/dist/include/lld/ReaderWriter/CoreLinkingContext.h vendor/lld/dist/include/lld/ReaderWriter/ELFLinkingContext.h vendor/lld/dist/include/lld/ReaderWriter/LinkerScript.h vendor/lld/dist/lib/Driver/CoreDriver.cpp vendor/lld/dist/lib/Driver/CoreOptions.td vendor/lld/dist/lib/Driver/Driver.cpp vendor/lld/dist/lib/Driver/GnuLdDriver.cpp vendor/lld/dist/lib/Driver/GnuLdOptions.td vendor/lld/dist/lib/Driver/TODO.rst vendor/lld/dist/lib/Driver/UniversalDriver.cpp vendor/lld/dist/lib/Driver/UniversalDriverOptions.td vendor/lld/dist/lib/ReaderWriter/CoreLinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/ELF/ vendor/lld/dist/lib/ReaderWriter/LinkerScript.cpp vendor/lld/dist/lib/ReaderWriter/Native/ vendor/lld/dist/lib/ReaderWriter/PECOFF/ vendor/lld/dist/test/COFF/dllorder.test vendor/lld/dist/test/Driver/def-lib-search.test vendor/lld/dist/test/Driver/flavor-option.test vendor/lld/dist/test/Driver/lib-search.test vendor/lld/dist/test/Driver/so-whole-archive.test vendor/lld/dist/test/Driver/trivial-driver.test vendor/lld/dist/test/Driver/undef-basic.objtxt vendor/lld/dist/test/ELF/mips-relocs.s vendor/lld/dist/test/ELF/valid-cie-length-dw64.s vendor/lld/dist/test/ELF/x86-64-reloc-32-error.s vendor/lld/dist/test/ELF/x86-64-reloc-32S-error.s vendor/lld/dist/test/LinkerScript/expr-precedence.test vendor/lld/dist/test/LinkerScript/extern-bad-symbol.test vendor/lld/dist/test/LinkerScript/extern-empty.test vendor/lld/dist/test/LinkerScript/extern-valid.test vendor/lld/dist/test/LinkerScript/incomplete-ternary.test vendor/lld/dist/test/LinkerScript/libname-err-1.test vendor/lld/dist/test/LinkerScript/libname-err-2.test vendor/lld/dist/test/LinkerScript/linker-script-outputformat.test vendor/lld/dist/test/LinkerScript/linker-script.test vendor/lld/dist/test/LinkerScript/memory-empty.test vendor/lld/dist/test/LinkerScript/memory-missing-attrs.test vendor/lld/dist/test/LinkerScript/memory-missing-length.test vendor/lld/dist/test/LinkerScript/memory-missing-name.test vendor/lld/dist/test/LinkerScript/memory-missing-origin.test vendor/lld/dist/test/LinkerScript/memory-valid.test vendor/lld/dist/test/LinkerScript/missing-entry-symbol.test vendor/lld/dist/test/LinkerScript/missing-input-file-name.test vendor/lld/dist/test/LinkerScript/missing-input-sections.test vendor/lld/dist/test/LinkerScript/missing-operand.test vendor/lld/dist/test/LinkerScript/missing-output-section-name.test vendor/lld/dist/test/LinkerScript/missing-symbol.test vendor/lld/dist/test/LinkerScript/phdrs-sections.test vendor/lld/dist/test/LinkerScript/sections.test vendor/lld/dist/test/core/Inputs/archive-basic.objtxt vendor/lld/dist/test/core/Inputs/archive-chain.objtxt vendor/lld/dist/test/core/Inputs/archive-chain2.objtxt vendor/lld/dist/test/core/Inputs/archive-tentdef-search.objtxt vendor/lld/dist/test/core/Inputs/associates.objtxt vendor/lld/dist/test/core/Inputs/auto-hide-coalesce.objtxt vendor/lld/dist/test/core/Inputs/code-model-attributes.objtxt vendor/lld/dist/test/core/Inputs/code-model-attributes2.objtxt vendor/lld/dist/test/core/Inputs/code-model-attributes3.objtxt vendor/lld/dist/test/core/Inputs/code-model-attributes4.objtxt vendor/lld/dist/test/core/Inputs/code-model-attributes5.objtxt vendor/lld/dist/test/core/Inputs/constants-coalesce.objtxt vendor/lld/dist/test/core/Inputs/constants-coalesce2.objtxt vendor/lld/dist/test/core/Inputs/cstring-coalesce.objtxt vendor/lld/dist/test/core/Inputs/cstring-coalesce2.objtxt vendor/lld/dist/test/core/Inputs/custom-section-coalesce.objtxt vendor/lld/dist/test/core/Inputs/custom-section-coalesce2.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-attributes.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-attributes2.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-basic.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-basic2.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-globals.objtxt vendor/lld/dist/test/core/Inputs/dead-strip-globals2.objtxt vendor/lld/dist/test/core/Inputs/error-duplicate-absolutes.objtxt vendor/lld/dist/test/core/Inputs/gnulinkonce-rearrange-resolve.objtxt vendor/lld/dist/test/core/Inputs/gnulinkonce-remaining-undef.objtxt vendor/lld/dist/test/core/Inputs/gnulinkonce-remaining-undef2.objtxt vendor/lld/dist/test/core/Inputs/gnulinkonce-resolve.objtxt vendor/lld/dist/test/core/Inputs/gnulinkonce-simple.objtxt vendor/lld/dist/test/core/Inputs/inline-coalesce.objtxt vendor/lld/dist/test/core/Inputs/inline-coalesce2.objtxt vendor/lld/dist/test/core/Inputs/multiple-def-error.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-deadstrip.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-gnulinkonce-error.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-rearrange-resolve.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-remaining-undef.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-remaining-undef2.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-resolve.objtxt vendor/lld/dist/test/core/Inputs/sectiongroup-simple.objtxt vendor/lld/dist/test/core/Inputs/shared-library-coalesce.objtxt vendor/lld/dist/test/core/Inputs/tent-merge.objtxt vendor/lld/dist/test/core/Inputs/undef-coalesce-error.objtxt vendor/lld/dist/test/core/Inputs/undef-coalesce-error2.objtxt vendor/lld/dist/test/core/Inputs/undef-coalesce.objtxt vendor/lld/dist/test/core/Inputs/undef-coalesce2.objtxt vendor/lld/dist/test/core/Inputs/undef-fallback.objtxt vendor/lld/dist/test/core/Inputs/undef-weak-coalesce.objtxt vendor/lld/dist/test/core/Inputs/weak-coalesce.objtxt vendor/lld/dist/test/core/Inputs/weak-coalesce2.objtxt vendor/lld/dist/test/core/absolute-basic.objtxt vendor/lld/dist/test/core/absolute-local.objtxt vendor/lld/dist/test/core/archive-basic.objtxt vendor/lld/dist/test/core/archive-chain.objtxt vendor/lld/dist/test/core/archive-tentdef-search.objtxt vendor/lld/dist/test/core/associates.objtxt vendor/lld/dist/test/core/auto-hide-coalesce.objtxt vendor/lld/dist/test/core/code-model-attributes.objtxt vendor/lld/dist/test/core/constants-coalesce.objtxt vendor/lld/dist/test/core/cstring-coalesce.objtxt vendor/lld/dist/test/core/custom-section-coalesce.objtxt vendor/lld/dist/test/core/custom-section.objtxt vendor/lld/dist/test/core/dead-strip-attributes.objtxt vendor/lld/dist/test/core/dead-strip-basic.objtxt vendor/lld/dist/test/core/dead-strip-globals.objtxt vendor/lld/dist/test/core/dead-strip-reverse.objtxt vendor/lld/dist/test/core/error-atom-attribute.objtxt vendor/lld/dist/test/core/error-atom-content-byte-value.objtxt vendor/lld/dist/test/core/error-atom-content-bytes.objtxt vendor/lld/dist/test/core/error-atom-type.objtxt vendor/lld/dist/test/core/error-atom-undefined-wrong-attribue.objtxt vendor/lld/dist/test/core/error-duplicate-absolutes.objtxt vendor/lld/dist/test/core/error-file-attribute.objtxt vendor/lld/dist/test/core/error-fixup-attribute.objtxt vendor/lld/dist/test/core/error-fixup-target.objtxt vendor/lld/dist/test/core/fixups-addend.objtxt vendor/lld/dist/test/core/fixups-dup-named.objtxt vendor/lld/dist/test/core/fixups-named.objtxt vendor/lld/dist/test/core/fixups-unnamed.objtxt vendor/lld/dist/test/core/gnulinkonce-rearrange-resolve.objtxt vendor/lld/dist/test/core/gnulinkonce-remaining-undef.objtxt vendor/lld/dist/test/core/gnulinkonce-resolve.objtxt vendor/lld/dist/test/core/gnulinkonce-simple.objtxt vendor/lld/dist/test/core/inline-coalesce.objtxt vendor/lld/dist/test/core/multiple-def-error.objtxt vendor/lld/dist/test/core/permissions.objtxt vendor/lld/dist/test/core/sectiongroup-deadstrip.objtxt vendor/lld/dist/test/core/sectiongroup-gnulinkonce-error.objtxt vendor/lld/dist/test/core/sectiongroup-rearrange-resolve.objtxt vendor/lld/dist/test/core/sectiongroup-remaining-undef.objtxt vendor/lld/dist/test/core/sectiongroup-resolve.objtxt vendor/lld/dist/test/core/sectiongroup-simple.objtxt vendor/lld/dist/test/core/shared-library-basic.objtxt vendor/lld/dist/test/core/shared-library-coalesce.objtxt vendor/lld/dist/test/core/tent-merge.objtxt vendor/lld/dist/test/core/undef-coalesce-error.objtxt vendor/lld/dist/test/core/undef-coalesce.objtxt vendor/lld/dist/test/core/undef-fallback.objtxt vendor/lld/dist/test/core/undef-weak-coalesce.objtxt vendor/lld/dist/test/core/weak-coalesce.objtxt vendor/lld/dist/test/old-elf/AArch64/Inputs/fn.c vendor/lld/dist/test/old-elf/AArch64/Inputs/fn.o vendor/lld/dist/test/old-elf/AArch64/Inputs/general-dyn-tls-0.yaml vendor/lld/dist/test/old-elf/AArch64/Inputs/initfini-option.c vendor/lld/dist/test/old-elf/AArch64/Inputs/initfini-option.o vendor/lld/dist/test/old-elf/AArch64/Inputs/initfini.c vendor/lld/dist/test/old-elf/AArch64/Inputs/initfini.o vendor/lld/dist/test/old-elf/AArch64/Inputs/initial-exec-tls-1.yaml vendor/lld/dist/test/old-elf/AArch64/Inputs/main.c vendor/lld/dist/test/old-elf/AArch64/Inputs/main.o vendor/lld/dist/test/old-elf/AArch64/Inputs/no-interp-section.c vendor/lld/dist/test/old-elf/AArch64/Inputs/no-interp-section.o vendor/lld/dist/test/old-elf/AArch64/Inputs/zerosizedsection.o vendor/lld/dist/test/old-elf/AArch64/Inputs/zerosizedsection.s vendor/lld/dist/test/old-elf/AArch64/defsym.test vendor/lld/dist/test/old-elf/AArch64/dontignorezerosize-sections.test vendor/lld/dist/test/old-elf/AArch64/dynamicvars.test vendor/lld/dist/test/old-elf/AArch64/dynlib-nointerp-section.test vendor/lld/dist/test/old-elf/AArch64/general-dyn-tls-0.test vendor/lld/dist/test/old-elf/AArch64/initfini.test vendor/lld/dist/test/old-elf/AArch64/initial-exec-tls-0.test vendor/lld/dist/test/old-elf/AArch64/local-tls.test vendor/lld/dist/test/old-elf/AArch64/rel-abs16-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-abs16.test vendor/lld/dist/test/old-elf/AArch64/rel-abs32-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-abs32.test vendor/lld/dist/test/old-elf/AArch64/rel-abs64.test vendor/lld/dist/test/old-elf/AArch64/rel-adr_prel_lo21-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-adr_prel_lo21.test vendor/lld/dist/test/old-elf/AArch64/rel-adr_prel_pg_hi21-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-adr_prel_pg_hi21.test vendor/lld/dist/test/old-elf/AArch64/rel-bad.test vendor/lld/dist/test/old-elf/AArch64/rel-prel16-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-prel16.test vendor/lld/dist/test/old-elf/AArch64/rel-prel32-overflow.test vendor/lld/dist/test/old-elf/AArch64/rel-prel32.test vendor/lld/dist/test/old-elf/AArch64/rel-prel64.test vendor/lld/dist/test/old-elf/ARM/Inputs/fn.c vendor/lld/dist/test/old-elf/ARM/Inputs/libfn.so vendor/lld/dist/test/old-elf/ARM/Inputs/libobj.so vendor/lld/dist/test/old-elf/ARM/Inputs/obj.c vendor/lld/dist/test/old-elf/ARM/arm-symbols.test vendor/lld/dist/test/old-elf/ARM/defsym.test vendor/lld/dist/test/old-elf/ARM/dynamic-symbols.test vendor/lld/dist/test/old-elf/ARM/entry-point.test vendor/lld/dist/test/old-elf/ARM/exidx.test vendor/lld/dist/test/old-elf/ARM/header-flags.test vendor/lld/dist/test/old-elf/ARM/mapping-code-model.test vendor/lld/dist/test/old-elf/ARM/mapping-symbols.test vendor/lld/dist/test/old-elf/ARM/missing-symbol.test vendor/lld/dist/test/old-elf/ARM/plt-dynamic.test vendor/lld/dist/test/old-elf/ARM/plt-ifunc-interwork.test vendor/lld/dist/test/old-elf/ARM/plt-ifunc-mapping.test vendor/lld/dist/test/old-elf/ARM/rel-abs32.test vendor/lld/dist/test/old-elf/ARM/rel-arm-call.test vendor/lld/dist/test/old-elf/ARM/rel-arm-jump24-veneer-b.test vendor/lld/dist/test/old-elf/ARM/rel-arm-jump24-veneer-bl.test vendor/lld/dist/test/old-elf/ARM/rel-arm-jump24.test vendor/lld/dist/test/old-elf/ARM/rel-arm-mov.test vendor/lld/dist/test/old-elf/ARM/rel-arm-prel31.test vendor/lld/dist/test/old-elf/ARM/rel-arm-target1.test vendor/lld/dist/test/old-elf/ARM/rel-arm-thm-interwork.test vendor/lld/dist/test/old-elf/ARM/rel-base-prel.test vendor/lld/dist/test/old-elf/ARM/rel-copy.test vendor/lld/dist/test/old-elf/ARM/rel-glob-dat.test vendor/lld/dist/test/old-elf/ARM/rel-got-brel.test vendor/lld/dist/test/old-elf/ARM/rel-group-relocs.test vendor/lld/dist/test/old-elf/ARM/rel-ifunc.test vendor/lld/dist/test/old-elf/ARM/rel-jump-slot.test vendor/lld/dist/test/old-elf/ARM/rel-rel32.test vendor/lld/dist/test/old-elf/ARM/rel-thm-call.test vendor/lld/dist/test/old-elf/ARM/rel-thm-jump11.test vendor/lld/dist/test/old-elf/ARM/rel-thm-jump24-veneer.test vendor/lld/dist/test/old-elf/ARM/rel-thm-jump24.test vendor/lld/dist/test/old-elf/ARM/rel-thm-mov.test vendor/lld/dist/test/old-elf/ARM/rel-tls-ie32.test vendor/lld/dist/test/old-elf/ARM/rel-tls-le32.test vendor/lld/dist/test/old-elf/ARM/rel-v4bx.test vendor/lld/dist/test/old-elf/ARM/thm-symbols.test vendor/lld/dist/test/old-elf/ARM/two-got-for-symbol.test vendor/lld/dist/test/old-elf/ARM/undef-lazy-symbol.test vendor/lld/dist/test/old-elf/ARM/veneer-mapping.test vendor/lld/dist/test/old-elf/ARM/weak-branch.test vendor/lld/dist/test/old-elf/Hexagon/Inputs/dynobj-data.c vendor/lld/dist/test/old-elf/Hexagon/Inputs/dynobj-data.o vendor/lld/dist/test/old-elf/Hexagon/Inputs/dynobj.c vendor/lld/dist/test/old-elf/Hexagon/Inputs/dynobj.o vendor/lld/dist/test/old-elf/Hexagon/Inputs/got-plt-order.c vendor/lld/dist/test/old-elf/Hexagon/Inputs/got-plt-order.o vendor/lld/dist/test/old-elf/Hexagon/Inputs/libMaxAlignment.a vendor/lld/dist/test/old-elf/Hexagon/Inputs/sda-base.o vendor/lld/dist/test/old-elf/Hexagon/Inputs/sdata1.c vendor/lld/dist/test/old-elf/Hexagon/Inputs/sdata1.o vendor/lld/dist/test/old-elf/Hexagon/Inputs/sdata2.c vendor/lld/dist/test/old-elf/Hexagon/Inputs/sdata2.o vendor/lld/dist/test/old-elf/Hexagon/Inputs/use-shared.hexagon vendor/lld/dist/test/old-elf/Hexagon/dynlib-data.test vendor/lld/dist/test/old-elf/Hexagon/dynlib-gotoff.test vendor/lld/dist/test/old-elf/Hexagon/dynlib-hash.test vendor/lld/dist/test/old-elf/Hexagon/dynlib-rela.test vendor/lld/dist/test/old-elf/Hexagon/dynlib-syms.test vendor/lld/dist/test/old-elf/Hexagon/dynlib.test vendor/lld/dist/test/old-elf/Hexagon/hexagon-got-plt-order.test vendor/lld/dist/test/old-elf/Hexagon/hexagon-plt-setup.test vendor/lld/dist/test/old-elf/Hexagon/maxalignment.test vendor/lld/dist/test/old-elf/Hexagon/rela-order.test vendor/lld/dist/test/old-elf/Hexagon/sda-base.test vendor/lld/dist/test/old-elf/Hexagon/zerofillquick-sdata.test vendor/lld/dist/test/old-elf/Inputs/abs-test.i386 vendor/lld/dist/test/old-elf/Inputs/allowduplicates.objtxt vendor/lld/dist/test/old-elf/Inputs/bar.o.x86-64 vendor/lld/dist/test/old-elf/Inputs/branch-test.hexagon vendor/lld/dist/test/old-elf/Inputs/branch-test.ppc vendor/lld/dist/test/old-elf/Inputs/consecutive-weak-defs.o.yaml vendor/lld/dist/test/old-elf/Inputs/constants-merge.x86-64 vendor/lld/dist/test/old-elf/Inputs/constdata.x86-64 vendor/lld/dist/test/old-elf/Inputs/foo.o.x86-64 vendor/lld/dist/test/old-elf/Inputs/globalconst.c vendor/lld/dist/test/old-elf/Inputs/globalconst.o.x86-64 vendor/lld/dist/test/old-elf/Inputs/gotpcrel.S vendor/lld/dist/test/old-elf/Inputs/gotpcrel.x86-64 vendor/lld/dist/test/old-elf/Inputs/group-cmd-search-1.ls vendor/lld/dist/test/old-elf/Inputs/group-cmd-search-2.ls vendor/lld/dist/test/old-elf/Inputs/group-cmd-search-3.ls vendor/lld/dist/test/old-elf/Inputs/ifunc.S vendor/lld/dist/test/old-elf/Inputs/ifunc.cpp vendor/lld/dist/test/old-elf/Inputs/ifunc.cpp.x86-64 vendor/lld/dist/test/old-elf/Inputs/ifunc.x86-64 vendor/lld/dist/test/old-elf/Inputs/libfnarchive.a vendor/lld/dist/test/old-elf/Inputs/libifunc.x86-64.so vendor/lld/dist/test/old-elf/Inputs/libundef.so vendor/lld/dist/test/old-elf/Inputs/libweaksym.so vendor/lld/dist/test/old-elf/Inputs/main-with-global-def.o.yaml vendor/lld/dist/test/old-elf/Inputs/mainobj.x86_64 vendor/lld/dist/test/old-elf/Inputs/no-unique-section-names.x86-64 vendor/lld/dist/test/old-elf/Inputs/object-test.elf-hexagon vendor/lld/dist/test/old-elf/Inputs/object-test.elf-i386 vendor/lld/dist/test/old-elf/Inputs/phdr.i386 vendor/lld/dist/test/old-elf/Inputs/quickdata-sort-test.o.elf-hexagon vendor/lld/dist/test/old-elf/Inputs/quickdata-sortcommon-test.o.elf-hexagon vendor/lld/dist/test/old-elf/Inputs/quickdata-test.elf-hexagon vendor/lld/dist/test/old-elf/Inputs/reloc-test.elf-i386 vendor/lld/dist/test/old-elf/Inputs/reloc-xb.x86 vendor/lld/dist/test/old-elf/Inputs/reloc-xt.x86 vendor/lld/dist/test/old-elf/Inputs/relocs-dynamic.x86-64 vendor/lld/dist/test/old-elf/Inputs/relocs.x86-64 vendor/lld/dist/test/old-elf/Inputs/responsefile vendor/lld/dist/test/old-elf/Inputs/rodata-test.hexagon vendor/lld/dist/test/old-elf/Inputs/rodata-test.i386 vendor/lld/dist/test/old-elf/Inputs/rodata.c vendor/lld/dist/test/old-elf/Inputs/rodata.o vendor/lld/dist/test/old-elf/Inputs/section-test.i386 vendor/lld/dist/test/old-elf/Inputs/shared.c vendor/lld/dist/test/old-elf/Inputs/shared.so-x86-64 vendor/lld/dist/test/old-elf/Inputs/shndx.o-x86_64 vendor/lld/dist/test/old-elf/Inputs/stripped-empty.x86_64 vendor/lld/dist/test/old-elf/Inputs/target-test.hexagon vendor/lld/dist/test/old-elf/Inputs/target-test.ppc vendor/lld/dist/test/old-elf/Inputs/tls-tbss-size.yaml vendor/lld/dist/test/old-elf/Inputs/tls.S vendor/lld/dist/test/old-elf/Inputs/tls.c vendor/lld/dist/test/old-elf/Inputs/tls.x86-64 vendor/lld/dist/test/old-elf/Inputs/tlsAddr.x86-64 vendor/lld/dist/test/old-elf/Inputs/tlsaddr.c vendor/lld/dist/test/old-elf/Inputs/undef-from-main-so.c vendor/lld/dist/test/old-elf/Inputs/undef-from-main.c vendor/lld/dist/test/old-elf/Inputs/undef-pc32.o vendor/lld/dist/test/old-elf/Inputs/undef.o vendor/lld/dist/test/old-elf/Inputs/undef2-so.o.yaml vendor/lld/dist/test/old-elf/Inputs/use-shared-32s.c vendor/lld/dist/test/old-elf/Inputs/use-shared-32s.x86-64 vendor/lld/dist/test/old-elf/Inputs/use-shared.c vendor/lld/dist/test/old-elf/Inputs/use-shared.x86-64 vendor/lld/dist/test/old-elf/Inputs/weaksym.o vendor/lld/dist/test/old-elf/Inputs/writersyms.o vendor/lld/dist/test/old-elf/Inputs/x86-64-relocs.S vendor/lld/dist/test/old-elf/Mips/abi-flags-01.test vendor/lld/dist/test/old-elf/Mips/abi-flags-02.test vendor/lld/dist/test/old-elf/Mips/abi-flags-03.test vendor/lld/dist/test/old-elf/Mips/abi-flags-04.test vendor/lld/dist/test/old-elf/Mips/abi-flags-05.test vendor/lld/dist/test/old-elf/Mips/abi-flags-06.test vendor/lld/dist/test/old-elf/Mips/abi-flags-07.test vendor/lld/dist/test/old-elf/Mips/abi-flags-08.test vendor/lld/dist/test/old-elf/Mips/abi-flags-09.test vendor/lld/dist/test/old-elf/Mips/abi-flags-10.test vendor/lld/dist/test/old-elf/Mips/abi-flags-11.test vendor/lld/dist/test/old-elf/Mips/base-address-64.test vendor/lld/dist/test/old-elf/Mips/base-address.test vendor/lld/dist/test/old-elf/Mips/ctors-order.test vendor/lld/dist/test/old-elf/Mips/driver-hash-style.test vendor/lld/dist/test/old-elf/Mips/dt-textrel-64.test vendor/lld/dist/test/old-elf/Mips/dt-textrel.test vendor/lld/dist/test/old-elf/Mips/dynamic-linking.test vendor/lld/dist/test/old-elf/Mips/dynamic-sym.test vendor/lld/dist/test/old-elf/Mips/dynlib-dynamic.test vendor/lld/dist/test/old-elf/Mips/dynlib-dynsym-micro.test vendor/lld/dist/test/old-elf/Mips/dynlib-dynsym.test vendor/lld/dist/test/old-elf/Mips/dynlib-fileheader-64.test vendor/lld/dist/test/old-elf/Mips/dynlib-fileheader-micro-64.test vendor/lld/dist/test/old-elf/Mips/dynlib-fileheader-micro.test vendor/lld/dist/test/old-elf/Mips/dynlib-fileheader.test vendor/lld/dist/test/old-elf/Mips/dynsym-table-1.test vendor/lld/dist/test/old-elf/Mips/dynsym-table-2.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-1-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-1.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-10.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-11.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-12.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-2-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-2.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-3-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-3.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-4-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-4.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-5-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-5.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-6-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-6.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-7-64.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-7.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-8.test vendor/lld/dist/test/old-elf/Mips/e-flags-merge-9.test vendor/lld/dist/test/old-elf/Mips/entry-name.test vendor/lld/dist/test/old-elf/Mips/exe-dynamic.test vendor/lld/dist/test/old-elf/Mips/exe-dynsym-micro.test vendor/lld/dist/test/old-elf/Mips/exe-dynsym.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-02.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-03.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-64.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-be-64.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-be.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-micro-64.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-micro.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader-n32.test vendor/lld/dist/test/old-elf/Mips/exe-fileheader.test vendor/lld/dist/test/old-elf/Mips/exe-got-micro.test vendor/lld/dist/test/old-elf/Mips/exe-got.test vendor/lld/dist/test/old-elf/Mips/got-page-32-micro.test vendor/lld/dist/test/old-elf/Mips/got-page-32.test vendor/lld/dist/test/old-elf/Mips/got-page-64-micro.test vendor/lld/dist/test/old-elf/Mips/got-page-64.test vendor/lld/dist/test/old-elf/Mips/got16-2.test vendor/lld/dist/test/old-elf/Mips/got16-micro.test vendor/lld/dist/test/old-elf/Mips/got16.test vendor/lld/dist/test/old-elf/Mips/gotsym.test vendor/lld/dist/test/old-elf/Mips/gp-sym-1-micro.test vendor/lld/dist/test/old-elf/Mips/gp-sym-1.test vendor/lld/dist/test/old-elf/Mips/gp-sym-2.test vendor/lld/dist/test/old-elf/Mips/hilo16-1.test vendor/lld/dist/test/old-elf/Mips/hilo16-2.test vendor/lld/dist/test/old-elf/Mips/hilo16-3-overflow.test vendor/lld/dist/test/old-elf/Mips/hilo16-3.test vendor/lld/dist/test/old-elf/Mips/hilo16-4.test vendor/lld/dist/test/old-elf/Mips/hilo16-5.test vendor/lld/dist/test/old-elf/Mips/hilo16-8-micro.test vendor/lld/dist/test/old-elf/Mips/hilo16-9-micro.test vendor/lld/dist/test/old-elf/Mips/initfini-micro.test vendor/lld/dist/test/old-elf/Mips/interpreter-64.test vendor/lld/dist/test/old-elf/Mips/interpreter-n32.test vendor/lld/dist/test/old-elf/Mips/interpreter.test vendor/lld/dist/test/old-elf/Mips/invalid-reginfo.test vendor/lld/dist/test/old-elf/Mips/jalx-align-err.test vendor/lld/dist/test/old-elf/Mips/jalx-jalr.test vendor/lld/dist/test/old-elf/Mips/jalx.test vendor/lld/dist/test/old-elf/Mips/jump-fix-err.test vendor/lld/dist/test/old-elf/Mips/la25-stub-be.test vendor/lld/dist/test/old-elf/Mips/la25-stub-micro-be.test vendor/lld/dist/test/old-elf/Mips/la25-stub-micro.test vendor/lld/dist/test/old-elf/Mips/la25-stub-npic-01.test vendor/lld/dist/test/old-elf/Mips/la25-stub-npic-02.test vendor/lld/dist/test/old-elf/Mips/la25-stub-npic-shared.test vendor/lld/dist/test/old-elf/Mips/la25-stub-pic.test vendor/lld/dist/test/old-elf/Mips/la25-stub.test vendor/lld/dist/test/old-elf/Mips/mips-options-01.test vendor/lld/dist/test/old-elf/Mips/mips-options-02.test vendor/lld/dist/test/old-elf/Mips/mips-options-03.test vendor/lld/dist/test/old-elf/Mips/mips-options-04.test vendor/lld/dist/test/old-elf/Mips/mips-options-05.test vendor/lld/dist/test/old-elf/Mips/mips-options-gp0.test vendor/lld/dist/test/old-elf/Mips/n32-rela-chain.test vendor/lld/dist/test/old-elf/Mips/n64-rel-chain.test vendor/lld/dist/test/old-elf/Mips/n64-rel-shift.test vendor/lld/dist/test/old-elf/Mips/opt-emulation.test vendor/lld/dist/test/old-elf/Mips/pc23-range.test vendor/lld/dist/test/old-elf/Mips/plt-entry-mixed-1.test vendor/lld/dist/test/old-elf/Mips/plt-entry-mixed-2.test vendor/lld/dist/test/old-elf/Mips/plt-entry-mixed-3.test vendor/lld/dist/test/old-elf/Mips/plt-entry-mixed-4.test vendor/lld/dist/test/old-elf/Mips/plt-entry-r6-be.test vendor/lld/dist/test/old-elf/Mips/plt-entry-r6.test vendor/lld/dist/test/old-elf/Mips/plt-header-be.test vendor/lld/dist/test/old-elf/Mips/plt-header-micro-be.test vendor/lld/dist/test/old-elf/Mips/plt-header-micro.test vendor/lld/dist/test/old-elf/Mips/plt-header-mixed.test vendor/lld/dist/test/old-elf/Mips/plt-header.test vendor/lld/dist/test/old-elf/Mips/r26-1-micro.test vendor/lld/dist/test/old-elf/Mips/r26-1.test vendor/lld/dist/test/old-elf/Mips/r26-2-micro.test vendor/lld/dist/test/old-elf/Mips/r26-2.test vendor/lld/dist/test/old-elf/Mips/reginfo-01.test vendor/lld/dist/test/old-elf/Mips/reginfo-02.test vendor/lld/dist/test/old-elf/Mips/reginfo-03.test vendor/lld/dist/test/old-elf/Mips/reginfo-04.test vendor/lld/dist/test/old-elf/Mips/reginfo-05.test vendor/lld/dist/test/old-elf/Mips/rel-16-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-16.test vendor/lld/dist/test/old-elf/Mips/rel-32-be.test vendor/lld/dist/test/old-elf/Mips/rel-32.test vendor/lld/dist/test/old-elf/Mips/rel-64.test vendor/lld/dist/test/old-elf/Mips/rel-call-hilo-01.test vendor/lld/dist/test/old-elf/Mips/rel-call-hilo-micro.test vendor/lld/dist/test/old-elf/Mips/rel-copy-micro.test vendor/lld/dist/test/old-elf/Mips/rel-copy-pc.test vendor/lld/dist/test/old-elf/Mips/rel-copy.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-01-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-01.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-02.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-03-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-03.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-04-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-04.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-05-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-05.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-06-64.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-06.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-07-64.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-07.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-08-64.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-08-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-08.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-09-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-09.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-10-micro.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-10.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-11.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-12.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-13.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-14.test vendor/lld/dist/test/old-elf/Mips/rel-dynamic-15.test vendor/lld/dist/test/old-elf/Mips/rel-eh-01.test vendor/lld/dist/test/old-elf/Mips/rel-eh-02.test vendor/lld/dist/test/old-elf/Mips/rel-eh-03.test vendor/lld/dist/test/old-elf/Mips/rel-got-hilo-01.test vendor/lld/dist/test/old-elf/Mips/rel-got-hilo-micro.test vendor/lld/dist/test/old-elf/Mips/rel-gprel16-micro-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-gprel16-micro.test vendor/lld/dist/test/old-elf/Mips/rel-gprel16-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-gprel16.test vendor/lld/dist/test/old-elf/Mips/rel-gprel32-64.test vendor/lld/dist/test/old-elf/Mips/rel-gprel32.test vendor/lld/dist/test/old-elf/Mips/rel-gprel7-micro-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-gprel7-micro.test vendor/lld/dist/test/old-elf/Mips/rel-hi0-lo16-micro.test vendor/lld/dist/test/old-elf/Mips/rel-high-01.test vendor/lld/dist/test/old-elf/Mips/rel-high-02.test vendor/lld/dist/test/old-elf/Mips/rel-jalr-01.test vendor/lld/dist/test/old-elf/Mips/rel-jalr-02.test vendor/lld/dist/test/old-elf/Mips/rel-lit-micro.test vendor/lld/dist/test/old-elf/Mips/rel-lit.test vendor/lld/dist/test/old-elf/Mips/rel-pc-hilo.test vendor/lld/dist/test/old-elf/Mips/rel-pc16-align.test vendor/lld/dist/test/old-elf/Mips/rel-pc16-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-pc16.test vendor/lld/dist/test/old-elf/Mips/rel-pc18-s3-align.test vendor/lld/dist/test/old-elf/Mips/rel-pc18-s3-micro.test vendor/lld/dist/test/old-elf/Mips/rel-pc18-s3.test vendor/lld/dist/test/old-elf/Mips/rel-pc19-s2-align.test vendor/lld/dist/test/old-elf/Mips/rel-pc19-s2-micro.test vendor/lld/dist/test/old-elf/Mips/rel-pc19-s2.test vendor/lld/dist/test/old-elf/Mips/rel-pc21-s2-align.test vendor/lld/dist/test/old-elf/Mips/rel-pc21-s2-micro.test vendor/lld/dist/test/old-elf/Mips/rel-pc21-s2-overflow.test vendor/lld/dist/test/old-elf/Mips/rel-pc21-s2.test vendor/lld/dist/test/old-elf/Mips/rel-pc26-s2-align.test vendor/lld/dist/test/old-elf/Mips/rel-pc26-s2-micro.test vendor/lld/dist/test/old-elf/Mips/rel-pc26-s2.test vendor/lld/dist/test/old-elf/Mips/rel-pc32.test vendor/lld/dist/test/old-elf/Mips/rel-pc7-10-16-23.test vendor/lld/dist/test/old-elf/Mips/rel-sub-micro.test vendor/lld/dist/test/old-elf/Mips/rel-sub.test vendor/lld/dist/test/old-elf/Mips/rld_map.test vendor/lld/dist/test/old-elf/Mips/sign-rela.test vendor/lld/dist/test/old-elf/Mips/st-other.test vendor/lld/dist/test/old-elf/Mips/static-01.test vendor/lld/dist/test/old-elf/Mips/tls-1-micro.test vendor/lld/dist/test/old-elf/Mips/tls-1.test vendor/lld/dist/test/old-elf/Mips/tls-2-64-static.test vendor/lld/dist/test/old-elf/Mips/tls-2-64.test vendor/lld/dist/test/old-elf/Mips/tls-2-micro.test vendor/lld/dist/test/old-elf/Mips/tls-2-static.test vendor/lld/dist/test/old-elf/Mips/tls-2.test vendor/lld/dist/test/old-elf/Mips/tls-3-64-static.test vendor/lld/dist/test/old-elf/Mips/tls-3-micro.test vendor/lld/dist/test/old-elf/Mips/tls-3-static.test vendor/lld/dist/test/old-elf/Mips/tls-3.test vendor/lld/dist/test/old-elf/Mips/tls-4-64-static.test vendor/lld/dist/test/old-elf/Mips/tls-4-micro.test vendor/lld/dist/test/old-elf/Mips/tls-4-static.test vendor/lld/dist/test/old-elf/Mips/tls-4.test vendor/lld/dist/test/old-elf/Mips/tls-5-64.test vendor/lld/dist/test/old-elf/Mips/tls-5-micro.test vendor/lld/dist/test/old-elf/Mips/tls-5.test vendor/lld/dist/test/old-elf/Mips/validate-rel-01.test vendor/lld/dist/test/old-elf/Mips/validate-rel-03.test vendor/lld/dist/test/old-elf/X86_64/ExampleTarget/triple.test vendor/lld/dist/test/old-elf/X86_64/Inputs/constint.c vendor/lld/dist/test/old-elf/X86_64/Inputs/constint.o vendor/lld/dist/test/old-elf/X86_64/Inputs/debug0.c vendor/lld/dist/test/old-elf/X86_64/Inputs/debug0.x86-64 vendor/lld/dist/test/old-elf/X86_64/Inputs/debug1.c vendor/lld/dist/test/old-elf/X86_64/Inputs/debug1.x86-64 vendor/lld/dist/test/old-elf/X86_64/Inputs/externtls.c vendor/lld/dist/test/old-elf/X86_64/Inputs/externtls.x86-64 vendor/lld/dist/test/old-elf/X86_64/Inputs/fn.c vendor/lld/dist/test/old-elf/X86_64/Inputs/fn.o vendor/lld/dist/test/old-elf/X86_64/Inputs/generaltls-so.o.yaml vendor/lld/dist/test/old-elf/X86_64/Inputs/group/1.c vendor/lld/dist/test/old-elf/X86_64/Inputs/group/1.o vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn.c vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn.o vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn1.c vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn1.o vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn2.c vendor/lld/dist/test/old-elf/X86_64/Inputs/group/fn2.o vendor/lld/dist/test/old-elf/X86_64/Inputs/group/group.sh vendor/lld/dist/test/old-elf/X86_64/Inputs/group/libfn.a vendor/lld/dist/test/old-elf/X86_64/Inputs/group/libfn.so vendor/lld/dist/test/old-elf/X86_64/Inputs/group/libfn1.a vendor/lld/dist/test/old-elf/X86_64/Inputs/group/libfn2.so vendor/lld/dist/test/old-elf/X86_64/Inputs/initfini-option.c vendor/lld/dist/test/old-elf/X86_64/Inputs/initfini-option.o vendor/lld/dist/test/old-elf/X86_64/Inputs/initfini.c vendor/lld/dist/test/old-elf/X86_64/Inputs/initfini.o vendor/lld/dist/test/old-elf/X86_64/Inputs/largebss.c vendor/lld/dist/test/old-elf/X86_64/Inputs/largebss.o vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/1.c vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/1.o vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/2.c vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/2.o vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/3.c vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/3.o vendor/lld/dist/test/old-elf/X86_64/Inputs/layoutpass/lib2.a vendor/lld/dist/test/old-elf/X86_64/Inputs/libfn.a vendor/lld/dist/test/old-elf/X86_64/Inputs/libfn.so vendor/lld/dist/test/old-elf/X86_64/Inputs/main.c vendor/lld/dist/test/old-elf/X86_64/Inputs/main.o vendor/lld/dist/test/old-elf/X86_64/Inputs/multi-ovrd.c vendor/lld/dist/test/old-elf/X86_64/Inputs/multi-ovrd.o vendor/lld/dist/test/old-elf/X86_64/Inputs/multi-weak.c vendor/lld/dist/test/old-elf/X86_64/Inputs/multi-weak.o vendor/lld/dist/test/old-elf/X86_64/Inputs/multiweaksyms.o vendor/lld/dist/test/old-elf/X86_64/Inputs/nmagic.c vendor/lld/dist/test/old-elf/X86_64/Inputs/nmagic.o vendor/lld/dist/test/old-elf/X86_64/Inputs/no-interp-section.c vendor/lld/dist/test/old-elf/X86_64/Inputs/no-interp-section.o vendor/lld/dist/test/old-elf/X86_64/Inputs/note.o vendor/lld/dist/test/old-elf/X86_64/Inputs/note.s vendor/lld/dist/test/old-elf/X86_64/Inputs/note_ro_rw.o vendor/lld/dist/test/old-elf/X86_64/Inputs/note_ro_rw.s vendor/lld/dist/test/old-elf/X86_64/Inputs/ovrd.c vendor/lld/dist/test/old-elf/X86_64/Inputs/ovrd.o vendor/lld/dist/test/old-elf/X86_64/Inputs/rodata.c vendor/lld/dist/test/old-elf/X86_64/Inputs/rodata.o vendor/lld/dist/test/old-elf/X86_64/Inputs/rodata.s vendor/lld/dist/test/old-elf/X86_64/Inputs/rwint.c vendor/lld/dist/test/old-elf/X86_64/Inputs/rwint.o vendor/lld/dist/test/old-elf/X86_64/Inputs/sectionmap.c vendor/lld/dist/test/old-elf/X86_64/Inputs/sectionmap.o vendor/lld/dist/test/old-elf/X86_64/Inputs/undefcpp.c vendor/lld/dist/test/old-elf/X86_64/Inputs/undefcpp.o vendor/lld/dist/test/old-elf/X86_64/Inputs/weak-zero-sized.o vendor/lld/dist/test/old-elf/X86_64/Inputs/weak.c vendor/lld/dist/test/old-elf/X86_64/Inputs/weak.o vendor/lld/dist/test/old-elf/X86_64/Inputs/weak.s vendor/lld/dist/test/old-elf/X86_64/Inputs/zerosizedsection.o vendor/lld/dist/test/old-elf/X86_64/Inputs/zerosizedsection.s vendor/lld/dist/test/old-elf/X86_64/alignoffset.test vendor/lld/dist/test/old-elf/X86_64/debug.test vendor/lld/dist/test/old-elf/X86_64/defsym.test vendor/lld/dist/test/old-elf/X86_64/demangle.test vendor/lld/dist/test/old-elf/X86_64/dontignorezerosize-sections.test vendor/lld/dist/test/old-elf/X86_64/dynamicvars.test vendor/lld/dist/test/old-elf/X86_64/dynlib-nointerp-section.test vendor/lld/dist/test/old-elf/X86_64/dynlib-search.test vendor/lld/dist/test/old-elf/X86_64/dynsym-weak.test vendor/lld/dist/test/old-elf/X86_64/extern-tls.test vendor/lld/dist/test/old-elf/X86_64/general-dynamic-tls.test vendor/lld/dist/test/old-elf/X86_64/imagebase.test vendor/lld/dist/test/old-elf/X86_64/initfini-order.test vendor/lld/dist/test/old-elf/X86_64/initfini.test vendor/lld/dist/test/old-elf/X86_64/largebss.test vendor/lld/dist/test/old-elf/X86_64/layoutpass-order.test vendor/lld/dist/test/old-elf/X86_64/maxpagesize.test vendor/lld/dist/test/old-elf/X86_64/mergesimilarstrings.test vendor/lld/dist/test/old-elf/X86_64/multi-weak-layout.test vendor/lld/dist/test/old-elf/X86_64/multi-weak-override.test vendor/lld/dist/test/old-elf/X86_64/multi-weak-syms-order.test vendor/lld/dist/test/old-elf/X86_64/nmagic.test vendor/lld/dist/test/old-elf/X86_64/noalignsegments.test vendor/lld/dist/test/old-elf/X86_64/note-sections-ro_plus_rw.test vendor/lld/dist/test/old-elf/X86_64/note-sections.test vendor/lld/dist/test/old-elf/X86_64/omagic.test vendor/lld/dist/test/old-elf/X86_64/outputsegments.test vendor/lld/dist/test/old-elf/X86_64/reloc_r_x86_64_16.test vendor/lld/dist/test/old-elf/X86_64/reloc_r_x86_64_pc16.test vendor/lld/dist/test/old-elf/X86_64/reloc_r_x86_64_pc64.test vendor/lld/dist/test/old-elf/X86_64/rodata.test vendor/lld/dist/test/old-elf/X86_64/sectionchoice.test vendor/lld/dist/test/old-elf/X86_64/sectionmap.test vendor/lld/dist/test/old-elf/X86_64/startGroupEndGroup.test vendor/lld/dist/test/old-elf/X86_64/startGroupEndGroupWithDynlib.test vendor/lld/dist/test/old-elf/X86_64/staticlib-search.test vendor/lld/dist/test/old-elf/X86_64/undef.test vendor/lld/dist/test/old-elf/X86_64/underscore-end.test vendor/lld/dist/test/old-elf/X86_64/weak-override.test vendor/lld/dist/test/old-elf/X86_64/weak-zero-sized.test vendor/lld/dist/test/old-elf/X86_64/weaksym.test vendor/lld/dist/test/old-elf/X86_64/yamlinput.test vendor/lld/dist/test/old-elf/abs-dup.objtxt vendor/lld/dist/test/old-elf/abs.test vendor/lld/dist/test/old-elf/allowduplicates.objtxt vendor/lld/dist/test/old-elf/archive-elf-forceload.test vendor/lld/dist/test/old-elf/archive-elf.test vendor/lld/dist/test/old-elf/as-needed.test vendor/lld/dist/test/old-elf/branch.test vendor/lld/dist/test/old-elf/check.test vendor/lld/dist/test/old-elf/checkrodata.test vendor/lld/dist/test/old-elf/common.test vendor/lld/dist/test/old-elf/consecutive-weak-sym-defs.test vendor/lld/dist/test/old-elf/defsym.objtxt vendor/lld/dist/test/old-elf/discard-all.test vendor/lld/dist/test/old-elf/discard-locals.test vendor/lld/dist/test/old-elf/dynamic-segorder.test vendor/lld/dist/test/old-elf/dynamic-undef.test vendor/lld/dist/test/old-elf/dynamic.test vendor/lld/dist/test/old-elf/eh_frame_hdr.test vendor/lld/dist/test/old-elf/entry.objtxt vendor/lld/dist/test/old-elf/export-dynamic.test vendor/lld/dist/test/old-elf/filenotfound.test vendor/lld/dist/test/old-elf/gnulinkonce/gnulinkonce-report-discarded-reference.test vendor/lld/dist/test/old-elf/gnulinkonce/gnulinkonce-report-undef.test vendor/lld/dist/test/old-elf/gnulinkonce/gnulinkonce.test vendor/lld/dist/test/old-elf/gotpcrel.test vendor/lld/dist/test/old-elf/gottpoff.test vendor/lld/dist/test/old-elf/group-cmd-search.test vendor/lld/dist/test/old-elf/hexagon-quickdata-sort.test vendor/lld/dist/test/old-elf/hexagon-quickdata-sortcommon.test vendor/lld/dist/test/old-elf/ifunc.test vendor/lld/dist/test/old-elf/ignore-unknownoption.test vendor/lld/dist/test/old-elf/init_array-order.test vendor/lld/dist/test/old-elf/init_array.test vendor/lld/dist/test/old-elf/initfini-options.test-1.test vendor/lld/dist/test/old-elf/initfini-options.test-2.test vendor/lld/dist/test/old-elf/initfini-options.test-3.test vendor/lld/dist/test/old-elf/librarynotfound.test vendor/lld/dist/test/old-elf/linker-as-ld.test vendor/lld/dist/test/old-elf/linkerscript/Inputs/externs.ls vendor/lld/dist/test/old-elf/linkerscript/Inputs/invalid.ls vendor/lld/dist/test/old-elf/linkerscript/Inputs/prog1.o.yaml vendor/lld/dist/test/old-elf/linkerscript/Inputs/prog2.o.yaml vendor/lld/dist/test/old-elf/linkerscript/Inputs/prog3.o.yaml vendor/lld/dist/test/old-elf/linkerscript/Inputs/simple-pic.o.yaml vendor/lld/dist/test/old-elf/linkerscript/Inputs/simple.o.yaml vendor/lld/dist/test/old-elf/linkerscript/Inputs/valid.ls vendor/lld/dist/test/old-elf/linkerscript/externs.objtxt vendor/lld/dist/test/old-elf/linkerscript/filename-with-wildcards.test vendor/lld/dist/test/old-elf/linkerscript/invalid-script-cli-1.test vendor/lld/dist/test/old-elf/linkerscript/invalid-script-cli-2.test vendor/lld/dist/test/old-elf/linkerscript/invalid.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-all-none.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-custom-none.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-default.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-different.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-extra-program.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-flags.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-has-program.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-invalid.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-misplaced-program.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-no-program.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-one-none.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-program-flags.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-program-good-phdrs.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-program-no-phdrs.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-program-wrong-phdrs.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-same-flags.test vendor/lld/dist/test/old-elf/linkerscript/phdrs-same.test vendor/lld/dist/test/old-elf/linkerscript/phdrs/sections-empty-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/phdrs/sections-no-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/phdrs/sections-none-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/phdrs/undef-empty-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/phdrs/undef-id-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/phdrs/undef-no-phdrs.script vendor/lld/dist/test/old-elf/linkerscript/sections-order.test vendor/lld/dist/test/old-elf/linkerscript/sections-with-wildcards.test vendor/lld/dist/test/old-elf/linkerscript/symbol-definition-so.test vendor/lld/dist/test/old-elf/linkerscript/symbol-definition.test vendor/lld/dist/test/old-elf/linkerscript/valid-script-cli.objtxt vendor/lld/dist/test/old-elf/loginputfiles.test vendor/lld/dist/test/old-elf/mergeatoms.test vendor/lld/dist/test/old-elf/mergeconstants.test vendor/lld/dist/test/old-elf/mergeglobalatoms.test vendor/lld/dist/test/old-elf/no-unique-section-names.test vendor/lld/dist/test/old-elf/note.test vendor/lld/dist/test/old-elf/options/dynamic-linker.test vendor/lld/dist/test/old-elf/options/target-specific-args.test vendor/lld/dist/test/old-elf/phdr.test vendor/lld/dist/test/old-elf/quickdata.test vendor/lld/dist/test/old-elf/reloc.test vendor/lld/dist/test/old-elf/responsefile.test vendor/lld/dist/test/old-elf/rodata.test vendor/lld/dist/test/old-elf/rosegment.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-new-members.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-simple.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-undef-member-other.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-undef-member.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-with-globalsymbols.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-with-undef-external-reference.test vendor/lld/dist/test/old-elf/sectionGroups/sectiongroup-with-undef-signature.test vendor/lld/dist/test/old-elf/sections.test vendor/lld/dist/test/old-elf/sh_addralign.test vendor/lld/dist/test/old-elf/shndx.test vendor/lld/dist/test/old-elf/soname.test vendor/lld/dist/test/old-elf/start-stop-sym.test vendor/lld/dist/test/old-elf/strip-all.test vendor/lld/dist/test/old-elf/stripped-empty.test vendor/lld/dist/test/old-elf/symbols.test vendor/lld/dist/test/old-elf/tls-tbss-size.test vendor/lld/dist/test/old-elf/tls.test vendor/lld/dist/test/old-elf/tlsAddr.test vendor/lld/dist/test/old-elf/undef-from-dso-to-main.test vendor/lld/dist/test/old-elf/undef-from-main-dso.test vendor/lld/dist/test/old-elf/weaksym.test vendor/lld/dist/test/old-elf/wrap.test vendor/lld/dist/test/old-elf/x86-64-dynamic-relocs.test vendor/lld/dist/test/old-elf/x86-64-dynamic.test vendor/lld/dist/test/old-elf/x86.test vendor/lld/dist/test/old-elf/x86_64-kinds.test vendor/lld/dist/test/old-elf/zoption_dtflags.test vendor/lld/dist/tools/CMakeLists.txt vendor/lld/dist/tools/linker-script-test/CMakeLists.txt vendor/lld/dist/tools/linker-script-test/linker-script-test.cpp vendor/lld/dist/tools/lld/TODO.txt vendor/lld/dist/unittests/CoreTests/RangeTest.cpp vendor/lld/dist/unittests/DriverTests/DriverTest.h vendor/lld/dist/unittests/DriverTests/GnuLdDriverTest.cpp vendor/lld/dist/unittests/DriverTests/UniversalDriverTest.cpp Modified: vendor/lld/dist/.arcconfig vendor/lld/dist/CMakeLists.txt vendor/lld/dist/COFF/CMakeLists.txt vendor/lld/dist/COFF/Chunks.cpp vendor/lld/dist/COFF/Chunks.h vendor/lld/dist/COFF/Config.h vendor/lld/dist/COFF/DLL.cpp vendor/lld/dist/COFF/Driver.cpp vendor/lld/dist/COFF/Driver.h vendor/lld/dist/COFF/DriverUtils.cpp vendor/lld/dist/COFF/Error.cpp vendor/lld/dist/COFF/Error.h vendor/lld/dist/COFF/ICF.cpp vendor/lld/dist/COFF/InputFiles.cpp vendor/lld/dist/COFF/InputFiles.h vendor/lld/dist/COFF/ModuleDef.cpp vendor/lld/dist/COFF/Options.td vendor/lld/dist/COFF/PDB.cpp vendor/lld/dist/COFF/README.md vendor/lld/dist/COFF/SymbolTable.cpp vendor/lld/dist/COFF/SymbolTable.h vendor/lld/dist/COFF/Symbols.cpp vendor/lld/dist/COFF/Symbols.h vendor/lld/dist/COFF/Writer.cpp vendor/lld/dist/ELF/CMakeLists.txt vendor/lld/dist/ELF/Config.h vendor/lld/dist/ELF/Driver.cpp vendor/lld/dist/ELF/Driver.h vendor/lld/dist/ELF/DriverUtils.cpp vendor/lld/dist/ELF/Error.cpp vendor/lld/dist/ELF/Error.h vendor/lld/dist/ELF/InputFiles.cpp vendor/lld/dist/ELF/InputFiles.h vendor/lld/dist/ELF/InputSection.cpp vendor/lld/dist/ELF/InputSection.h vendor/lld/dist/ELF/LinkerScript.cpp vendor/lld/dist/ELF/MarkLive.cpp vendor/lld/dist/ELF/Options.td vendor/lld/dist/ELF/OutputSections.cpp vendor/lld/dist/ELF/OutputSections.h vendor/lld/dist/ELF/README.md vendor/lld/dist/ELF/SymbolTable.cpp vendor/lld/dist/ELF/SymbolTable.h vendor/lld/dist/ELF/Symbols.cpp vendor/lld/dist/ELF/Symbols.h vendor/lld/dist/ELF/Target.cpp vendor/lld/dist/ELF/Target.h vendor/lld/dist/ELF/Writer.cpp vendor/lld/dist/ELF/Writer.h vendor/lld/dist/LICENSE.TXT vendor/lld/dist/docs/conf.py vendor/lld/dist/docs/design.rst vendor/lld/dist/docs/index.rst vendor/lld/dist/docs/open_projects.rst vendor/lld/dist/include/lld/Core/ArchiveLibraryFile.h vendor/lld/dist/include/lld/Core/Atom.h vendor/lld/dist/include/lld/Core/DefinedAtom.h vendor/lld/dist/include/lld/Core/Error.h vendor/lld/dist/include/lld/Core/File.h vendor/lld/dist/include/lld/Core/LLVM.h vendor/lld/dist/include/lld/Core/LinkingContext.h vendor/lld/dist/include/lld/Core/Node.h vendor/lld/dist/include/lld/Core/Parallel.h vendor/lld/dist/include/lld/Core/Pass.h vendor/lld/dist/include/lld/Core/PassManager.h vendor/lld/dist/include/lld/Core/Reader.h vendor/lld/dist/include/lld/Core/Reference.h vendor/lld/dist/include/lld/Core/Resolver.h vendor/lld/dist/include/lld/Core/SharedLibraryAtom.h vendor/lld/dist/include/lld/Core/SharedLibraryFile.h vendor/lld/dist/include/lld/Core/Simple.h vendor/lld/dist/include/lld/Core/SymbolTable.h vendor/lld/dist/include/lld/Core/UndefinedAtom.h vendor/lld/dist/include/lld/Core/Writer.h vendor/lld/dist/include/lld/Driver/Driver.h vendor/lld/dist/include/lld/ReaderWriter/MachOLinkingContext.h vendor/lld/dist/lib/Config/Version.cpp vendor/lld/dist/lib/Core/DefinedAtom.cpp vendor/lld/dist/lib/Core/Error.cpp vendor/lld/dist/lib/Core/File.cpp vendor/lld/dist/lib/Core/LinkingContext.cpp vendor/lld/dist/lib/Core/Reader.cpp vendor/lld/dist/lib/Core/Resolver.cpp vendor/lld/dist/lib/Core/SymbolTable.cpp vendor/lld/dist/lib/Driver/CMakeLists.txt vendor/lld/dist/lib/Driver/DarwinLdDriver.cpp vendor/lld/dist/lib/Driver/DarwinLdOptions.td vendor/lld/dist/lib/ReaderWriter/CMakeLists.txt vendor/lld/dist/lib/ReaderWriter/FileArchive.cpp vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler.h vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler_arm.cpp vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler_x86.cpp vendor/lld/dist/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp vendor/lld/dist/lib/ReaderWriter/MachO/Atoms.h vendor/lld/dist/lib/ReaderWriter/MachO/CMakeLists.txt vendor/lld/dist/lib/ReaderWriter/MachO/CompactUnwindPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/ExecutableAtoms.h vendor/lld/dist/lib/ReaderWriter/MachO/File.h vendor/lld/dist/lib/ReaderWriter/MachO/FlatNamespaceFile.h vendor/lld/dist/lib/ReaderWriter/MachO/GOTPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/LayoutPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/LayoutPass.h vendor/lld/dist/lib/ReaderWriter/MachO/MachOLinkingContext.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFile.h vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp vendor/lld/dist/lib/ReaderWriter/MachO/MachOPasses.h vendor/lld/dist/lib/ReaderWriter/MachO/SectCreateFile.h vendor/lld/dist/lib/ReaderWriter/MachO/ShimPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/StubsPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/TLVPass.cpp vendor/lld/dist/lib/ReaderWriter/MachO/WriterMachO.cpp vendor/lld/dist/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp vendor/lld/dist/test/CMakeLists.txt vendor/lld/dist/test/COFF/Inputs/armnt-executable.obj.yaml vendor/lld/dist/test/COFF/Inputs/export.yaml vendor/lld/dist/test/COFF/Inputs/export2.yaml vendor/lld/dist/test/COFF/Inputs/hello32.yaml vendor/lld/dist/test/COFF/Inputs/import.yaml vendor/lld/dist/test/COFF/Inputs/include1a.yaml vendor/lld/dist/test/COFF/Inputs/include1b.yaml vendor/lld/dist/test/COFF/Inputs/include1c.yaml vendor/lld/dist/test/COFF/Inputs/machine-x64.yaml vendor/lld/dist/test/COFF/Inputs/machine-x86.yaml vendor/lld/dist/test/COFF/Inputs/ret42.yaml vendor/lld/dist/test/COFF/alternatename.test vendor/lld/dist/test/COFF/ar-comdat.test vendor/lld/dist/test/COFF/armnt-blx23t.test vendor/lld/dist/test/COFF/armnt-branch24t.test vendor/lld/dist/test/COFF/armnt-imports.test vendor/lld/dist/test/COFF/armnt-mov32t-exec.test vendor/lld/dist/test/COFF/armnt-movt32t.test vendor/lld/dist/test/COFF/base.test vendor/lld/dist/test/COFF/baserel.test vendor/lld/dist/test/COFF/common.test vendor/lld/dist/test/COFF/conflict.test vendor/lld/dist/test/COFF/debug.test vendor/lld/dist/test/COFF/entry-inference.test vendor/lld/dist/test/COFF/entry-inference2.test vendor/lld/dist/test/COFF/entry-inference32.test vendor/lld/dist/test/COFF/entry-mangled.test vendor/lld/dist/test/COFF/export32.test vendor/lld/dist/test/COFF/force.test vendor/lld/dist/test/COFF/icf-circular.test vendor/lld/dist/test/COFF/icf-circular2.test vendor/lld/dist/test/COFF/icf-different-align.test vendor/lld/dist/test/COFF/icf-local.test vendor/lld/dist/test/COFF/icf-simple.test vendor/lld/dist/test/COFF/imports-mangle.test vendor/lld/dist/test/COFF/include.test vendor/lld/dist/test/COFF/internal.test vendor/lld/dist/test/COFF/invalid-obj.test vendor/lld/dist/test/COFF/loadcfg.ll vendor/lld/dist/test/COFF/loadcfg.test vendor/lld/dist/test/COFF/loadcfg32.test vendor/lld/dist/test/COFF/locally-imported.test vendor/lld/dist/test/COFF/locally-imported32.test vendor/lld/dist/test/COFF/long-section-name.test vendor/lld/dist/test/COFF/merge.test vendor/lld/dist/test/COFF/opt.test vendor/lld/dist/test/COFF/out.test vendor/lld/dist/test/COFF/reloc-arm.test vendor/lld/dist/test/COFF/reloc-x64.test vendor/lld/dist/test/COFF/reloc-x86.test vendor/lld/dist/test/COFF/safeseh.test vendor/lld/dist/test/COFF/seh.test vendor/lld/dist/test/COFF/sort-debug.test vendor/lld/dist/test/COFF/subsystem-inference.test vendor/lld/dist/test/COFF/symtab.test vendor/lld/dist/test/COFF/tls.test vendor/lld/dist/test/COFF/tls32.test vendor/lld/dist/test/COFF/unwind.test vendor/lld/dist/test/COFF/weak-external.test vendor/lld/dist/test/COFF/weak-external2.test vendor/lld/dist/test/COFF/weak-external3.test vendor/lld/dist/test/ELF/Inputs/allow-shlib-undefined.s vendor/lld/dist/test/ELF/Inputs/archive.s vendor/lld/dist/test/ELF/Inputs/libsearch-dyn.s vendor/lld/dist/test/ELF/Inputs/libsearch-st.s vendor/lld/dist/test/ELF/Inputs/mips-dynamic.s vendor/lld/dist/test/ELF/Inputs/mips-gp-disp.so vendor/lld/dist/test/ELF/Inputs/shared.s vendor/lld/dist/test/ELF/Inputs/visibility.s vendor/lld/dist/test/ELF/Inputs/whole-archive.s vendor/lld/dist/test/ELF/aarch64-copy.s vendor/lld/dist/test/ELF/aarch64-fpic-abs16.s vendor/lld/dist/test/ELF/aarch64-fpic-add_abs_lo12_nc.s vendor/lld/dist/test/ELF/aarch64-fpic-adr_prel_lo21.s vendor/lld/dist/test/ELF/aarch64-fpic-adr_prel_pg_hi21.s vendor/lld/dist/test/ELF/aarch64-fpic-ldst32_abs_lo12_nc.s vendor/lld/dist/test/ELF/aarch64-fpic-ldst64_abs_lo12_nc.s vendor/lld/dist/test/ELF/aarch64-fpic-ldst8_abs_lo12_nc.s vendor/lld/dist/test/ELF/aarch64-fpic-prel16.s vendor/lld/dist/test/ELF/aarch64-fpic-prel32.s vendor/lld/dist/test/ELF/aarch64-fpic-prel64.s vendor/lld/dist/test/ELF/aarch64-gnu-ifunc-nosym.s vendor/lld/dist/test/ELF/aarch64-gnu-ifunc.s vendor/lld/dist/test/ELF/aarch64-relocs.s vendor/lld/dist/test/ELF/aarch64-tls-ie.s vendor/lld/dist/test/ELF/allow-shlib-undefined.s vendor/lld/dist/test/ELF/amdgpu-entry.s vendor/lld/dist/test/ELF/amdgpu-globals.s vendor/lld/dist/test/ELF/amdgpu-kernels.s vendor/lld/dist/test/ELF/archive.s vendor/lld/dist/test/ELF/as-needed.s vendor/lld/dist/test/ELF/basic-aarch64.s vendor/lld/dist/test/ELF/basic-mips.s vendor/lld/dist/test/ELF/basic-ppc.s vendor/lld/dist/test/ELF/basic.s vendor/lld/dist/test/ELF/basic32.s vendor/lld/dist/test/ELF/basic64be.s vendor/lld/dist/test/ELF/comdat.s vendor/lld/dist/test/ELF/common.s vendor/lld/dist/test/ELF/default-output.s vendor/lld/dist/test/ELF/discard-merge-locals.s vendor/lld/dist/test/ELF/discard-merge-unnamed.s vendor/lld/dist/test/ELF/discard-none.s vendor/lld/dist/test/ELF/duplicate-internal.s vendor/lld/dist/test/ELF/dynamic-reloc-weak.s vendor/lld/dist/test/ELF/dynamic-reloc.s vendor/lld/dist/test/ELF/eh-frame-merge.s vendor/lld/dist/test/ELF/eh-frame-type.test vendor/lld/dist/test/ELF/ehframe-relocation.s vendor/lld/dist/test/ELF/emulation.s vendor/lld/dist/test/ELF/end.s vendor/lld/dist/test/ELF/entry.s vendor/lld/dist/test/ELF/gc-sections-eh.s vendor/lld/dist/test/ELF/gnu-ifunc-i386.s vendor/lld/dist/test/ELF/gnu-ifunc-nosym-i386.s vendor/lld/dist/test/ELF/gnu-ifunc-nosym.s vendor/lld/dist/test/ELF/gnu-ifunc.s vendor/lld/dist/test/ELF/gnu-unique.s vendor/lld/dist/test/ELF/incompatible.s vendor/lld/dist/test/ELF/init-fini.s vendor/lld/dist/test/ELF/invalid-cie-length.s vendor/lld/dist/test/ELF/invalid-cie-length3.s vendor/lld/dist/test/ELF/invalid-cie-length4.s vendor/lld/dist/test/ELF/invalid-cie-length5.s vendor/lld/dist/test/ELF/invalid-cie-reference.s vendor/lld/dist/test/ELF/invalid-elf.test vendor/lld/dist/test/ELF/invalid-relocations.test vendor/lld/dist/test/ELF/libsearch.s vendor/lld/dist/test/ELF/linkerscript-sections.s vendor/lld/dist/test/ELF/linkerscript.s vendor/lld/dist/test/ELF/linkerscript2.s vendor/lld/dist/test/ELF/lit.local.cfg vendor/lld/dist/test/ELF/local-dynamic.s vendor/lld/dist/test/ELF/merge-shared.s vendor/lld/dist/test/ELF/merge-string-align.s vendor/lld/dist/test/ELF/merge-string-error.s vendor/lld/dist/test/ELF/merge-string-no-null.s vendor/lld/dist/test/ELF/merge-string.s vendor/lld/dist/test/ELF/merge.s vendor/lld/dist/test/ELF/mips-dynamic.s vendor/lld/dist/test/ELF/mips-gnu-hash.s vendor/lld/dist/test/ELF/mips-got-relocs.s vendor/lld/dist/test/ELF/mips-gp-disp.s vendor/lld/dist/test/ELF/mips-gprel32-relocs.s vendor/lld/dist/test/ELF/mips-hilo-gp-disp.s vendor/lld/dist/test/ELF/mips-hilo-hi-only.s vendor/lld/dist/test/ELF/mips-hilo.s vendor/lld/dist/test/ELF/mips-jalr.test vendor/lld/dist/test/ELF/mips-pc-relocs.s vendor/lld/dist/test/ELF/no-inhibit-exec.s vendor/lld/dist/test/ELF/no-undefined.s vendor/lld/dist/test/ELF/plt-aarch64.s vendor/lld/dist/test/ELF/plt-i686.s vendor/lld/dist/test/ELF/plt.s vendor/lld/dist/test/ELF/ppc64-addr16-error.s vendor/lld/dist/test/ELF/ppc64-relocs.s vendor/lld/dist/test/ELF/ppc64-toc-restore.s vendor/lld/dist/test/ELF/pre_init_fini_array.s vendor/lld/dist/test/ELF/progname.s vendor/lld/dist/test/ELF/relative-dynamic-reloc-ppc64.s vendor/lld/dist/test/ELF/relative-dynamic-reloc.s vendor/lld/dist/test/ELF/relocatable.s vendor/lld/dist/test/ELF/relocation-copy-i686.s vendor/lld/dist/test/ELF/relocation-copy.s vendor/lld/dist/test/ELF/relocation-i686.s vendor/lld/dist/test/ELF/relocation-in-merge.s vendor/lld/dist/test/ELF/relocation-past-merge-end.s vendor/lld/dist/test/ELF/relocation-size-shared.s vendor/lld/dist/test/ELF/relocation-size.s vendor/lld/dist/test/ELF/relocation.s vendor/lld/dist/test/ELF/relro.s vendor/lld/dist/test/ELF/resolution.s vendor/lld/dist/test/ELF/section-align-0.test vendor/lld/dist/test/ELF/section-name.s vendor/lld/dist/test/ELF/section-symbol.s vendor/lld/dist/test/ELF/shared-be.s vendor/lld/dist/test/ELF/shared.s vendor/lld/dist/test/ELF/soname.s vendor/lld/dist/test/ELF/startstop-shared.s vendor/lld/dist/test/ELF/startstop.s vendor/lld/dist/test/ELF/string-table.s vendor/lld/dist/test/ELF/strip-all.s vendor/lld/dist/test/ELF/symbols.s vendor/lld/dist/test/ELF/sysroot.s vendor/lld/dist/test/ELF/tls-dynamic-i686.s vendor/lld/dist/test/ELF/tls-dynamic.s vendor/lld/dist/test/ELF/tls-got.s vendor/lld/dist/test/ELF/tls-i686.s vendor/lld/dist/test/ELF/tls-opt-gdie.s vendor/lld/dist/test/ELF/tls-opt-iele-i686-nopic.s vendor/lld/dist/test/ELF/tls-opt.s vendor/lld/dist/test/ELF/undef.s vendor/lld/dist/test/ELF/undefined-opt.s vendor/lld/dist/test/ELF/visibility.s vendor/lld/dist/test/ELF/whole-archive.s vendor/lld/dist/test/ELF/writable-merge.s vendor/lld/dist/test/Unit/lit.site.cfg.in vendor/lld/dist/test/lit.cfg vendor/lld/dist/test/lit.site.cfg.in vendor/lld/dist/test/mach-o/arm-interworking-movw.yaml vendor/lld/dist/test/mach-o/arm64-relocs-errors-delta64-offset.yaml vendor/lld/dist/test/mach-o/dependency_info.yaml vendor/lld/dist/test/mach-o/do-not-emit-unwind-fde-arm64.yaml vendor/lld/dist/test/mach-o/dso_handle.yaml vendor/lld/dist/test/mach-o/hello-world-x86_64.yaml vendor/lld/dist/test/mach-o/interposing-section.yaml vendor/lld/dist/test/mach-o/lazy-bind-x86_64.yaml vendor/lld/dist/test/mach-o/mh_bundle_header.yaml vendor/lld/dist/test/mach-o/mh_dylib_header.yaml vendor/lld/dist/test/mach-o/objc_export_list.yaml vendor/lld/dist/test/mach-o/parse-cfstring32.yaml vendor/lld/dist/test/mach-o/parse-compact-unwind64.yaml vendor/lld/dist/test/mach-o/parse-data-relocs-x86_64.yaml vendor/lld/dist/test/mach-o/parse-data.yaml vendor/lld/dist/test/mach-o/parse-eh-frame.yaml vendor/lld/dist/test/mach-o/unwind-info-simple-arm64.yaml vendor/lld/dist/test/mach-o/unwind-info-simple-x86_64.yaml vendor/lld/dist/tools/lld/CMakeLists.txt vendor/lld/dist/tools/lld/lld.cpp vendor/lld/dist/unittests/CoreTests/CMakeLists.txt vendor/lld/dist/unittests/DriverTests/CMakeLists.txt vendor/lld/dist/unittests/DriverTests/DarwinLdDriverTest.cpp vendor/lld/dist/unittests/MachOTests/MachONormalizedFileBinaryReaderTests.cpp vendor/lld/dist/unittests/MachOTests/MachONormalizedFileBinaryWriterTests.cpp vendor/lld/dist/unittests/MachOTests/MachONormalizedFileToAtomsTests.cpp vendor/lld/dist/unittests/MachOTests/MachONormalizedFileYAMLTests.cpp Modified: vendor/lld/dist/.arcconfig ============================================================================== --- vendor/lld/dist/.arcconfig Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/.arcconfig Sat Jul 23 20:48:50 2016 (r303239) @@ -1,4 +1,4 @@ { "project_id" : "lld", - "conduit_uri" : "http://reviews.llvm.org/" + "conduit_uri" : "https://reviews.llvm.org/" } Modified: vendor/lld/dist/CMakeLists.txt ============================================================================== --- vendor/lld/dist/CMakeLists.txt Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/CMakeLists.txt Sat Jul 23 20:48:50 2016 (r303239) @@ -94,7 +94,7 @@ endmacro(add_lld_library) add_subdirectory(lib) -add_subdirectory(tools) +add_subdirectory(tools/lld) if (LLVM_INCLUDE_TESTS) add_subdirectory(test) Modified: vendor/lld/dist/COFF/CMakeLists.txt ============================================================================== --- vendor/lld/dist/COFF/CMakeLists.txt Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/CMakeLists.txt Sat Jul 23 20:48:50 2016 (r303239) @@ -10,6 +10,7 @@ add_lld_library(lldCOFF Error.cpp ICF.cpp InputFiles.cpp + Librarian.cpp MarkLive.cpp ModuleDef.cpp PDB.cpp @@ -28,6 +29,8 @@ add_lld_library(lldCOFF Target Option Support + + LINK_LIBS ${PTHREAD_LIB} ) add_dependencies(lldCOFF COFFOptionsTableGen) Modified: vendor/lld/dist/COFF/Chunks.cpp ============================================================================== --- vendor/lld/dist/COFF/Chunks.cpp Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/Chunks.cpp Sat Jul 23 20:48:50 2016 (r303239) @@ -34,10 +34,7 @@ SectionChunk::SectionChunk(ObjectFile *F // Initialize SectionName. File->getCOFFObj()->getSectionName(Header, SectionName); - // Bit [20:24] contains section alignment. Both 0 and 1 mean alignment 1. - unsigned Shift = (Header->Characteristics >> 20) & 0xF; - if (Shift > 0) - Align = uint32_t(1) << (Shift - 1); + Align = Header->getAlignment(); // Only COMDAT sections are subject of dead-stripping. Live = !isCOMDAT(); @@ -64,7 +61,7 @@ void SectionChunk::applyRelX64(uint8_t * case IMAGE_REL_AMD64_SECTION: add16(Off, Sym->getSectionIndex()); break; case IMAGE_REL_AMD64_SECREL: add32(Off, Sym->getSecrel()); break; default: - error("Unsupported relocation type"); + fatal("unsupported relocation type"); } } @@ -79,7 +76,7 @@ void SectionChunk::applyRelX86(uint8_t * case IMAGE_REL_I386_SECTION: add16(Off, Sym->getSectionIndex()); break; case IMAGE_REL_I386_SECREL: add32(Off, Sym->getSecrel()); break; default: - error("Unsupported relocation type"); + fatal("unsupported relocation type"); } } @@ -123,7 +120,7 @@ void SectionChunk::applyRelARM(uint8_t * case IMAGE_REL_ARM_BRANCH24T: applyBranch24T(Off, S - P - 4); break; case IMAGE_REL_ARM_BLX23T: applyBranch24T(Off, S - P - 4); break; default: - error("Unsupported relocation type"); + fatal("unsupported relocation type"); } } @@ -310,7 +307,7 @@ void SEHTableChunk::writeTo(uint8_t *Buf BaserelChunk::BaserelChunk(uint32_t Page, Baserel *Begin, Baserel *End) { // Block header consists of 4 byte page RVA and 4 byte block size. // Each entry is 2 byte. Last entry may be padding. - Data.resize(align((End - Begin) * 2 + 8, 4)); + Data.resize(alignTo((End - Begin) * 2 + 8, 4)); uint8_t *P = Data.data(); write32le(P, Page); write32le(P + 4, Data.size()); Modified: vendor/lld/dist/COFF/Chunks.h ============================================================================== --- vendor/lld/dist/COFF/Chunks.h Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/Chunks.h Sat Jul 23 20:48:50 2016 (r303239) @@ -18,6 +18,7 @@ #include "llvm/ADT/iterator_range.h" #include "llvm/Object/COFF.h" #include +#include #include namespace lld { @@ -138,6 +139,7 @@ public: SectionChunk(ObjectFile *File, const coff_section *Header); static bool classof(const Chunk *C) { return C->kind() == SectionKind; } size_t getSize() const override { return Header->SizeOfRawData; } + ArrayRef getContents() const; void writeTo(uint8_t *Buf) const override; bool hasData() const override; uint32_t getPermissions() const override; @@ -186,8 +188,6 @@ public: uint32_t Checksum = 0; private: - ArrayRef getContents() const; - // A file this chunk was created from. ObjectFile *File; @@ -295,7 +295,7 @@ private: // functions. x86-only. class SEHTableChunk : public Chunk { public: - explicit SEHTableChunk(std::set S) : Syms(S) {} + explicit SEHTableChunk(std::set S) : Syms(std::move(S)) {} size_t getSize() const override { return Syms.size() * 4; } void writeTo(uint8_t *Buf) const override; @@ -326,10 +326,6 @@ public: uint8_t Type; }; -inline uint64_t align(uint64_t Value, uint64_t Align) { - return llvm::RoundUpToAlignment(Value, Align); -} - } // namespace coff } // namespace lld Modified: vendor/lld/dist/COFF/Config.h ============================================================================== --- vendor/lld/dist/COFF/Config.h Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/Config.h Sat Jul 23 20:48:50 2016 (r303239) @@ -106,11 +106,15 @@ struct Configuration { // Used for /merge:from=to (e.g. /merge:.rdata=.text) std::map Merge; + // Used for /section=.name,{DEKPRSW} to set section attributes. + std::map Section; + // Options for manifest files. ManifestKind Manifest = SideBySide; int ManifestID = 1; StringRef ManifestDependency; bool ManifestUAC = true; + std::vector ManifestInput; StringRef ManifestLevel = "'asInvoker'"; StringRef ManifestUIAccess = "'false'"; StringRef ManifestFile; Modified: vendor/lld/dist/COFF/DLL.cpp ============================================================================== --- vendor/lld/dist/COFF/DLL.cpp Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/DLL.cpp Sat Jul 23 20:48:50 2016 (r303239) @@ -45,7 +45,7 @@ public: size_t getSize() const override { // Starts with 2 byte Hint field, followed by a null-terminated string, // ends with 0 or 1 byte padding. - return align(Name.size() + 3, 2); + return alignTo(Name.size() + 3, 2); } void writeTo(uint8_t *Buf) const override { Modified: vendor/lld/dist/COFF/Driver.cpp ============================================================================== --- vendor/lld/dist/COFF/Driver.cpp Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/Driver.cpp Sat Jul 23 20:48:50 2016 (r303239) @@ -14,6 +14,7 @@ #include "SymbolTable.h" #include "Symbols.h" #include "Writer.h" +#include "lld/Driver/Driver.h" #include "llvm/ADT/Optional.h" #include "llvm/LibDriver/LibDriver.h" #include "llvm/Option/Arg.h" @@ -40,27 +41,28 @@ namespace coff { Configuration *Config; LinkerDriver *Driver; -void link(llvm::ArrayRef Args) { +bool link(llvm::ArrayRef Args) { Configuration C; LinkerDriver D; Config = &C; Driver = &D; - return Driver->link(Args); + Driver->link(Args); + return true; } -// Drop directory components and replace extension with ".exe". +// Drop directory components and replace extension with ".exe" or ".dll". static std::string getOutputPath(StringRef Path) { auto P = Path.find_last_of("\\/"); StringRef S = (P == StringRef::npos) ? Path : Path.substr(P + 1); - return (S.substr(0, S.rfind('.')) + ".exe").str(); + const char* E = Config->DLL ? ".dll" : ".exe"; + return (S.substr(0, S.rfind('.')) + E).str(); } // Opens a file. Path has to be resolved already. // Newly created memory buffers are owned by this driver. MemoryBufferRef LinkerDriver::openFile(StringRef Path) { - auto MBOrErr = MemoryBuffer::getFile(Path); - error(MBOrErr, Twine("Could not open ") + Path); - std::unique_ptr &MB = *MBOrErr; + std::unique_ptr MB = + check(MemoryBuffer::getFile(Path), "could not open " + Path); MemoryBufferRef MBRef = MB->getMemBufferRef(); OwningMBs.push_back(std::move(MB)); // take ownership return MBRef; @@ -116,12 +118,16 @@ void LinkerDriver::parseDirectives(Strin case OPT_nodefaultlib: Config->NoDefaultLibs.insert(doFindLib(Arg->getValue())); break; + case OPT_section: + parseSection(Arg->getValue()); + break; case OPT_editandcontinue: + case OPT_fastfail: case OPT_guardsym: case OPT_throwingnew: break; default: - error(Twine(Arg->getSpelling()) + " is not allowed in .drectve"); + fatal(Arg->getSpelling() + " is not allowed in .drectve"); } } } @@ -246,7 +252,7 @@ void LinkerDriver::link(llvm::ArrayRef 1 && StringRef(ArgsArr[1]).equals_lower("/lib")) { if (llvm::libDriverMain(ArgsArr.slice(1)) != 0) - error("lib failed"); + fatal("lib failed"); return; } @@ -268,7 +274,7 @@ void LinkerDriver::link(llvm::ArrayRefNoEntry = true; } @@ -308,7 +314,7 @@ void LinkerDriver::link(llvm::ArrayRefRelocatable = false; Config->DynamicBase = false; } @@ -382,17 +388,17 @@ void LinkerDriver::link(llvm::ArrayRefLTOOptLevel) || Config->LTOOptLevel > 3) - error("/opt:lldlto: invalid optimization level: " + OptLevel); + fatal("/opt:lldlto: invalid optimization level: " + OptLevel); continue; } if (StringRef(S).startswith("lldltojobs=")) { StringRef Jobs = StringRef(S).substr(11); if (Jobs.getAsInteger(10, Config->LTOJobs) || Config->LTOJobs == 0) - error("/opt:lldltojobs: invalid job count: " + Jobs); + fatal("/opt:lldltojobs: invalid job count: " + Jobs); continue; } if (S != "ref" && S != "lbr" && S != "nolbr") - error(Twine("/opt: unknown option: ") + S); + fatal("/opt: unknown option: " + S); } } @@ -404,6 +410,10 @@ void LinkerDriver::link(llvm::ArrayRefgetValue()); + // Handle /section + for (auto *Arg : Args.filtered(OPT_section)) + parseSection(Arg->getValue()); + // Handle /manifest if (auto *Arg = Args.getLastArg(OPT_manifest_colon)) parseManifest(Arg->getValue()); @@ -420,6 +430,10 @@ void LinkerDriver::link(llvm::ArrayRefManifestFile = Arg->getValue(); + // Handle /manifestinput + for (auto *Arg : Args.filtered(OPT_manifestinput)) + Config->ManifestInput.push_back(Arg->getValue()); + // Handle miscellaneous boolean flags. if (Args.hasArg(OPT_allowbind_no)) Config->AllowBind = false; @@ -485,7 +499,7 @@ void LinkerDriver::link(llvm::ArrayRefMachine != MT) - error(Twine(File->getShortName()) + ": machine type " + machineToStr(MT) + + fatal(File->getShortName() + ": machine type " + machineToStr(MT) + " conflicts with " + machineToStr(Config->Machine)); } if (Config->Machine == IMAGE_FILE_MACHINE_UNKNOWN) { @@ -520,7 +534,7 @@ void LinkerDriver::link(llvm::ArrayRefEntry = addUndefined(S); if (Config->Verbose) llvm::outs() << "Entry name inferred: " << S << "\n"; @@ -627,14 +641,14 @@ void LinkerDriver::link(llvm::ArrayRefSubsystem == IMAGE_SUBSYSTEM_UNKNOWN) { Config->Subsystem = inferSubsystem(); if (Config->Subsystem == IMAGE_SUBSYSTEM_UNKNOWN) - error("subsystem must be defined"); + fatal("subsystem must be defined"); } // Handle /safeseh. if (Args.hasArg(OPT_safeseh)) for (ObjectFile *File : Symtab.ObjectFiles) if (!File->SEHCompat) - error("/safeseh: " + File->getName() + " is not compatible with SEH"); + fatal("/safeseh: " + File->getName() + " is not compatible with SEH"); // Windows specific -- when we are creating a .dll file, we also // need to create a .lib file. @@ -668,7 +682,8 @@ void LinkerDriver::link(llvm::ArrayRefgetValue(), EC, OpenFlags::F_Text); - error(EC, "Could not create the symbol map"); + if (EC) + fatal(EC, "could not create the symbol map"); Symtab.printMap(Out); } // Call exit to avoid calling destructors. Modified: vendor/lld/dist/COFF/Driver.h ============================================================================== --- vendor/lld/dist/COFF/Driver.h Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/Driver.h Sat Jul 23 20:48:50 2016 (r303239) @@ -34,9 +34,6 @@ using llvm::COFF::WindowsSubsystem; using llvm::Optional; class InputFile; -// Entry point of the COFF linker. -void link(llvm::ArrayRef Args); - // Implemented in MarkLive.cpp. void markLive(const std::vector &Chunks); @@ -136,6 +133,7 @@ void parseSubsystem(StringRef Arg, Windo void parseAlternateName(StringRef); void parseMerge(StringRef); +void parseSection(StringRef); // Parses a string in the form of "EMBED[,=]|NO". void parseManifest(StringRef Arg); @@ -163,7 +161,6 @@ void checkFailIfMismatch(StringRef Arg); std::unique_ptr convertResToCOFF(const std::vector &MBs); -void touchFile(StringRef Path); void createPDB(StringRef Path); // Create enum with OPT_xxx values for each option in Options.td Modified: vendor/lld/dist/COFF/DriverUtils.cpp ============================================================================== --- vendor/lld/dist/COFF/DriverUtils.cpp Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/DriverUtils.cpp Sat Jul 23 20:48:50 2016 (r303239) @@ -19,15 +19,12 @@ #include "Symbols.h" #include "llvm/ADT/Optional.h" #include "llvm/ADT/StringSwitch.h" -#include "llvm/Object/Archive.h" -#include "llvm/Object/ArchiveWriter.h" #include "llvm/Object/COFF.h" #include "llvm/Option/Arg.h" #include "llvm/Option/ArgList.h" #include "llvm/Option/Option.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/FileUtilities.h" -#include "llvm/Support/Path.h" #include "llvm/Support/Process.h" #include "llvm/Support/Program.h" #include "llvm/Support/raw_ostream.h" @@ -53,7 +50,8 @@ public: void run() { ErrorOr ExeOrErr = llvm::sys::findProgramByName(Prog); - error(ExeOrErr, Twine("unable to find ") + Prog + " in PATH: "); + if (auto EC = ExeOrErr.getError()) + fatal(EC, "unable to find " + Prog + " in PATH: "); const char *Exe = Saver.save(*ExeOrErr); Args.insert(Args.begin(), Exe); Args.push_back(nullptr); @@ -61,7 +59,7 @@ public: for (const char *S : Args) if (S) llvm::errs() << S << " "; - error("failed"); + fatal("ExecuteAndWait failed"); } } @@ -85,7 +83,7 @@ MachineTypes getMachineType(StringRef S) .Default(IMAGE_FILE_MACHINE_UNKNOWN); if (MT != IMAGE_FILE_MACHINE_UNKNOWN) return MT; - error(Twine("unknown /machine argument: ") + S); + fatal("unknown /machine argument: " + S); } StringRef machineToStr(MachineTypes MT) { @@ -106,9 +104,9 @@ void parseNumbers(StringRef Arg, uint64_ StringRef S1, S2; std::tie(S1, S2) = Arg.split(','); if (S1.getAsInteger(0, *Addr)) - error(Twine("invalid number: ") + S1); + fatal("invalid number: " + S1); if (Size && !S2.empty() && S2.getAsInteger(0, *Size)) - error(Twine("invalid number: ") + S2); + fatal("invalid number: " + S2); } // Parses a string in the form of "[.]". @@ -117,10 +115,10 @@ void parseVersion(StringRef Arg, uint32_ StringRef S1, S2; std::tie(S1, S2) = Arg.split('.'); if (S1.getAsInteger(0, *Major)) - error(Twine("invalid number: ") + S1); + fatal("invalid number: " + S1); *Minor = 0; if (!S2.empty() && S2.getAsInteger(0, *Minor)) - error(Twine("invalid number: ") + S2); + fatal("invalid number: " + S2); } // Parses a string in the form of "[,[.]]". @@ -140,7 +138,7 @@ void parseSubsystem(StringRef Arg, Windo .Case("windows", IMAGE_SUBSYSTEM_WINDOWS_GUI) .Default(IMAGE_SUBSYSTEM_UNKNOWN); if (*Sys == IMAGE_SUBSYSTEM_UNKNOWN) - error(Twine("unknown subsystem: ") + SysStr); + fatal("unknown subsystem: " + SysStr); if (!Ver.empty()) parseVersion(Ver, Major, Minor); } @@ -151,10 +149,10 @@ void parseAlternateName(StringRef S) { StringRef From, To; std::tie(From, To) = S.split('='); if (From.empty() || To.empty()) - error(Twine("/alternatename: invalid argument: ") + S); + fatal("/alternatename: invalid argument: " + S); auto It = Config->AlternateNames.find(From); if (It != Config->AlternateNames.end() && It->second != To) - error(Twine("/alternatename: conflicts: ") + S); + fatal("/alternatename: conflicts: " + S); Config->AlternateNames.insert(It, std::make_pair(From, To)); } @@ -164,7 +162,7 @@ void parseMerge(StringRef S) { StringRef From, To; std::tie(From, To) = S.split('='); if (From.empty() || To.empty()) - error(Twine("/merge: invalid argument: ") + S); + fatal("/merge: invalid argument: " + S); auto Pair = Config->Merge.insert(std::make_pair(From, To)); bool Inserted = Pair.second; if (!Inserted) { @@ -175,6 +173,47 @@ void parseMerge(StringRef S) { } } +static uint32_t parseSectionAttributes(StringRef S) { + uint32_t Ret = 0; + for (char C : S.lower()) { + switch (C) { + case 'd': + Ret |= IMAGE_SCN_MEM_DISCARDABLE; + break; + case 'e': + Ret |= IMAGE_SCN_MEM_EXECUTE; + break; + case 'k': + Ret |= IMAGE_SCN_MEM_NOT_CACHED; + break; + case 'p': + Ret |= IMAGE_SCN_MEM_NOT_PAGED; + break; + case 'r': + Ret |= IMAGE_SCN_MEM_READ; + break; + case 's': + Ret |= IMAGE_SCN_MEM_SHARED; + break; + case 'w': + Ret |= IMAGE_SCN_MEM_WRITE; + break; + default: + fatal("/section: invalid argument: " + S); + } + } + return Ret; +} + +// Parses /section option argument. +void parseSection(StringRef S) { + StringRef Name, Attrs; + std::tie(Name, Attrs) = S.split(','); + if (Name.empty() || Attrs.empty()) + fatal("/section: invalid argument: " + S); + Config->Section[Name] = parseSectionAttributes(Attrs); +} + // Parses a string in the form of "EMBED[,=]|NO". // Results are directly written to Config. void parseManifest(StringRef Arg) { @@ -183,16 +222,16 @@ void parseManifest(StringRef Arg) { return; } if (!Arg.startswith_lower("embed")) - error(Twine("Invalid option ") + Arg); + fatal("invalid option " + Arg); Config->Manifest = Configuration::Embed; Arg = Arg.substr(strlen("embed")); if (Arg.empty()) return; if (!Arg.startswith_lower(",id=")) - error(Twine("Invalid option ") + Arg); + fatal("invalid option " + Arg); Arg = Arg.substr(strlen(",id=")); if (Arg.getAsInteger(0, Config->ManifestID)) - error(Twine("Invalid option ") + Arg); + fatal("invalid option " + Arg); } // Parses a string in the form of "level=|uiAccess=|NO". @@ -216,7 +255,7 @@ void parseManifestUAC(StringRef Arg) { std::tie(Config->ManifestUIAccess, Arg) = Arg.split(" "); continue; } - error(Twine("Invalid option ") + Arg); + fatal("invalid option " + Arg); } } @@ -240,10 +279,19 @@ static void quoteAndPrint(raw_ostream &O } } -// Create a manifest file contents. -static std::string createManifestXml() { - std::string S; - llvm::raw_string_ostream OS(S); +// Create the default manifest file as a temporary file. +static std::string createDefaultXml() { + // Create a temporary file. + SmallString<128> Path; + if (auto EC = sys::fs::createTemporaryFile("tmp", "manifest", Path)) + fatal(EC, "cannot create a temporary file"); + + // Open the temporary file for writing. + std::error_code EC; + llvm::raw_fd_ostream OS(Path, EC, sys::fs::F_Text); + if (EC) + fatal(EC, "failed to open " + Path); + // Emit the XML. Note that we do *not* verify that the XML attributes are // syntactically correct. This is intentional for link.exe compatibility. OS << "\n" @@ -267,21 +315,57 @@ static std::string createManifestXml() { } } OS << "\n"; - OS.flush(); - return S; + OS.close(); + return StringRef(Path); +} + +static std::string readFile(StringRef Path) { + std::unique_ptr MB = + check(MemoryBuffer::getFile(Path), "could not open " + Path); + std::unique_ptr Buf(std::move(MB)); + return Buf->getBuffer(); +} + +static std::string createManifestXml() { + // Create the default manifest file. + std::string Path1 = createDefaultXml(); + if (Config->ManifestInput.empty()) + return readFile(Path1); + + // If manifest files are supplied by the user using /MANIFESTINPUT + // option, we need to merge them with the default manifest. + SmallString<128> Path2; + if (auto EC = sys::fs::createTemporaryFile("tmp", "manifest", Path2)) + fatal(EC, "cannot create a temporary file"); + FileRemover Remover1(Path1); + FileRemover Remover2(Path2); + + Executor E("mt.exe"); + E.add("/manifest"); + E.add(Path1); + for (StringRef Filename : Config->ManifestInput) { + E.add("/manifest"); + E.add(Filename); + } + E.add("/nologo"); + E.add("/out:" + StringRef(Path2)); + E.run(); + return readFile(Path2); } // Create a resource file containing a manifest XML. std::unique_ptr createManifestRes() { // Create a temporary file for the resource script file. SmallString<128> RCPath; - std::error_code EC = sys::fs::createTemporaryFile("tmp", "rc", RCPath); - error(EC, "cannot create a temporary file"); + if (auto EC = sys::fs::createTemporaryFile("tmp", "rc", RCPath)) + fatal(EC, "cannot create a temporary file"); FileRemover RCRemover(RCPath); // Open the temporary file for writing. + std::error_code EC; llvm::raw_fd_ostream Out(RCPath, EC, sys::fs::F_Text); - error(EC, Twine("failed to open ") + RCPath); + if (EC) + fatal(EC, "failed to open " + RCPath); // Write resource script to the RC file. Out << "#define LANG_ENGLISH 9\n" @@ -296,8 +380,8 @@ std::unique_ptr createMani // Create output resource file. SmallString<128> ResPath; - EC = sys::fs::createTemporaryFile("tmp", "res", ResPath); - error(EC, "cannot create a temporary file"); + if (auto EC = sys::fs::createTemporaryFile("tmp", "res", ResPath)) + fatal(EC, "cannot create a temporary file"); Executor E("rc.exe"); E.add("/fo"); @@ -305,18 +389,17 @@ std::unique_ptr createMani E.add("/nologo"); E.add(RCPath.str()); E.run(); - ErrorOr> Ret = MemoryBuffer::getFile(ResPath); - error(Ret, Twine("Could not open ") + ResPath); - return std::move(*Ret); + return check(MemoryBuffer::getFile(ResPath), "could not open " + ResPath); } void createSideBySideManifest() { std::string Path = Config->ManifestFile; if (Path == "") - Path = (Twine(Config->OutputFile) + ".manifest").str(); + Path = Config->OutputFile + ".manifest"; std::error_code EC; llvm::raw_fd_ostream Out(Path, EC, llvm::sys::fs::F_Text); - error(EC, "failed to create manifest"); + if (EC) + fatal(EC, "failed to create manifest"); Out << createManifestXml(); } @@ -380,7 +463,7 @@ Export parseExport(StringRef Arg) { return E; err: - error(Twine("invalid /export: ") + Arg); + fatal("invalid /export: " + Arg); } static StringRef undecorate(StringRef Sym) { @@ -398,7 +481,7 @@ void fixupExports() { if (E.Ordinal == 0) continue; if (!Ords.insert(E.Ordinal).second) - error("duplicate export ordinal: " + E.Name); + fatal("duplicate export ordinal: " + E.Name); } for (Export &E : Config->Exports) { @@ -459,11 +542,11 @@ void checkFailIfMismatch(StringRef Arg) StringRef K, V; std::tie(K, V) = Arg.split('='); if (K.empty() || V.empty()) - error(Twine("/failifmismatch: invalid argument: ") + Arg); + fatal("/failifmismatch: invalid argument: " + Arg); StringRef Existing = Config->MustMatch[K]; if (!Existing.empty() && V != Existing) - error(Twine("/failifmismatch: mismatch detected: ") + Existing + " and " + - V + " for key " + K); + fatal("/failifmismatch: mismatch detected: " + Existing + " and " + V + + " for key " + K); Config->MustMatch[K] = V; } @@ -473,8 +556,8 @@ std::unique_ptr convertResToCOFF(const std::vector &MBs) { // Create an output file path. SmallString<128> Path; - if (llvm::sys::fs::createTemporaryFile("resource", "obj", Path)) - error("Could not create temporary file"); + if (auto EC = llvm::sys::fs::createTemporaryFile("resource", "obj", Path)) + fatal(EC, "could not create temporary file"); // Execute cvtres.exe. Executor E("cvtres.exe"); @@ -485,170 +568,7 @@ convertResToCOFF(const std::vector> Ret = MemoryBuffer::getFile(Path); - error(Ret, Twine("Could not open ") + Path); - return std::move(*Ret); -} - -static std::string writeToTempFile(StringRef Contents) { - SmallString<128> Path; - int FD; - if (llvm::sys::fs::createTemporaryFile("tmp", "def", FD, Path)) { - llvm::errs() << "failed to create a temporary file\n"; - return ""; - } - llvm::raw_fd_ostream OS(FD, /*shouldClose*/ true); - OS << Contents; - return Path.str(); -} - -void touchFile(StringRef Path) { - int FD; - std::error_code EC = sys::fs::openFileForWrite(Path, FD, sys::fs::F_Append); - error(EC, "failed to create a file"); - sys::Process::SafelyCloseFileDescriptor(FD); -} - -static std::string getImplibPath() { - if (!Config->Implib.empty()) - return Config->Implib; - SmallString<128> Out = StringRef(Config->OutputFile); - sys::path::replace_extension(Out, ".lib"); - return Out.str(); -} - -static std::unique_ptr createEmptyImportLibrary() { - std::string S = (Twine("LIBRARY \"") + - llvm::sys::path::filename(Config->OutputFile) + "\"\n") - .str(); - std::string Path1 = writeToTempFile(S); - std::string Path2 = getImplibPath(); - llvm::FileRemover Remover1(Path1); - llvm::FileRemover Remover2(Path2); - - Executor E("lib.exe"); - E.add("/nologo"); - E.add("/machine:" + machineToStr(Config->Machine)); - E.add(Twine("/def:") + Path1); - E.add(Twine("/out:") + Path2); - E.run(); - - ErrorOr> BufOrErr = - MemoryBuffer::getFile(Path2, -1, false); - error(BufOrErr, Twine("Failed to open ") + Path2); - return MemoryBuffer::getMemBufferCopy((*BufOrErr)->getBuffer()); -} - -static std::vector -readMembers(const object::Archive &Archive) { - std::vector V; - for (const auto &ChildOrErr : Archive.children()) { - error(ChildOrErr, "Archive::Child::getName failed"); - const object::Archive::Child C(*ChildOrErr); - ErrorOr NameOrErr = C.getName(); - error(NameOrErr, "Archive::Child::getName failed"); - V.emplace_back(C, *NameOrErr); - } - return V; -} - -// This class creates short import files which is described in -// PE/COFF spec 7. Import Library Format. -class ShortImportCreator { -public: - ShortImportCreator(object::Archive *A, StringRef S) : Parent(A), DLLName(S) {} - - NewArchiveIterator create(StringRef Sym, uint16_t Ordinal, - ImportNameType NameType, bool isData) { - size_t ImpSize = DLLName.size() + Sym.size() + 2; // +2 for NULs - size_t Size = sizeof(object::ArchiveMemberHeader) + - sizeof(coff_import_header) + ImpSize; - char *Buf = Alloc.Allocate(Size); - memset(Buf, 0, Size); - char *P = Buf; - - // Write archive member header - auto *Hdr = reinterpret_cast(P); - P += sizeof(*Hdr); - sprintf(Hdr->Name, "%-12s", "dummy"); - sprintf(Hdr->LastModified, "%-12d", 0); - sprintf(Hdr->UID, "%-6d", 0); - sprintf(Hdr->GID, "%-6d", 0); - sprintf(Hdr->AccessMode, "%-8d", 0644); - sprintf(Hdr->Size, "%-10d", int(sizeof(coff_import_header) + ImpSize)); - - // Write short import library. - auto *Imp = reinterpret_cast(P); - P += sizeof(*Imp); - Imp->Sig2 = 0xFFFF; - Imp->Machine = Config->Machine; - Imp->SizeOfData = ImpSize; - if (Ordinal > 0) - Imp->OrdinalHint = Ordinal; - Imp->TypeInfo = (isData ? IMPORT_DATA : IMPORT_CODE); - Imp->TypeInfo |= NameType << 2; - - // Write symbol name and DLL name. - memcpy(P, Sym.data(), Sym.size()); - P += Sym.size() + 1; - memcpy(P, DLLName.data(), DLLName.size()); - - std::error_code EC; - object::Archive::Child C(Parent, Buf, &EC); - assert(!EC && "We created an invalid buffer"); - return NewArchiveIterator(C, DLLName); - } - -private: - BumpPtrAllocator Alloc; - object::Archive *Parent; - StringRef DLLName; -}; - -static ImportNameType getNameType(StringRef Sym, StringRef ExtName) { - if (Sym != ExtName) - return IMPORT_NAME_UNDECORATE; - if (Config->Machine == I386 && Sym.startswith("_")) - return IMPORT_NAME_NOPREFIX; - return IMPORT_NAME; -} - -static std::string replace(StringRef S, StringRef From, StringRef To) { - size_t Pos = S.find(From); - assert(Pos != StringRef::npos); - return (Twine(S.substr(0, Pos)) + To + S.substr(Pos + From.size())).str(); -} - -// Creates an import library for a DLL. In this function, we first -// create an empty import library using lib.exe and then adds short -// import files to that file. -void writeImportLibrary() { - std::unique_ptr Buf = createEmptyImportLibrary(); - std::error_code EC; - object::Archive Archive(Buf->getMemBufferRef(), EC); - error(EC, "Error reading an empty import file"); - std::vector Members = readMembers(Archive); - - std::string DLLName = llvm::sys::path::filename(Config->OutputFile); - ShortImportCreator ShortImport(&Archive, DLLName); - for (Export &E : Config->Exports) { - if (E.Private) - continue; - if (E.ExtName.empty()) { - Members.push_back(ShortImport.create( - E.SymbolName, E.Ordinal, getNameType(E.SymbolName, E.Name), E.Data)); - } else { - Members.push_back(ShortImport.create( - replace(E.SymbolName, E.Name, E.ExtName), E.Ordinal, - getNameType(E.SymbolName, E.Name), E.Data)); - } - } - - std::string Path = getImplibPath(); - std::pair Result = - writeArchive(Path, Members, /*WriteSymtab*/ true, object::Archive::K_GNU, - /*Deterministic*/ true, /*Thin*/ false); - error(Result.second, Twine("Failed to write ") + Path); + return check(MemoryBuffer::getFile(Path), "could not open " + Path); } // Create OptTable @@ -695,7 +615,7 @@ llvm::opt::InputArgList ArgParser::parse } if (MissingCount) - error(Twine("missing arg value for \"") + Args.getArgString(MissingIndex) + + fatal("missing arg value for \"" + Twine(Args.getArgString(MissingIndex)) + "\", expected " + Twine(MissingCount) + (MissingCount == 1 ? " argument." : " arguments.")); for (auto *Arg : Args.filtered(OPT_UNKNOWN)) Modified: vendor/lld/dist/COFF/Error.cpp ============================================================================== --- vendor/lld/dist/COFF/Error.cpp Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/Error.cpp Sat Jul 23 20:48:50 2016 (r303239) @@ -10,20 +10,23 @@ #include "Error.h" #include "llvm/ADT/Twine.h" +#include "llvm/Support/Error.h" #include "llvm/Support/raw_ostream.h" namespace lld { namespace coff { -void error(const Twine &Msg) { +void fatal(const Twine &Msg) { llvm::errs() << Msg << "\n"; exit(1); } -void error(std::error_code EC, const Twine &Prefix) { - if (!EC) - return; - error(Prefix + ": " + EC.message()); +void fatal(std::error_code EC, const Twine &Msg) { + fatal(Msg + ": " + EC.message()); +} + +void fatal(llvm::Error &Err, const Twine &Msg) { + fatal(errorToErrorCode(std::move(Err)), Msg); } } // namespace coff Modified: vendor/lld/dist/COFF/Error.h ============================================================================== --- vendor/lld/dist/COFF/Error.h Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/Error.h Sat Jul 23 20:48:50 2016 (r303239) @@ -11,15 +11,25 @@ #define LLD_COFF_ERROR_H #include "lld/Core/LLVM.h" +#include "llvm/Support/Error.h" namespace lld { namespace coff { -LLVM_ATTRIBUTE_NORETURN void error(const Twine &Msg); -void error(std::error_code EC, const Twine &Prefix); +LLVM_ATTRIBUTE_NORETURN void fatal(const Twine &Msg); +LLVM_ATTRIBUTE_NORETURN void fatal(std::error_code EC, const Twine &Prefix); +LLVM_ATTRIBUTE_NORETURN void fatal(llvm::Error &Err, const Twine &Prefix); + +template T check(ErrorOr &&V, const Twine &Prefix) { + if (auto EC = V.getError()) + fatal(EC, Prefix); + return std::move(*V); +} -template void error(const ErrorOr &V, const Twine &Prefix) { - error(V.getError(), Prefix); +template T check(Expected E, const Twine &Prefix) { + if (llvm::Error Err = E.takeError()) + fatal(Err, Prefix); + return std::move(*E); } } // namespace coff Modified: vendor/lld/dist/COFF/ICF.cpp ============================================================================== --- vendor/lld/dist/COFF/ICF.cpp Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/ICF.cpp Sat Jul 23 20:48:50 2016 (r303239) @@ -70,7 +70,7 @@ private: static bool equalsConstant(const SectionChunk *A, const SectionChunk *B); static bool equalsVariable(const SectionChunk *A, const SectionChunk *B); bool forEachGroup(std::vector &Chunks, Comparator Eq); - bool partition(ChunkIterator Begin, ChunkIterator End, Comparator Eq); + bool segregate(ChunkIterator Begin, ChunkIterator End, Comparator Eq); std::atomic NextID = { 1 }; }; @@ -148,7 +148,7 @@ bool ICF::equalsVariable(const SectionCh return std::equal(A->Relocs.begin(), A->Relocs.end(), B->Relocs.begin(), Eq); } -bool ICF::partition(ChunkIterator Begin, ChunkIterator End, Comparator Eq) { +bool ICF::segregate(ChunkIterator Begin, ChunkIterator End, Comparator Eq) { bool R = false; for (auto It = Begin;;) { SectionChunk *Head = *It; @@ -171,7 +171,7 @@ bool ICF::forEachGroup(std::vectorGroupID != Head->GroupID; }); - if (partition(It, Bound, Eq)) + if (segregate(It, Bound, Eq)) R = true; It = Bound; } Modified: vendor/lld/dist/COFF/InputFiles.cpp ============================================================================== --- vendor/lld/dist/COFF/InputFiles.cpp Sat Jul 23 20:48:10 2016 (r303238) +++ vendor/lld/dist/COFF/InputFiles.cpp Sat Jul 23 20:48:50 2016 (r303239) @@ -8,30 +8,41 @@ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sat Jul 23 20:49:26 2016 Return-Path: Delivered-To: svn-src-all@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 BCBD3BA2B83; Sat, 23 Jul 2016 20:49:26 +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 7449B1D69; Sat, 23 Jul 2016 20:49:26 +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 u6NKnPsG012432; Sat, 23 Jul 2016 20:49:25 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKnPM2012431; Sat, 23 Jul 2016 20:49:25 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232049.u6NKnPM2012431@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:49:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303240 - vendor/lld/lld-release_39-r276489 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:49:26 -0000 Author: dim Date: Sat Jul 23 20:49:25 2016 New Revision: 303240 URL: https://svnweb.freebsd.org/changeset/base/303240 Log: Tag lld release_39 branch r276489. Added: vendor/lld/lld-release_39-r276489/ - copied from r303239, vendor/lld/dist/ From owner-svn-src-all@freebsd.org Sat Jul 23 20:50:15 2016 Return-Path: Delivered-To: svn-src-all@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 497B8BA2C02; Sat, 23 Jul 2016 20:50: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 794F01EC0; Sat, 23 Jul 2016 20:50: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 u6NKoDX0012549; Sat, 23 Jul 2016 20:50:13 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKoAHA012520; Sat, 23 Jul 2016 20:50:10 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232050.u6NKoAHA012520@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:50:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303241 - in vendor/lldb/dist: . cmake cmake/modules cmake/platforms docs examples/python examples/synthetic include include/lldb include/lldb/API include/lldb/Breakpoint include/lldb/C... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:50:15 -0000 Author: dim Date: Sat Jul 23 20:50:09 2016 New Revision: 303241 URL: https://svnweb.freebsd.org/changeset/base/303241 Log: Vendor import of lldb release_39 branch r276489: https://llvm.org/svn/llvm-project/lldb/branches/release_39@276489 Added: vendor/lldb/dist/examples/python/shadow.py (contents, props changed) vendor/lldb/dist/include/lldb/API/SBMemoryRegionInfo.h (contents, props changed) vendor/lldb/dist/include/lldb/API/SBMemoryRegionInfoList.h (contents, props changed) vendor/lldb/dist/include/lldb/Core/ThreadSafeSTLVector.h (contents, props changed) vendor/lldb/dist/include/lldb/Expression/DiagnosticManager.h (contents, props changed) vendor/lldb/dist/include/lldb/Interpreter/CommandAlias.h (contents, props changed) vendor/lldb/dist/include/lldb/Symbol/ClangUtil.h (contents, props changed) vendor/lldb/dist/include/lldb/Symbol/JavaASTContext.h (contents, props changed) vendor/lldb/dist/include/lldb/lldb-private-defines.h (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/support/encoded_file.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/support/funcutils.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/support/gmodules.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/support/optional_with.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/api/listeners/ vendor/lldb/dist/packages/Python/lldbsuite/test/api/listeners/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/api/listeners/TestListener.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/api/listeners/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/decorators.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/anonymous-struct/ vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/anonymous-struct/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/anonymous-struct/TestCallUserAnonTypedef.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/anonymous-struct/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/fixits/ vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/fixits/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/fixits/TestFixIts.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/fixits/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter/ vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/ vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/TestIRInterpreterPHINodes.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter/TestIRInterpreter.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/multiline/ vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/multiline/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/multiline/TestMultilineExpressions.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/multiline/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/top-level/ vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/top-level/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/top-level/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/top-level/test.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/unwind_expression/ vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/unwind_expression/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/unwind_expression/TestUnwindExpression.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/unwind_expression/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/apropos_with_process/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/apropos_with_process/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/apropos_with_process/TestAproposWithProcess.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/apropos_with_process/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/address_breakpoints/TestBadAddressBreakpoints.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_case_sensitivity/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_case_sensitivity/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_case_sensitivity/TestBreakpointCaseSensitivity.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_case_sensitivity/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_set_restart/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_set_restart/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_set_restart/TestBreakpointSetRestart.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_set_restart/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/source_regexp/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/source_regexp/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/source_regexp/TestSourceRegexBreakpoints.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/source_regexp/a.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/source_regexp/a.h (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/source_regexp/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_script_alias/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_script_alias/.categories vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_script_alias/TestCommandScriptAlias.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_script_alias/tcsacmd.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_script_immediate_output/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_script_immediate_output/TestCommandScriptImmediateOutput.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_script_immediate_output/custom_command.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/TestDataFormatterStdSmartPtr.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/smart_ptr/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-synthtype/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-synthtype/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-synthtype/TestDataFormatterSynthType.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-synthtype/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-synthtype/myIntSynthProvider.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/parray/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/parray/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/parray/TestPrintArray.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/parray/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/poarray/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/poarray/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/poarray/TestPrintObjectArray.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/poarray/main.mm vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/type_summary_list_arg/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/type_summary_list_arg/TestTypeSummaryListArg.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/type_summary_list_script/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/type_summary_list_script/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/type_summary_list_script/TestTypeSummaryListScript.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/type_summary_list_script/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/type_summary_list_script/tslsformatters.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/llvm/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/llvm/TestLLVM.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/memory/cache/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/memory/cache/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/memory/cache/TestMemoryCache.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/memory/cache/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/multidebugger_commands/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/multidebugger_commands/TestMultipleDebuggersCommands.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/nested_alias/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/nested_alias/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/nested_alias/TestNestedAlias.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/nested_alias/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/TestLinuxCore.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/altmain.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/altmain.core (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/altmain.out (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/i386.core (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/i386.out (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/make-core.sh (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/s390x.core (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/s390x.out (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/x86_64.core (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/linux-core/x86_64.out (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/wow64_minidump/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/wow64_minidump/TestWow64MiniDump.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/wow64_minidump/fizzbuzz.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/wow64_minidump/fizzbuzz_wow64.dmp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/ptr_refs/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/ptr_refs/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/ptr_refs/TestPtrRefs.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/ptr_refs/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/basic/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/basic/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/basic/TestTsanBasic.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/basic/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/cpp_global_location/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/cpp_global_location/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/cpp_global_location/TestTsanCPPGlobalLocation.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/cpp_global_location/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/global_location/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/global_location/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/global_location/TestTsanGlobalLocation.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/global_location/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/multiple/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/multiple/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/multiple/main.m vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/thread_leak/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/thread_leak/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/thread_leak/TestTsanThreadLeak.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/thread_leak/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/thread_numbers/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/thread_numbers/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/thread_numbers/TestTsanThreadNumbers.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tsan/thread_numbers/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/TestEhFrameUnwind.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_commands/command/watchpoint_command.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/ vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/TestWatchpointSizes.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_size/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/help/TestApropos.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/issue_verification/TestInvalidDecorator.py.park vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/inlines/TestRedefinitionsInInlines.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/inlines/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/step-target/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/step-target/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/step-target/TestStepTarget.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/step-target/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/unions/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/unions/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/unions/TestUnionMembers.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/unions/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/const_this/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/const_this/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/const_this/TestConstThis.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/const_this/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/extern_c/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/extern_c/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/extern_c/TestExternCSymbols.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/extern_c/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/gmodules/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/gmodules/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/gmodules/TestWithModuleDebugging.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/gmodules/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/gmodules/pch.h (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/inlines/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/inlines/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/inlines/TestInlines.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/inlines/inlines.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/inlines/inlines.h (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/lambdas/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/lambdas/TestLambdas.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/lambdas/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/member-and-local-vars-with-same-name/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/member-and-local-vars-with-same-name/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/member-and-local-vars-with-same-name/TestMembersAndLocalsWithSameName.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/member-and-local-vars-with-same-name/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/TestNamespaceDefinitions.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/a.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/a.mk (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/b.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/b.mk (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/foo.h (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/namespace_definitions/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/printf/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/printf/TestPrintf.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/printf/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/template/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/template/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/template/TestTemplateArgs.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/template/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/unicode-literals/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/unicode-literals/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/unicode-literals/TestUnicodeLiterals.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/unicode-literals/main.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/bitfield_ivars/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/bitfield_ivars/TestBitfieldIvars.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/bitfield_ivars/main.m vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/single-entry-dictionary/main.m vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/variadic_methods/ vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/variadic_methods/TestVariadicMethods.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/variadic_methods/main.m vendor/lldb/dist/packages/Python/lldbsuite/test/lldbplatform.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/nslog/ vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/nslog/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/nslog/TestDarwinNSLogOutput.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/nslog/main.m vendor/lldb/dist/packages/Python/lldbsuite/test/plugins/builder_linux.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/frame/get-variables/ vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/frame/get-variables/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/frame/get-variables/TestGetVariables.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/frame/get-variables/main.c (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/ vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/TestSymbolContextTwoFiles.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/decls.h (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/file1.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/file2.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/test_runner/__init__.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/test_runner/process_control.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/test_runner/test/__init__.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/test_runner/test/test_process_control.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/threadinfo/ vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/threadinfo/Makefile (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/threadinfo/TestMiThreadInfo.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/threadinfo/test_threadinfo.cpp (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/ vendor/lldb/dist/packages/Python/lldbsuite/test_event/__init__.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/build_exception.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/dotest_channels.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/event_builder.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/formatter/ vendor/lldb/dist/packages/Python/lldbsuite/test_event/formatter/__init__.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/formatter/curses.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/formatter/dump_formatter.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/formatter/pickled.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/formatter/results_formatter.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/formatter/xunit.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/test/ vendor/lldb/dist/packages/Python/lldbsuite/test_event/test/resources/ vendor/lldb/dist/packages/Python/lldbsuite/test_event/test/resources/invalid_decorator/ vendor/lldb/dist/packages/Python/lldbsuite/test_event/test/resources/invalid_decorator/TestInvalidDecorator.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/test/src/ vendor/lldb/dist/packages/Python/lldbsuite/test_event/test/src/TestCatchInvalidDecorator.py (contents, props changed) vendor/lldb/dist/packages/Python/lldbsuite/test_event/test/src/event_collector.py (contents, props changed) vendor/lldb/dist/scripts/Xcode/ vendor/lldb/dist/scripts/Xcode/build-llvm.py (contents, props changed) vendor/lldb/dist/scripts/Xcode/lldbbuild.py (contents, props changed) vendor/lldb/dist/scripts/Xcode/package-clang-headers.py (contents, props changed) vendor/lldb/dist/scripts/interface/SBMemoryRegionInfo.i vendor/lldb/dist/scripts/interface/SBMemoryRegionInfoList.i vendor/lldb/dist/source/API/SBMemoryRegionInfo.cpp (contents, props changed) vendor/lldb/dist/source/API/SBMemoryRegionInfoList.cpp (contents, props changed) vendor/lldb/dist/source/Expression/DiagnosticManager.cpp (contents, props changed) vendor/lldb/dist/source/Interpreter/CommandAlias.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ABI/SysV-s390x/ vendor/lldb/dist/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h (contents, props changed) vendor/lldb/dist/source/Plugins/ABI/SysV-s390x/CMakeLists.txt (contents, props changed) vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h (contents, props changed) vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h (contents, props changed) vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ThreadSanitizer/CMakeLists.txt (contents, props changed) vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ThreadSanitizerRuntime.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ThreadSanitizer/ThreadSanitizerRuntime.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/BlockPointer.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/BlockPointer.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxAtomic.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/Java/ vendor/lldb/dist/source/Plugins/Language/Java/CMakeLists.txt (contents, props changed) vendor/lldb/dist/source/Plugins/Language/Java/JavaFormatterFunctions.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/Java/JavaFormatterFunctions.h (contents, props changed) vendor/lldb/dist/source/Plugins/Language/Java/JavaLanguage.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Language/Java/JavaLanguage.h (contents, props changed) vendor/lldb/dist/source/Plugins/LanguageRuntime/Java/ vendor/lldb/dist/source/Plugins/LanguageRuntime/Java/CMakeLists.txt (contents, props changed) vendor/lldb/dist/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Linux/SingleStepCheck.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Linux/SingleStepCheck.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_s390x.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLinux_s390x.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContext_s390x.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_s390x.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Utility/lldb-s390x-register-enums.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Windows/Common/NtStructures.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.h (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserJava.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserJava.h (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/PDB/ vendor/lldb/dist/source/Plugins/SymbolFile/PDB/CMakeLists.txt (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/PDB/PDBASTParser.h (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h (contents, props changed) vendor/lldb/dist/source/Symbol/ClangUtil.cpp (contents, props changed) vendor/lldb/dist/source/Symbol/JavaASTContext.cpp (contents, props changed) vendor/lldb/dist/unittests/Core/ vendor/lldb/dist/unittests/Core/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/Core/DataExtractorTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Core/ScalarTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Host/FileSpecTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Symbol/ vendor/lldb/dist/unittests/Symbol/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/Symbol/TestClangASTContext.cpp (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/ vendor/lldb/dist/unittests/SymbolFile/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/ vendor/lldb/dist/unittests/SymbolFile/PDB/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/ vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-dwarf.cpp (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-dwarf.exe (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb-alt.cpp (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb-nested.h (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb-types.cpp (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb-types.exe (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb-types.pdb (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb.cpp (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb.exe (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb.h (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb.pdb (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/Inputs/ vendor/lldb/dist/unittests/Utility/Inputs/TestModule.c (contents, props changed) vendor/lldb/dist/unittests/Utility/Inputs/TestModule.so (contents, props changed) vendor/lldb/dist/unittests/Utility/ModuleCacheTest.cpp (contents, props changed) Deleted: vendor/lldb/dist/Makefile vendor/lldb/dist/include/Makefile vendor/lldb/dist/include/lldb/Host/linux/Signalfd.h vendor/lldb/dist/include/lldb/Makefile vendor/lldb/dist/lib/Makefile vendor/lldb/dist/packages/Python/lldbsuite/test/curses_results.py vendor/lldb/dist/packages/Python/lldbsuite/test/dotest_channels.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoins/Makefile vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoins/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/inlines/Makefile vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/inlines/inlines.c vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/inlines/inlines.h vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/rdar12991846/ vendor/lldb/dist/packages/Python/lldbsuite/test/plugins/builder_linux2.py vendor/lldb/dist/packages/Python/lldbsuite/test/result_formatter.py vendor/lldb/dist/packages/Python/lldbsuite/test/test_runner/lib/lldb_utils.py vendor/lldb/dist/packages/Python/lldbsuite/test/test_runner/lib/process_control.py vendor/lldb/dist/packages/Python/lldbsuite/test/test_runner/test/process_control_tests.py vendor/lldb/dist/packages/Python/lldbsuite/test/xunit_formatter.py vendor/lldb/dist/scripts/Makefile vendor/lldb/dist/scripts/Python/Makefile vendor/lldb/dist/scripts/Python/modules/Makefile vendor/lldb/dist/scripts/Python/modules/readline/Makefile vendor/lldb/dist/scripts/build-llvm.pl vendor/lldb/dist/scripts/package-clang-headers.py vendor/lldb/dist/source/API/Makefile vendor/lldb/dist/source/Breakpoint/Makefile vendor/lldb/dist/source/Commands/Makefile vendor/lldb/dist/source/Core/Makefile vendor/lldb/dist/source/DataFormatters/Makefile vendor/lldb/dist/source/Expression/Makefile vendor/lldb/dist/source/Host/Makefile vendor/lldb/dist/source/Host/netbsd/Makefile vendor/lldb/dist/source/Initialization/Makefile vendor/lldb/dist/source/Interpreter/Makefile vendor/lldb/dist/source/Makefile vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm/Makefile vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm64/Makefile vendor/lldb/dist/source/Plugins/ABI/MacOSX-i386/Makefile vendor/lldb/dist/source/Plugins/ABI/SysV-arm/Makefile vendor/lldb/dist/source/Plugins/ABI/SysV-arm64/Makefile vendor/lldb/dist/source/Plugins/ABI/SysV-hexagon/Makefile vendor/lldb/dist/source/Plugins/ABI/SysV-i386/Makefile vendor/lldb/dist/source/Plugins/ABI/SysV-mips/Makefile vendor/lldb/dist/source/Plugins/ABI/SysV-mips64/Makefile vendor/lldb/dist/source/Plugins/ABI/SysV-ppc/Makefile vendor/lldb/dist/source/Plugins/ABI/SysV-ppc64/Makefile vendor/lldb/dist/source/Plugins/ABI/SysV-x86_64/Makefile vendor/lldb/dist/source/Plugins/Disassembler/llvm/Makefile vendor/lldb/dist/source/Plugins/DynamicLoader/Darwin-Kernel/Makefile vendor/lldb/dist/source/Plugins/DynamicLoader/Hexagon-DYLD/Makefile vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/Makefile vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/Makefile vendor/lldb/dist/source/Plugins/DynamicLoader/Static/Makefile vendor/lldb/dist/source/Plugins/DynamicLoader/Windows-DYLD/Makefile vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/Makefile vendor/lldb/dist/source/Plugins/ExpressionParser/Go/Makefile vendor/lldb/dist/source/Plugins/Instruction/ARM/Makefile vendor/lldb/dist/source/Plugins/Instruction/ARM64/Makefile vendor/lldb/dist/source/Plugins/Instruction/MIPS/Makefile vendor/lldb/dist/source/Plugins/Instruction/MIPS64/Makefile vendor/lldb/dist/source/Plugins/InstrumentationRuntime/AddressSanitizer/Makefile vendor/lldb/dist/source/Plugins/JITLoader/GDB/Makefile vendor/lldb/dist/source/Plugins/Language/CPlusPlus/Makefile vendor/lldb/dist/source/Plugins/Language/Go/Makefile vendor/lldb/dist/source/Plugins/Language/ObjC/Makefile vendor/lldb/dist/source/Plugins/Language/ObjCPlusPlus/Makefile vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/Makefile vendor/lldb/dist/source/Plugins/LanguageRuntime/Go/Makefile vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/Makefile vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/Makefile vendor/lldb/dist/source/Plugins/Makefile vendor/lldb/dist/source/Plugins/MemoryHistory/asan/Makefile vendor/lldb/dist/source/Plugins/ObjectContainer/BSD-Archive/Makefile vendor/lldb/dist/source/Plugins/ObjectContainer/Universal-Mach-O/Makefile vendor/lldb/dist/source/Plugins/ObjectFile/ELF/Makefile vendor/lldb/dist/source/Plugins/ObjectFile/JIT/Makefile vendor/lldb/dist/source/Plugins/ObjectFile/Mach-O/Makefile vendor/lldb/dist/source/Plugins/ObjectFile/PECOFF/Makefile vendor/lldb/dist/source/Plugins/OperatingSystem/Go/Makefile vendor/lldb/dist/source/Plugins/OperatingSystem/Python/Makefile vendor/lldb/dist/source/Plugins/Platform/Android/Makefile vendor/lldb/dist/source/Plugins/Platform/FreeBSD/Makefile vendor/lldb/dist/source/Plugins/Platform/Kalimba/Makefile vendor/lldb/dist/source/Plugins/Platform/Linux/Makefile vendor/lldb/dist/source/Plugins/Platform/MacOSX/Makefile vendor/lldb/dist/source/Plugins/Platform/Makefile vendor/lldb/dist/source/Plugins/Platform/NetBSD/Makefile vendor/lldb/dist/source/Plugins/Platform/POSIX/Makefile vendor/lldb/dist/source/Plugins/Platform/Windows/Makefile vendor/lldb/dist/source/Plugins/Platform/gdb-server/Makefile vendor/lldb/dist/source/Plugins/Process/FreeBSD/Makefile vendor/lldb/dist/source/Plugins/Process/Linux/Makefile vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/Makefile vendor/lldb/dist/source/Plugins/Process/POSIX/Makefile vendor/lldb/dist/source/Plugins/Process/Utility/Makefile vendor/lldb/dist/source/Plugins/Process/elf-core/Makefile vendor/lldb/dist/source/Plugins/Process/gdb-remote/Makefile vendor/lldb/dist/source/Plugins/Process/mach-core/Makefile vendor/lldb/dist/source/Plugins/ScriptInterpreter/None/Makefile vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/Makefile vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/Makefile vendor/lldb/dist/source/Plugins/SymbolFile/Symtab/Makefile vendor/lldb/dist/source/Plugins/SymbolVendor/ELF/Makefile vendor/lldb/dist/source/Plugins/SymbolVendor/MacOSX/Makefile vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/Makefile vendor/lldb/dist/source/Plugins/UnwindAssembly/InstEmulation/Makefile vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/Makefile vendor/lldb/dist/source/Symbol/Makefile vendor/lldb/dist/source/Target/Makefile vendor/lldb/dist/source/Utility/Makefile vendor/lldb/dist/tools/Makefile vendor/lldb/dist/tools/debugserver/Makefile vendor/lldb/dist/tools/debugserver/source/MacOSX/Makefile vendor/lldb/dist/tools/debugserver/source/MacOSX/i386/Makefile vendor/lldb/dist/tools/debugserver/source/MacOSX/x86_64/Makefile vendor/lldb/dist/tools/debugserver/source/Makefile vendor/lldb/dist/tools/driver/Makefile vendor/lldb/dist/tools/lldb-mi/Makefile vendor/lldb/dist/tools/lldb-mi/Platform.cpp vendor/lldb/dist/tools/lldb-server/Makefile Modified: vendor/lldb/dist/.arcconfig vendor/lldb/dist/.gitignore vendor/lldb/dist/CMakeLists.txt vendor/lldb/dist/cmake/LLDBDependencies.cmake vendor/lldb/dist/cmake/modules/AddLLDB.cmake vendor/lldb/dist/cmake/modules/LLDBConfig.cmake vendor/lldb/dist/cmake/modules/LLDBStandalone.cmake vendor/lldb/dist/cmake/platforms/Android.cmake vendor/lldb/dist/docs/lldb-for-gdb-users.txt vendor/lldb/dist/docs/lldb-gdb-remote.txt vendor/lldb/dist/examples/python/crashlog.py vendor/lldb/dist/examples/python/scripted_step.py vendor/lldb/dist/examples/python/symbolication.py vendor/lldb/dist/examples/synthetic/gnu_libstdcpp.py vendor/lldb/dist/include/lldb/API/LLDB.h vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h vendor/lldb/dist/include/lldb/API/SBDefines.h vendor/lldb/dist/include/lldb/API/SBExpressionOptions.h vendor/lldb/dist/include/lldb/API/SBFileSpec.h vendor/lldb/dist/include/lldb/API/SBHostOS.h vendor/lldb/dist/include/lldb/API/SBInstruction.h vendor/lldb/dist/include/lldb/API/SBLaunchInfo.h vendor/lldb/dist/include/lldb/API/SBListener.h vendor/lldb/dist/include/lldb/API/SBProcess.h vendor/lldb/dist/include/lldb/API/SBStream.h vendor/lldb/dist/include/lldb/API/SBStringList.h vendor/lldb/dist/include/lldb/API/SBTarget.h vendor/lldb/dist/include/lldb/API/SBThread.h vendor/lldb/dist/include/lldb/API/SBThreadCollection.h vendor/lldb/dist/include/lldb/API/SBValue.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointList.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocation.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocationCollection.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocationList.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolver.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileLine.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverFileRegex.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointResolverName.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointSite.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointSiteList.h vendor/lldb/dist/include/lldb/Breakpoint/WatchpointList.h vendor/lldb/dist/include/lldb/Core/ArchSpec.h vendor/lldb/dist/include/lldb/Core/Broadcaster.h vendor/lldb/dist/include/lldb/Core/Communication.h vendor/lldb/dist/include/lldb/Core/ConstString.h vendor/lldb/dist/include/lldb/Core/DataExtractor.h vendor/lldb/dist/include/lldb/Core/Debugger.h vendor/lldb/dist/include/lldb/Core/EmulateInstruction.h vendor/lldb/dist/include/lldb/Core/Event.h vendor/lldb/dist/include/lldb/Core/History.h vendor/lldb/dist/include/lldb/Core/IOHandler.h vendor/lldb/dist/include/lldb/Core/Listener.h vendor/lldb/dist/include/lldb/Core/Logging.h vendor/lldb/dist/include/lldb/Core/MappedHash.h vendor/lldb/dist/include/lldb/Core/Module.h vendor/lldb/dist/include/lldb/Core/ModuleList.h vendor/lldb/dist/include/lldb/Core/ModuleSpec.h vendor/lldb/dist/include/lldb/Core/RangeMap.h vendor/lldb/dist/include/lldb/Core/RegisterValue.h vendor/lldb/dist/include/lldb/Core/Scalar.h vendor/lldb/dist/include/lldb/Core/SearchFilter.h vendor/lldb/dist/include/lldb/Core/Section.h vendor/lldb/dist/include/lldb/Core/StreamCallback.h vendor/lldb/dist/include/lldb/Core/StreamTee.h vendor/lldb/dist/include/lldb/Core/ThreadSafeSTLMap.h vendor/lldb/dist/include/lldb/Core/ThreadSafeValue.h vendor/lldb/dist/include/lldb/Core/Timer.h vendor/lldb/dist/include/lldb/Core/UserSettingsController.h vendor/lldb/dist/include/lldb/Core/Value.h vendor/lldb/dist/include/lldb/Core/ValueObject.h vendor/lldb/dist/include/lldb/Core/ValueObjectConstResult.h vendor/lldb/dist/include/lldb/Core/ValueObjectConstResultCast.h vendor/lldb/dist/include/lldb/Core/ValueObjectConstResultChild.h vendor/lldb/dist/include/lldb/Core/ValueObjectConstResultImpl.h vendor/lldb/dist/include/lldb/Core/ValueObjectDynamicValue.h vendor/lldb/dist/include/lldb/Core/ValueObjectSyntheticFilter.h vendor/lldb/dist/include/lldb/DataFormatters/DumpValueObjectOptions.h vendor/lldb/dist/include/lldb/DataFormatters/FormatCache.h vendor/lldb/dist/include/lldb/DataFormatters/FormatManager.h vendor/lldb/dist/include/lldb/DataFormatters/FormattersContainer.h vendor/lldb/dist/include/lldb/DataFormatters/FormattersHelpers.h vendor/lldb/dist/include/lldb/DataFormatters/TypeCategory.h vendor/lldb/dist/include/lldb/DataFormatters/TypeCategoryMap.h vendor/lldb/dist/include/lldb/DataFormatters/TypeSynthetic.h vendor/lldb/dist/include/lldb/DataFormatters/ValueObjectPrinter.h vendor/lldb/dist/include/lldb/DataFormatters/VectorIterator.h vendor/lldb/dist/include/lldb/Expression/DWARFExpression.h vendor/lldb/dist/include/lldb/Expression/ExpressionParser.h vendor/lldb/dist/include/lldb/Expression/ExpressionSourceCode.h vendor/lldb/dist/include/lldb/Expression/ExpressionVariable.h vendor/lldb/dist/include/lldb/Expression/FunctionCaller.h vendor/lldb/dist/include/lldb/Expression/IRDynamicChecks.h vendor/lldb/dist/include/lldb/Expression/IRExecutionUnit.h vendor/lldb/dist/include/lldb/Expression/IRInterpreter.h vendor/lldb/dist/include/lldb/Expression/IRMemoryMap.h vendor/lldb/dist/include/lldb/Expression/LLVMUserExpression.h vendor/lldb/dist/include/lldb/Expression/UserExpression.h vendor/lldb/dist/include/lldb/Expression/UtilityFunction.h vendor/lldb/dist/include/lldb/Host/Editline.h vendor/lldb/dist/include/lldb/Host/File.h vendor/lldb/dist/include/lldb/Host/FileSpec.h vendor/lldb/dist/include/lldb/Host/FileSystem.h vendor/lldb/dist/include/lldb/Host/Host.h vendor/lldb/dist/include/lldb/Host/HostInfoBase.h vendor/lldb/dist/include/lldb/Host/HostNativeProcessBase.h vendor/lldb/dist/include/lldb/Host/HostProcess.h vendor/lldb/dist/include/lldb/Host/OptionParser.h vendor/lldb/dist/include/lldb/Host/ProcessRunLock.h vendor/lldb/dist/include/lldb/Host/common/NativeBreakpointList.h vendor/lldb/dist/include/lldb/Host/common/NativeProcessProtocol.h vendor/lldb/dist/include/lldb/Host/macosx/HostInfoMacOSX.h vendor/lldb/dist/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h vendor/lldb/dist/include/lldb/Host/posix/HostInfoPosix.h vendor/lldb/dist/include/lldb/Host/posix/HostProcessPosix.h vendor/lldb/dist/include/lldb/Host/windows/HostInfoWindows.h vendor/lldb/dist/include/lldb/Host/windows/HostProcessWindows.h vendor/lldb/dist/include/lldb/Initialization/SystemLifetimeManager.h vendor/lldb/dist/include/lldb/Interpreter/Args.h vendor/lldb/dist/include/lldb/Interpreter/CommandHistory.h vendor/lldb/dist/include/lldb/Interpreter/CommandInterpreter.h vendor/lldb/dist/include/lldb/Interpreter/CommandObject.h vendor/lldb/dist/include/lldb/Interpreter/CommandObjectMultiword.h vendor/lldb/dist/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreter.h vendor/lldb/dist/include/lldb/Symbol/ArmUnwindInfo.h vendor/lldb/dist/include/lldb/Symbol/Block.h vendor/lldb/dist/include/lldb/Symbol/ClangASTContext.h vendor/lldb/dist/include/lldb/Symbol/ClangASTImporter.h vendor/lldb/dist/include/lldb/Symbol/CompactUnwindInfo.h vendor/lldb/dist/include/lldb/Symbol/CompileUnit.h vendor/lldb/dist/include/lldb/Symbol/CompilerDecl.h vendor/lldb/dist/include/lldb/Symbol/CompilerDeclContext.h vendor/lldb/dist/include/lldb/Symbol/CompilerType.h vendor/lldb/dist/include/lldb/Symbol/DWARFCallFrameInfo.h vendor/lldb/dist/include/lldb/Symbol/FuncUnwinders.h vendor/lldb/dist/include/lldb/Symbol/Function.h vendor/lldb/dist/include/lldb/Symbol/GoASTContext.h vendor/lldb/dist/include/lldb/Symbol/LineEntry.h vendor/lldb/dist/include/lldb/Symbol/ObjectFile.h vendor/lldb/dist/include/lldb/Symbol/Symbol.h vendor/lldb/dist/include/lldb/Symbol/SymbolContext.h vendor/lldb/dist/include/lldb/Symbol/SymbolFile.h vendor/lldb/dist/include/lldb/Symbol/SymbolVendor.h vendor/lldb/dist/include/lldb/Symbol/Symtab.h vendor/lldb/dist/include/lldb/Symbol/Type.h vendor/lldb/dist/include/lldb/Symbol/TypeSystem.h vendor/lldb/dist/include/lldb/Symbol/UnwindPlan.h vendor/lldb/dist/include/lldb/Symbol/UnwindTable.h vendor/lldb/dist/include/lldb/Symbol/Variable.h vendor/lldb/dist/include/lldb/Target/ABI.h vendor/lldb/dist/include/lldb/Target/DynamicLoader.h vendor/lldb/dist/include/lldb/Target/ExecutionContext.h vendor/lldb/dist/include/lldb/Target/InstrumentationRuntime.h vendor/lldb/dist/include/lldb/Target/JITLoaderList.h vendor/lldb/dist/include/lldb/Target/Language.h vendor/lldb/dist/include/lldb/Target/LanguageRuntime.h vendor/lldb/dist/include/lldb/Target/Memory.h vendor/lldb/dist/include/lldb/Target/MemoryRegionInfo.h vendor/lldb/dist/include/lldb/Target/PathMappingList.h vendor/lldb/dist/include/lldb/Target/Platform.h vendor/lldb/dist/include/lldb/Target/Process.h vendor/lldb/dist/include/lldb/Target/ProcessLaunchInfo.h vendor/lldb/dist/include/lldb/Target/QueueList.h vendor/lldb/dist/include/lldb/Target/SectionLoadHistory.h vendor/lldb/dist/include/lldb/Target/SectionLoadList.h vendor/lldb/dist/include/lldb/Target/StackFrame.h vendor/lldb/dist/include/lldb/Target/StackFrameList.h vendor/lldb/dist/include/lldb/Target/Target.h vendor/lldb/dist/include/lldb/Target/TargetList.h vendor/lldb/dist/include/lldb/Target/Thread.h vendor/lldb/dist/include/lldb/Target/ThreadCollection.h vendor/lldb/dist/include/lldb/Target/ThreadList.h vendor/lldb/dist/include/lldb/Target/ThreadPlan.h vendor/lldb/dist/include/lldb/Target/ThreadPlanPython.h vendor/lldb/dist/include/lldb/Target/ThreadPlanStepInstruction.h vendor/lldb/dist/include/lldb/Target/Unwind.h vendor/lldb/dist/include/lldb/Utility/Iterable.h vendor/lldb/dist/include/lldb/Utility/ProcessStructReader.h vendor/lldb/dist/include/lldb/Utility/SharedCluster.h vendor/lldb/dist/include/lldb/lldb-enumerations.h vendor/lldb/dist/include/lldb/lldb-forward.h vendor/lldb/dist/include/lldb/lldb-private-enumerations.h vendor/lldb/dist/include/lldb/lldb-private-interfaces.h vendor/lldb/dist/include/lldb/lldb-private-types.h vendor/lldb/dist/include/lldb/lldb-private.h vendor/lldb/dist/lit/CMakeLists.txt vendor/lldb/dist/lit/Unit/lit.site.cfg.in vendor/lldb/dist/lit/lit.site.cfg.in vendor/lldb/dist/lldb.xcodeproj/project.pbxproj vendor/lldb/dist/lldb.xcodeproj/xcshareddata/xcschemes/desktop.xcscheme vendor/lldb/dist/lldb.xcodeproj/xcshareddata/xcschemes/lldb-tool.xcscheme vendor/lldb/dist/packages/Python/lldbsuite/test/android/platform/TestDefaultCacheLineSize.py vendor/lldb/dist/packages/Python/lldbsuite/test/api/check_public_api_headers/TestPublicAPIHeaders.py vendor/lldb/dist/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py vendor/lldb/dist/packages/Python/lldbsuite/test/api/multithreaded/TestMultithreaded.py vendor/lldb/dist/packages/Python/lldbsuite/test/api/multithreaded/test_listener_event_process_state.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/arm_emulation/TestEmulations.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/continue/TestBenchmarkContinue.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/disassembly/TestDisassembly.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/expression/TestExpressionCmd.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/expression/TestRepeatedExprs.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/frame_variable/TestFrameVariableResponse.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/libcxxlist/TestBenchmarkLibcxxList.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/libcxxmap/TestBenchmarkLibcxxMap.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/startup/TestStartupDelays.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/stepping/TestSteppingSpeed.py vendor/lldb/dist/packages/Python/lldbsuite/test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py vendor/lldb/dist/packages/Python/lldbsuite/test/configuration.py vendor/lldb/dist/packages/Python/lldbsuite/test/dosep.py vendor/lldb/dist/packages/Python/lldbsuite/test/dotest.py vendor/lldb/dist/packages/Python/lldbsuite/test/dotest_args.py vendor/lldb/dist/packages/Python/lldbsuite/test/driver/batch_mode/TestBatchMode.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStdStringFunction.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/call-function/TestCallStopAndContinue.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/call-restarts/TestCallThatRestarts.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/call-throws/TestCallThatThrows.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/formatters/TestFormatters.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/issue_11588/Test11588.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/macros/TestMacros.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/persistent_types/TestNestedPersistentTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/persistent_types/TestPersistentTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/po_verbosity/TestPoVerbosity.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/radar_9531204/TestPrintfAfterUp.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/radar_9673664/TestExprHelpExamples.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/test/TestExprs.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/test/TestExprs2.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/timeout/TestCallWithTimeout.py vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/abbreviation/TestAbbreviations.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/abbreviation/TestCommonShortSpellings.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/archives/TestBSDArchives.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/attach_resume/TestAttachResume.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/avoids-fd-leak/TestFdLeak.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/backticks/TestBackticksWithoutATarget.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_in_delayslot/TestAvoidBreakpointInDelaySlot.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/cpp/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/debugbreak/TestDebugBreak.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/breakpoint/objc/TestObjCBreakpoints.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_history/TestCommandHistory.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_regex/TestCommandRegex.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_script/TestCommandScript.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_script/import/TestImport.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_script/import/thepackage/__init__.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/command_source/TestCommandSource.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/conditional_break/TestConditionalBreak.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/boolreference/main.mm vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/compactvectors/TestCompactVectors.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-named-summaries/TestDataFormatterNamedSummaries.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/main.m vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-proper-plurals/main.m vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-python-synth/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-script/TestDataFormatterScript.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-skip-summary/Makefile vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/loop/TestDataFormatterLibcxxListLoop.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/dump_dynamic/TestDumpDynamic.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/ostypeformatting/TestFormattersOsType.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/setvaluefromcstring/TestSetValueFromCString.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/stringprinter/TestStringPrinter.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/synthcapping/TestSyntheticCapping.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/synthcapping/fooSynthProvider.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/synthcapping/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/typedef_array/TestTypedefArray.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/varscript_formatting/TestDataFormatterVarScriptFormatting.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/data-formatter/vector-types/TestVectorTypesFormatting.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/dead-strip/TestDeadStrip.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/dynamic_value_child_count/TestDynamicValueChildCount.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/embedded_interpreter/TestConvenienceVariables.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/exec/TestExec.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/fat_archives/TestFatArchives.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/format/TestFormats.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/inferior-assert/TestInferiorAssert.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/inferior-changed/TestInferiorChanged.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/inferior-crashing/TestInferiorCrashing.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/inline-stepping/TestInlineStepping.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/jitloader_gdb/TestJITLoaderGDB.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/load_unload/TestLoadUnload.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/longjmp/TestLongjmp.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/object-file/TestImageListMultiArchitecture.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/paths/TestPaths.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/platform/TestPlatformCommand.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/plugins/commands/TestPluginCommands.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/postmortem/minidump/TestMiniDump.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/process_attach/TestProcessAttach.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/process_attach/attach_denied/TestAttachDenied.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/process_group/TestChangeProcessGroup.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/process_launch/TestProcessLaunch.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/process_launch/print_env.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/process_save_core/TestProcessSaveCore.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/register/TestRegisters.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/rerun/TestRerun.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/return-value/TestReturnValue.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/set-data/TestSetData.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/signal/TestSendSignal.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/signal/handle-segv/TestHandleSegv.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/signal/raise/TestRaise.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/stop-hook/TestStopHookCmd.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/stop-hook/TestStopHookMechanism.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/target_command/TestTargetCommand.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/backtrace_all/TestBacktraceAll.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/break_after_join/TestBreakAfterJoin.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/break_after_join/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/concurrent_events/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/create_during_step/TestCreateDuringStep.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/create_during_step/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/exit_during_break/TestExitDuringBreak.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/exit_during_break/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/exit_during_step/TestExitDuringStep.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/exit_during_step/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/jump/TestThreadJump.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/multi_break/TestMultipleBreakpoints.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/multi_break/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/state/TestThreadStates.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/step_out/TestThreadStepOut.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/step_out/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/thread_exit/TestThreadExit.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/thread_exit/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/tty/TestTerminal.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/type_completion/TestTypeCompletion.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/type_lookup/TestTypeLookup.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/unwind/noreturn/TestNoreturnUnwind.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/unwind/standard/TestStandardUnwind.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/value_md5_crash/TestValueMD5Crash.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/multiple_threads/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_on_vectors/TestValueOfVectorVariable.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_on_vectors/main.c vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py vendor/lldb/dist/packages/Python/lldbsuite/test/help/TestHelp.py vendor/lldb/dist/packages/Python/lldbsuite/test/issue_verification/TestRerunTimeout.py.park vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/anonymous/TestAnonymous.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/array_types/TestArrayTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/bitfields/TestBitfields.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/bitfields/main.c vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/blocks/TestBlocks.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/const_variables/TestConstVariables.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/enum_types/TestEnumTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/enum_types/main.c vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/function_types/TestFunctionTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/global_variables/TestGlobalVariables.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/modules/TestCModules.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/register_variables/Makefile vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/register_variables/TestRegisterVariables.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/register_variables/test.c vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/set_values/TestSetValues.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/stepping/TestStepAndBreakpoints.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/strings/TestCStrings.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/struct_types/TestStructTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/tls_globals/TestTlsGlobals.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/tls_globals/a.c vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/tls_globals/main.c vendor/lldb/dist/packages/Python/lldbsuite/test/lang/c/typedef/Testtypedef.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/auto/TestCPPAuto.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/breakpoint-commands/TestCPPBreakpointCommands.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/call-function/TestCallCPPFunction.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/chained-calls/TestCppChainedCalls.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/char1632_t/TestChar1632T.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/class_static/TestStaticVariables.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/class_types/TestClassTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/class_types/TestClassTypesDisassembly.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/diamond/TestDiamond.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/dynamic-value/TestCppValueCast.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/dynamic-value/TestDynamicValue.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/frame-var-anon-unions/TestFrameVariableAnonymousUnions.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/global_operators/TestCppGlobalOperators.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/limit-debug-info/TestWithLimitDebugInfo.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/namespace/TestNamespace.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/namespace/TestNamespaceLookup.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/nsimport/TestCppNsImport.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/rvalue-references/TestRvalueReferences.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/scope/TestCppScope.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/signed_types/TestSignedTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/static_members/TestCPPStaticMembers.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/static_methods/TestCPPStaticMethods.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/stl/TestSTL.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/stl/TestStdCXXDisassembly.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/this/TestCPPThis.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/unsigned_types/TestUnsignedTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/cpp/virtual/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/lang/go/expressions/TestExpressions.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/go/formatters/TestGoFormatters.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/go/goroutines/TestGoroutines.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/go/runtime/TestGoLanguageRuntime vendor/lldb/dist/packages/Python/lldbsuite/test/lang/go/types/TestGoASTContext.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/blocks/TestObjCIvarsInBlocks.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/forward-decl/TestForwardDecl.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/foundation/TestConstStrings.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/foundation/TestFoundationDisassembly.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods2.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjectDescriptionAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/foundation/TestRuntimeTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/foundation/TestSymbolTable.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/global_ptrs/TestGlobalObjects.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/modules-auto-import/TestModulesAutoImport.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/modules/TestObjCModules.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc++/TestObjCXX.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-checker/TestObjCCheckers.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-class-method/TestObjCClassMethod.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-ivar-protocols/TestIvarProtocols.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-optimized/TestObjcOptimized.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-property/TestObjCProperty.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-property/main.m vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-runtime-ivars/TestRuntimeIvars.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-static-method-stripped/Makefile vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-static-method/TestObjCStaticMethod.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-stepping/TestObjCStepping.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-struct-return/TestObjCStructReturn.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/objc-super/TestObjCSuper.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/print-obj/TestPrintObj.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/rdar-10967107/TestRdar10967107.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/rdar-12408181/TestRdar12408181.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/real-definition/TestRealDefinition.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objc/self/TestObjCSelf.py vendor/lldb/dist/packages/Python/lldbsuite/test/lang/objcxx/objcxx-ivar-vector/TestIvarVector.py vendor/lldb/dist/packages/Python/lldbsuite/test/linux/builtin_trap/TestBuiltinTrap.py vendor/lldb/dist/packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py vendor/lldb/dist/packages/Python/lldbsuite/test/lldbinline.py vendor/lldb/dist/packages/Python/lldbsuite/test/lldbpexpect.py vendor/lldb/dist/packages/Python/lldbsuite/test/lldbplatformutil.py vendor/lldb/dist/packages/Python/lldbsuite/test/lldbtest.py vendor/lldb/dist/packages/Python/lldbsuite/test/lldbutil.py vendor/lldb/dist/packages/Python/lldbsuite/test/logging/TestLogging.py vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/add-dsym/TestAddDsymMidExecutionCommand.py vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/debug-info/apple_types/TestAppleTypesIsProduced.py vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/indirect_symbol/TestIndirectSymbols.py vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/order/TestOrderFile.py vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/queues/TestQueues.py vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/safe-to-func-call/TestSafeFuncCalls.py vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/universal/TestUniversal.py vendor/lldb/dist/packages/Python/lldbsuite/test/macosx/universal/main.c vendor/lldb/dist/packages/Python/lldbsuite/test/make/Makefile.rules vendor/lldb/dist/packages/Python/lldbsuite/test/make/test_common.h vendor/lldb/dist/packages/Python/lldbsuite/test/plugins/builder_base.py vendor/lldb/dist/packages/Python/lldbsuite/test/plugins/builder_darwin.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/breakpoint/TestBreakpointAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/class_members/TestSBTypeClassMembers.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/debugger/TestDebuggerAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/event/TestEvents.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/exprpath_synthetic/TestExprPathSynthetic.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/findvalue_duplist/TestSBFrameFindValue.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/formatters/TestFormattersSBAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/frame/TestFrames.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/frame/inlines/TestInlinedFrame.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/function_symbol/TestDisasmAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/function_symbol/TestSymbolAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/hello_world/TestHelloWorld.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/interpreter/TestCommandInterpreterAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/lldbutil/frame/TestFrameUtils.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/lldbutil/iter/TestLLDBIterator.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/lldbutil/iter/TestRegistersIterator.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/lldbutil/process/TestPrintStackTraces.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/module_section/TestModuleAndSection.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/objc_type/TestObjCType.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/process/TestProcessAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/process/io/TestProcessIO.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/sbtype_typeclass/TestSBTypeTypeClass.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/sbvalue_persist/TestSBValuePersist.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/section/TestSectionAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/signals/TestSignalsAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/symbol-context/TestSymbolContext.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/target/TestTargetAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/thread/TestThreadAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/type/TestTypeList.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/value/TestValueAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/value/change_values/TestChangeValueAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/value/linked_list/TestValueAPILinkedList.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/value/main.c vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/value_var_update/TestValueVarUpdate.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/watchpoint/TestSetWatchpoint.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/watchpoint/TestWatchpointIgnoreCount.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/watchpoint/TestWatchpointIter.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py vendor/lldb/dist/packages/Python/lldbsuite/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py vendor/lldb/dist/packages/Python/lldbsuite/test/settings/TestSettings.py vendor/lldb/dist/packages/Python/lldbsuite/test/settings/quoting/TestQuoting.py vendor/lldb/dist/packages/Python/lldbsuite/test/source-manager/TestSourceManager.py vendor/lldb/dist/packages/Python/lldbsuite/test/terminal/TestSTTYBeforeAndAfter.py vendor/lldb/dist/packages/Python/lldbsuite/test/test_categories.py vendor/lldb/dist/packages/Python/lldbsuite/test/test_result.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiExit.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiFile.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiGdbSetShow.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiLibraryLoaded.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/TestMiPrompt.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/breakpoint/TestMiBreak.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/interpreter/TestMiCliSupport.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/interpreter/TestMiInterpreterExec.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/signal/TestMiSignal.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/stack/TestMiStack.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/stack/main.cpp vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/startup_options/TestMiStartupOptions.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/symbol/TestMiSymbol.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/syntax/TestMiSyntax.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/target/TestMiTarget.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/variable/TestMiGdbSetShowPrint.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-mi/variable/TestMiVar.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGDBRemoteMemoryRead.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteAttach.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteKill.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteProcessInfo.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteRegisterState.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteSingleStep.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemote_vCont.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/TestLldbGdbServer.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/commandline/TestStubReverseConnect.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/commandline/TestStubSetSID.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/platform-process-connect/TestPlatformProcessConnect.py vendor/lldb/dist/packages/Python/lldbsuite/test/tools/lldb-server/socket_packet_pump.py vendor/lldb/dist/packages/Python/lldbsuite/test/types/TestFloatTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/types/TestFloatTypesExpr.py vendor/lldb/dist/packages/Python/lldbsuite/test/types/TestIntegerTypes.py vendor/lldb/dist/packages/Python/lldbsuite/test/types/TestIntegerTypesExpr.py vendor/lldb/dist/packages/Python/lldbsuite/test/warnings/uuid/TestAddDsymCommand.py vendor/lldb/dist/resources/LLDB-Info.plist vendor/lldb/dist/scripts/CMakeLists.txt vendor/lldb/dist/scripts/Python/finishSwigPythonLLDB.py vendor/lldb/dist/scripts/Python/modules/readline/readline.cpp vendor/lldb/dist/scripts/Python/prepare_binding_Python.py vendor/lldb/dist/scripts/Python/python-extensions.swig vendor/lldb/dist/scripts/Python/python-typemaps.swig vendor/lldb/dist/scripts/Python/python-wrapper.swig vendor/lldb/dist/scripts/Python/use_lldb_suite.py vendor/lldb/dist/scripts/finishSwigWrapperClasses.py vendor/lldb/dist/scripts/interface/SBCommandReturnObject.i vendor/lldb/dist/scripts/interface/SBDebugger.i vendor/lldb/dist/scripts/interface/SBExpressionOptions.i vendor/lldb/dist/scripts/interface/SBFileSpec.i vendor/lldb/dist/scripts/interface/SBHostOS.i vendor/lldb/dist/scripts/interface/SBProcess.i vendor/lldb/dist/scripts/interface/SBTarget.i vendor/lldb/dist/scripts/interface/SBThread.i vendor/lldb/dist/scripts/interface/SBValue.i vendor/lldb/dist/scripts/lldb.swig vendor/lldb/dist/scripts/prepare_bindings.py vendor/lldb/dist/scripts/use_lldb_suite.py vendor/lldb/dist/source/API/CMakeLists.txt vendor/lldb/dist/source/API/SBAddress.cpp vendor/lldb/dist/source/API/SBBlock.cpp vendor/lldb/dist/source/API/SBBreakpoint.cpp vendor/lldb/dist/source/API/SBBreakpointLocation.cpp vendor/lldb/dist/source/API/SBBroadcaster.cpp vendor/lldb/dist/source/API/SBCommandInterpreter.cpp vendor/lldb/dist/source/API/SBCommandReturnObject.cpp vendor/lldb/dist/source/API/SBDebugger.cpp vendor/lldb/dist/source/API/SBExpressionOptions.cpp vendor/lldb/dist/source/API/SBFileSpec.cpp vendor/lldb/dist/source/API/SBFrame.cpp vendor/lldb/dist/source/API/SBFunction.cpp vendor/lldb/dist/source/API/SBHostOS.cpp vendor/lldb/dist/source/API/SBInstruction.cpp vendor/lldb/dist/source/API/SBInstructionList.cpp vendor/lldb/dist/source/API/SBListener.cpp vendor/lldb/dist/source/API/SBModule.cpp vendor/lldb/dist/source/API/SBProcess.cpp vendor/lldb/dist/source/API/SBStringList.cpp vendor/lldb/dist/source/API/SBSymbol.cpp vendor/lldb/dist/source/API/SBTarget.cpp vendor/lldb/dist/source/API/SBThread.cpp vendor/lldb/dist/source/API/SBValue.cpp vendor/lldb/dist/source/API/SBWatchpoint.cpp vendor/lldb/dist/source/API/SystemInitializerFull.cpp vendor/lldb/dist/source/API/liblldb.exports vendor/lldb/dist/source/Breakpoint/Breakpoint.cpp vendor/lldb/dist/source/Breakpoint/BreakpointList.cpp vendor/lldb/dist/source/Breakpoint/BreakpointLocation.cpp vendor/lldb/dist/source/Breakpoint/BreakpointLocationCollection.cpp vendor/lldb/dist/source/Breakpoint/BreakpointLocationList.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolver.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverAddress.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverFileLine.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverFileRegex.cpp vendor/lldb/dist/source/Breakpoint/BreakpointResolverName.cpp vendor/lldb/dist/source/Breakpoint/BreakpointSite.cpp vendor/lldb/dist/source/Breakpoint/BreakpointSiteList.cpp vendor/lldb/dist/source/Breakpoint/WatchpointList.cpp vendor/lldb/dist/source/Commands/CommandCompletions.cpp vendor/lldb/dist/source/Commands/CommandObjectApropos.cpp vendor/lldb/dist/source/Commands/CommandObjectArgs.cpp vendor/lldb/dist/source/Commands/CommandObjectBreakpoint.cpp vendor/lldb/dist/source/Commands/CommandObjectBreakpointCommand.cpp vendor/lldb/dist/source/Commands/CommandObjectBugreport.cpp vendor/lldb/dist/source/Commands/CommandObjectCommands.cpp vendor/lldb/dist/source/Commands/CommandObjectDisassemble.cpp vendor/lldb/dist/source/Commands/CommandObjectDisassemble.h vendor/lldb/dist/source/Commands/CommandObjectExpression.cpp vendor/lldb/dist/source/Commands/CommandObjectExpression.h vendor/lldb/dist/source/Commands/CommandObjectFrame.cpp vendor/lldb/dist/source/Commands/CommandObjectHelp.cpp vendor/lldb/dist/source/Commands/CommandObjectHelp.h vendor/lldb/dist/source/Commands/CommandObjectLanguage.cpp vendor/lldb/dist/source/Commands/CommandObjectLanguage.h vendor/lldb/dist/source/Commands/CommandObjectLog.cpp vendor/lldb/dist/source/Commands/CommandObjectMemory.cpp vendor/lldb/dist/source/Commands/CommandObjectMultiword.cpp vendor/lldb/dist/source/Commands/CommandObjectPlatform.cpp vendor/lldb/dist/source/Commands/CommandObjectPlugin.cpp vendor/lldb/dist/source/Commands/CommandObjectProcess.cpp vendor/lldb/dist/source/Commands/CommandObjectQuit.cpp vendor/lldb/dist/source/Commands/CommandObjectRegister.cpp vendor/lldb/dist/source/Commands/CommandObjectSettings.cpp vendor/lldb/dist/source/Commands/CommandObjectSource.cpp vendor/lldb/dist/source/Commands/CommandObjectSyntax.cpp vendor/lldb/dist/source/Commands/CommandObjectTarget.cpp vendor/lldb/dist/source/Commands/CommandObjectThread.cpp vendor/lldb/dist/source/Commands/CommandObjectType.cpp vendor/lldb/dist/source/Commands/CommandObjectVersion.cpp vendor/lldb/dist/source/Commands/CommandObjectWatchpoint.cpp vendor/lldb/dist/source/Commands/CommandObjectWatchpointCommand.cpp vendor/lldb/dist/source/Core/Address.cpp vendor/lldb/dist/source/Core/AddressRange.cpp vendor/lldb/dist/source/Core/AddressResolverName.cpp vendor/lldb/dist/source/Core/ArchSpec.cpp vendor/lldb/dist/source/Core/Broadcaster.cpp vendor/lldb/dist/source/Core/Communication.cpp vendor/lldb/dist/source/Core/ConnectionSharedMemory.cpp vendor/lldb/dist/source/Core/ConstString.cpp vendor/lldb/dist/source/Core/CxaDemangle.cpp vendor/lldb/dist/source/Core/DataBufferHeap.cpp vendor/lldb/dist/source/Core/DataBufferMemoryMap.cpp vendor/lldb/dist/source/Core/DataEncoder.cpp vendor/lldb/dist/source/Core/DataExtractor.cpp vendor/lldb/dist/source/Core/Debugger.cpp vendor/lldb/dist/source/Core/Disassembler.cpp vendor/lldb/dist/source/Core/DynamicLoader.cpp vendor/lldb/dist/source/Core/EmulateInstruction.cpp vendor/lldb/dist/source/Core/Error.cpp vendor/lldb/dist/source/Core/Event.cpp vendor/lldb/dist/source/Core/FastDemangle.cpp vendor/lldb/dist/source/Core/FileSpecList.cpp vendor/lldb/dist/source/Core/FormatEntity.cpp vendor/lldb/dist/source/Core/IOHandler.cpp vendor/lldb/dist/source/Core/Listener.cpp vendor/lldb/dist/source/Core/Log.cpp vendor/lldb/dist/source/Core/Logging.cpp vendor/lldb/dist/source/Core/Mangled.cpp vendor/lldb/dist/source/Core/Module.cpp vendor/lldb/dist/source/Core/ModuleList.cpp vendor/lldb/dist/source/Core/Opcode.cpp vendor/lldb/dist/source/Core/PluginManager.cpp vendor/lldb/dist/source/Core/RegisterValue.cpp vendor/lldb/dist/source/Core/RegularExpression.cpp vendor/lldb/dist/source/Core/Scalar.cpp vendor/lldb/dist/source/Core/SearchFilter.cpp vendor/lldb/dist/source/Core/Section.cpp vendor/lldb/dist/source/Core/StreamCallback.cpp vendor/lldb/dist/source/Core/Timer.cpp vendor/lldb/dist/source/Core/UserSettingsController.cpp vendor/lldb/dist/source/Core/Value.cpp vendor/lldb/dist/source/Core/ValueObject.cpp vendor/lldb/dist/source/Core/ValueObjectConstResult.cpp vendor/lldb/dist/source/Core/ValueObjectConstResultCast.cpp vendor/lldb/dist/source/Core/ValueObjectConstResultChild.cpp vendor/lldb/dist/source/Core/ValueObjectConstResultImpl.cpp vendor/lldb/dist/source/Core/ValueObjectDynamicValue.cpp vendor/lldb/dist/source/Core/ValueObjectSyntheticFilter.cpp vendor/lldb/dist/source/Core/ValueObjectVariable.cpp vendor/lldb/dist/source/DataFormatters/DumpValueObjectOptions.cpp vendor/lldb/dist/source/DataFormatters/FormatCache.cpp vendor/lldb/dist/source/DataFormatters/FormatManager.cpp vendor/lldb/dist/source/DataFormatters/FormattersHelpers.cpp vendor/lldb/dist/source/DataFormatters/StringPrinter.cpp vendor/lldb/dist/source/DataFormatters/TypeCategory.cpp vendor/lldb/dist/source/DataFormatters/TypeCategoryMap.cpp vendor/lldb/dist/source/DataFormatters/TypeFormat.cpp vendor/lldb/dist/source/DataFormatters/TypeSummary.cpp vendor/lldb/dist/source/DataFormatters/TypeSynthetic.cpp vendor/lldb/dist/source/DataFormatters/ValueObjectPrinter.cpp vendor/lldb/dist/source/Expression/CMakeLists.txt vendor/lldb/dist/source/Expression/DWARFExpression.cpp vendor/lldb/dist/source/Expression/ExpressionSourceCode.cpp vendor/lldb/dist/source/Expression/ExpressionVariable.cpp vendor/lldb/dist/source/Expression/FunctionCaller.cpp vendor/lldb/dist/source/Expression/IRDynamicChecks.cpp vendor/lldb/dist/source/Expression/IRExecutionUnit.cpp vendor/lldb/dist/source/Expression/IRInterpreter.cpp vendor/lldb/dist/source/Expression/IRMemoryMap.cpp vendor/lldb/dist/source/Expression/LLVMUserExpression.cpp vendor/lldb/dist/source/Expression/Materializer.cpp vendor/lldb/dist/source/Expression/REPL.cpp vendor/lldb/dist/source/Expression/UserExpression.cpp vendor/lldb/dist/source/Expression/UtilityFunction.cpp vendor/lldb/dist/source/Host/android/LibcGlue.cpp vendor/lldb/dist/source/Host/common/Editline.cpp vendor/lldb/dist/source/Host/common/File.cpp vendor/lldb/dist/source/Host/common/FileSpec.cpp vendor/lldb/dist/source/Host/common/Host.cpp vendor/lldb/dist/source/Host/common/HostInfoBase.cpp vendor/lldb/dist/source/Host/common/HostProcess.cpp vendor/lldb/dist/source/Host/common/MonitoringProcessLauncher.cpp vendor/lldb/dist/source/Host/common/NativeBreakpointList.cpp vendor/lldb/dist/source/Host/common/NativeProcessProtocol.cpp vendor/lldb/dist/source/Host/common/OptionParser.cpp vendor/lldb/dist/source/Host/common/Socket.cpp vendor/lldb/dist/source/Host/common/SocketAddress.cpp vendor/lldb/dist/source/Host/common/SoftwareBreakpoint.cpp vendor/lldb/dist/source/Host/common/TCPSocket.cpp vendor/lldb/dist/source/Host/common/UDPSocket.cpp vendor/lldb/dist/source/Host/linux/Host.cpp vendor/lldb/dist/source/Host/linux/HostInfoLinux.cpp vendor/lldb/dist/source/Host/macosx/Host.mm vendor/lldb/dist/source/Host/macosx/HostInfoMacOSX.mm vendor/lldb/dist/source/Host/macosx/ThisThread.cpp vendor/lldb/dist/source/Host/posix/ConnectionFileDescriptorPosix.cpp vendor/lldb/dist/source/Host/posix/DomainSocket.cpp vendor/lldb/dist/source/Host/posix/FileSystem.cpp vendor/lldb/dist/source/Host/posix/HostInfoPosix.cpp vendor/lldb/dist/source/Host/posix/HostProcessPosix.cpp vendor/lldb/dist/source/Host/posix/HostThreadPosix.cpp vendor/lldb/dist/source/Host/windows/ConnectionGenericFileWindows.cpp vendor/lldb/dist/source/Host/windows/FileSystem.cpp vendor/lldb/dist/source/Host/windows/Host.cpp vendor/lldb/dist/source/Host/windows/HostInfoWindows.cpp vendor/lldb/dist/source/Host/windows/HostProcessWindows.cpp vendor/lldb/dist/source/Host/windows/PipeWindows.cpp vendor/lldb/dist/source/Host/windows/ProcessLauncherWindows.cpp vendor/lldb/dist/source/Host/windows/Windows.cpp vendor/lldb/dist/source/Initialization/SystemInitializerCommon.cpp vendor/lldb/dist/source/Initialization/SystemLifetimeManager.cpp vendor/lldb/dist/source/Interpreter/Args.cpp vendor/lldb/dist/source/Interpreter/CMakeLists.txt vendor/lldb/dist/source/Interpreter/CommandHistory.cpp vendor/lldb/dist/source/Interpreter/CommandInterpreter.cpp vendor/lldb/dist/source/Interpreter/CommandObject.cpp vendor/lldb/dist/source/Interpreter/CommandObjectScript.cpp vendor/lldb/dist/source/Interpreter/OptionGroupValueObjectDisplay.cpp vendor/lldb/dist/source/Interpreter/OptionValueArray.cpp vendor/lldb/dist/source/Interpreter/OptionValueFileSpecLIst.cpp vendor/lldb/dist/source/Interpreter/OptionValuePathMappings.cpp vendor/lldb/dist/source/Interpreter/OptionValueProperties.cpp vendor/lldb/dist/source/Interpreter/Options.cpp vendor/lldb/dist/source/Plugins/ABI/CMakeLists.txt vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-arm/ABISysV_arm.h vendor/lldb/dist/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-mips/ABISysV_mips.h vendor/lldb/dist/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h vendor/lldb/dist/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp vendor/lldb/dist/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp vendor/lldb/dist/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h vendor/lldb/dist/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h vendor/lldb/dist/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.h vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/CMakeLists.txt vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h vendor/lldb/dist/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp vendor/lldb/dist/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTDumper.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangASTSource.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Clang/IRForTarget.h vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoAST.h vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoUserExpression.cpp vendor/lldb/dist/source/Plugins/ExpressionParser/Go/GoUserExpression.h vendor/lldb/dist/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp vendor/lldb/dist/source/Plugins/Instruction/ARM/EmulateInstructionARM.h vendor/lldb/dist/source/Plugins/Instruction/ARM/EmulationStateARM.cpp vendor/lldb/dist/source/Plugins/Instruction/ARM/EmulationStateARM.h vendor/lldb/dist/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp vendor/lldb/dist/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp vendor/lldb/dist/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp vendor/lldb/dist/source/Plugins/InstrumentationRuntime/AddressSanitizer/AddressSanitizerRuntime.cpp vendor/lldb/dist/source/Plugins/InstrumentationRuntime/CMakeLists.txt vendor/lldb/dist/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp vendor/lldb/dist/source/Plugins/Language/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CMakeLists.txt vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxx.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxList.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp vendor/lldb/dist/source/Plugins/Language/CPlusPlus/LibStdcpp.h vendor/lldb/dist/source/Plugins/Language/ObjC/CF.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/Cocoa.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/Cocoa.h vendor/lldb/dist/source/Plugins/Language/ObjC/NSArray.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSDictionary.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSError.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSException.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSIndexPath.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSSet.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/ObjCLanguage.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/ObjCLanguage.h vendor/lldb/dist/source/Plugins/LanguageRuntime/CMakeLists.txt vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h vendor/lldb/dist/source/Plugins/LanguageRuntime/Go/GoLanguageRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.h vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h vendor/lldb/dist/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp vendor/lldb/dist/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp vendor/lldb/dist/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ELFHeader.cpp vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ObjectFileELF.h vendor/lldb/dist/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp vendor/lldb/dist/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp vendor/lldb/dist/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.h vendor/lldb/dist/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp vendor/lldb/dist/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h vendor/lldb/dist/source/Plugins/OperatingSystem/Go/OperatingSystemGo.cpp vendor/lldb/dist/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp vendor/lldb/dist/source/Plugins/Platform/Android/AdbClient.cpp vendor/lldb/dist/source/Plugins/Platform/Android/AdbClient.h vendor/lldb/dist/source/Plugins/Platform/Android/PlatformAndroid.cpp vendor/lldb/dist/source/Plugins/Platform/Android/PlatformAndroid.h vendor/lldb/dist/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp vendor/lldb/dist/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h vendor/lldb/dist/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp vendor/lldb/dist/source/Plugins/Platform/Linux/PlatformLinux.cpp vendor/lldb/dist/source/Plugins/Platform/Linux/PlatformLinux.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformAppleTVSimulator.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformAppleWatchSimulator.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwin.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.cpp vendor/lldb/dist/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp vendor/lldb/dist/source/Plugins/Platform/NetBSD/PlatformNetBSD.h vendor/lldb/dist/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp vendor/lldb/dist/source/Plugins/Platform/POSIX/PlatformPOSIX.h vendor/lldb/dist/source/Plugins/Platform/Windows/PlatformWindows.cpp vendor/lldb/dist/source/Plugins/Platform/Windows/PlatformWindows.h vendor/lldb/dist/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp vendor/lldb/dist/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessMonitor.h vendor/lldb/dist/source/Plugins/Process/Linux/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/Linux/NativeProcessLinux.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeProcessLinux.h vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.h vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h vendor/lldb/dist/source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeThreadLinux.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeThreadLinux.h vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp vendor/lldb/dist/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h vendor/lldb/dist/source/Plugins/Process/Utility/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/Utility/HistoryThread.cpp vendor/lldb/dist/source/Plugins/Process/Utility/HistoryThread.h vendor/lldb/dist/source/Plugins/Process/Utility/HistoryUnwind.cpp vendor/lldb/dist/source/Plugins/Process/Utility/HistoryUnwind.h vendor/lldb/dist/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLLDB.cpp vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_mips.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterInfos_mips64.h vendor/lldb/dist/source/Plugins/Process/Utility/StopInfoMachException.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Common/ProcessWindows.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Common/ProcessWindows.h vendor/lldb/dist/source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Common/x86/RegisterContextWindows_x86.h vendor/lldb/dist/source/Plugins/Process/Windows/Live/DebuggerThread.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Live/ProcessWindowsLive.cpp vendor/lldb/dist/source/Plugins/Process/Windows/Live/ProcessWindowsLive.h vendor/lldb/dist/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.cpp vendor/lldb/dist/source/Plugins/Process/Windows/MiniDump/ProcessWinMiniDump.h vendor/lldb/dist/source/Plugins/Process/elf-core/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/elf-core/ProcessElfCore.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/ProcessElfCore.h vendor/lldb/dist/source/Plugins/Process/elf-core/ThreadElfCore.cpp vendor/lldb/dist/source/Plugins/Process/elf-core/ThreadElfCore.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h vendor/lldb/dist/source/Plugins/Process/mach-core/ProcessMachCore.cpp vendor/lldb/dist/source/Plugins/Process/mach-core/ProcessMachCore.h vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h vendor/lldb/dist/source/Plugins/SymbolFile/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/CMakeLists.txt vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DIERef.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DIERef.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDIE.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h vendor/lldb/dist/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.h vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.h vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.h vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.h vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h vendor/lldb/dist/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp vendor/lldb/dist/source/Symbol/ArmUnwindInfo.cpp vendor/lldb/dist/source/Symbol/Block.cpp vendor/lldb/dist/source/Symbol/CMakeLists.txt vendor/lldb/dist/source/Symbol/ClangASTContext.cpp vendor/lldb/dist/source/Symbol/ClangASTImporter.cpp vendor/lldb/dist/source/Symbol/ClangExternalASTSourceCommon.cpp vendor/lldb/dist/source/Symbol/CompactUnwindInfo.cpp vendor/lldb/dist/source/Symbol/CompileUnit.cpp vendor/lldb/dist/source/Symbol/CompilerDecl.cpp vendor/lldb/dist/source/Symbol/CompilerDeclContext.cpp vendor/lldb/dist/source/Symbol/CompilerType.cpp vendor/lldb/dist/source/Symbol/DWARFCallFrameInfo.cpp vendor/lldb/dist/source/Symbol/FuncUnwinders.cpp vendor/lldb/dist/source/Symbol/Function.cpp vendor/lldb/dist/source/Symbol/GoASTContext.cpp vendor/lldb/dist/source/Symbol/LineEntry.cpp vendor/lldb/dist/source/Symbol/LineTable.cpp vendor/lldb/dist/source/Symbol/ObjectFile.cpp vendor/lldb/dist/source/Symbol/Symbol.cpp vendor/lldb/dist/source/Symbol/SymbolContext.cpp vendor/lldb/dist/source/Symbol/SymbolFile.cpp vendor/lldb/dist/source/Symbol/SymbolVendor.cpp vendor/lldb/dist/source/Symbol/Symtab.cpp vendor/lldb/dist/source/Symbol/Type.cpp vendor/lldb/dist/source/Symbol/TypeSystem.cpp vendor/lldb/dist/source/Symbol/UnwindPlan.cpp vendor/lldb/dist/source/Symbol/UnwindTable.cpp vendor/lldb/dist/source/Symbol/Variable.cpp vendor/lldb/dist/source/Target/ABI.cpp vendor/lldb/dist/source/Target/ExecutionContext.cpp vendor/lldb/dist/source/Target/InstrumentationRuntime.cpp vendor/lldb/dist/source/Target/JITLoader.cpp vendor/lldb/dist/source/Target/JITLoaderList.cpp vendor/lldb/dist/source/Target/Language.cpp vendor/lldb/dist/source/Target/LanguageRuntime.cpp vendor/lldb/dist/source/Target/Memory.cpp vendor/lldb/dist/source/Target/MemoryHistory.cpp vendor/lldb/dist/source/Target/ObjCLanguageRuntime.cpp vendor/lldb/dist/source/Target/OperatingSystem.cpp vendor/lldb/dist/source/Target/PathMappingList.cpp vendor/lldb/dist/source/Target/Platform.cpp vendor/lldb/dist/source/Target/Process.cpp vendor/lldb/dist/source/Target/ProcessInfo.cpp vendor/lldb/dist/source/Target/ProcessLaunchInfo.cpp vendor/lldb/dist/source/Target/Queue.cpp vendor/lldb/dist/source/Target/QueueList.cpp vendor/lldb/dist/source/Target/RegisterContext.cpp vendor/lldb/dist/source/Target/SectionLoadHistory.cpp vendor/lldb/dist/source/Target/SectionLoadList.cpp vendor/lldb/dist/source/Target/StackFrame.cpp vendor/lldb/dist/source/Target/StackFrameList.cpp vendor/lldb/dist/source/Target/StackID.cpp vendor/lldb/dist/source/Target/StopInfo.cpp vendor/lldb/dist/source/Target/SystemRuntime.cpp vendor/lldb/dist/source/Target/Target.cpp vendor/lldb/dist/source/Target/TargetList.cpp vendor/lldb/dist/source/Target/Thread.cpp vendor/lldb/dist/source/Target/ThreadCollection.cpp vendor/lldb/dist/source/Target/ThreadList.cpp vendor/lldb/dist/source/Target/ThreadPlan.cpp vendor/lldb/dist/source/Target/ThreadPlanCallUserExpression.cpp vendor/lldb/dist/source/Target/ThreadPlanShouldStopHere.cpp vendor/lldb/dist/source/Target/ThreadPlanStepInstruction.cpp vendor/lldb/dist/source/Target/ThreadPlanStepOverRange.cpp vendor/lldb/dist/source/Target/ThreadPlanStepRange.cpp vendor/lldb/dist/source/Target/ThreadPlanStepThrough.cpp vendor/lldb/dist/source/Target/UnixSignals.cpp vendor/lldb/dist/source/Target/UnwindAssembly.cpp vendor/lldb/dist/source/Utility/ConvertEnum.cpp vendor/lldb/dist/source/Utility/JSON.cpp vendor/lldb/dist/source/Utility/ModuleCache.cpp vendor/lldb/dist/source/Utility/SharingPtr.cpp vendor/lldb/dist/source/Utility/StringExtractor.cpp vendor/lldb/dist/source/Utility/StringExtractorGDBRemote.cpp vendor/lldb/dist/source/Utility/StringExtractorGDBRemote.h vendor/lldb/dist/source/Utility/TaskPool.cpp vendor/lldb/dist/test/CMakeLists.txt vendor/lldb/dist/test/use_lldb_suite.py vendor/lldb/dist/tools/compact-unwind/compact-unwind-dumper.c vendor/lldb/dist/tools/debugserver/debugserver.xcodeproj/project.pbxproj vendor/lldb/dist/tools/debugserver/source/DNB.cpp vendor/lldb/dist/tools/debugserver/source/DNB.h vendor/lldb/dist/tools/debugserver/source/DNBDataRef.cpp vendor/lldb/dist/tools/debugserver/source/MacOSX/CMakeLists.txt vendor/lldb/dist/tools/debugserver/source/MacOSX/MachException.cpp vendor/lldb/dist/tools/debugserver/source/MacOSX/MachProcess.h vendor/lldb/dist/tools/debugserver/source/MacOSX/MachProcess.mm vendor/lldb/dist/tools/debugserver/source/MacOSX/MachTask.h vendor/lldb/dist/tools/debugserver/source/MacOSX/MachTask.mm vendor/lldb/dist/tools/debugserver/source/RNBDefs.h vendor/lldb/dist/tools/debugserver/source/RNBRemote.cpp vendor/lldb/dist/tools/debugserver/source/RNBRemote.h vendor/lldb/dist/tools/debugserver/source/debugserver.cpp vendor/lldb/dist/tools/driver/Driver.cpp vendor/lldb/dist/tools/driver/Driver.h vendor/lldb/dist/tools/driver/Platform.cpp vendor/lldb/dist/tools/driver/Platform.h vendor/lldb/dist/tools/driver/lldb-Info.plist vendor/lldb/dist/tools/lldb-mi/CMakeLists.txt vendor/lldb/dist/tools/lldb-mi/MICmdCmdBreak.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdData.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdData.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdThread.cpp vendor/lldb/dist/tools/lldb-mi/MICmdCmdThread.h vendor/lldb/dist/tools/lldb-mi/MICmdCmdVar.cpp vendor/lldb/dist/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp vendor/lldb/dist/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp vendor/lldb/dist/tools/lldb-mi/MIUtilFileStd.cpp vendor/lldb/dist/tools/lldb-mi/Platform.h vendor/lldb/dist/tools/lldb-server/lldb-gdbserver.cpp vendor/lldb/dist/tools/lldb-server/lldb-server.cpp vendor/lldb/dist/unittests/CMakeLists.txt vendor/lldb/dist/unittests/Editline/EditlineTest.cpp vendor/lldb/dist/unittests/Host/CMakeLists.txt vendor/lldb/dist/unittests/Host/SocketAddressTest.cpp vendor/lldb/dist/unittests/Host/SocketTest.cpp vendor/lldb/dist/unittests/ScriptInterpreter/Python/PythonDataObjectsTests.cpp vendor/lldb/dist/unittests/ScriptInterpreter/Python/PythonExceptionStateTests.cpp vendor/lldb/dist/unittests/ScriptInterpreter/Python/PythonTestSuite.cpp vendor/lldb/dist/unittests/Utility/CMakeLists.txt vendor/lldb/dist/www/build.html vendor/lldb/dist/www/status.html vendor/lldb/dist/www/test.html Modified: vendor/lldb/dist/.arcconfig ============================================================================== --- vendor/lldb/dist/.arcconfig Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/.arcconfig Sat Jul 23 20:50:09 2016 (r303241) @@ -1,4 +1,4 @@ { "project_id" : "lldb", - "conduit_uri" : "http://reviews.llvm.org/" + "conduit_uri" : "https://reviews.llvm.org/" } Modified: vendor/lldb/dist/.gitignore ============================================================================== --- vendor/lldb/dist/.gitignore Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/.gitignore Sat Jul 23 20:50:09 2016 (r303241) @@ -31,6 +31,7 @@ DerivedData/ build/ pyproj/ llvm-build/ +ninja/ *xcuserdata test/20* __pycache__/ Modified: vendor/lldb/dist/CMakeLists.txt ============================================================================== --- vendor/lldb/dist/CMakeLists.txt Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/CMakeLists.txt Sat Jul 23 20:50:09 2016 (r303241) @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.4.3) include(cmake/modules/LLDBStandalone.cmake) include(cmake/modules/LLDBConfig.cmake) @@ -31,7 +31,7 @@ add_subdirectory(lit) if (NOT LLDB_DISABLE_PYTHON) # Add a Post-Build Event to copy over Python files and create the symlink to liblldb.so for the Python API(hardlink on Windows) add_custom_target( finish_swig ALL - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/finishSwigWrapperClasses.py "--srcRoot=${LLDB_SOURCE_DIR}" "--targetDir=${CMAKE_CURRENT_BINARY_DIR}/scripts" "--cfgBldDir=${CMAKE_CURRENT_BINARY_DIR}/scripts" "--prefix=${CMAKE_BINARY_DIR}" "--cmakeBuildConfiguration=${CMAKE_CFG_INTDIR}" -m + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/finishSwigWrapperClasses.py "--srcRoot=${LLDB_SOURCE_DIR}" "--targetDir=${CMAKE_CURRENT_BINARY_DIR}/scripts" "--cfgBldDir=${CMAKE_CURRENT_BINARY_DIR}/scripts" "--prefix=${CMAKE_BINARY_DIR}" "--cmakeBuildConfiguration=${CMAKE_CFG_INTDIR}" "--lldbLibDir=lib${LLVM_LIBDIR_SUFFIX}" -m DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/finishSwigWrapperClasses.py DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/scripts/lldb.py COMMENT "Python script sym-linking LLDB Python API") Modified: vendor/lldb/dist/cmake/LLDBDependencies.cmake ============================================================================== --- vendor/lldb/dist/cmake/LLDBDependencies.cmake Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/cmake/LLDBDependencies.cmake Sat Jul 23 20:50:09 2016 (r303241) @@ -15,6 +15,7 @@ set( LLDB_USED_LIBS # Plugins lldbPluginDisassemblerLLVM lldbPluginSymbolFileDWARF + lldbPluginSymbolFilePDB lldbPluginSymbolFileSymtab lldbPluginDynamicLoaderStatic lldbPluginDynamicLoaderPosixDYLD @@ -23,6 +24,7 @@ set( LLDB_USED_LIBS lldbPluginCPlusPlusLanguage lldbPluginGoLanguage + lldbPluginJavaLanguage lldbPluginObjCLanguage lldbPluginObjCPlusPlusLanguage @@ -50,6 +52,7 @@ set( LLDB_USED_LIBS lldbPluginAppleObjCRuntime lldbPluginRenderScriptRuntime lldbPluginLanguageRuntimeGo + lldbPluginLanguageRuntimeJava lldbPluginCXXItaniumABI lldbPluginABIMacOSX_arm lldbPluginABIMacOSX_arm64 @@ -63,6 +66,7 @@ set( LLDB_USED_LIBS lldbPluginABISysV_ppc64 lldbPluginABISysV_mips lldbPluginABISysV_mips64 + lldbPluginABISysV_s390x lldbPluginInstructionARM lldbPluginInstructionARM64 lldbPluginInstructionMIPS @@ -72,6 +76,7 @@ set( LLDB_USED_LIBS lldbPluginOSPython lldbPluginMemoryHistoryASan lldbPluginInstrumentationRuntimeAddressSanitizer + lldbPluginInstrumentationRuntimeThreadSanitizer lldbPluginSystemRuntimeMacOSX lldbPluginProcessElfCore lldbPluginJITLoaderGDB @@ -152,6 +157,11 @@ if (NOT CMAKE_SYSTEM_NAME MATCHES "Windo endif() endif() endif() + +if (NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB ) + list(APPEND LLDB_SYSTEM_LIBS atomic) +endif() + # On FreeBSD/NetBSD backtrace() is provided by libexecinfo, not libc. if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "NetBSD") list(APPEND LLDB_SYSTEM_LIBS execinfo) @@ -172,7 +182,7 @@ if (LLVM_BUILD_STATIC) endif() endif() -set( LLVM_LINK_COMPONENTS +set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} interpreter asmparser @@ -190,6 +200,7 @@ set( LLVM_LINK_COMPONENTS runtimedyld option support + coverage ) if ( NOT LLDB_DISABLE_PYTHON ) Modified: vendor/lldb/dist/cmake/modules/AddLLDB.cmake ============================================================================== --- vendor/lldb/dist/cmake/modules/AddLLDB.cmake Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/cmake/modules/AddLLDB.cmake Sat Jul 23 20:50:09 2016 (r303241) @@ -68,7 +68,7 @@ macro(add_lldb_library name) target_link_libraries(${name} ${cmake_2_8_12_PUBLIC} ${CLANG_USED_LIBS}) endif() endif() - llvm_config(${name} ${LLVM_LINK_COMPONENTS}) + llvm_config(${name} ${LLVM_LINK_COMPONENTS} ${LLVM_PRIVATE_LINK_COMPONENTS}) if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "liblldb") if (PARAM_SHARED) Modified: vendor/lldb/dist/cmake/modules/LLDBConfig.cmake ============================================================================== --- vendor/lldb/dist/cmake/modules/LLDBConfig.cmake Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/cmake/modules/LLDBConfig.cmake Sat Jul 23 20:50:09 2016 (r303241) @@ -1,3 +1,5 @@ +include(CheckCXXSymbolExists) + set(LLDB_PROJECT_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) set(LLDB_SOURCE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/source") set(LLDB_INCLUDE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/include") @@ -245,6 +247,11 @@ if( MSVC ) ) endif() +# Use the Unicode (UTF-16) APIs by default on Win32 +if (CMAKE_SYSTEM_NAME MATCHES "Windows") + add_definitions( /D _UNICODE /D UNICODE ) +endif() + set(LLDB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(LLDB_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) @@ -331,28 +338,6 @@ if (HAVE_LIBDL) list(APPEND system_libs ${CMAKE_DL_LIBS}) endif() -if(LLDB_REQUIRES_EH) - set(LLDB_REQUIRES_RTTI ON) -else() - if(LLVM_COMPILER_IS_GCC_COMPATIBLE) - set(LLDB_COMPILE_FLAGS "${LLDB_COMPILE_FLAGS} -fno-exceptions") - elseif(MSVC) - add_definitions( -D_HAS_EXCEPTIONS=0 ) - set(LLDB_COMPILE_FLAGS "${LLDB_COMPILE_FLAGS} /EHs-c-") - endif() -endif() - -# Disable RTTI by default -if(NOT LLDB_REQUIRES_RTTI) - if (LLVM_COMPILER_IS_GCC_COMPATIBLE) - set(LLDB_COMPILE_FLAGS "${LLDB_COMPILE_FLAGS} -fno-rtti") - elseif(MSVC) - set(LLDB_COMPILE_FLAGS "${LLDB_COMPILE_FLAGS} /GR-") - endif() -endif() - -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LLDB_COMPILE_FLAGS}") - if (CMAKE_SYSTEM_NAME MATCHES "Linux") # Check for syscall used by lldb-server on linux. # If these are not found, it will fall back to ptrace (slow) for memory reads. @@ -410,3 +395,25 @@ if (NOT LLDB_DISABLE_CURSES) list(APPEND system_libs ${CURSES_LIBRARIES}) include_directories(${CURSES_INCLUDE_DIR}) endif () + +check_cxx_symbol_exists("__GLIBCXX__" "string" LLDB_USING_LIBSTDCXX) +if(LLDB_USING_LIBSTDCXX) + # There doesn't seem to be an easy way to check the library version. Instead, we rely on the + # fact that std::set did not have the allocator constructor available until version 4.9 + check_cxx_source_compiles(" + #include + std::set s = std::set(std::allocator()); + int main() { return 0; }" + LLDB_USING_LIBSTDCXX_4_9) + if (NOT LLDB_USING_LIBSTDCXX_4_9 AND NOT LLVM_ENABLE_EH) + message(WARNING + "You appear to be linking to libstdc++ version lesser than 4.9 without exceptions " + "enabled. These versions of the library have an issue, which causes occasional " + "lldb crashes. See for " + "details. Possible courses of action are:\n" + "- use libstdc++ version 4.9 or newer\n" + "- use libc++ (via LLVM_ENABLE_LIBCXX)\n" + "- enable exceptions (via LLVM_ENABLE_EH)\n" + "- ignore this warning and accept occasional instability") + endif() +endif() Modified: vendor/lldb/dist/cmake/modules/LLDBStandalone.cmake ============================================================================== --- vendor/lldb/dist/cmake/modules/LLDBStandalone.cmake Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/cmake/modules/LLDBStandalone.cmake Sat Jul 23 20:50:09 2016 (r303241) @@ -2,64 +2,91 @@ # standalone project, using LLVM as an external library: if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) project(lldb) - cmake_minimum_required(VERSION 2.8) + cmake_minimum_required(VERSION 2.8.12.2) - option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in the 'install' target." OFF) - - set(LLDB_PATH_TO_LLVM_SOURCE "" CACHE PATH - "Path to LLVM source code. Not necessary if using an installed LLVM.") - set(LLDB_PATH_TO_LLVM_BUILD "" CACHE PATH - "Path to the directory where LLVM was built or installed.") - - set(LLDB_PATH_TO_CLANG_SOURCE "" CACHE PATH - "Path to Clang source code. Not necessary if using an installed Clang.") - set(LLDB_PATH_TO_CLANG_BUILD "" CACHE PATH - "Path to the directory where Clang was built or installed.") - - if (LLDB_PATH_TO_LLVM_SOURCE) - if (NOT EXISTS "${LLDB_PATH_TO_LLVM_SOURCE}/cmake/config-ix.cmake") - message(FATAL_ERROR "Please set LLDB_PATH_TO_LLVM_SOURCE to the root " - "directory of LLVM source code.") - else() - get_filename_component(LLVM_MAIN_SRC_DIR ${LLDB_PATH_TO_LLVM_SOURCE} - ABSOLUTE) - set(LLVM_MAIN_INCLUDE_DIR "${LLVM_MAIN_SRC_DIR}/include") - list(APPEND CMAKE_MODULE_PATH "${LLVM_MAIN_SRC_DIR}/cmake/modules") - endif() + if (POLICY CMP0022) + cmake_policy(SET CMP0022 NEW) # automatic when 2.8.12 is required endif() - if (LLDB_PATH_TO_CLANG_SOURCE) - get_filename_component(CLANG_MAIN_SRC_DIR ${LLDB_PATH_TO_CLANG_SOURCE} - ABSOLUTE) - set(CLANG_MAIN_INCLUDE_DIR "${CLANG_MAIN_SRC_DIR}/include") - endif() + option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in the 'install' target." OFF) - list(APPEND CMAKE_MODULE_PATH "${LLDB_PATH_TO_LLVM_BUILD}/share/llvm/cmake") + # Rely on llvm-config. + set(CONFIG_OUTPUT) + find_program(LLVM_CONFIG "llvm-config") + if(LLVM_CONFIG) + message(STATUS "Found LLVM_CONFIG as ${LLVM_CONFIG}") + set(CONFIG_COMMAND ${LLVM_CONFIG} + "--assertion-mode" + "--bindir" + "--libdir" + "--includedir" + "--prefix" + "--src-root") + execute_process( + COMMAND ${CONFIG_COMMAND} + RESULT_VARIABLE HAD_ERROR + OUTPUT_VARIABLE CONFIG_OUTPUT + ) + if(NOT HAD_ERROR) + string(REGEX REPLACE + "[ \t]*[\r\n]+[ \t]*" ";" + CONFIG_OUTPUT ${CONFIG_OUTPUT}) - if (LLDB_PATH_TO_LLVM_BUILD) - get_filename_component(PATH_TO_LLVM_BUILD ${LLDB_PATH_TO_LLVM_BUILD} - ABSOLUTE) + else() + string(REPLACE ";" " " CONFIG_COMMAND_STR "${CONFIG_COMMAND}") + message(STATUS "${CONFIG_COMMAND_STR}") + message(FATAL_ERROR "llvm-config failed with status ${HAD_ERROR}") + endif() else() - message(FATAL_ERROR "Please set LLDB_PATH_TO_LLVM_BUILD to the root " - "directory of LLVM build or install site.") + message(FATAL_ERROR "llvm-config not found -- ${LLVM_CONFIG}") endif() - if (LLDB_PATH_TO_CLANG_BUILD) - get_filename_component(PATH_TO_CLANG_BUILD ${LLDB_PATH_TO_CLANG_BUILD} - ABSOLUTE) + list(GET CONFIG_OUTPUT 0 ENABLE_ASSERTIONS) + list(GET CONFIG_OUTPUT 1 TOOLS_BINARY_DIR) + list(GET CONFIG_OUTPUT 2 LIBRARY_DIR) + list(GET CONFIG_OUTPUT 3 INCLUDE_DIR) + list(GET CONFIG_OUTPUT 4 LLVM_OBJ_ROOT) + list(GET CONFIG_OUTPUT 5 MAIN_SRC_DIR) + + if(NOT MSVC_IDE) + set(LLVM_ENABLE_ASSERTIONS ${ENABLE_ASSERTIONS} + CACHE BOOL "Enable assertions") + # Assertions should follow llvm-config's. + mark_as_advanced(LLVM_ENABLE_ASSERTIONS) + endif() + + set(LLVM_TOOLS_BINARY_DIR ${TOOLS_BINARY_DIR} CACHE PATH "Path to llvm/bin") + set(LLVM_LIBRARY_DIR ${LIBRARY_DIR} CACHE PATH "Path to llvm/lib") + set(LLVM_MAIN_INCLUDE_DIR ${INCLUDE_DIR} CACHE PATH "Path to llvm/include") + set(LLVM_DIR ${LLVM_OBJ_ROOT}/cmake/modules/CMakeFiles CACHE PATH "Path to LLVM build tree CMake files") + set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree") + set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree") + + find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR} + NO_DEFAULT_PATH) + + set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm") + set(LLVMCONFIG_FILE "${LLVM_CMAKE_PATH}/LLVMConfig.cmake") + if(EXISTS ${LLVMCONFIG_FILE}) + list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}") + include(${LLVMCONFIG_FILE}) else() - message(FATAL_ERROR "Please set LLDB_PATH_TO_CLANG_BUILD to the root " - "directory of Clang build or install site.") + message(FATAL_ERROR "Not found: ${LLVMCONFIG_FILE}") endif() - - # These variables are used by add_llvm_library. + # They are used as destination of target generators. set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) - set(LLVM_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) + if(WIN32 OR CYGWIN) + # DLL platform -- put DLLs into bin. + set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) + else() + set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) + endif() include(AddLLVM) include(HandleLLVMOptions) + include(CheckAtomic) if (PYTHON_EXECUTABLE STREQUAL "") set(Python_ADDITIONAL_VERSIONS 3.5 3.4 3.3 3.2 3.1 3.0 2.7 2.6 2.5) @@ -72,10 +99,12 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR else() message("-- Found PythonInterp: ${PYTHON_EXECUTABLE}") endif() + # Import CMake library targets from LLVM and Clang. - include("${LLDB_PATH_TO_LLVM_BUILD}/share/llvm/cmake/LLVMConfig.cmake") - if (EXISTS "${LLDB_PATH_TO_CLANG_BUILD}/share/clang/cmake/ClangConfig.cmake") - include("${LLDB_PATH_TO_CLANG_BUILD}/share/clang/cmake/ClangConfig.cmake") + include("${LLVM_OBJ_ROOT}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm/LLVMConfig.cmake") + # cmake/clang/ClangConfig.cmake is not created when LLVM and Cland are built together. + if (EXISTS "${LLVM_OBJ_ROOT}/lib${LLVM_LIBDIR_SUFFIX}/cmake/clang/ClangConfig.cmake") + include("${LLVM_OBJ_ROOT}/lib${LLVM_LIBDIR_SUFFIX}/cmake/clang/ClangConfig.cmake") endif() set(PACKAGE_VERSION "${LLVM_PACKAGE_VERSION}") @@ -83,13 +112,19 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR set(LLVM_BINARY_DIR ${CMAKE_BINARY_DIR}) set(CMAKE_INCLUDE_CURRENT_DIR ON) - include_directories("${PATH_TO_LLVM_BUILD}/include" - "${LLVM_MAIN_INCLUDE_DIR}" - "${PATH_TO_CLANG_BUILD}/include" - "${CLANG_MAIN_INCLUDE_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}/source") - link_directories("${PATH_TO_LLVM_BUILD}/lib${LLVM_LIBDIR_SUFFIX}" - "${PATH_TO_CLANG_BUILD}/lib${LLVM_LIBDIR_SUFFIX}") + include_directories("${LLVM_BINARY_DIR}/include" "${LLVM_MAIN_INCLUDE_DIR}") + # Next three include directories are needed when llvm-config is located in build directory. + # LLVM and Cland are assumed to be built together + if (EXISTS "${LLVM_OBJ_ROOT}/include") + include_directories("${LLVM_OBJ_ROOT}/include") + endif() + if (EXISTS "${LLVM_MAIN_SRC_DIR}/tools/clang/include") + include_directories("${LLVM_MAIN_SRC_DIR}/tools/clang/include") + endif() + if (EXISTS "${LLVM_OBJ_ROOT}/tools/clang/include") + include_directories("${LLVM_OBJ_ROOT}/tools/clang/include") + endif() + link_directories("${LLVM_LIBRARY_DIR}") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}) Modified: vendor/lldb/dist/cmake/platforms/Android.cmake ============================================================================== --- vendor/lldb/dist/cmake/platforms/Android.cmake Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/cmake/platforms/Android.cmake Sat Jul 23 20:50:09 2016 (r303241) @@ -165,6 +165,15 @@ set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY O set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) ################# BEGIN EVIL HACK ################## +# In the android-arm NDK unwind.h and link.h contains 2 conflicting +# typedef for _Unwind_Ptr. Force HAVE_UNWIND_BACKTRACE to 0 to prevent +# LLVM from finding unwind.h what would break the build. +if ( ANDROID_ABI STREQUAL "armeabi" ) + set( HAVE_UNWIND_BACKTRACE 0 CACHE INTERNAL "Hack to disable the finding of unwind.h on Android arm" ) +endif() +################# END EVIL HACK #################### + +################# BEGIN EVIL HACK ################## # lldb-server links against libdl even though it's not being used and # libdl.a is currently missing from the toolchain (b.android.com/178517). # Therefore, in order to statically link lldb-server, we need a temporary @@ -178,7 +187,8 @@ if( LLVM_BUILD_STATIC ) void * dlopen (const char *filename, int flag) { return 0; } const char * dlerror (void) { return 0; } void * dlsym (void *handle, const char *symbol) { return 0; } -int dlclose (void *handle) { return 0; }") +int dlclose (void *handle) { return 0; } +int dladdr (const void *addr, Dl_info *info) { return 0; }") set( flags "${CMAKE_C_FLAGS}" ) separate_arguments( flags ) execute_process( COMMAND ${CMAKE_C_COMPILER} ${flags} -c ${libdl}/libdl.c -o ${libdl}/libdl.o ) Modified: vendor/lldb/dist/docs/lldb-for-gdb-users.txt ============================================================================== --- vendor/lldb/dist/docs/lldb-for-gdb-users.txt Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/docs/lldb-for-gdb-users.txt Sat Jul 23 20:50:09 2016 (r303241) @@ -222,7 +222,7 @@ Or you can attach to a process by name w (lldb) process attach -n Sketch -the "attach by name" also supports the "-w" option which waits for the +The "attach by name" also supports the "-w" option which waits for the next process of that name to show up, and attaches to that. You can also attach by PID: Modified: vendor/lldb/dist/docs/lldb-gdb-remote.txt ============================================================================== --- vendor/lldb/dist/docs/lldb-gdb-remote.txt Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/docs/lldb-gdb-remote.txt Sat Jul 23 20:50:09 2016 (r303241) @@ -1508,6 +1508,28 @@ for this region. // This packet asks the remote debug stub to send the details about libraries // being added/removed from the process as a performance optimization. // +// There are three ways this packet can be used. All three return a dictionary of +// binary images formatted the same way. +// +// On MacOS X 10.11, iOS 9, tvOS 9, watchOS 2 and earlier, the packet is used like +// jGetLoadedDynamicLibrariesInfos:{"image_count":1,"image_list_address":140734800075128} +// where the image_list_address is an array of {void* load_addr, void* mod_date, void* pathname} +// in the inferior process memory (and image_count is the number of elements in this array). +// lldb is using information from the dyld_all_image_infos structure to make these requests to +// debugserver. This use is not supported on macOS 10.12, iOS 10, tvOS 10, watchOS 3 or newer. +// +// On macOS 10.12, iOS 10, tvOS 10, watchOS 3 and newer, there are two calls. One requests information +// on all shared libraries: +// jGetLoadedDynamicLibrariesInfos:{"fetch_all_solibs":true} +// And the second requests information about a list of shared libraries, given their load addresses: +// jGetLoadedDynamicLibrariesInfos:{"solib_addresses":[8382824135,3258302053,830202858503]} +// +// The second call is both a performance optimization (instead of having lldb read the mach-o header/load commands +// out of memory with generic read packets) but also adds additional information in the form of the +// filename of the shared libraries (which is not available in the mach-o header/load commands.) +// +// An example using the Mac OS X 10.11 style call: +// // LLDB SENDS: jGetLoadedDynamicLibrariesInfos:{"image_count":1,"image_list_address":140734800075128} // STUB REPLIES: ${"images":[{"load_address":4294967296,"mod_date":0,"pathname":"/tmp/a.out","uuid":"02CF262C-ED6F-3965-9E14-63538B465CFF","mach_header":{"magic":4277009103,"cputype":16777223,"cpusubtype":18446744071562067971,"filetype":2},"segments":{"name":"__PAGEZERO","vmaddr":0,"vmsize":4294967296,"fileoff":0,"filesize":0,"maxprot":0},{"name":"__TEXT","vmaddr":4294967296,"vmsize":4096,"fileoff":0,"filesize":4096,"maxprot":7},{"name":"__LINKEDIT","vmaddr":4294971392,"vmsize":4096,"fileoff":4096,"filesize":152,"maxprot":7}}]}#00 // @@ -1562,26 +1584,12 @@ for this region. // quite a bit to provide all the information that the DynamicLoaderMacOSX // would need to work correctly on this platform. // -// On Mac OS X / iOS, when libraries are added or removed, a stub -// function is called which lldb puts a breakpoint on. The arguments -// to the stub function include the number of libraries being added -// or removed and the address where the list of libraries can be -// found. The information at this address is the load address of the -// library, the filename, and the mod date of the library if available. -// DynamicLoaderMacOSX then parses the load commands in the Mach-O header -// at the load address before it can decide what action to take. -// -// The purpose of this packet is to eliminate all of the memory reads needed -// to read the Mach-O header and load commands for these libraries. -// On a typical GUI app, there can be a couple hundred shared libraries -// which results in megabytes of read packets. That same information can -// be returned in a couple hundred kilobytes in JSON format from the remote -// debugserver. -// -// // PRIORITY TO IMPLEMENT -// Low. If this packet is absent, lldb will read the Mach-O headers/load -// commands out of memory. +// On Mac OS X 10.11, iOS 9, tvOS 9, watchOS 2 and older: Low. If this packet is absent, +// lldb will read the Mach-O headers/load commands out of memory. +// On macOS 10.12, iOS 10, tvOS 10, watchOS 3 and newer: High. If this packet is absent, +// lldb will not know anything about shared libraries in the inferior, or where the main +// executable loaded. //---------------------------------------------------------------------- //---------------------------------------------------------------------- @@ -1649,6 +1657,26 @@ the previous FP and PC), and follow the iOS now don't require us to read any memory! //---------------------------------------------------------------------- +// "jGetSharedCacheInfo" +// +// BRIEF +// This packet asks the remote debug stub to send the details about the inferior's +// shared cache. The shared cache is a collection of common libraries/frameworks that +// are mapped into every process at the same address on Darwin systems, and can be +// identified by a load address and UUID. +// +// +// LLDB SENDS: jGetSharedCacheInfo:{} +// STUB REPLIES: ${"shared_cache_base_address":140735683125248,"shared_cache_uuid":"DDB8D70C-C9A2-3561-B2C8-BE48A4F33F96","no_shared_cache":false,"shared_cache_private_cache":false]}#00 +// +// PRIORITY TO IMPLEMENT +// Low. When both lldb and the inferior process are running on the same computer, and lldb +// and the inferior process have the same shared cache, lldb may (as an optimization) read +// the shared cache out of its own memory instead of using gdb-remote read packets to read +// them from the inferior process. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- // "qQueryGDBServer" // // BRIEF Modified: vendor/lldb/dist/examples/python/crashlog.py ============================================================================== --- vendor/lldb/dist/examples/python/crashlog.py Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/examples/python/crashlog.py Sat Jul 23 20:50:09 2016 (r303241) @@ -452,7 +452,7 @@ class CrashLog(symbolication.Symbolicato for image in self.images: if image.identifier == identifier: return image - regex_text = '^.*\.%s$' % (identifier) + regex_text = '^.*\.%s$' % (re.escape(identifier)) regex = re.compile(regex_text) for image in self.images: if regex.match(image.identifier): Modified: vendor/lldb/dist/examples/python/scripted_step.py ============================================================================== --- vendor/lldb/dist/examples/python/scripted_step.py Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/examples/python/scripted_step.py Sat Jul 23 20:50:09 2016 (r303241) @@ -184,3 +184,28 @@ class StepCheckingCondition: def should_step (self): return True +# Here's an example that steps out of the current frame, gathers some information +# and then continues. The information in this case is rax. Currently the thread +# plans are not a safe place to call lldb command-line commands, so the information +# is gathered through SB API calls. + +class FinishPrintAndContinue: + def __init__ (self, thread_plan, dict): + self.thread_plan = thread_plan + self.step_out_thread_plan = thread_plan.QueueThreadPlanForStepOut(0, True) + self.thread = self.thread_plan.GetThread() + + def explains_stop (self, event): + return False + + def should_stop (self, event): + if self.step_out_thread_plan.IsPlanComplete(): + frame_0 = self.thread.frames[0] + rax_value = frame_0.FindRegister("rax") + if rax_value.GetError().Success(): + print "RAX on exit: ", rax_value.GetValue() + else: + print "Couldn't get rax value:", rax_value.GetError().GetCString() + + self.thread_plan.SetPlanComplete(True) + return False Added: vendor/lldb/dist/examples/python/shadow.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lldb/dist/examples/python/shadow.py Sat Jul 23 20:50:09 2016 (r303241) @@ -0,0 +1,57 @@ +#!/usr/bin/python + +import lldb +import shlex + +@lldb.command("shadow") +def check_shadow_command(debugger, command, exe_ctx, result, dict): + '''Check the currently selected stack frame for shadowed variables''' + process = exe_ctx.GetProcess() + state = process.GetState() + if state != lldb.eStateStopped: + print >>result, "process must be stopped, state is %s" % lldb.SBDebugger.StateAsCString(state) + return + frame = exe_ctx.GetFrame() + if not frame: + print >>result, "invalid frame" + return + # Parse command line args + command_args = shlex.split(command) + # TODO: add support for using arguments that are passed to this command... + + # Make a dictionary of variable name to "SBBlock and SBValue" + shadow_dict = {} + + num_shadowed_variables = 0 + # Get the deepest most block from the current frame + block = frame.GetBlock() + # Iterate through the block and all of its parents + while block.IsValid(): + # Get block variables from the current block only + block_vars = block.GetVariables(frame, True, True, True, 0) + # Iterate through all variables in the current block + for block_var in block_vars: + # Since we can have multiple shadowed variables, we our variable + # name dictionary to have an array or "block + variable" pairs so + # We can correctly print out all shadowed variables and whow which + # blocks they come from + block_var_name = block_var.GetName() + if block_var_name in shadow_dict: + shadow_dict[block_var_name].append(block_var) + else: + shadow_dict[block_var_name] = [block_var] + # Get the parent block and continue + block = block.GetParent() + + num_shadowed_variables = 0 + if shadow_dict: + for name in shadow_dict.keys(): + shadow_vars = shadow_dict[name] + if len(shadow_vars) > 1: + print '"%s" is shadowed by the following declarations:' % (name) + num_shadowed_variables += 1 + for shadow_var in shadow_vars: + print >>result, str(shadow_var.GetDeclaration()) + if num_shadowed_variables == 0: + print >>result, 'no variables are shadowed' + Modified: vendor/lldb/dist/examples/python/symbolication.py ============================================================================== --- vendor/lldb/dist/examples/python/symbolication.py Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/examples/python/symbolication.py Sat Jul 23 20:50:09 2016 (r303241) @@ -448,7 +448,7 @@ class Symbolicator: if image.identifier == identifier: images.append(image) if len(images) == 0: - regex_text = '^.*\.%s$' % (identifier) + regex_text = '^.*\.%s$' % (re.escape(identifier)) regex = re.compile(regex_text) for image in self.images: if regex.match(image.identifier): Modified: vendor/lldb/dist/examples/synthetic/gnu_libstdcpp.py ============================================================================== --- vendor/lldb/dist/examples/synthetic/gnu_libstdcpp.py Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/examples/synthetic/gnu_libstdcpp.py Sat Jul 23 20:50:09 2016 (r303241) @@ -237,11 +237,12 @@ class StdVectorSynthProvider: def get_child_at_index(self, index): if index >= self.num_children(): return None - byte_offset = index / 8 - bit_offset = index % 8 - element_size = self.start_p.GetType().GetPointeeType().GetByteSize() - data = self.start_p.GetPointeeData(byte_offset / element_size) - bit = data.GetUnsignedInt8(lldb.SBError(), byte_offset % element_size) & (1 << bit_offset) + element_type = self.start_p.GetType().GetPointeeType() + element_bits = 8 * element_type.GetByteSize() + element_offset = (index / element_bits) * element_type.GetByteSize() + bit_offset = index % element_bits + element = self.start_p.CreateChildAtOffset('['+str(index)+']',element_offset,element_type) + bit = element.GetValueAsUnsigned(0) & (1 << bit_offset) if bit != 0: value_expr = "(bool)true" else: Modified: vendor/lldb/dist/include/lldb/API/LLDB.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/LLDB.h Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/include/lldb/API/LLDB.h Sat Jul 23 20:50:09 2016 (r303241) @@ -43,6 +43,8 @@ #include "lldb/API/SBLaunchInfo.h" #include "lldb/API/SBLineEntry.h" #include "lldb/API/SBListener.h" +#include "lldb/API/SBMemoryRegionInfo.h" +#include "lldb/API/SBMemoryRegionInfoList.h" #include "lldb/API/SBModule.h" #include "lldb/API/SBModuleSpec.h" #include "lldb/API/SBPlatform.h" Modified: vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/include/lldb/API/SBCommandReturnObject.h Sat Jul 23 20:50:09 2016 (r303241) @@ -83,7 +83,9 @@ public: bool GetDescription (lldb::SBStream &description); - + + // deprecated, these two functions do not take + // ownership of file handle void SetImmediateOutputFile (FILE *fh); @@ -91,6 +93,12 @@ public: SetImmediateErrorFile (FILE *fh); void + SetImmediateOutputFile (FILE *fh, bool transfer_ownership); + + void + SetImmediateErrorFile (FILE *fh, bool transfer_ownership); + + void PutCString(const char* string, int len = -1); size_t Modified: vendor/lldb/dist/include/lldb/API/SBDefines.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBDefines.h Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/include/lldb/API/SBDefines.h Sat Jul 23 20:50:09 2016 (r303241) @@ -59,6 +59,8 @@ class LLDB_API SBLanguageRuntime; class LLDB_API SBLaunchInfo; class LLDB_API SBLineEntry; class LLDB_API SBListener; +class LLDB_API SBMemoryRegionInfo; +class LLDB_API SBMemoryRegionInfoList; class LLDB_API SBModule; class LLDB_API SBModuleSpec; class LLDB_API SBModuleSpecList; Modified: vendor/lldb/dist/include/lldb/API/SBExpressionOptions.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBExpressionOptions.h Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/include/lldb/API/SBExpressionOptions.h Sat Jul 23 20:50:09 2016 (r303241) @@ -110,6 +110,19 @@ public: void SetPrefix (const char *prefix); + + void + SetAutoApplyFixIts(bool b = true); + + bool + GetAutoApplyFixIts(); + + bool + GetTopLevel (); + + void + SetTopLevel (bool b = true); + protected: Modified: vendor/lldb/dist/include/lldb/API/SBFileSpec.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBFileSpec.h Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/include/lldb/API/SBFileSpec.h Sat Jul 23 20:50:09 2016 (r303241) @@ -60,6 +60,9 @@ public: bool GetDescription (lldb::SBStream &description) const; + void + AppendPathComponent (const char *file_or_directory); + private: friend class SBAttachInfo; friend class SBBlock; Modified: vendor/lldb/dist/include/lldb/API/SBHostOS.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBHostOS.h Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/include/lldb/API/SBHostOS.h Sat Jul 23 20:50:09 2016 (r303241) @@ -28,6 +28,9 @@ public: static lldb::SBFileSpec GetLLDBPath (lldb::PathType path_type); + static lldb::SBFileSpec + GetUserHomeDirectory (); + static void ThreadCreated (const char *name); Modified: vendor/lldb/dist/include/lldb/API/SBInstruction.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBInstruction.h Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/include/lldb/API/SBInstruction.h Sat Jul 23 20:50:09 2016 (r303241) @@ -18,6 +18,8 @@ // There's a lot to be fixed here, but need to wait for underlying insn implementation // to be revised & settle down first. +class InstructionImpl; + namespace lldb { class LLDB_API SBInstruction @@ -81,14 +83,17 @@ public: protected: friend class SBInstructionList; - SBInstruction (const lldb::InstructionSP &inst_sp); + SBInstruction(const lldb::DisassemblerSP &disasm_sp, const lldb::InstructionSP &inst_sp); void - SetOpaque (const lldb::InstructionSP &inst_sp); + SetOpaque(const lldb::DisassemblerSP &disasm_sp, const lldb::InstructionSP& inst_sp); + + lldb::InstructionSP + GetOpaque(); private: - lldb::InstructionSP m_opaque_sp; + std::shared_ptr m_opaque_sp; }; Modified: vendor/lldb/dist/include/lldb/API/SBLaunchInfo.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBLaunchInfo.h Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/include/lldb/API/SBLaunchInfo.h Sat Jul 23 20:50:09 2016 (r303241) @@ -145,7 +145,7 @@ public: GetShellExpandArguments (); void - SetShellExpandArguments (bool glob); + SetShellExpandArguments (bool expand); uint32_t GetResumeCount (); Modified: vendor/lldb/dist/include/lldb/API/SBListener.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBListener.h Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/include/lldb/API/SBListener.h Sat Jul 23 20:50:09 2016 (r303241) @@ -106,8 +106,6 @@ protected: friend class SBLaunchInfo; friend class SBTarget; - SBListener (lldb_private::Listener &listener); - SBListener (const lldb::ListenerSP &listener_sp); lldb::ListenerSP @@ -124,20 +122,11 @@ private: lldb_private::Listener * get() const; - lldb_private::Listener & - ref() const; - - lldb_private::Listener & - operator *(); - - const lldb_private::Listener & - operator *() const; - void - reset(lldb_private::Listener *listener, bool transfer_ownership); + reset(lldb::ListenerSP listener_sp); lldb::ListenerSP m_opaque_sp; - lldb_private::Listener *m_opaque_ptr; + lldb_private::Listener *m_unused_ptr; }; } // namespace lldb Added: vendor/lldb/dist/include/lldb/API/SBMemoryRegionInfo.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lldb/dist/include/lldb/API/SBMemoryRegionInfo.h Sat Jul 23 20:50:09 2016 (r303241) @@ -0,0 +1,117 @@ +//===-- SBMemoryRegionInfo.h ------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_SBMemoryRegionInfo_h_ +#define LLDB_SBMemoryRegionInfo_h_ + +#include "lldb/API/SBDefines.h" +#include "lldb/API/SBData.h" + +namespace lldb { + +class LLDB_API SBMemoryRegionInfo +{ +public: + + SBMemoryRegionInfo (); + + SBMemoryRegionInfo (const lldb::SBMemoryRegionInfo &rhs); + + ~SBMemoryRegionInfo (); + + const lldb::SBMemoryRegionInfo & + operator = (const lldb::SBMemoryRegionInfo &rhs); + + void + Clear(); + + //------------------------------------------------------------------ + /// Get the base address of this memory range. + /// + /// @return + /// The base address of this memory range. + //------------------------------------------------------------------ + lldb::addr_t + GetRegionBase (); + + //------------------------------------------------------------------ + /// Get the end address of this memory range. + /// + /// @return + /// The base address of this memory range. + //------------------------------------------------------------------ + lldb::addr_t + GetRegionEnd (); + + //------------------------------------------------------------------ + /// Check if this memory address is marked readable to the process. + /// + /// @return + /// true if this memory address is marked readable + //------------------------------------------------------------------ + bool + IsReadable (); + + //------------------------------------------------------------------ + /// Check if this memory address is marked writable to the process. + /// + /// @return + /// true if this memory address is marked writable + //------------------------------------------------------------------ + bool + IsWritable (); + + //------------------------------------------------------------------ + /// Check if this memory address is marked executable to the process. + /// + /// @return + /// true if this memory address is marked executable + //------------------------------------------------------------------ + bool + IsExecutable (); + + //------------------------------------------------------------------ + /// Check if this memory address is mapped into the process address + /// space. + /// + /// @return + /// true if this memory address is in the process address space. + //------------------------------------------------------------------ + bool + IsMapped (); + + bool + operator == (const lldb::SBMemoryRegionInfo &rhs) const; + + bool + operator != (const lldb::SBMemoryRegionInfo &rhs) const; + + bool + GetDescription (lldb::SBStream &description); + +private: + + friend class SBProcess; + friend class SBMemoryRegionInfoList; + + lldb_private::MemoryRegionInfo & + ref(); + + const lldb_private::MemoryRegionInfo & + ref() const; + + SBMemoryRegionInfo (const lldb_private::MemoryRegionInfo *lldb_object_ptr); + + lldb::MemoryRegionInfoUP m_opaque_ap; +}; + + +} // namespace lldb + +#endif // LLDB_SBMemoryRegionInfo_h_ Added: vendor/lldb/dist/include/lldb/API/SBMemoryRegionInfoList.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lldb/dist/include/lldb/API/SBMemoryRegionInfoList.h Sat Jul 23 20:50:09 2016 (r303241) @@ -0,0 +1,63 @@ +//===-- SBMemoryRegionInfoList.h --------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_SBMemoryRegionInfoList_h_ +#define LLDB_SBMemoryRegionInfoList_h_ + +#include "lldb/API/SBDefines.h" + +class MemoryRegionInfoListImpl; + +namespace lldb { + +class LLDB_API SBMemoryRegionInfoList +{ +public: + + SBMemoryRegionInfoList (); + + SBMemoryRegionInfoList (const lldb::SBMemoryRegionInfoList &rhs); + + const SBMemoryRegionInfoList & + operator = (const SBMemoryRegionInfoList &rhs); + + ~SBMemoryRegionInfoList (); + + uint32_t + GetSize () const; + + bool + GetMemoryRegionAtIndex (uint32_t idx, SBMemoryRegionInfo ®ion_info); + + void + Append (lldb::SBMemoryRegionInfo ®ion); + + void + Append (lldb::SBMemoryRegionInfoList ®ion_list); + + void + Clear (); + +protected: + + const MemoryRegionInfoListImpl * + operator->() const; + + const MemoryRegionInfoListImpl & + operator*() const; + +private: + + std::unique_ptr m_opaque_ap; + +}; + +} // namespace lldb + +#endif // LLDB_SBMemoryRegionInfoList_h_ Modified: vendor/lldb/dist/include/lldb/API/SBProcess.h ============================================================================== --- vendor/lldb/dist/include/lldb/API/SBProcess.h Sat Jul 23 20:49:25 2016 (r303240) +++ vendor/lldb/dist/include/lldb/API/SBProcess.h Sat Jul 23 20:50:09 2016 (r303241) @@ -393,6 +393,34 @@ public: lldb::SBError SaveCore(const char *file_name); + //------------------------------------------------------------------ + /// Query the address load_addr and store the details of the memory + /// region that contains it in the supplied SBMemoryRegionInfo object. + /// To iterate over all memory regions use GetMemoryRegionList. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Sat Jul 23 20:50:48 2016 Return-Path: Delivered-To: svn-src-all@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 ACB4BBA2D8B; Sat, 23 Jul 2016 20:50: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 66DA412E2; Sat, 23 Jul 2016 20:50: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 u6NKolrh013256; Sat, 23 Jul 2016 20:50:47 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NKolEP013255; Sat, 23 Jul 2016 20:50:47 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232050.u6NKolEP013255@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 20:50:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303242 - vendor/lldb/lldb-release_39-r276489 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 20:50:48 -0000 Author: dim Date: Sat Jul 23 20:50:47 2016 New Revision: 303242 URL: https://svnweb.freebsd.org/changeset/base/303242 Log: Tag lldb release_39 branch r276489. Added: vendor/lldb/lldb-release_39-r276489/ - copied from r303241, vendor/lldb/dist/ From owner-svn-src-all@freebsd.org Sat Jul 23 21:02:37 2016 Return-Path: Delivered-To: svn-src-all@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 AB82CBA20AE; Sat, 23 Jul 2016 21:02:37 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7CABC1B00; Sat, 23 Jul 2016 21:02:37 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NL2a3f020000; Sat, 23 Jul 2016 21:02:36 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NL2aDD019999; Sat, 23 Jul 2016 21:02:36 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201607232102.u6NL2aDD019999@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sat, 23 Jul 2016 21:02:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303243 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 21:02:37 -0000 Author: markj Date: Sat Jul 23 21:02:36 2016 New Revision: 303243 URL: https://svnweb.freebsd.org/changeset/base/303243 Log: Update a comment in vm_page_advise() to match behaviour after r290529. Reviewed by: alc MFC after: 3 days Modified: head/sys/vm/vm_page.c Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Sat Jul 23 20:50:47 2016 (r303242) +++ head/sys/vm/vm_page.c Sat Jul 23 21:02:36 2016 (r303243) @@ -3411,9 +3411,11 @@ vm_page_advise(vm_page_t m, int advice) vm_page_dirty(m); /* - * Place clean pages at the head of the inactive queue rather than the - * tail, thus defeating the queue's LRU operation and ensuring that the - * page will be reused quickly. + * Place clean pages near the head of the inactive queue rather than + * the tail, thus defeating the queue's LRU operation and ensuring that + * the page will be reused quickly. Dirty pages are given a chance to + * cycle once through the inactive queue before becoming eligible for + * laundering. */ _vm_page_deactivate(m, m->dirty == 0); } From owner-svn-src-all@freebsd.org Sat Jul 23 21:03:26 2016 Return-Path: Delivered-To: svn-src-all@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 46433BA211F; Sat, 23 Jul 2016 21:03:26 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 16B751C98; Sat, 23 Jul 2016 21:03:26 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NL3P56020077; Sat, 23 Jul 2016 21:03:25 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NL3PZx020076; Sat, 23 Jul 2016 21:03:25 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201607232103.u6NL3PZx020076@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sat, 23 Jul 2016 21:03:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r303244 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 21:03:26 -0000 Author: markj Date: Sat Jul 23 21:03:25 2016 New Revision: 303244 URL: https://svnweb.freebsd.org/changeset/base/303244 Log: Correct a comment - each page queue has its own lock. Reviewed by: alc MFC after: 3 days Modified: head/sys/vm/vm_pageout.c Modified: head/sys/vm/vm_pageout.c ============================================================================== --- head/sys/vm/vm_pageout.c Sat Jul 23 21:02:36 2016 (r303243) +++ head/sys/vm/vm_pageout.c Sat Jul 23 21:03:25 2016 (r303244) @@ -267,7 +267,7 @@ vm_pageout_init_marker(vm_page_t marker, * * Lock vm object currently associated with `m'. VM_OBJECT_TRYWLOCK is * known to have failed and page queue must be either PQ_ACTIVE or - * PQ_INACTIVE. To avoid lock order violation, unlock the page queues + * PQ_INACTIVE. To avoid lock order violation, unlock the page queue * while locking the vm object. Use marker page to detect page queue * changes and maintain notion of next page on page queue. Return * TRUE if no changes were detected, FALSE otherwise. vm object is From owner-svn-src-all@freebsd.org Sat Jul 23 21:15:42 2016 Return-Path: Delivered-To: svn-src-all@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 16952BA257E; Sat, 23 Jul 2016 21:15:42 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D7AF413CC; Sat, 23 Jul 2016 21:15:41 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NLFfwg023958; Sat, 23 Jul 2016 21:15:41 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NLFfLs023957; Sat, 23 Jul 2016 21:15:41 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201607232115.u6NLFfLs023957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Sat, 23 Jul 2016 21:15:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303246 - stable/10/sys/vm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 21:15:42 -0000 Author: alc Date: Sat Jul 23 21:15:40 2016 New Revision: 303246 URL: https://svnweb.freebsd.org/changeset/base/303246 Log: MFC r303101 Add a comment describing the 'fast path' that was introduced in r270011. Modified: stable/10/sys/vm/vm_fault.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/vm/vm_fault.c ============================================================================== --- stable/10/sys/vm/vm_fault.c Sat Jul 23 21:04:53 2016 (r303245) +++ stable/10/sys/vm/vm_fault.c Sat Jul 23 21:15:40 2016 (r303246) @@ -353,6 +353,15 @@ RetryFault:; KASSERT((fault_flags & VM_FAULT_WIRE) == 0, ("!wired && VM_FAULT_WIRE")); + /* + * Try to avoid lock contention on the top-level object through + * special-case handling of some types of page faults, specifically, + * those that are both (1) mapping an existing page from the top- + * level object and (2) not having to mark that object as containing + * dirty pages. Under these conditions, a read lock on the top-level + * object suffices, allowing multiple page faults of a similar type to + * run in parallel on the same top-level object. + */ if (fs.vp == NULL /* avoid locked vnode leak */ && (fault_flags & (VM_FAULT_WIRE | VM_FAULT_DIRTY)) == 0 && /* avoid calling vm_object_set_writeable_dirty() */ From owner-svn-src-all@freebsd.org Sat Jul 23 21:17:52 2016 Return-Path: Delivered-To: svn-src-all@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 90AE8BA25FA; Sat, 23 Jul 2016 21:17: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 4FEFD15B9; Sat, 23 Jul 2016 21:17:52 +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 u6NLHpwf024105; Sat, 23 Jul 2016 21:17:51 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NLHpgJ024103; Sat, 23 Jul 2016 21:17:51 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232117.u6NLHpgJ024103@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 21:17:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303247 - in vendor/llvm/dist: include/llvm/DebugInfo/DWARF lib/DebugInfo/DWARF X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 21:17:52 -0000 Author: dim Date: Sat Jul 23 21:17:51 2016 New Revision: 303247 URL: https://svnweb.freebsd.org/changeset/base/303247 Log: Fix-up EOL-styles changed by upstream. Modified: vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h (contents, props changed) vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp (contents, props changed) Modified: vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h ============================================================================== --- vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h Sat Jul 23 21:15:40 2016 (r303246) +++ vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h Sat Jul 23 21:17:51 2016 (r303247) @@ -1,58 +1,58 @@ -//===-- DWARFDebugMacro.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_DWARF_DWARFDEBUGMACRO_H -#define LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H - -#include "llvm/ADT/SmallVector.h" -#include "llvm/Support/DataExtractor.h" -#include "llvm/Support/Dwarf.h" - -namespace llvm { - -class raw_ostream; - -class DWARFDebugMacro { - /// A single macro entry within a macro list. - struct Entry { - /// The type of the macro entry. - uint32_t Type; - union { - /// The source line where the macro is defined. - uint64_t Line; - /// Vendor extension constant value. - uint64_t ExtConstant; - }; - - union { - /// The string (name, value) of the macro entry. - const char *MacroStr; - // An unsigned integer indicating the identity of the source file. - uint64_t File; - /// Vendor extension string. - const char *ExtStr; - }; - }; - - typedef SmallVector MacroList; - - /// A list of all the macro entries in the debug_macinfo section. - MacroList Macros; - -public: - DWARFDebugMacro() {} - /// Print the macro list found within the debug_macinfo section. - void dump(raw_ostream &OS) const; - /// Parse the debug_macinfo section accessible via the 'data' parameter. - void parse(DataExtractor data); -}; - -} - -#endif +//===-- DWARFDebugMacro.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_DWARF_DWARFDEBUGMACRO_H +#define LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H + +#include "llvm/ADT/SmallVector.h" +#include "llvm/Support/DataExtractor.h" +#include "llvm/Support/Dwarf.h" + +namespace llvm { + +class raw_ostream; + +class DWARFDebugMacro { + /// A single macro entry within a macro list. + struct Entry { + /// The type of the macro entry. + uint32_t Type; + union { + /// The source line where the macro is defined. + uint64_t Line; + /// Vendor extension constant value. + uint64_t ExtConstant; + }; + + union { + /// The string (name, value) of the macro entry. + const char *MacroStr; + // An unsigned integer indicating the identity of the source file. + uint64_t File; + /// Vendor extension string. + const char *ExtStr; + }; + }; + + typedef SmallVector MacroList; + + /// A list of all the macro entries in the debug_macinfo section. + MacroList Macros; + +public: + DWARFDebugMacro() {} + /// Print the macro list found within the debug_macinfo section. + void dump(raw_ostream &OS) const; + /// Parse the debug_macinfo section accessible via the 'data' parameter. + void parse(DataExtractor data); +}; + +} + +#endif Modified: vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp ============================================================================== --- vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp Sat Jul 23 21:15:40 2016 (r303246) +++ vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp Sat Jul 23 21:17:51 2016 (r303247) @@ -1,102 +1,102 @@ -//===-- DWARFDebugMacro.cpp -----------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "llvm/DebugInfo/DWARF/DWARFDebugMacro.h" -#include "SyntaxHighlighting.h" -#include "llvm/Support/Dwarf.h" -#include "llvm/Support/Format.h" -#include "llvm/Support/raw_ostream.h" - -using namespace llvm; -using namespace dwarf; -using namespace syntax; - -void DWARFDebugMacro::dump(raw_ostream &OS) const { - unsigned IndLevel = 0; - for (const Entry &E : Macros) { - // There should not be DW_MACINFO_end_file when IndLevel is Zero. However, - // this check handles the case of corrupted ".debug_macinfo" section. - if (IndLevel > 0) - IndLevel -= (E.Type == DW_MACINFO_end_file); - // Print indentation. - for (unsigned I = 0; I < IndLevel; I++) - OS << " "; - IndLevel += (E.Type == DW_MACINFO_start_file); - - WithColor(OS, syntax::Macro).get() << MacinfoString(E.Type); - switch (E.Type) { - default: - // Got a corrupted ".debug_macinfo" section (invalid macinfo type). - break; - case DW_MACINFO_define: - case DW_MACINFO_undef: - OS << " - lineno: " << E.Line; - OS << " macro: " << E.MacroStr; - break; - case DW_MACINFO_start_file: - OS << " - lineno: " << E.Line; - OS << " filenum: " << E.File; - break; - case DW_MACINFO_end_file: - break; - case DW_MACINFO_vendor_ext: - OS << " - constant: " << E.ExtConstant; - OS << " string: " << E.ExtStr; - break; - } - OS << "\n"; - } -} - -void DWARFDebugMacro::parse(DataExtractor data) { - uint32_t Offset = 0; - while (data.isValidOffset(Offset)) { - // A macro list entry consists of: - Entry E; - // 1. Macinfo type - E.Type = data.getULEB128(&Offset); - - if (E.Type == 0) { - // Reached end of ".debug_macinfo" section. - return; - } - - switch (E.Type) { - default: - // Got a corrupted ".debug_macinfo" section (invalid macinfo type). - // Push the corrupted entry to the list and halt parsing. - E.Type = DW_MACINFO_invalid; - Macros.push_back(E); - return; - case DW_MACINFO_define: - case DW_MACINFO_undef: - // 2. Source line - E.Line = data.getULEB128(&Offset); - // 3. Macro string - E.MacroStr = data.getCStr(&Offset); - break; - case DW_MACINFO_start_file: - // 2. Source line - E.Line = data.getULEB128(&Offset); - // 3. Source file id - E.File = data.getULEB128(&Offset); - break; - case DW_MACINFO_end_file: - break; - case DW_MACINFO_vendor_ext: - // 2. Vendor extension constant - E.ExtConstant = data.getULEB128(&Offset); - // 3. Vendor extension string - E.ExtStr = data.getCStr(&Offset); - break; - } - - Macros.push_back(E); - } -} +//===-- DWARFDebugMacro.cpp -----------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "llvm/DebugInfo/DWARF/DWARFDebugMacro.h" +#include "SyntaxHighlighting.h" +#include "llvm/Support/Dwarf.h" +#include "llvm/Support/Format.h" +#include "llvm/Support/raw_ostream.h" + +using namespace llvm; +using namespace dwarf; +using namespace syntax; + +void DWARFDebugMacro::dump(raw_ostream &OS) const { + unsigned IndLevel = 0; + for (const Entry &E : Macros) { + // There should not be DW_MACINFO_end_file when IndLevel is Zero. However, + // this check handles the case of corrupted ".debug_macinfo" section. + if (IndLevel > 0) + IndLevel -= (E.Type == DW_MACINFO_end_file); + // Print indentation. + for (unsigned I = 0; I < IndLevel; I++) + OS << " "; + IndLevel += (E.Type == DW_MACINFO_start_file); + + WithColor(OS, syntax::Macro).get() << MacinfoString(E.Type); + switch (E.Type) { + default: + // Got a corrupted ".debug_macinfo" section (invalid macinfo type). + break; + case DW_MACINFO_define: + case DW_MACINFO_undef: + OS << " - lineno: " << E.Line; + OS << " macro: " << E.MacroStr; + break; + case DW_MACINFO_start_file: + OS << " - lineno: " << E.Line; + OS << " filenum: " << E.File; + break; + case DW_MACINFO_end_file: + break; + case DW_MACINFO_vendor_ext: + OS << " - constant: " << E.ExtConstant; + OS << " string: " << E.ExtStr; + break; + } + OS << "\n"; + } +} + +void DWARFDebugMacro::parse(DataExtractor data) { + uint32_t Offset = 0; + while (data.isValidOffset(Offset)) { + // A macro list entry consists of: + Entry E; + // 1. Macinfo type + E.Type = data.getULEB128(&Offset); + + if (E.Type == 0) { + // Reached end of ".debug_macinfo" section. + return; + } + + switch (E.Type) { + default: + // Got a corrupted ".debug_macinfo" section (invalid macinfo type). + // Push the corrupted entry to the list and halt parsing. + E.Type = DW_MACINFO_invalid; + Macros.push_back(E); + return; + case DW_MACINFO_define: + case DW_MACINFO_undef: + // 2. Source line + E.Line = data.getULEB128(&Offset); + // 3. Macro string + E.MacroStr = data.getCStr(&Offset); + break; + case DW_MACINFO_start_file: + // 2. Source line + E.Line = data.getULEB128(&Offset); + // 3. Source file id + E.File = data.getULEB128(&Offset); + break; + case DW_MACINFO_end_file: + break; + case DW_MACINFO_vendor_ext: + // 2. Vendor extension constant + E.ExtConstant = data.getULEB128(&Offset); + // 3. Vendor extension string + E.ExtStr = data.getCStr(&Offset); + break; + } + + Macros.push_back(E); + } +} From owner-svn-src-all@freebsd.org Sat Jul 23 21:18:01 2016 Return-Path: Delivered-To: svn-src-all@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 4B5E7BA262E; Sat, 23 Jul 2016 21:18:01 +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 1D8B816EB; Sat, 23 Jul 2016 21:18:01 +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 u6NLI0BC024161; Sat, 23 Jul 2016 21:18:00 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NLI0l2024159; Sat, 23 Jul 2016 21:18:00 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232118.u6NLI0l2024159@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 21:18:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303248 - in vendor/clang/dist/test: CXX/expr/expr.prim/expr.prim.lambda SemaCXX X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 21:18:01 -0000 Author: dim Date: Sat Jul 23 21:18:00 2016 New Revision: 303248 URL: https://svnweb.freebsd.org/changeset/base/303248 Log: Fix-up EOL-styles changed by upstream. Modified: vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p15-star-this-capture.cpp (contents, props changed) vendor/clang/dist/test/SemaCXX/cxx1z-lambda-star-this.cpp (contents, props changed) Modified: vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p15-star-this-capture.cpp ============================================================================== --- vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p15-star-this-capture.cpp Sat Jul 23 21:17:51 2016 (r303247) +++ vendor/clang/dist/test/CXX/expr/expr.prim/expr.prim.lambda/p15-star-this-capture.cpp Sat Jul 23 21:18:00 2016 (r303248) @@ -1,22 +1,22 @@ -// RUN: %clang_cc1 -fsyntax-only -std=c++1z %s -verify - -class NonCopyable { - NonCopyable(const NonCopyable&) = delete; //expected-note3{{explicitly marked deleted here}} - int x = 10; - void foo() { - auto L = [this] { return x; }; - const auto &M = [*this] { return x; };//expected-error{{call to deleted}} - const auto &M2 = [this] () -> auto&& { - ++x; - return [*this] { //expected-error{{call to deleted}} expected-warning{{reference to local}} - return ++x; //expected-error{{read-only}} - }; - }; - const auto &M3 = [*this] () mutable -> auto&& { //expected-error{{call to deleted}} - ++x; - return [this] { // expected-warning{{reference to local}} - return x; - }; - }; - } -}; +// RUN: %clang_cc1 -fsyntax-only -std=c++1z %s -verify + +class NonCopyable { + NonCopyable(const NonCopyable&) = delete; //expected-note3{{explicitly marked deleted here}} + int x = 10; + void foo() { + auto L = [this] { return x; }; + const auto &M = [*this] { return x; };//expected-error{{call to deleted}} + const auto &M2 = [this] () -> auto&& { + ++x; + return [*this] { //expected-error{{call to deleted}} expected-warning{{reference to local}} + return ++x; //expected-error{{read-only}} + }; + }; + const auto &M3 = [*this] () mutable -> auto&& { //expected-error{{call to deleted}} + ++x; + return [this] { // expected-warning{{reference to local}} + return x; + }; + }; + } +}; Modified: vendor/clang/dist/test/SemaCXX/cxx1z-lambda-star-this.cpp ============================================================================== --- vendor/clang/dist/test/SemaCXX/cxx1z-lambda-star-this.cpp Sat Jul 23 21:17:51 2016 (r303247) +++ vendor/clang/dist/test/SemaCXX/cxx1z-lambda-star-this.cpp Sat Jul 23 21:18:00 2016 (r303248) @@ -1,231 +1,231 @@ -// RUN: %clang_cc1 -std=c++1z -verify -fsyntax-only -fblocks -emit-llvm-only %s -// RUN: %clang_cc1 -std=c++1z -verify -fsyntax-only -fblocks -fdelayed-template-parsing %s -DDELAYED_TEMPLATE_PARSING -// RUN: %clang_cc1 -std=c++1z -verify -fsyntax-only -fblocks -fms-extensions %s -DMS_EXTENSIONS -// RUN: %clang_cc1 -std=c++1z -verify -fsyntax-only -fblocks -fdelayed-template-parsing -fms-extensions %s -DMS_EXTENSIONS -DDELAYED_TEMPLATE_PARSING - -template constexpr bool is_same = false; -template constexpr bool is_same = true; - -namespace test_star_this { -namespace ns1 { -class A { - int x = 345; - auto foo() { - (void) [*this, this] { }; //expected-error{{'this' can appear only once}} - (void) [this] { ++x; }; - (void) [*this] { ++x; }; //expected-error{{read-only variable}} - (void) [*this] () mutable { ++x; }; - (void) [=] { return x; }; - (void) [&, this] { return x; }; - (void) [=, *this] { return x; }; - (void) [&, *this] { return x; }; - } -}; -} // end ns1 - -namespace ns2 { - class B { - B(const B&) = delete; //expected-note{{deleted here}} - int *x = (int *) 456; - void foo() { - (void)[this] { return x; }; - (void)[*this] { return x; }; //expected-error{{call to deleted}} - } - }; -} // end ns2 -namespace ns3 { - class B { - B(const B&) = delete; //expected-note2{{deleted here}} - - int *x = (int *) 456; - public: - template - void foo() { - (void)[this] { return x; }; - (void)[*this] { return x; }; //expected-error2{{call to deleted}} - } - - B() = default; - } b; - B *c = (b.foo(), nullptr); //expected-note{{in instantiation}} -} // end ns3 - -namespace ns4 { -template -class B { - B(const B&) = delete; //expected-note{{deleted here}} - double d = 3.14; - public: - template - auto foo() { - const auto &L = [*this] (auto a) mutable { //expected-error{{call to deleted}} - d += a; - return [this] (auto b) { return d +=b; }; - }; - } - - B() = default; -}; -void main() { - B b; - b.foo(); //expected-note{{in instantiation}} -} // end main -} // end ns4 -namespace ns5 { - -struct X { - double d = 3.14; - X(const volatile X&); - void foo() { - - } - - void foo() const { //expected-note{{const}} - - auto L = [*this] () mutable { - static_assert(is_same); - ++d; - auto M = [this] { - static_assert(is_same); - ++d; - auto N = [] { - static_assert(is_same); - }; - }; - }; - - auto L1 = [*this] { - static_assert(is_same); - auto M = [this] () mutable { - static_assert(is_same); - auto N = [] { - static_assert(is_same); - }; - }; - auto M2 = [*this] () mutable { - static_assert(is_same); - auto N = [] { - static_assert(is_same); - }; - }; - }; - - auto GL1 = [*this] (auto a) { - static_assert(is_same); - auto M = [this] (auto b) mutable { - static_assert(is_same); - auto N = [] (auto c) { - static_assert(is_same); - }; - return N; - }; - - auto M2 = [*this] (auto a) mutable { - static_assert(is_same); - auto N = [] (auto b) { - static_assert(is_same); - }; - return N; - }; - return [=](auto a) mutable { M(a)(a); M2(a)(a); }; - }; - - GL1("abc")("abc"); - - - auto L2 = [this] () mutable { - static_assert(is_same); - ++d; //expected-error{{cannot assign}} - }; - auto GL = [*this] (auto a) mutable { - static_assert(is_same); - ++d; - auto M = [this] (auto b) { - static_assert(is_same); - ++d; - auto N = [] (auto c) { - static_assert(is_same); - }; - N(3.14); - }; - M("abc"); - }; - GL(3.14); - - } - void foo() volatile const { - auto L = [this] () { - static_assert(is_same); - auto M = [*this] () mutable { - static_assert(is_same); - auto N = [this] { - static_assert(is_same); - auto M = [] { - static_assert(is_same); - }; - }; - auto N2 = [*this] { - static_assert(is_same); - }; - }; - auto M2 = [*this] () { - static_assert(is_same); - auto N = [this] { - static_assert(is_same); - }; - }; - }; - } - -}; - -} //end ns5 -namespace ns6 { -struct X { - double d; - auto foo() const { - auto L = [*this] () mutable { - auto M = [=] (auto a) { - auto N = [this] { - ++d; - static_assert(is_same); - auto O = [*this] { - static_assert(is_same); - }; - }; - N(); - static_assert(is_same); - }; - return M; - }; - return L; - } -}; - -int main() { - auto L = X{}.foo(); - auto M = L(); - M(3.14); -} -} // end ns6 -namespace ns7 { - -struct X { - double d; - X(); - X(const X&); - X(X&) = delete; - auto foo() const { - //OK - the object used to initialize our capture is a const object and so prefers the non-deleted ctor. - const auto &&L = [*this] { }; - } - -}; -int main() { - X x; - x.foo(); -} -} // end ns7 - -} //end ns test_star_this - +// RUN: %clang_cc1 -std=c++1z -verify -fsyntax-only -fblocks -emit-llvm-only %s +// RUN: %clang_cc1 -std=c++1z -verify -fsyntax-only -fblocks -fdelayed-template-parsing %s -DDELAYED_TEMPLATE_PARSING +// RUN: %clang_cc1 -std=c++1z -verify -fsyntax-only -fblocks -fms-extensions %s -DMS_EXTENSIONS +// RUN: %clang_cc1 -std=c++1z -verify -fsyntax-only -fblocks -fdelayed-template-parsing -fms-extensions %s -DMS_EXTENSIONS -DDELAYED_TEMPLATE_PARSING + +template constexpr bool is_same = false; +template constexpr bool is_same = true; + +namespace test_star_this { +namespace ns1 { +class A { + int x = 345; + auto foo() { + (void) [*this, this] { }; //expected-error{{'this' can appear only once}} + (void) [this] { ++x; }; + (void) [*this] { ++x; }; //expected-error{{read-only variable}} + (void) [*this] () mutable { ++x; }; + (void) [=] { return x; }; + (void) [&, this] { return x; }; + (void) [=, *this] { return x; }; + (void) [&, *this] { return x; }; + } +}; +} // end ns1 + +namespace ns2 { + class B { + B(const B&) = delete; //expected-note{{deleted here}} + int *x = (int *) 456; + void foo() { + (void)[this] { return x; }; + (void)[*this] { return x; }; //expected-error{{call to deleted}} + } + }; +} // end ns2 +namespace ns3 { + class B { + B(const B&) = delete; //expected-note2{{deleted here}} + + int *x = (int *) 456; + public: + template + void foo() { + (void)[this] { return x; }; + (void)[*this] { return x; }; //expected-error2{{call to deleted}} + } + + B() = default; + } b; + B *c = (b.foo(), nullptr); //expected-note{{in instantiation}} +} // end ns3 + +namespace ns4 { +template +class B { + B(const B&) = delete; //expected-note{{deleted here}} + double d = 3.14; + public: + template + auto foo() { + const auto &L = [*this] (auto a) mutable { //expected-error{{call to deleted}} + d += a; + return [this] (auto b) { return d +=b; }; + }; + } + + B() = default; +}; +void main() { + B b; + b.foo(); //expected-note{{in instantiation}} +} // end main +} // end ns4 +namespace ns5 { + +struct X { + double d = 3.14; + X(const volatile X&); + void foo() { + + } + + void foo() const { //expected-note{{const}} + + auto L = [*this] () mutable { + static_assert(is_same); + ++d; + auto M = [this] { + static_assert(is_same); + ++d; + auto N = [] { + static_assert(is_same); + }; + }; + }; + + auto L1 = [*this] { + static_assert(is_same); + auto M = [this] () mutable { + static_assert(is_same); + auto N = [] { + static_assert(is_same); + }; + }; + auto M2 = [*this] () mutable { + static_assert(is_same); + auto N = [] { + static_assert(is_same); + }; + }; + }; + + auto GL1 = [*this] (auto a) { + static_assert(is_same); + auto M = [this] (auto b) mutable { + static_assert(is_same); + auto N = [] (auto c) { + static_assert(is_same); + }; + return N; + }; + + auto M2 = [*this] (auto a) mutable { + static_assert(is_same); + auto N = [] (auto b) { + static_assert(is_same); + }; + return N; + }; + return [=](auto a) mutable { M(a)(a); M2(a)(a); }; + }; + + GL1("abc")("abc"); + + + auto L2 = [this] () mutable { + static_assert(is_same); + ++d; //expected-error{{cannot assign}} + }; + auto GL = [*this] (auto a) mutable { + static_assert(is_same); + ++d; + auto M = [this] (auto b) { + static_assert(is_same); + ++d; + auto N = [] (auto c) { + static_assert(is_same); + }; + N(3.14); + }; + M("abc"); + }; + GL(3.14); + + } + void foo() volatile const { + auto L = [this] () { + static_assert(is_same); + auto M = [*this] () mutable { + static_assert(is_same); + auto N = [this] { + static_assert(is_same); + auto M = [] { + static_assert(is_same); + }; + }; + auto N2 = [*this] { + static_assert(is_same); + }; + }; + auto M2 = [*this] () { + static_assert(is_same); + auto N = [this] { + static_assert(is_same); + }; + }; + }; + } + +}; + +} //end ns5 +namespace ns6 { +struct X { + double d; + auto foo() const { + auto L = [*this] () mutable { + auto M = [=] (auto a) { + auto N = [this] { + ++d; + static_assert(is_same); + auto O = [*this] { + static_assert(is_same); + }; + }; + N(); + static_assert(is_same); + }; + return M; + }; + return L; + } +}; + +int main() { + auto L = X{}.foo(); + auto M = L(); + M(3.14); +} +} // end ns6 +namespace ns7 { + +struct X { + double d; + X(); + X(const X&); + X(X&) = delete; + auto foo() const { + //OK - the object used to initialize our capture is a const object and so prefers the non-deleted ctor. + const auto &&L = [*this] { }; + } + +}; +int main() { + X x; + x.foo(); +} +} // end ns7 + +} //end ns test_star_this + From owner-svn-src-all@freebsd.org Sat Jul 23 21:18:09 2016 Return-Path: Delivered-To: svn-src-all@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 21760BA267F; Sat, 23 Jul 2016 21:18:09 +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 CA4A217F8; Sat, 23 Jul 2016 21:18:08 +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 u6NLI7io024218; Sat, 23 Jul 2016 21:18:07 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NLI7Hx024216; Sat, 23 Jul 2016 21:18:07 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201607232118.u6NLI7Hx024216@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 23 Jul 2016 21:18:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r303249 - in vendor/lldb/dist: packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes unittests/SymbolFile/PDB/Inputs X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 21:18:09 -0000 Author: dim Date: Sat Jul 23 21:18:07 2016 New Revision: 303249 URL: https://svnweb.freebsd.org/changeset/base/303249 Log: Fix-up EOL-styles changed by upstream. Modified: vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/Makefile (contents, props changed) vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb-types.cpp (contents, props changed) Modified: vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/Makefile ============================================================================== --- vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/Makefile Sat Jul 23 21:18:00 2016 (r303248) +++ vendor/lldb/dist/packages/Python/lldbsuite/test/expression_command/ir-interpreter-phi-nodes/Makefile Sat Jul 23 21:18:07 2016 (r303249) @@ -1,5 +1,5 @@ -LEVEL = ../../make - -CXX_SOURCES := main.cpp - -include $(LEVEL)/Makefile.rules +LEVEL = ../../make + +CXX_SOURCES := main.cpp + +include $(LEVEL)/Makefile.rules Modified: vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb-types.cpp ============================================================================== --- vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb-types.cpp Sat Jul 23 21:18:00 2016 (r303248) +++ vendor/lldb/dist/unittests/SymbolFile/PDB/Inputs/test-pdb-types.cpp Sat Jul 23 21:18:07 2016 (r303249) @@ -1,86 +1,86 @@ -// Compile with "cl /c /Zi /GR- /EHsc test-pdb-types.cpp" -// Link with "link test-pdb-types.obj /debug /nodefaultlib /entry:main /out:test-pdb-types.exe" - -using namespace std; - -// Sizes of builtin types -static const int sizeof_char = sizeof(char); -static const int sizeof_uchar = sizeof(unsigned char); -static const int sizeof_short = sizeof(short); -static const int sizeof_ushort = sizeof(unsigned short); -static const int sizeof_int = sizeof(int); -static const int sizeof_uint = sizeof(unsigned int); -static const int sizeof_long = sizeof(long); -static const int sizeof_ulong = sizeof(unsigned long); -static const int sizeof_longlong = sizeof(long long); -static const int sizeof_ulonglong = sizeof(unsigned long long); -static const int sizeof_int64 = sizeof(__int64); -static const int sizeof_uint64 = sizeof(unsigned __int64); -static const int sizeof_float = sizeof(float); -static const int sizeof_double = sizeof(double); -static const int sizeof_bool = sizeof(bool); -static const int sizeof_wchar = sizeof(wchar_t); - -enum Enum -{ - EValue1 = 1, - EValue2 = 2, -}; - -enum ShortEnum : short -{ - ESValue1 = 1, - ESValue2 = 2 -}; - -namespace NS -{ -class NSClass -{ - float f; - double d; -}; -} - -class Class -{ -public: - class NestedClass - { - Enum e; - }; - ShortEnum se; -}; - -int -test_func(int a, int b) -{ - return a + b; -} - -typedef Class ClassTypedef; -typedef NS::NSClass NSClassTypedef; -int GlobalArray[10]; - -static const int sizeof_NSClass = sizeof(NS::NSClass); -static const int sizeof_Class = sizeof(Class); -static const int sizeof_NestedClass = sizeof(Class::NestedClass); -static const int sizeof_Enum = sizeof(Enum); -static const int sizeof_ShortEnum = sizeof(ShortEnum); -static const int sizeof_ClassTypedef = sizeof(ClassTypedef); -static const int sizeof_NSClassTypedef = sizeof(NSClassTypedef); -static const int sizeof_GlobalArray = sizeof(GlobalArray); - -int -main(int argc, char **argv) -{ - ShortEnum e1; - Enum e2; - Class c1; - Class::NestedClass c2; - NS::NSClass c3; - - ClassTypedef t1; - NSClassTypedef t2; - return test_func(1, 2); -} +// Compile with "cl /c /Zi /GR- /EHsc test-pdb-types.cpp" +// Link with "link test-pdb-types.obj /debug /nodefaultlib /entry:main /out:test-pdb-types.exe" + +using namespace std; + +// Sizes of builtin types +static const int sizeof_char = sizeof(char); +static const int sizeof_uchar = sizeof(unsigned char); +static const int sizeof_short = sizeof(short); +static const int sizeof_ushort = sizeof(unsigned short); +static const int sizeof_int = sizeof(int); +static const int sizeof_uint = sizeof(unsigned int); +static const int sizeof_long = sizeof(long); +static const int sizeof_ulong = sizeof(unsigned long); +static const int sizeof_longlong = sizeof(long long); +static const int sizeof_ulonglong = sizeof(unsigned long long); +static const int sizeof_int64 = sizeof(__int64); +static const int sizeof_uint64 = sizeof(unsigned __int64); +static const int sizeof_float = sizeof(float); +static const int sizeof_double = sizeof(double); +static const int sizeof_bool = sizeof(bool); +static const int sizeof_wchar = sizeof(wchar_t); + +enum Enum +{ + EValue1 = 1, + EValue2 = 2, +}; + +enum ShortEnum : short +{ + ESValue1 = 1, + ESValue2 = 2 +}; + +namespace NS +{ +class NSClass +{ + float f; + double d; +}; +} + +class Class +{ +public: + class NestedClass + { + Enum e; + }; + ShortEnum se; +}; + +int +test_func(int a, int b) +{ + return a + b; +} + +typedef Class ClassTypedef; +typedef NS::NSClass NSClassTypedef; +int GlobalArray[10]; + +static const int sizeof_NSClass = sizeof(NS::NSClass); +static const int sizeof_Class = sizeof(Class); +static const int sizeof_NestedClass = sizeof(Class::NestedClass); +static const int sizeof_Enum = sizeof(Enum); +static const int sizeof_ShortEnum = sizeof(ShortEnum); +static const int sizeof_ClassTypedef = sizeof(ClassTypedef); +static const int sizeof_NSClassTypedef = sizeof(NSClassTypedef); +static const int sizeof_GlobalArray = sizeof(GlobalArray); + +int +main(int argc, char **argv) +{ + ShortEnum e1; + Enum e2; + Class c1; + Class::NestedClass c2; + NS::NSClass c3; + + ClassTypedef t1; + NSClassTypedef t2; + return test_func(1, 2); +} From owner-svn-src-all@freebsd.org Sat Jul 23 21:56:53 2016 Return-Path: Delivered-To: svn-src-all@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 58844BA2FE1; Sat, 23 Jul 2016 21:56:53 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2B19319D4; Sat, 23 Jul 2016 21:56:53 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NLuqvq039347; Sat, 23 Jul 2016 21:56:52 GMT (envelope-from alc@FreeBSD.org) Received: (from alc@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NLuq6I039346; Sat, 23 Jul 2016 21:56:52 GMT (envelope-from alc@FreeBSD.org) Message-Id: <201607232156.u6NLuq6I039346@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org using -f From: Alan Cox Date: Sat, 23 Jul 2016 21:56:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r303251 - stable/11/sys/vm X-SVN-Group: stable-11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 21:56:53 -0000 Author: alc Date: Sat Jul 23 21:56:52 2016 New Revision: 303251 URL: https://svnweb.freebsd.org/changeset/base/303251 Log: MFC r303101 Add a comment describing the 'fast path' that was introduced in r270011. Approved by: re (gjb) Modified: stable/11/sys/vm/vm_fault.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/vm/vm_fault.c ============================================================================== --- stable/11/sys/vm/vm_fault.c Sat Jul 23 21:22:26 2016 (r303250) +++ stable/11/sys/vm/vm_fault.c Sat Jul 23 21:56:52 2016 (r303251) @@ -354,6 +354,15 @@ RetryFault:; KASSERT((fault_flags & VM_FAULT_WIRE) == 0, ("!wired && VM_FAULT_WIRE")); + /* + * Try to avoid lock contention on the top-level object through + * special-case handling of some types of page faults, specifically, + * those that are both (1) mapping an existing page from the top- + * level object and (2) not having to mark that object as containing + * dirty pages. Under these conditions, a read lock on the top-level + * object suffices, allowing multiple page faults of a similar type to + * run in parallel on the same top-level object. + */ if (fs.vp == NULL /* avoid locked vnode leak */ && (fault_flags & (VM_FAULT_WIRE | VM_FAULT_DIRTY)) == 0 && /* avoid calling vm_object_set_writeable_dirty() */ From owner-svn-src-all@freebsd.org Sat Jul 23 22:51:00 2016 Return-Path: Delivered-To: svn-src-all@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 6827ABA39DE; Sat, 23 Jul 2016 22:51:00 +0000 (UTC) (envelope-from jhb@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 205F31195; Sat, 23 Jul 2016 22:51:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NMoxPA061468; Sat, 23 Jul 2016 22:50:59 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NMoxrp061467; Sat, 23 Jul 2016 22:50:59 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607232250.u6NMoxrp061467@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 23 Jul 2016 22:50:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r303252 - in stable: 10/sys/dev/acpica/Osd 9/sys/dev/acpica/Osd X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 22:51:00 -0000 Author: jhb Date: Sat Jul 23 22:50:59 2016 New Revision: 303252 URL: https://svnweb.freebsd.org/changeset/base/303252 Log: MFC 299977: Use polling spin loops for timeouts during early boot. Some ACPI operations such as mutex acquires and event waits accept a timeout. The ACPI OSD layer implements these timeouts by using regular sleep timeouts. However, this doesn't work during early boot before event timers are setup. Instead, use polling combined with DELAY() to spin. This fixes booting on upcoming Intel systems with Kaby Lake processors. Modified: stable/10/sys/dev/acpica/Osd/OsdSynch.c Directory Properties: stable/10/ (props changed) Changes in other areas also in this revision: Modified: stable/9/sys/dev/acpica/Osd/OsdSynch.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/10/sys/dev/acpica/Osd/OsdSynch.c ============================================================================== --- stable/10/sys/dev/acpica/Osd/OsdSynch.c Sat Jul 23 21:56:52 2016 (r303251) +++ stable/10/sys/dev/acpica/Osd/OsdSynch.c Sat Jul 23 22:50:59 2016 (r303252) @@ -188,6 +188,23 @@ AcpiOsWaitSemaphore(ACPI_SEMAPHORE Handl } break; default: + if (cold) { + /* + * Just spin polling the semaphore once a + * millisecond. + */ + while (!ACPISEM_AVAIL(as, Units)) { + if (Timeout == 0) { + status = AE_TIME; + break; + } + Timeout--; + mtx_unlock(&as->as_lock); + DELAY(1000); + mtx_lock(&as->as_lock); + } + break; + } tmo = timeout2hz(Timeout); while (!ACPISEM_AVAIL(as, Units)) { prevtick = ticks; @@ -381,6 +398,23 @@ AcpiOsAcquireMutex(ACPI_MUTEX Handle, UI } break; default: + if (cold) { + /* + * Just spin polling the mutex once a + * millisecond. + */ + while (!ACPIMTX_AVAIL(am)) { + if (Timeout == 0) { + status = AE_TIME; + break; + } + Timeout--; + mtx_unlock(&am->am_lock); + DELAY(1000); + mtx_lock(&am->am_lock); + } + break; + } tmo = timeout2hz(Timeout); while (!ACPIMTX_AVAIL(am)) { prevtick = ticks; From owner-svn-src-all@freebsd.org Sat Jul 23 22:51:00 2016 Return-Path: Delivered-To: svn-src-all@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 A2639BA39E2; Sat, 23 Jul 2016 22:51:00 +0000 (UTC) (envelope-from jhb@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 59B66122D; Sat, 23 Jul 2016 22:51:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u6NMoxwB061474; Sat, 23 Jul 2016 22:50:59 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u6NMoxXi061473; Sat, 23 Jul 2016 22:50:59 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <201607232250.u6NMoxXi061473@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 23 Jul 2016 22:50:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r303252 - in stable: 10/sys/dev/acpica/Osd 9/sys/dev/acpica/Osd X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 22:51:00 -0000 Author: jhb Date: Sat Jul 23 22:50:59 2016 New Revision: 303252 URL: https://svnweb.freebsd.org/changeset/base/303252 Log: MFC 299977: Use polling spin loops for timeouts during early boot. Some ACPI operations such as mutex acquires and event waits accept a timeout. The ACPI OSD layer implements these timeouts by using regular sleep timeouts. However, this doesn't work during early boot before event timers are setup. Instead, use polling combined with DELAY() to spin. This fixes booting on upcoming Intel systems with Kaby Lake processors. Modified: stable/9/sys/dev/acpica/Osd/OsdSynch.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Changes in other areas also in this revision: Modified: stable/10/sys/dev/acpica/Osd/OsdSynch.c Directory Properties: stable/10/ (props changed) Modified: stable/9/sys/dev/acpica/Osd/OsdSynch.c ============================================================================== --- stable/9/sys/dev/acpica/Osd/OsdSynch.c Sat Jul 23 21:56:52 2016 (r303251) +++ stable/9/sys/dev/acpica/Osd/OsdSynch.c Sat Jul 23 22:50:59 2016 (r303252) @@ -188,6 +188,23 @@ AcpiOsWaitSemaphore(ACPI_SEMAPHORE Handl } break; default: + if (cold) { + /* + * Just spin polling the semaphore once a + * millisecond. + */ + while (!ACPISEM_AVAIL(as, Units)) { + if (Timeout == 0) { + status = AE_TIME; + break; + } + Timeout--; + mtx_unlock(&as->as_lock); + DELAY(1000); + mtx_lock(&as->as_lock); + } + break; + } tmo = timeout2hz(Timeout); while (!ACPISEM_AVAIL(as, Units)) { prevtick = ticks; @@ -381,6 +398,23 @@ AcpiOsAcquireMutex(ACPI_MUTEX Handle, UI } break; default: + if (cold) { + /* + * Just spin polling the mutex once a + * millisecond. + */ + while (!ACPIMTX_AVAIL(am)) { + if (Timeout == 0) { + status = AE_TIME; + break; + } + Timeout--; + mtx_unlock(&am->am_lock); + DELAY(1000); + mtx_lock(&am->am_lock); + } + break; + } tmo = timeout2hz(Timeout); while (!ACPIMTX_AVAIL(am)) { prevtick = ticks; From owner-svn-src-all@freebsd.org Sat Jul 23 23:02:08 2016 Return-Path: Delivered-To: svn-src-all@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 6B6B7BA3C2D; Sat, 23 Jul 2016 23:02:08 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail106.syd.optusnet.com.au (mail106.syd.optusnet.com.au [211.29.132.42]) by mx1.freebsd.org (Postfix) with ESMTP id EC3191B76; Sat, 23 Jul 2016 23:02:07 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c122-106-149-109.carlnfd1.nsw.optusnet.com.au (c122-106-149-109.carlnfd1.nsw.optusnet.com.au [122.106.149.109]) by mail106.syd.optusnet.com.au (Postfix) with ESMTPS id BA0753C413C; Sun, 24 Jul 2016 09:02:01 +1000 (AEST) Date: Sun, 24 Jul 2016 09:02:01 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: John Baldwin cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r303225 - head/sys/dev/fb In-Reply-To: <201607231438.u6NEc9fG075708@repo.freebsd.org> Message-ID: <20160724032749.E841@besplex.bde.org> References: <201607231438.u6NEc9fG075708@repo.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=EfU1O6SC c=1 sm=1 tr=0 a=R/f3m204ZbWUO/0rwPSMPw==:117 a=L9H7d07YOLsA:10 a=9cW_t1CCXrUA:10 a=s5jvgZ67dGcA:10 a=kj9zAlcOel0A:10 a=S5zLlAOFFy1I2lzo9_AA:9 a=CjuIK1q_8ugA:10 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jul 2016 23:02:08 -0000 On Sat, 23 Jul 2016, John Baldwin wrote: > Log: > Use MTX_SYSINIT for the VESA lock. I wouldn't trust this either. > vesa_init_done isn't a reliable guard for the mutex init. If > vesa_configure() doesn't find valid VESA info it will not set > vesa_init_done, but the lock will remain initialized. Revert r303076 > and use MTX_SYSINIT to deterministically init the lock. I'm fixing consoles and needed very delicate modifications for the sio_inited guard that you added in sio. That basically works, but it needs complicated atomic locking. Early initialization is better, but MTX_SYSINIT()'s obfuscated order is wrong for console drivers: X enum sysinit_sub_id { X SI_SUB_DUMMY = 0x0000000, /* not executed; for linker*/ X SI_SUB_DONE = 0x0000001, /* processed*/ X SI_SUB_TUNABLES = 0x0700000, /* establish tunable values */ X SI_SUB_COPYRIGHT = 0x0800001, /* first use of console*/ X SI_SUB_VM = 0x1000000, /* virtual memory system init*/ X ... X SI_SUB_WITNESS = 0x1A80000, /* witness initialization */ X SI_SUB_MTX_POOL_DYNAMIC = 0x1AC0000, /* dynamic mutex pool */ X SI_SUB_LOCK = 0x1B00000, /* various locks */ MTX_SYSINIT() is in SI_SUB_LOCK, but console drivers want mutexes in (actually before) SI_SUB_COPYRIGHT, to avoid special cases. There are many other ordering bugs near here. The copyright never was the first use use of the console, at least on x86. kdb was. The careful ordering to get consoles initialized as early as practical so that kdb could be used is very broken now. In my i386 configuration, crashes or hangs for vm86 being used uninitialized just before kdb can be run to debug it. printf()s to consoles in getmemsize() are also broken. printf()s to the message buffer always were broken until after getmemsize(). amd64 doesn't use vm86 so it doesn't crash. The order in init386() is not as obfuscated as the above. syscons initializes its main lock (video_mtx) using mtx_init() before SI_SUB_COPYRIGHT, and that seems to work right. It guards this with 'cold' but that is bogus so I removed it. 'cold' is true until much later and is not needed early. Uninitialization is more broken for consoles than initialization, but is less of a problem since it is usually unreachable. It is only obviously reachable for dcons, and is obviously wrong there (cnremove() doesn't actually remove the console, but dcons tries it; no other driver even tries it). The SCHEDULER_STOPPED() hack caused me problems. My fixed console drivers know a little more about when it is safe to call mutex code than the mutex system does, except they don't want to know about this hack. They do a check like mtx_unowned() (but more fragile). mtx_unowned() also doesn't know about SCHEDULER_STOPPED(). mtx_unowned() works accidentally in more cases without INVARIANTS because the inlined mutex functions also don't know about SCHEDULER_STOPPED(). Usually they work normally. But when they would normally block, they call the public functions that don't block and do leave the mutex in an inconsistent state. Then without INVARIANTS, mtx_owned() in KASSERT() is annulled but direct mtx_owned() finds inconsistencies. Bruce