From owner-svn-src-stable@freebsd.org Sun Jan 5 18:15:42 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2267F1E1651; Sun, 5 Jan 2020 18:15:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rRdp082vz4ZLh; Sun, 5 Jan 2020 18:15:42 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EFB6617A2; Sun, 5 Jan 2020 18:15:41 +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 005IFfNV061440; Sun, 5 Jan 2020 18:15:41 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005IFfQt061439; Sun, 5 Jan 2020 18:15:41 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001051815.005IFfQt061439@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 5 Jan 2020 18:15:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356385 - stable/12/sys/sys X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/sys X-SVN-Commit-Revision: 356385 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 18:15:42 -0000 Author: markj Date: Sun Jan 5 18:15:41 2020 New Revision: 356385 URL: https://svnweb.freebsd.org/changeset/base/356385 Log: MFC r356186: Add ARMv8 static relocation types used for control flow instructions. Modified: stable/12/sys/sys/elf_common.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/sys/elf_common.h ============================================================================== --- stable/12/sys/sys/elf_common.h Sun Jan 5 18:06:32 2020 (r356384) +++ stable/12/sys/sys/elf_common.h Sun Jan 5 18:15:41 2020 (r356385) @@ -962,6 +962,10 @@ typedef struct { #define R_AARCH64_PREL64 260 /* PC relative */ #define R_AARCH64_PREL32 261 /* PC relative, 32-bit overflow check */ #define R_AARCH64_PREL16 262 /* PC relative, 16-bit overflow check */ +#define R_AARCH64_TSTBR14 279 /* TBZ/TBNZ immediate */ +#define R_AARCH64_CONDBR19 280 /* Conditional branch immediate */ +#define R_AARCH64_JUMP26 282 /* Branch immediate */ +#define R_AARCH64_CALL26 283 /* Call immediate */ #define R_AARCH64_COPY 1024 /* Copy data from shared object */ #define R_AARCH64_GLOB_DAT 1025 /* Set GOT entry to data address */ #define R_AARCH64_JUMP_SLOT 1026 /* Set GOT entry to code address */ From owner-svn-src-stable@freebsd.org Sun Jan 5 21:32:42 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6E38B1E78A4; Sun, 5 Jan 2020 21:32:42 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rX1632Dfz3JpT; Sun, 5 Jan 2020 21:32:42 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 631233FF8; Sun, 5 Jan 2020 21:32:42 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005LWgOU079961; Sun, 5 Jan 2020 21:32:42 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005LWfCW079957; Sun, 5 Jan 2020 21:32:41 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001052132.005LWfCW079957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 5 Jan 2020 21:32: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: r356387 - stable/11/usr.sbin/inetd X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/11/usr.sbin/inetd X-SVN-Commit-Revision: 356387 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 21:32:42 -0000 Author: kevans Date: Sun Jan 5 21:32:41 2020 New Revision: 356387 URL: https://svnweb.freebsd.org/changeset/base/356387 Log: MFC r310921, r311354, r315644: Light inetd(8) cleanup r310921: - Add static for symbols which need not to be exported. - Clean up warnings to the WARNS=6 level. r311354: Fix build when WITHOUT_INET6 is defined. r315644: Simplify a pipe for signal handling. Modified: stable/11/usr.sbin/inetd/builtins.c stable/11/usr.sbin/inetd/inetd.c stable/11/usr.sbin/inetd/inetd.h Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/inetd/builtins.c ============================================================================== --- stable/11/usr.sbin/inetd/builtins.c Sun Jan 5 19:14:16 2020 (r356386) +++ stable/11/usr.sbin/inetd/builtins.c Sun Jan 5 21:32:41 2020 (r356387) @@ -54,26 +54,25 @@ __FBSDID("$FreeBSD$"); #include "inetd.h" -void chargen_dg(int, struct servtab *); -void chargen_stream(int, struct servtab *); -void daytime_dg(int, struct servtab *); -void daytime_stream(int, struct servtab *); -void discard_dg(int, struct servtab *); -void discard_stream(int, struct servtab *); -void echo_dg(int, struct servtab *); -void echo_stream(int, struct servtab *); +static void chargen_dg(int, struct servtab *); +static void chargen_stream(int, struct servtab *); +static void daytime_dg(int, struct servtab *); +static void daytime_stream(int, struct servtab *); +static void discard_dg(int, struct servtab *); +static void discard_stream(int, struct servtab *); +static void echo_dg(int, struct servtab *); +static void echo_stream(int, struct servtab *); static int get_line(int, char *, int); -void iderror(int, int, int, const char *); -void ident_stream(int, struct servtab *); -void initring(void); -uint32_t machtime(void); -void machtime_dg(int, struct servtab *); -void machtime_stream(int, struct servtab *); +static void iderror(int, int, int, const char *); +static void ident_stream(int, struct servtab *); +static void initring(void); +static uint32_t machtime(void); +static void machtime_dg(int, struct servtab *); +static void machtime_stream(int, struct servtab *); -char ring[128]; -char *endring; +static char ring[128]; +static char *endring; - struct biltin biltins[] = { /* Echo received data */ { "echo", SOCK_STREAM, 1, -1, echo_stream }, @@ -107,7 +106,7 @@ struct biltin biltins[] = { * any regard for input. */ -void +static void initring(void) { int i; @@ -124,7 +123,7 @@ initring(void) * characters chosen from the range 0 to 512. We send LINESIZ+2. */ /* ARGSUSED */ -void +static void chargen_dg(int s, struct servtab *sep) { struct sockaddr_storage ss; @@ -161,7 +160,7 @@ chargen_dg(int s, struct servtab *sep) /* Character generator */ /* ARGSUSED */ -void +static void chargen_stream(int s, struct servtab *sep) { int len; @@ -196,7 +195,7 @@ chargen_stream(int s, struct servtab *sep) /* Return human-readable time of day */ /* ARGSUSED */ -void +static void daytime_dg(int s, struct servtab *sep) { char buffer[256]; @@ -221,7 +220,7 @@ daytime_dg(int s, struct servtab *sep) /* Return human-readable time of day */ /* ARGSUSED */ -void +static void daytime_stream(int s, struct servtab *sep __unused) { char buffer[256]; @@ -240,7 +239,7 @@ daytime_stream(int s, struct servtab *sep __unused) /* Discard service -- ignore data */ /* ARGSUSED */ -void +static void discard_dg(int s, struct servtab *sep __unused) { char buffer[BUFSIZE]; @@ -250,7 +249,7 @@ discard_dg(int s, struct servtab *sep __unused) /* Discard service -- ignore data */ /* ARGSUSED */ -void +static void discard_stream(int s, struct servtab *sep) { int ret; @@ -273,7 +272,7 @@ discard_stream(int s, struct servtab *sep) /* Echo service -- echo data back */ /* ARGSUSED */ -void +static void echo_dg(int s, struct servtab *sep) { char buffer[65536]; /* Should be sizeof(max datagram). */ @@ -294,7 +293,7 @@ echo_dg(int s, struct servtab *sep) /* Echo service -- echo data back */ /* ARGSUSED */ -void +static void echo_stream(int s, struct servtab *sep) { char buffer[BUFSIZE]; @@ -322,7 +321,7 @@ echo_stream(int s, struct servtab *sep) /* Generic ident_stream error-sending func */ /* ARGSUSED */ -void +static void iderror(int lport, int fport, int s, const char *er) { char *p; @@ -340,7 +339,7 @@ iderror(int lport, int fport, int s, const char *er) /* Ident service (AKA "auth") */ /* ARGSUSED */ -void +static void ident_stream(int s, struct servtab *sep) { struct utsname un; @@ -688,7 +687,7 @@ printit: * some seventy years Bell Labs was asleep. */ -uint32_t +static uint32_t machtime(void) { @@ -698,7 +697,7 @@ machtime(void) } /* ARGSUSED */ -void +static void machtime_dg(int s, struct servtab *sep) { uint32_t result; @@ -719,7 +718,7 @@ machtime_dg(int s, struct servtab *sep) } /* ARGSUSED */ -void +static void machtime_stream(int s, struct servtab *sep __unused) { uint32_t result; Modified: stable/11/usr.sbin/inetd/inetd.c ============================================================================== --- stable/11/usr.sbin/inetd/inetd.c Sun Jan 5 19:14:16 2020 (r356386) +++ stable/11/usr.sbin/inetd/inetd.c Sun Jan 5 21:32:41 2020 (r356387) @@ -206,30 +206,33 @@ __FBSDID("$FreeBSD$"); #define SIGBLOCK (sigmask(SIGCHLD)|sigmask(SIGHUP)|sigmask(SIGALRM)) -void close_sep(struct servtab *); -void flag_signal(int); -void flag_config(int); -void config(void); -int cpmip(const struct servtab *, int); -void endconfig(void); -struct servtab *enter(struct servtab *); -void freeconfig(struct servtab *); -struct servtab *getconfigent(void); -int matchservent(const char *, const char *, const char *); -char *nextline(FILE *); -void addchild(struct servtab *, int); -void flag_reapchild(int); -void reapchild(void); -void enable(struct servtab *); -void disable(struct servtab *); -void flag_retry(int); -void retry(void); -int setconfig(void); -void setup(struct servtab *); +#define satosin(sa) ((struct sockaddr_in *)(void *)sa) +#define csatosin(sa) ((const struct sockaddr_in *)(const void *)sa) +#ifdef INET6 +#define satosin6(sa) ((struct sockaddr_in6 *)(void *)sa) +#define csatosin6(sa) ((const struct sockaddr_in6 *)(const void *)sa) +#endif +static void close_sep(struct servtab *); +static void flag_signal(int); +static void config(void); +static int cpmip(const struct servtab *, int); +static void endconfig(void); +static struct servtab *enter(struct servtab *); +static void freeconfig(struct servtab *); +static struct servtab *getconfigent(void); +static int matchservent(const char *, const char *, const char *); +static char *nextline(FILE *); +static void addchild(struct servtab *, int); +static void reapchild(void); +static void enable(struct servtab *); +static void disable(struct servtab *); +static void retry(void); +static int setconfig(void); +static void setup(struct servtab *); #ifdef IPSEC -void ipsecsetup(struct servtab *); +static void ipsecsetup(struct servtab *); #endif -void unregisterrpc(register struct servtab *sep); +static void unregisterrpc(register struct servtab *sep); static struct conninfo *search_conn(struct servtab *sep, int ctrl); static int room_conn(struct servtab *sep, struct conninfo *conn); static void addchild_conn(struct conninfo *conn, pid_t pid); @@ -240,51 +243,55 @@ static void free_connlist(struct servtab *sep); static void free_proc(struct procinfo *); static struct procinfo *search_proc(pid_t pid, int add); static int hashval(char *p, int len); +static char *skip(char **); +static char *sskip(char **); +static char *newstr(const char *); +static void print_service(const char *, const struct servtab *); +/* tcpd.h */ int allow_severity; int deny_severity; -int wrap_ex = 0; -int wrap_bi = 0; + +static int wrap_ex = 0; +static int wrap_bi = 0; int debug = 0; -int dolog = 0; -int maxsock; /* highest-numbered descriptor */ -fd_set allsock; -int options; -int timingout; -int toomany = TOOMANY; -int maxchild = MAXCHILD; -int maxcpm = MAXCPM; -int maxperip = MAXPERIP; -struct servent *sp; -struct rpcent *rpc; -char *hostname = NULL; -struct sockaddr_in *bind_sa4; -int v4bind_ok = 0; +static int dolog = 0; +static int maxsock; /* highest-numbered descriptor */ +static fd_set allsock; +static int options; +static int timingout; +static int toomany = TOOMANY; +static int maxchild = MAXCHILD; +static int maxcpm = MAXCPM; +static int maxperip = MAXPERIP; +static struct servent *sp; +static struct rpcent *rpc; +static char *hostname = NULL; +static struct sockaddr_in *bind_sa4; +static int v4bind_ok = 0; #ifdef INET6 -struct sockaddr_in6 *bind_sa6; -int v6bind_ok = 0; +static struct sockaddr_in6 *bind_sa6; +static int v6bind_ok = 0; #endif -int signalpipe[2]; +static int signalpipe[2]; #ifdef SANITY_CHECK -int nsock; +static int nsock; #endif -uid_t euid; -gid_t egid; -mode_t mask; +static uid_t euid; +static gid_t egid; +static mode_t mask; -struct servtab *servtab; +struct servtab *servtab; -extern struct biltin biltins[]; +static const char *CONFIG = _PATH_INETDCONF; +static const char *pid_file = _PATH_INETDPID; +static struct pidfh *pfh = NULL; -const char *CONFIG = _PATH_INETDCONF; -const char *pid_file = _PATH_INETDPID; -struct pidfh *pfh = NULL; +static struct netconfig *udpconf, *tcpconf, *udp6conf, *tcp6conf; -struct netconfig *udpconf, *tcpconf, *udp6conf, *tcp6conf; - static LIST_HEAD(, procinfo) proctable[PERIPSIZE]; -int +static int getvalue(const char *arg, int *value, const char *whine) { int tmp; @@ -308,9 +315,11 @@ whichaf(struct request_info *req) sa = (struct sockaddr *)req->client->sin; if (sa == NULL) return AF_UNSPEC; +#ifdef INET6 if (sa->sa_family == AF_INET6 && - IN6_IS_ADDR_V4MAPPED(&((struct sockaddr_in6 *)sa)->sin6_addr)) + IN6_IS_ADDR_V4MAPPED(&satosin6(sa)->sin6_addr)) return AF_INET; +#endif return sa->sa_family; } #endif @@ -419,7 +428,7 @@ main(int argc, char **argv) case AF_INET: if (v4bind_ok) continue; - bind_sa4 = (struct sockaddr_in *)res->ai_addr; + bind_sa4 = satosin(res->ai_addr); /* init port num in case servname is dummy */ bind_sa4->sin_port = 0; v4bind_ok = 1; @@ -428,7 +437,7 @@ main(int argc, char **argv) case AF_INET6: if (v6bind_ok) continue; - bind_sa6 = (struct sockaddr_in6 *)res->ai_addr; + bind_sa6 = satosin6(res->ai_addr); /* init port num in case servname is dummy */ bind_sa6->sin6_port = 0; v6bind_ok = 1; @@ -520,17 +529,17 @@ main(int argc, char **argv) } #endif - sa.sa_flags = 0; + sa = (struct sigaction){ + .sa_flags = 0, + .sa_handler = flag_signal, + }; sigemptyset(&sa.sa_mask); sigaddset(&sa.sa_mask, SIGALRM); sigaddset(&sa.sa_mask, SIGCHLD); sigaddset(&sa.sa_mask, SIGHUP); - sa.sa_handler = flag_retry; sigaction(SIGALRM, &sa, &saalrm); config(); - sa.sa_handler = flag_config; sigaction(SIGHUP, &sa, &sahup); - sa.sa_handler = flag_reapchild; sigaction(SIGCHLD, &sa, &sachld); sa.sa_handler = SIG_IGN; sigaction(SIGPIPE, &sa, &sapipe); @@ -579,30 +588,34 @@ main(int argc, char **argv) } /* handle any queued signal flags */ if (FD_ISSET(signalpipe[0], &readable)) { - int nsig; + int nsig, signo; + if (ioctl(signalpipe[0], FIONREAD, &nsig) != 0) { - syslog(LOG_ERR, "ioctl: %m"); - exit(EX_OSERR); + syslog(LOG_ERR, "ioctl: %m"); + exit(EX_OSERR); } + nsig /= sizeof(signo); while (--nsig >= 0) { - char c; - if (read(signalpipe[0], &c, 1) != 1) { - syslog(LOG_ERR, "read: %m"); - exit(EX_OSERR); - } - if (debug) - warnx("handling signal flag %c", c); - switch(c) { - case 'A': /* sigalrm */ - retry(); - break; - case 'C': /* sigchld */ - reapchild(); - break; - case 'H': /* sighup */ - config(); - break; - } + size_t len; + + len = read(signalpipe[0], &signo, sizeof(signo)); + if (len != sizeof(signo)) { + syslog(LOG_ERR, "read: %m"); + exit(EX_OSERR); + } + if (debug) + warnx("handling signal flag %d", signo); + switch (signo) { + case SIGALRM: + retry(); + break; + case SIGCHLD: + reapchild(); + break; + case SIGHUP: + config(); + break; + } } } for (sep = servtab; n && sep; sep = sep->se_next) @@ -887,12 +900,13 @@ main(int argc, char **argv) * Add a signal flag to the signal flag queue for later handling */ -void -flag_signal(int c) +static void +flag_signal(int signo) { - char ch = c; + size_t len; - if (write(signalpipe[1], &ch, 1) != 1) { + len = write(signalpipe[1], &signo, sizeof(signo)); + if (len != sizeof(signo)) { syslog(LOG_ERR, "write: %m"); _exit(EX_OSERR); } @@ -903,7 +917,7 @@ flag_signal(int c) * limit on children, then stop accepting incoming requests. */ -void +static void addchild(struct servtab *sep, pid_t pid) { if (sep->se_maxchild <= 0) @@ -920,17 +934,7 @@ addchild(struct servtab *sep, pid_t pid) disable(sep); } -/* - * Some child process has exited. See if it's on somebody's list. - */ - -void -flag_reapchild(int signo __unused) -{ - flag_signal('C'); -} - -void +static void reapchild(void) { int k, status; @@ -968,13 +972,7 @@ reapchild(void) } } -void -flag_config(int signo __unused) -{ - flag_signal('H'); -} - -void +static void config(void) { struct servtab *sep, *new, **sepp; @@ -1182,7 +1180,7 @@ config(void) (void) sigsetmask(omask); } -void +static void unregisterrpc(struct servtab *sep) { u_int i; @@ -1237,13 +1235,7 @@ unregisterrpc(struct servtab *sep) (void) sigsetmask(omask); } -void -flag_retry(int signo __unused) -{ - flag_signal('A'); -} - -void +static void retry(void) { struct servtab *sep; @@ -1254,7 +1246,7 @@ retry(void) setup(sep); } -void +static void setup(struct servtab *sep) { int on = 1; @@ -1281,6 +1273,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o syslog(LOG_ERR, "setsockopt (SO_PRIVSTATE): %m"); #endif /* tftpd opens a new connection then needs more infos */ +#ifdef INET6 if ((sep->se_family == AF_INET6) && (strcmp(sep->se_proto, "udp") == 0) && (sep->se_accept == 0) && @@ -1293,6 +1286,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o (char *)&flag, sizeof (flag)) < 0) syslog(LOG_ERR, "setsockopt (IPV6_V6ONLY): %m"); } +#endif #undef turnon #ifdef IPSEC ipsecsetup(sep); @@ -1330,7 +1324,9 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o u_int i; socklen_t len = sep->se_ctrladdr_size; struct netconfig *netid, *netid2 = NULL; +#ifdef INET6 struct sockaddr_in sock; +#endif struct netbuf nbuf, nbuf2; if (getsockname(sep->se_fd, @@ -1345,6 +1341,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o nbuf.len = sep->se_ctrladdr.sa_len; if (sep->se_family == AF_INET) netid = sep->se_socktype==SOCK_DGRAM? udpconf:tcpconf; +#ifdef INET6 else { netid = sep->se_socktype==SOCK_DGRAM? udp6conf:tcp6conf; if (!sep->se_nomapped) { /* INET and INET6 */ @@ -1356,6 +1353,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o sock.sin_port = sep->se_ctrladdr6.sin6_port; } } +#endif if (debug) print_service("REG ", sep); for (i = sep->se_rpc_lowvers; i <= sep->se_rpc_highvers; i++) { @@ -1377,7 +1375,7 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o } #ifdef IPSEC -void +static void ipsecsetup(struct servtab *sep) { char *buf; @@ -1451,7 +1449,7 @@ ipsecsetup(struct servtab *sep) /* * Finish with a service and its socket. */ -void +static void close_sep(struct servtab *sep) { if (sep->se_fd >= 0) { @@ -1464,7 +1462,7 @@ close_sep(struct servtab *sep) sep->se_numchild = 0; /* forget about any existing children */ } -int +static int matchservent(const char *name1, const char *name2, const char *proto) { char **alias, *p; @@ -1488,7 +1486,7 @@ matchservent(const char *name1, const char *name2, con return(0); } -struct servtab * +static struct servtab * enter(struct servtab *cp) { struct servtab *sep; @@ -1508,7 +1506,7 @@ enter(struct servtab *cp) return (sep); } -void +static void enable(struct servtab *sep) { if (debug) @@ -1537,7 +1535,7 @@ enable(struct servtab *sep) maxsock = sep->se_fd; } -void +static void disable(struct servtab *sep) { if (debug) @@ -1570,11 +1568,11 @@ disable(struct servtab *sep) maxsock--; } -FILE *fconfig = NULL; -struct servtab serv; -char line[LINE_MAX]; +static FILE *fconfig = NULL; +static struct servtab serv; +static char line[LINE_MAX]; -int +static int setconfig(void) { @@ -1586,7 +1584,7 @@ setconfig(void) return (fconfig != NULL); } -void +static void endconfig(void) { if (fconfig) { @@ -1595,7 +1593,7 @@ endconfig(void) } } -struct servtab * +static struct servtab * getconfigent(void) { struct servtab *sep = &serv; @@ -1973,7 +1971,7 @@ more: return (sep); } -void +static void freeconfig(struct servtab *cp) { int i; @@ -2009,7 +2007,7 @@ freeconfig(struct servtab *cp) * Safe skip - if skip returns null, log a syntax error in the * configuration file and exit. */ -char * +static char * sskip(char **cpp) { char *cp; @@ -2022,7 +2020,7 @@ sskip(char **cpp) return (cp); } -char * +static char * skip(char **cpp) { char *cp = *cpp; @@ -2058,7 +2056,7 @@ again: return (start); } -char * +static char * nextline(FILE *fd) { char *cp; @@ -2071,7 +2069,7 @@ nextline(FILE *fd) return (line); } -char * +static char * newstr(const char *cp) { char *cr; @@ -2111,13 +2109,13 @@ check_loop(const struct sockaddr *sa, const struct ser switch (se2->se_family) { case AF_INET: - if (((const struct sockaddr_in *)sa)->sin_port == + if (csatosin(sa)->sin_port == se2->se_ctrladdr4.sin_port) goto isloop; continue; #ifdef INET6 case AF_INET6: - if (((const struct sockaddr_in6 *)sa)->sin6_port == + if (csatosin6(sa)->sin6_port == se2->se_ctrladdr6.sin6_port) goto isloop; continue; @@ -2141,7 +2139,7 @@ check_loop(const struct sockaddr *sa, const struct ser * print_service: * Dump relevant information to stderr */ -void +static void print_service(const char *action, const struct servtab *sep) { fprintf(stderr, @@ -2189,9 +2187,9 @@ typedef struct CHash { CTime ch_Times[CHTSIZE]; } CHash; -CHash CHashAry[CPMHSIZE]; +static CHash CHashAry[CPMHSIZE]; -int +static int cpmip(const struct servtab *sep, int ctrl) { struct sockaddr_storage rss; Modified: stable/11/usr.sbin/inetd/inetd.h ============================================================================== --- stable/11/usr.sbin/inetd/inetd.h Sun Jan 5 19:14:16 2020 (r356386) +++ stable/11/usr.sbin/inetd/inetd.h Sun Jan 5 21:32:41 2020 (r356387) @@ -123,12 +123,7 @@ struct servtab { #define se_reset se_flags.se_reset int check_loop(const struct sockaddr *, const struct servtab *sep); -int getvalue(const char *, int *, const char *); -char *newstr(const char *); void inetd_setproctitle(const char *, int); -void print_service(const char *, const struct servtab *); -char *sskip(char **); -char *skip(char **); struct servtab *tcpmux(int); extern int debug; @@ -143,3 +138,4 @@ struct biltin { int bi_maxchild; /* max number of children, -1=default */ bi_fn_t *bi_fn; /* function which performs it */ }; +extern struct biltin biltins[]; From owner-svn-src-stable@freebsd.org Sun Jan 5 21:35:04 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0C7261E794B; Sun, 5 Jan 2020 21:35:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rX3r09NYz3Jwt; Sun, 5 Jan 2020 21:35:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F09203FFD; Sun, 5 Jan 2020 21:35:03 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005LZ3Lh080163; Sun, 5 Jan 2020 21:35:03 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005LZ3xp080159; Sun, 5 Jan 2020 21:35:03 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001052135.005LZ3xp080159@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 5 Jan 2020 21:35:03 +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: r356388 - in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Commit-Revision: 356388 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 21:35:04 -0000 Author: kevans Date: Sun Jan 5 21:35:02 2020 New Revision: 356388 URL: https://svnweb.freebsd.org/changeset/base/356388 Log: MFC further inetd(8) cleanup: r356204, r356215, r356217-r356218, r356246-r356248, r356254, r356318 r356204: inetd: don't leak `policy` on return sep->se_policy gets a strdup'd version of policy, so we don't need it to stick around afterwards. While here, remove a couple of NULL checks prior to free(policy). r356215: inetd: knock out some clang analyze warnings chargen_dg: clang-analyze is convinced that endring could be non-NULL at entry, and thus wants to assume that rs == NULL. Just independently initialize rs if it's NULL to appease the analyzer. getconfigent: policy leaks on return free_connlist: reorganize the loop to make it clear that we're not going to access `conn` after it's been freed. cpmip/hashval: left-shifts performed will result in UB as we take signed 0xABC3D20F and left shift it by 5. r356217: inetd: prefer strtonum(3) to strspn(3)+atoi(3), NFC strtonum(3) does effectively the same validation as we had, but it's more concise. r356218: inetd: prefer strlcpy to strlen(3) check + strcpy(3), NFC This is again functionally equivalent but more concise. r356246: inetd: add some macros for checking child limits, NFC The main point here is capturing the maxchild > 0 check. A future change to inetd will start tracking all of the child pids so that it can give proper and consistent notification of process exit/signalling. r356247: inetd: track all child pids, regardless of maxchild spec Currently, child pids are only tracked if maxchildren is specified. As a consequence, without a maxchild limit we do not get a notice in syslog on children aborting abnormally. This turns out to be a great debugging aide at times. Children are now tracked in a LIST; the management interface is decidedly less painful when there's no upper bound on the number of entries we may have at the cost of one small allocation per connection. r356248: inetd: convert remaining bzero(3) to memset(3), NFC This change is purely in the name of noise reduction from static analyzers that want to complain that bzero(3) is obsolete in favor of memset(3). With this, clang-analyze at least is now noise free. WARNS= 6 also appears to have been OK for some time now, so drop the current setting and opt for the default. r356254: inetd: final round of trivial cleanup, NFC Highlights: - Use MAX() for maxsock raising; small readability improvement IMO - malloc(3) + memset(3) -> calloc(3) where appropriate - stop casting the return value of malloc(3) - mallloc(3) -> reallocarray(3) where appropriate A future change may enter capability mode when forking for some of the built-in handlers. r356318: inetd: fix WITHOUT_TCP_WRAPPERS build after r356248 After increasing WARNS, building WITHOUT_TCP_WRAPPERS failed because of some unused variables. Modified: stable/11/usr.sbin/inetd/Makefile stable/11/usr.sbin/inetd/builtins.c stable/11/usr.sbin/inetd/inetd.c stable/11/usr.sbin/inetd/inetd.h Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.sbin/inetd/Makefile stable/12/usr.sbin/inetd/builtins.c stable/12/usr.sbin/inetd/inetd.c stable/12/usr.sbin/inetd/inetd.h Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.sbin/inetd/Makefile ============================================================================== --- stable/11/usr.sbin/inetd/Makefile Sun Jan 5 21:32:41 2020 (r356387) +++ stable/11/usr.sbin/inetd/Makefile Sun Jan 5 21:35:02 2020 (r356388) @@ -8,7 +8,6 @@ MAN= inetd.8 MLINKS= inetd.8 inetd.conf.5 SRCS= inetd.c builtins.c -WARNS?= 3 CFLAGS+= -DLOGIN_CAP #CFLAGS+= -DSANITY_CHECK Modified: stable/11/usr.sbin/inetd/builtins.c ============================================================================== --- stable/11/usr.sbin/inetd/builtins.c Sun Jan 5 21:32:41 2020 (r356387) +++ stable/11/usr.sbin/inetd/builtins.c Sun Jan 5 21:35:02 2020 (r356388) @@ -132,10 +132,10 @@ chargen_dg(int s, struct servtab *sep) socklen_t size; char text[LINESIZ+2]; - if (endring == 0) { + if (endring == NULL) initring(); + if (rs == NULL) rs = ring; - } size = sizeof(ss); if (recvfrom(s, text, sizeof(text), 0, @@ -649,8 +649,14 @@ ident_stream(int s, struct servtab *sep) goto fakeid_fail; if (!Fflag) { if (iflag) { - if (p[strspn(p, "0123456789")] == '\0' && - getpwuid(atoi(p)) != NULL) + const char *errstr; + uid_t uid; + + uid = strtonum(p, 0, UID_MAX, &errstr); + if (errstr != NULL) + goto fakeid_fail; + + if (getpwuid(uid) != NULL) goto fakeid_fail; } else { if (getpwnam(p) != NULL) Modified: stable/11/usr.sbin/inetd/inetd.c ============================================================================== --- stable/11/usr.sbin/inetd/inetd.c Sun Jan 5 21:32:41 2020 (r356387) +++ stable/11/usr.sbin/inetd/inetd.c Sun Jan 5 21:35:02 2020 (r356388) @@ -248,9 +248,11 @@ static char *sskip(char **); static char *newstr(const char *); static void print_service(const char *, const struct servtab *); +#ifdef LIBWRAP /* tcpd.h */ int allow_severity; int deny_severity; +#endif static int wrap_ex = 0; static int wrap_bi = 0; @@ -408,7 +410,7 @@ main(int argc, char **argv) */ servname = (hostname == NULL) ? "0" /* dummy */ : NULL; - bzero(&hints, sizeof(struct addrinfo)); + memset(&hints, 0, sizeof(struct addrinfo)); hints.ai_flags = AI_PASSIVE; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; /* dummy */ @@ -562,10 +564,7 @@ main(int argc, char **argv) #ifdef SANITY_CHECK nsock++; #endif - if (signalpipe[0] > maxsock) - maxsock = signalpipe[0]; - if (signalpipe[1] > maxsock) - maxsock = signalpipe[1]; + maxsock = MAX(MAX(maxsock, signalpipe[0]), signalpipe[1]); for (;;) { int n, ctrl; @@ -920,25 +919,33 @@ flag_signal(int signo) static void addchild(struct servtab *sep, pid_t pid) { - if (sep->se_maxchild <= 0) - return; + struct stabchild *sc; + #ifdef SANITY_CHECK - if (sep->se_numchild >= sep->se_maxchild) { + if (SERVTAB_EXCEEDS_LIMIT(sep)) { syslog(LOG_ERR, "%s: %d >= %d", __func__, sep->se_numchild, sep->se_maxchild); exit(EX_SOFTWARE); } #endif - sep->se_pids[sep->se_numchild++] = pid; - if (sep->se_numchild == sep->se_maxchild) + sc = calloc(1, sizeof(*sc)); + if (sc == NULL) { + syslog(LOG_ERR, "calloc: %m"); + exit(EX_OSERR); + } + sc->sc_pid = pid; + LIST_INSERT_HEAD(&sep->se_children, sc, sc_link); + ++sep->se_numchild; + if (SERVTAB_AT_LIMIT(sep)) disable(sep); } static void reapchild(void) { - int k, status; + int status; pid_t pid; + struct stabchild *sc; struct servtab *sep; for (;;) { @@ -951,14 +958,17 @@ reapchild(void) WIFEXITED(status) ? WEXITSTATUS(status) : WTERMSIG(status)); for (sep = servtab; sep; sep = sep->se_next) { - for (k = 0; k < sep->se_numchild; k++) - if (sep->se_pids[k] == pid) + LIST_FOREACH(sc, &sep->se_children, sc_link) { + if (sc->sc_pid == pid) break; - if (k == sep->se_numchild) + } + if (sc == NULL) continue; - if (sep->se_numchild == sep->se_maxchild) + if (SERVTAB_AT_LIMIT(sep)) enable(sep); - sep->se_pids[k] = sep->se_pids[--sep->se_numchild]; + LIST_REMOVE(sc, sc_link); + free(sc); + --sep->se_numchild; if (WIFSIGNALED(status) || WEXITSTATUS(status)) syslog(LOG_WARNING, "%s[%d]: exited, %s %u", @@ -1030,25 +1040,20 @@ config(void) sep->se_nomapped = new->se_nomapped; sep->se_reset = 1; } - /* copy over outstanding child pids */ - if (sep->se_maxchild > 0 && new->se_maxchild > 0) { - new->se_numchild = sep->se_numchild; - if (new->se_numchild > new->se_maxchild) - new->se_numchild = new->se_maxchild; - memcpy(new->se_pids, sep->se_pids, - new->se_numchild * sizeof(*new->se_pids)); - } - SWAP(pid_t *, sep->se_pids, new->se_pids); - sep->se_maxchild = new->se_maxchild; - sep->se_numchild = new->se_numchild; + + /* + * The children tracked remain; we want numchild to + * still reflect how many jobs are running so we don't + * throw off our accounting. + */ sep->se_maxcpm = new->se_maxcpm; + sep->se_maxchild = new->se_maxchild; resize_conn(sep, new->se_maxperip); sep->se_maxperip = new->se_maxperip; sep->se_bi = new->se_bi; /* might need to turn on or off service now */ if (sep->se_fd >= 0) { - if (sep->se_maxchild > 0 - && sep->se_numchild == sep->se_maxchild) { + if (SERVTAB_EXCEEDS_LIMIT(sep)) { if (FD_ISSET(sep->se_fd, &allsock)) disable(sep); } else { @@ -1492,8 +1497,8 @@ enter(struct servtab *cp) struct servtab *sep; long omask; - sep = (struct servtab *)malloc(sizeof (*sep)); - if (sep == (struct servtab *)0) { + sep = malloc(sizeof(*sep)); + if (sep == NULL) { syslog(LOG_ERR, "malloc: %m"); exit(EX_OSERR); } @@ -1531,8 +1536,7 @@ enable(struct servtab *sep) nsock++; #endif FD_SET(sep->se_fd, &allsock); - if (sep->se_fd > maxsock) - maxsock = sep->se_fd; + maxsock = MAX(maxsock, sep->se_fd); } static void @@ -1610,6 +1614,7 @@ getconfigent(void) int v6bind; #endif int i; + size_t unsz; #ifdef IPSEC policy = NULL; @@ -1627,12 +1632,10 @@ more: for (p = cp + 2; p && *p && isspace(*p); p++) ; if (*p == '\0') { - if (policy) - free(policy); + free(policy); policy = NULL; } else if (ipsec_get_policylen(p) >= 0) { - if (policy) - free(policy); + free(policy); policy = newstr(p); } else { syslog(LOG_ERR, @@ -1646,8 +1649,11 @@ more: continue; break; } - if (cp == NULL) - return ((struct servtab *)0); + if (cp == NULL) { + free(policy); + return (NULL); + } + /* * clear the static buffer, since some fields (se_ctrladdr, * for example) don't get initialized here. @@ -1829,16 +1835,18 @@ more: break; #endif case AF_UNIX: - if (strlen(sep->se_service) >= sizeof(sep->se_ctrladdr_un.sun_path)) { - syslog(LOG_ERR, +#define SUN_PATH_MAXSIZE sizeof(sep->se_ctrladdr_un.sun_path) + memset(&sep->se_ctrladdr, 0, sizeof(sep->se_ctrladdr)); + sep->se_ctrladdr_un.sun_family = sep->se_family; + if ((unsz = strlcpy(sep->se_ctrladdr_un.sun_path, + sep->se_service, SUN_PATH_MAXSIZE) >= SUN_PATH_MAXSIZE)) { + syslog(LOG_ERR, "domain socket pathname too long for service %s", sep->se_service); goto more; } - memset(&sep->se_ctrladdr, 0, sizeof(sep->se_ctrladdr)); - sep->se_ctrladdr_un.sun_family = sep->se_family; - sep->se_ctrladdr_un.sun_len = strlen(sep->se_service); - strcpy(sep->se_ctrladdr_un.sun_path, sep->se_service); + sep->se_ctrladdr_un.sun_len = unsz; +#undef SUN_PATH_MAXSIZE sep->se_ctrladdr_size = SUN_LEN(&sep->se_ctrladdr_un); } arg = sskip(&cp); @@ -1944,13 +1952,7 @@ more: else sep->se_maxchild = 1; } - if (sep->se_maxchild > 0) { - sep->se_pids = malloc(sep->se_maxchild * sizeof(*sep->se_pids)); - if (sep->se_pids == NULL) { - syslog(LOG_ERR, "malloc: %m"); - exit(EX_OSERR); - } - } + LIST_INIT(&sep->se_children); argc = 0; for (arg = skip(&cp); cp; arg = skip(&cp)) if (argc < MAXARGV) { @@ -1967,6 +1969,7 @@ more: LIST_INIT(&sep->se_conn[i]); #ifdef IPSEC sep->se_policy = policy ? newstr(policy) : NULL; + free(policy); #endif return (sep); } @@ -1974,31 +1977,28 @@ more: static void freeconfig(struct servtab *cp) { + struct stabchild *sc; int i; - if (cp->se_service) - free(cp->se_service); - if (cp->se_proto) - free(cp->se_proto); - if (cp->se_user) - free(cp->se_user); - if (cp->se_group) - free(cp->se_group); + free(cp->se_service); + free(cp->se_proto); + free(cp->se_user); + free(cp->se_group); #ifdef LOGIN_CAP - if (cp->se_class) - free(cp->se_class); + free(cp->se_class); #endif - if (cp->se_server) - free(cp->se_server); - if (cp->se_pids) - free(cp->se_pids); + free(cp->se_server); + while (!LIST_EMPTY(&cp->se_children)) { + sc = LIST_FIRST(&cp->se_children); + LIST_REMOVE(sc, sc_link); + free(sc); + } for (i = 0; i < MAXARGV; i++) if (cp->se_argv[i]) free(cp->se_argv[i]); free_connlist(cp); #ifdef IPSEC - if (cp->se_policy) - free(cp->se_policy); + free(cp->se_policy); #endif } @@ -2205,7 +2205,7 @@ cpmip(const struct servtab *sep, int ctrl) (sep->se_family == AF_INET || sep->se_family == AF_INET6) && getpeername(ctrl, (struct sockaddr *)&rss, &rssLen) == 0 ) { time_t t = time(NULL); - int hv = 0xABC3D20F; + unsigned int hv = 0xABC3D20F; int i; int cnt = 0; CHash *chBest = NULL; @@ -2278,10 +2278,9 @@ cpmip(const struct servtab *sep, int ctrl) strcmp(sep->se_service, chBest->ch_Service) != 0) { chBest->ch_Family = sin4->sin_family; chBest->ch_Addr4 = sin4->sin_addr; - if (chBest->ch_Service) - free(chBest->ch_Service); + free(chBest->ch_Service); chBest->ch_Service = strdup(sep->se_service); - bzero(chBest->ch_Times, sizeof(chBest->ch_Times)); + memset(chBest->ch_Times, 0, sizeof(chBest->ch_Times)); } #ifdef INET6 if ((rss.ss_family == AF_INET6 && @@ -2292,10 +2291,9 @@ cpmip(const struct servtab *sep, int ctrl) strcmp(sep->se_service, chBest->ch_Service) != 0) { chBest->ch_Family = sin6->sin6_family; chBest->ch_Addr6 = sin6->sin6_addr; - if (chBest->ch_Service) - free(chBest->ch_Service); + free(chBest->ch_Service); chBest->ch_Service = strdup(sep->se_service); - bzero(chBest->ch_Times, sizeof(chBest->ch_Times)); + memset(chBest->ch_Times, 0, sizeof(chBest->ch_Times)); } #endif chBest->ch_LTime = t; @@ -2386,9 +2384,10 @@ search_conn(struct servtab *sep, int ctrl) syslog(LOG_ERR, "malloc: %m"); exit(EX_OSERR); } - conn->co_proc = malloc(sep->se_maxperip * sizeof(*conn->co_proc)); + conn->co_proc = reallocarray(NULL, sep->se_maxperip, + sizeof(*conn->co_proc)); if (conn->co_proc == NULL) { - syslog(LOG_ERR, "malloc: %m"); + syslog(LOG_ERR, "reallocarray: %m"); exit(EX_OSERR); } memcpy(&conn->co_addr, (struct sockaddr *)&ss, sslen); @@ -2477,10 +2476,10 @@ resize_conn(struct servtab *sep, int maxpip) LIST_FOREACH(conn, &sep->se_conn[i], co_link) { for (j = maxpip; j < conn->co_numchild; ++j) free_proc(conn->co_proc[j]); - conn->co_proc = realloc(conn->co_proc, - maxpip * sizeof(*conn->co_proc)); + conn->co_proc = reallocarray(conn->co_proc, maxpip, + sizeof(*conn->co_proc)); if (conn->co_proc == NULL) { - syslog(LOG_ERR, "realloc: %m"); + syslog(LOG_ERR, "reallocarray: %m"); exit(EX_OSERR); } if (conn->co_numchild > maxpip) @@ -2492,11 +2491,15 @@ resize_conn(struct servtab *sep, int maxpip) static void free_connlist(struct servtab *sep) { - struct conninfo *conn; + struct conninfo *conn, *conn_temp; int i, j; for (i = 0; i < PERIPSIZE; ++i) { - while ((conn = LIST_FIRST(&sep->se_conn[i])) != NULL) { + LIST_FOREACH_SAFE(conn, &sep->se_conn[i], co_link, conn_temp) { + if (conn == NULL) { + LIST_REMOVE(conn, co_link); + continue; + } for (j = 0; j < conn->co_numchild; ++j) free_proc(conn->co_proc[j]); conn->co_numchild = 0; @@ -2552,7 +2555,8 @@ free_proc(struct procinfo *proc) static int hashval(char *p, int len) { - int i, hv = 0xABC3D20F; + unsigned int hv = 0xABC3D20F; + int i; for (i = 0; i < len; ++i, ++p) hv = (hv << 5) ^ (hv >> 23) ^ *p; Modified: stable/11/usr.sbin/inetd/inetd.h ============================================================================== --- stable/11/usr.sbin/inetd/inetd.h Sun Jan 5 21:32:41 2020 (r356387) +++ stable/11/usr.sbin/inetd/inetd.h Sun Jan 5 21:35:02 2020 (r356388) @@ -64,6 +64,11 @@ struct conninfo { #define PERIPSIZE 256 +struct stabchild { + LIST_ENTRY(stabchild) sc_link; + pid_t sc_pid; +}; + struct servtab { char *se_service; /* name of service */ int se_socktype; /* type of socket to use */ @@ -72,7 +77,6 @@ struct servtab { int se_maxchild; /* max number of children */ int se_maxcpm; /* max connects per IP per minute */ int se_numchild; /* current number of children */ - pid_t *se_pids; /* array of child pids */ char *se_user; /* user name to run as */ char *se_group; /* group name to run as */ #ifdef LOGIN_CAP @@ -117,10 +121,16 @@ struct servtab { } se_flags; int se_maxperip; /* max number of children per src */ LIST_HEAD(, conninfo) se_conn[PERIPSIZE]; + LIST_HEAD(, stabchild) se_children; }; #define se_nomapped se_flags.se_nomapped #define se_reset se_flags.se_reset + +#define SERVTAB_AT_LIMIT(sep) \ + ((sep)->se_maxchild > 0 && (sep)->se_numchild == (sep)->se_maxchild) +#define SERVTAB_EXCEEDS_LIMIT(sep) \ + ((sep)->se_maxchild > 0 && (sep)->se_numchild >= (sep)->se_maxchild) int check_loop(const struct sockaddr *, const struct servtab *sep); void inetd_setproctitle(const char *, int); From owner-svn-src-stable@freebsd.org Sun Jan 5 21:35:04 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BA1E51E7954; Sun, 5 Jan 2020 21:35:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rX3r5JYjz3Jwv; Sun, 5 Jan 2020 21:35:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B123F3FFE; Sun, 5 Jan 2020 21:35:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 005LZ4P8080172; Sun, 5 Jan 2020 21:35:04 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 005LZ4s0080169; Sun, 5 Jan 2020 21:35:04 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001052135.005LZ4s0080169@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 5 Jan 2020 21:35:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356388 - in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Commit-Revision: 356388 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2020 21:35:04 -0000 Author: kevans Date: Sun Jan 5 21:35:02 2020 New Revision: 356388 URL: https://svnweb.freebsd.org/changeset/base/356388 Log: MFC further inetd(8) cleanup: r356204, r356215, r356217-r356218, r356246-r356248, r356254, r356318 r356204: inetd: don't leak `policy` on return sep->se_policy gets a strdup'd version of policy, so we don't need it to stick around afterwards. While here, remove a couple of NULL checks prior to free(policy). r356215: inetd: knock out some clang analyze warnings chargen_dg: clang-analyze is convinced that endring could be non-NULL at entry, and thus wants to assume that rs == NULL. Just independently initialize rs if it's NULL to appease the analyzer. getconfigent: policy leaks on return free_connlist: reorganize the loop to make it clear that we're not going to access `conn` after it's been freed. cpmip/hashval: left-shifts performed will result in UB as we take signed 0xABC3D20F and left shift it by 5. r356217: inetd: prefer strtonum(3) to strspn(3)+atoi(3), NFC strtonum(3) does effectively the same validation as we had, but it's more concise. r356218: inetd: prefer strlcpy to strlen(3) check + strcpy(3), NFC This is again functionally equivalent but more concise. r356246: inetd: add some macros for checking child limits, NFC The main point here is capturing the maxchild > 0 check. A future change to inetd will start tracking all of the child pids so that it can give proper and consistent notification of process exit/signalling. r356247: inetd: track all child pids, regardless of maxchild spec Currently, child pids are only tracked if maxchildren is specified. As a consequence, without a maxchild limit we do not get a notice in syslog on children aborting abnormally. This turns out to be a great debugging aide at times. Children are now tracked in a LIST; the management interface is decidedly less painful when there's no upper bound on the number of entries we may have at the cost of one small allocation per connection. r356248: inetd: convert remaining bzero(3) to memset(3), NFC This change is purely in the name of noise reduction from static analyzers that want to complain that bzero(3) is obsolete in favor of memset(3). With this, clang-analyze at least is now noise free. WARNS= 6 also appears to have been OK for some time now, so drop the current setting and opt for the default. r356254: inetd: final round of trivial cleanup, NFC Highlights: - Use MAX() for maxsock raising; small readability improvement IMO - malloc(3) + memset(3) -> calloc(3) where appropriate - stop casting the return value of malloc(3) - mallloc(3) -> reallocarray(3) where appropriate A future change may enter capability mode when forking for some of the built-in handlers. r356318: inetd: fix WITHOUT_TCP_WRAPPERS build after r356248 After increasing WARNS, building WITHOUT_TCP_WRAPPERS failed because of some unused variables. Modified: stable/12/usr.sbin/inetd/Makefile stable/12/usr.sbin/inetd/builtins.c stable/12/usr.sbin/inetd/inetd.c stable/12/usr.sbin/inetd/inetd.h Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.sbin/inetd/Makefile stable/11/usr.sbin/inetd/builtins.c stable/11/usr.sbin/inetd/inetd.c stable/11/usr.sbin/inetd/inetd.h Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.sbin/inetd/Makefile ============================================================================== --- stable/12/usr.sbin/inetd/Makefile Sun Jan 5 21:32:41 2020 (r356387) +++ stable/12/usr.sbin/inetd/Makefile Sun Jan 5 21:35:02 2020 (r356388) @@ -9,7 +9,6 @@ MAN= inetd.8 MLINKS= inetd.8 inetd.conf.5 SRCS= inetd.c builtins.c -WARNS?= 3 CFLAGS+= -DLOGIN_CAP #CFLAGS+= -DSANITY_CHECK Modified: stable/12/usr.sbin/inetd/builtins.c ============================================================================== --- stable/12/usr.sbin/inetd/builtins.c Sun Jan 5 21:32:41 2020 (r356387) +++ stable/12/usr.sbin/inetd/builtins.c Sun Jan 5 21:35:02 2020 (r356388) @@ -132,10 +132,10 @@ chargen_dg(int s, struct servtab *sep) socklen_t size; char text[LINESIZ+2]; - if (endring == 0) { + if (endring == NULL) initring(); + if (rs == NULL) rs = ring; - } size = sizeof(ss); if (recvfrom(s, text, sizeof(text), 0, @@ -649,8 +649,14 @@ ident_stream(int s, struct servtab *sep) goto fakeid_fail; if (!Fflag) { if (iflag) { - if (p[strspn(p, "0123456789")] == '\0' && - getpwuid(atoi(p)) != NULL) + const char *errstr; + uid_t uid; + + uid = strtonum(p, 0, UID_MAX, &errstr); + if (errstr != NULL) + goto fakeid_fail; + + if (getpwuid(uid) != NULL) goto fakeid_fail; } else { if (getpwnam(p) != NULL) Modified: stable/12/usr.sbin/inetd/inetd.c ============================================================================== --- stable/12/usr.sbin/inetd/inetd.c Sun Jan 5 21:32:41 2020 (r356387) +++ stable/12/usr.sbin/inetd/inetd.c Sun Jan 5 21:35:02 2020 (r356388) @@ -250,9 +250,11 @@ static char *sskip(char **); static char *newstr(const char *); static void print_service(const char *, const struct servtab *); +#ifdef LIBWRAP /* tcpd.h */ int allow_severity; int deny_severity; +#endif static int wrap_ex = 0; static int wrap_bi = 0; @@ -410,7 +412,7 @@ main(int argc, char **argv) */ servname = (hostname == NULL) ? "0" /* dummy */ : NULL; - bzero(&hints, sizeof(struct addrinfo)); + memset(&hints, 0, sizeof(struct addrinfo)); hints.ai_flags = AI_PASSIVE; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; /* dummy */ @@ -564,10 +566,7 @@ main(int argc, char **argv) #ifdef SANITY_CHECK nsock++; #endif - if (signalpipe[0] > maxsock) - maxsock = signalpipe[0]; - if (signalpipe[1] > maxsock) - maxsock = signalpipe[1]; + maxsock = MAX(MAX(maxsock, signalpipe[0]), signalpipe[1]); for (;;) { int n, ctrl; @@ -922,25 +921,33 @@ flag_signal(int signo) static void addchild(struct servtab *sep, pid_t pid) { - if (sep->se_maxchild <= 0) - return; + struct stabchild *sc; + #ifdef SANITY_CHECK - if (sep->se_numchild >= sep->se_maxchild) { + if (SERVTAB_EXCEEDS_LIMIT(sep)) { syslog(LOG_ERR, "%s: %d >= %d", __func__, sep->se_numchild, sep->se_maxchild); exit(EX_SOFTWARE); } #endif - sep->se_pids[sep->se_numchild++] = pid; - if (sep->se_numchild == sep->se_maxchild) + sc = calloc(1, sizeof(*sc)); + if (sc == NULL) { + syslog(LOG_ERR, "calloc: %m"); + exit(EX_OSERR); + } + sc->sc_pid = pid; + LIST_INSERT_HEAD(&sep->se_children, sc, sc_link); + ++sep->se_numchild; + if (SERVTAB_AT_LIMIT(sep)) disable(sep); } static void reapchild(void) { - int k, status; + int status; pid_t pid; + struct stabchild *sc; struct servtab *sep; for (;;) { @@ -953,14 +960,17 @@ reapchild(void) WIFEXITED(status) ? WEXITSTATUS(status) : WTERMSIG(status)); for (sep = servtab; sep; sep = sep->se_next) { - for (k = 0; k < sep->se_numchild; k++) - if (sep->se_pids[k] == pid) + LIST_FOREACH(sc, &sep->se_children, sc_link) { + if (sc->sc_pid == pid) break; - if (k == sep->se_numchild) + } + if (sc == NULL) continue; - if (sep->se_numchild == sep->se_maxchild) + if (SERVTAB_AT_LIMIT(sep)) enable(sep); - sep->se_pids[k] = sep->se_pids[--sep->se_numchild]; + LIST_REMOVE(sc, sc_link); + free(sc); + --sep->se_numchild; if (WIFSIGNALED(status) || WEXITSTATUS(status)) syslog(LOG_WARNING, "%s[%d]: exited, %s %u", @@ -1032,25 +1042,20 @@ config(void) sep->se_nomapped = new->se_nomapped; sep->se_reset = 1; } - /* copy over outstanding child pids */ - if (sep->se_maxchild > 0 && new->se_maxchild > 0) { - new->se_numchild = sep->se_numchild; - if (new->se_numchild > new->se_maxchild) - new->se_numchild = new->se_maxchild; - memcpy(new->se_pids, sep->se_pids, - new->se_numchild * sizeof(*new->se_pids)); - } - SWAP(pid_t *, sep->se_pids, new->se_pids); - sep->se_maxchild = new->se_maxchild; - sep->se_numchild = new->se_numchild; + + /* + * The children tracked remain; we want numchild to + * still reflect how many jobs are running so we don't + * throw off our accounting. + */ sep->se_maxcpm = new->se_maxcpm; + sep->se_maxchild = new->se_maxchild; resize_conn(sep, new->se_maxperip); sep->se_maxperip = new->se_maxperip; sep->se_bi = new->se_bi; /* might need to turn on or off service now */ if (sep->se_fd >= 0) { - if (sep->se_maxchild > 0 - && sep->se_numchild == sep->se_maxchild) { + if (SERVTAB_EXCEEDS_LIMIT(sep)) { if (FD_ISSET(sep->se_fd, &allsock)) disable(sep); } else { @@ -1494,8 +1499,8 @@ enter(struct servtab *cp) struct servtab *sep; long omask; - sep = (struct servtab *)malloc(sizeof (*sep)); - if (sep == (struct servtab *)0) { + sep = malloc(sizeof(*sep)); + if (sep == NULL) { syslog(LOG_ERR, "malloc: %m"); exit(EX_OSERR); } @@ -1533,8 +1538,7 @@ enable(struct servtab *sep) nsock++; #endif FD_SET(sep->se_fd, &allsock); - if (sep->se_fd > maxsock) - maxsock = sep->se_fd; + maxsock = MAX(maxsock, sep->se_fd); } static void @@ -1612,6 +1616,7 @@ getconfigent(void) int v6bind; #endif int i; + size_t unsz; #ifdef IPSEC policy = NULL; @@ -1629,12 +1634,10 @@ more: for (p = cp + 2; p && *p && isspace(*p); p++) ; if (*p == '\0') { - if (policy) - free(policy); + free(policy); policy = NULL; } else if (ipsec_get_policylen(p) >= 0) { - if (policy) - free(policy); + free(policy); policy = newstr(p); } else { syslog(LOG_ERR, @@ -1648,8 +1651,11 @@ more: continue; break; } - if (cp == NULL) - return ((struct servtab *)0); + if (cp == NULL) { + free(policy); + return (NULL); + } + /* * clear the static buffer, since some fields (se_ctrladdr, * for example) don't get initialized here. @@ -1831,16 +1837,18 @@ more: break; #endif case AF_UNIX: - if (strlen(sep->se_service) >= sizeof(sep->se_ctrladdr_un.sun_path)) { - syslog(LOG_ERR, +#define SUN_PATH_MAXSIZE sizeof(sep->se_ctrladdr_un.sun_path) + memset(&sep->se_ctrladdr, 0, sizeof(sep->se_ctrladdr)); + sep->se_ctrladdr_un.sun_family = sep->se_family; + if ((unsz = strlcpy(sep->se_ctrladdr_un.sun_path, + sep->se_service, SUN_PATH_MAXSIZE) >= SUN_PATH_MAXSIZE)) { + syslog(LOG_ERR, "domain socket pathname too long for service %s", sep->se_service); goto more; } - memset(&sep->se_ctrladdr, 0, sizeof(sep->se_ctrladdr)); - sep->se_ctrladdr_un.sun_family = sep->se_family; - sep->se_ctrladdr_un.sun_len = strlen(sep->se_service); - strcpy(sep->se_ctrladdr_un.sun_path, sep->se_service); + sep->se_ctrladdr_un.sun_len = unsz; +#undef SUN_PATH_MAXSIZE sep->se_ctrladdr_size = SUN_LEN(&sep->se_ctrladdr_un); } arg = sskip(&cp); @@ -1946,13 +1954,7 @@ more: else sep->se_maxchild = 1; } - if (sep->se_maxchild > 0) { - sep->se_pids = malloc(sep->se_maxchild * sizeof(*sep->se_pids)); - if (sep->se_pids == NULL) { - syslog(LOG_ERR, "malloc: %m"); - exit(EX_OSERR); - } - } + LIST_INIT(&sep->se_children); argc = 0; for (arg = skip(&cp); cp; arg = skip(&cp)) if (argc < MAXARGV) { @@ -1969,6 +1971,7 @@ more: LIST_INIT(&sep->se_conn[i]); #ifdef IPSEC sep->se_policy = policy ? newstr(policy) : NULL; + free(policy); #endif return (sep); } @@ -1976,31 +1979,28 @@ more: static void freeconfig(struct servtab *cp) { + struct stabchild *sc; int i; - if (cp->se_service) - free(cp->se_service); - if (cp->se_proto) - free(cp->se_proto); - if (cp->se_user) - free(cp->se_user); - if (cp->se_group) - free(cp->se_group); + free(cp->se_service); + free(cp->se_proto); + free(cp->se_user); + free(cp->se_group); #ifdef LOGIN_CAP - if (cp->se_class) - free(cp->se_class); + free(cp->se_class); #endif - if (cp->se_server) - free(cp->se_server); - if (cp->se_pids) - free(cp->se_pids); + free(cp->se_server); + while (!LIST_EMPTY(&cp->se_children)) { + sc = LIST_FIRST(&cp->se_children); + LIST_REMOVE(sc, sc_link); + free(sc); + } for (i = 0; i < MAXARGV; i++) if (cp->se_argv[i]) free(cp->se_argv[i]); free_connlist(cp); #ifdef IPSEC - if (cp->se_policy) - free(cp->se_policy); + free(cp->se_policy); #endif } @@ -2207,7 +2207,7 @@ cpmip(const struct servtab *sep, int ctrl) (sep->se_family == AF_INET || sep->se_family == AF_INET6) && getpeername(ctrl, (struct sockaddr *)&rss, &rssLen) == 0 ) { time_t t = time(NULL); - int hv = 0xABC3D20F; + unsigned int hv = 0xABC3D20F; int i; int cnt = 0; CHash *chBest = NULL; @@ -2280,10 +2280,9 @@ cpmip(const struct servtab *sep, int ctrl) strcmp(sep->se_service, chBest->ch_Service) != 0) { chBest->ch_Family = sin4->sin_family; chBest->ch_Addr4 = sin4->sin_addr; - if (chBest->ch_Service) - free(chBest->ch_Service); + free(chBest->ch_Service); chBest->ch_Service = strdup(sep->se_service); - bzero(chBest->ch_Times, sizeof(chBest->ch_Times)); + memset(chBest->ch_Times, 0, sizeof(chBest->ch_Times)); } #ifdef INET6 if ((rss.ss_family == AF_INET6 && @@ -2294,10 +2293,9 @@ cpmip(const struct servtab *sep, int ctrl) strcmp(sep->se_service, chBest->ch_Service) != 0) { chBest->ch_Family = sin6->sin6_family; chBest->ch_Addr6 = sin6->sin6_addr; - if (chBest->ch_Service) - free(chBest->ch_Service); + free(chBest->ch_Service); chBest->ch_Service = strdup(sep->se_service); - bzero(chBest->ch_Times, sizeof(chBest->ch_Times)); + memset(chBest->ch_Times, 0, sizeof(chBest->ch_Times)); } #endif chBest->ch_LTime = t; @@ -2388,9 +2386,10 @@ search_conn(struct servtab *sep, int ctrl) syslog(LOG_ERR, "malloc: %m"); exit(EX_OSERR); } - conn->co_proc = malloc(sep->se_maxperip * sizeof(*conn->co_proc)); + conn->co_proc = reallocarray(NULL, sep->se_maxperip, + sizeof(*conn->co_proc)); if (conn->co_proc == NULL) { - syslog(LOG_ERR, "malloc: %m"); + syslog(LOG_ERR, "reallocarray: %m"); exit(EX_OSERR); } memcpy(&conn->co_addr, (struct sockaddr *)&ss, sslen); @@ -2479,10 +2478,10 @@ resize_conn(struct servtab *sep, int maxpip) LIST_FOREACH(conn, &sep->se_conn[i], co_link) { for (j = maxpip; j < conn->co_numchild; ++j) free_proc(conn->co_proc[j]); - conn->co_proc = realloc(conn->co_proc, - maxpip * sizeof(*conn->co_proc)); + conn->co_proc = reallocarray(conn->co_proc, maxpip, + sizeof(*conn->co_proc)); if (conn->co_proc == NULL) { - syslog(LOG_ERR, "realloc: %m"); + syslog(LOG_ERR, "reallocarray: %m"); exit(EX_OSERR); } if (conn->co_numchild > maxpip) @@ -2494,11 +2493,15 @@ resize_conn(struct servtab *sep, int maxpip) static void free_connlist(struct servtab *sep) { - struct conninfo *conn; + struct conninfo *conn, *conn_temp; int i, j; for (i = 0; i < PERIPSIZE; ++i) { - while ((conn = LIST_FIRST(&sep->se_conn[i])) != NULL) { + LIST_FOREACH_SAFE(conn, &sep->se_conn[i], co_link, conn_temp) { + if (conn == NULL) { + LIST_REMOVE(conn, co_link); + continue; + } for (j = 0; j < conn->co_numchild; ++j) free_proc(conn->co_proc[j]); conn->co_numchild = 0; @@ -2554,7 +2557,8 @@ free_proc(struct procinfo *proc) static int hashval(char *p, int len) { - int i, hv = 0xABC3D20F; + unsigned int hv = 0xABC3D20F; + int i; for (i = 0; i < len; ++i, ++p) hv = (hv << 5) ^ (hv >> 23) ^ *p; Modified: stable/12/usr.sbin/inetd/inetd.h ============================================================================== --- stable/12/usr.sbin/inetd/inetd.h Sun Jan 5 21:32:41 2020 (r356387) +++ stable/12/usr.sbin/inetd/inetd.h Sun Jan 5 21:35:02 2020 (r356388) @@ -66,6 +66,11 @@ struct conninfo { #define PERIPSIZE 256 +struct stabchild { + LIST_ENTRY(stabchild) sc_link; + pid_t sc_pid; +}; + struct servtab { char *se_service; /* name of service */ int se_socktype; /* type of socket to use */ @@ -74,7 +79,6 @@ struct servtab { int se_maxchild; /* max number of children */ int se_maxcpm; /* max connects per IP per minute */ int se_numchild; /* current number of children */ - pid_t *se_pids; /* array of child pids */ char *se_user; /* user name to run as */ char *se_group; /* group name to run as */ #ifdef LOGIN_CAP @@ -119,10 +123,16 @@ struct servtab { } se_flags; int se_maxperip; /* max number of children per src */ LIST_HEAD(, conninfo) se_conn[PERIPSIZE]; + LIST_HEAD(, stabchild) se_children; }; #define se_nomapped se_flags.se_nomapped #define se_reset se_flags.se_reset + +#define SERVTAB_AT_LIMIT(sep) \ + ((sep)->se_maxchild > 0 && (sep)->se_numchild == (sep)->se_maxchild) +#define SERVTAB_EXCEEDS_LIMIT(sep) \ + ((sep)->se_maxchild > 0 && (sep)->se_numchild >= (sep)->se_maxchild) int check_loop(const struct sockaddr *, const struct servtab *sep); void inetd_setproctitle(const char *, int); From owner-svn-src-stable@freebsd.org Mon Jan 6 01:12:16 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E5A11EC945; Mon, 6 Jan 2020 01:12:16 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rctS2pqtz40xm; Mon, 6 Jan 2020 01:12:16 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4354C6918; Mon, 6 Jan 2020 01:12:16 +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 0061CGmP010443; Mon, 6 Jan 2020 01:12:16 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0061CGnb010442; Mon, 6 Jan 2020 01:12:16 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001060112.0061CGnb010442@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 6 Jan 2020 01:12:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356390 - stable/12/sys/cam X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/cam X-SVN-Commit-Revision: 356390 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 01:12:16 -0000 Author: mav Date: Mon Jan 6 01:12:15 2020 New Revision: 356390 URL: https://svnweb.freebsd.org/changeset/base/356390 Log: MFC r356042: Make pass(4) handle misaligned buffers of MAXPHYS size. Since we are already using malloc()+copyin()/copyout() for smaller data blocks, and since new asynchronous API does it always, I see no reason to keep this ugly artificial size/alignment limitation in old API. Tape applications suffer enough from the MAXPHYS limitations by itself, and additional alignment requirement, often halving effectively usable block size, does not help. It would be good to use unmapped I/O here instead, but it require some HBA drivers polishing first to support non-BIO unmapped buffers. Modified: stable/12/sys/cam/cam_periph.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cam/cam_periph.c ============================================================================== --- stable/12/sys/cam/cam_periph.c Sun Jan 5 22:54:25 2020 (r356389) +++ stable/12/sys/cam/cam_periph.c Mon Jan 6 01:12:15 2020 (r356390) @@ -786,6 +786,7 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma u_int8_t **data_ptrs[CAM_PERIPH_MAXMAPS]; u_int32_t lengths[CAM_PERIPH_MAXMAPS]; u_int32_t dirs[CAM_PERIPH_MAXMAPS]; + bool misaligned[CAM_PERIPH_MAXMAPS]; bzero(mapinfo, sizeof(*mapinfo)); if (maxmap == 0) @@ -897,6 +898,12 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * have to unmap any previously mapped buffers. */ for (i = 0; i < numbufs; i++) { + if (lengths[i] > maxmap) { + printf("cam_periph_mapmem: attempt to map %lu bytes, " + "which is greater than %lu\n", + (long)(lengths[i]), (u_long)maxmap); + return (E2BIG); + } /* * The userland data pointer passed in may not be page @@ -906,15 +913,8 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * whatever extra space is necessary to make it to the page * boundary. */ - if ((lengths[i] + - (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK)) > maxmap){ - printf("cam_periph_mapmem: attempt to map %lu bytes, " - "which is greater than %lu\n", - (long)(lengths[i] + - (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK)), - (u_long)maxmap); - return(E2BIG); - } + misaligned[i] = (lengths[i] + + (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK) > MAXPHYS); } /* @@ -938,7 +938,7 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * small allocations malloc is backed by UMA, and so much * cheaper on SMP systems. */ - if (lengths[i] <= periph_mapmem_thresh && + if ((lengths[i] <= periph_mapmem_thresh || misaligned[i]) && ccb->ccb_h.func_code != XPT_MMC_IO) { *data_ptrs[i] = malloc(lengths[i], M_CAMPERIPH, M_WAITOK); From owner-svn-src-stable@freebsd.org Mon Jan 6 01:15:36 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5F08F1ECA53; Mon, 6 Jan 2020 01:15:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rcyJ1q0Zz415v; Mon, 6 Jan 2020 01:15:36 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 20B856932; Mon, 6 Jan 2020 01:15:36 +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 0061FaW0011777; Mon, 6 Jan 2020 01:15:36 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0061Fasi011776; Mon, 6 Jan 2020 01:15:36 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001060115.0061Fasi011776@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 6 Jan 2020 01:15:35 +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: r356391 - stable/11/sys/cam X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/cam X-SVN-Commit-Revision: 356391 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 01:15:36 -0000 Author: mav Date: Mon Jan 6 01:15:35 2020 New Revision: 356391 URL: https://svnweb.freebsd.org/changeset/base/356391 Log: MFC r356042: Make pass(4) handle misaligned buffers of MAXPHYS size. Since we are already using malloc()+copyin()/copyout() for smaller data blocks, and since new asynchronous API does it always, I see no reason to keep this ugly artificial size/alignment limitation in old API. Tape applications suffer enough from the MAXPHYS limitations by itself, and additional alignment requirement, often halving effectively usable block size, does not help. It would be good to use unmapped I/O here instead, but it require some HBA drivers polishing first to support non-BIO unmapped buffers. Modified: stable/11/sys/cam/cam_periph.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/cam/cam_periph.c ============================================================================== --- stable/11/sys/cam/cam_periph.c Mon Jan 6 01:12:15 2020 (r356390) +++ stable/11/sys/cam/cam_periph.c Mon Jan 6 01:15:35 2020 (r356391) @@ -770,6 +770,7 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma u_int8_t **data_ptrs[CAM_PERIPH_MAXMAPS]; u_int32_t lengths[CAM_PERIPH_MAXMAPS]; u_int32_t dirs[CAM_PERIPH_MAXMAPS]; + bool misaligned[CAM_PERIPH_MAXMAPS]; bzero(mapinfo, sizeof(*mapinfo)); if (maxmap == 0) @@ -869,6 +870,12 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * have to unmap any previously mapped buffers. */ for (i = 0; i < numbufs; i++) { + if (lengths[i] > maxmap) { + printf("cam_periph_mapmem: attempt to map %lu bytes, " + "which is greater than %lu\n", + (long)(lengths[i]), (u_long)maxmap); + return (E2BIG); + } /* * The userland data pointer passed in may not be page @@ -878,15 +885,8 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * whatever extra space is necessary to make it to the page * boundary. */ - if ((lengths[i] + - (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK)) > maxmap){ - printf("cam_periph_mapmem: attempt to map %lu bytes, " - "which is greater than %lu\n", - (long)(lengths[i] + - (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK)), - (u_long)maxmap); - return(E2BIG); - } + misaligned[i] = (lengths[i] + + (((vm_offset_t)(*data_ptrs[i])) & PAGE_MASK) > MAXPHYS); } /* @@ -910,7 +910,7 @@ cam_periph_mapmem(union ccb *ccb, struct cam_periph_ma * small allocations malloc is backed by UMA, and so much * cheaper on SMP systems. */ - if (lengths[i] <= periph_mapmem_thresh) { + if (lengths[i] <= periph_mapmem_thresh || misaligned[i]) { *data_ptrs[i] = malloc(lengths[i], M_CAMPERIPH, M_WAITOK); if (dirs[i] != CAM_DIR_IN) { From owner-svn-src-stable@freebsd.org Mon Jan 6 09:07:58 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BAC791FDDB9; Mon, 6 Jan 2020 09:07:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqRL4WVTz4QMt; Mon, 6 Jan 2020 09:07:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 96339C032; Mon, 6 Jan 2020 09:07:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00697wFU095120; Mon, 6 Jan 2020 09:07:58 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00697vpF095114; Mon, 6 Jan 2020 09:07:57 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060907.00697vpF095114@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:07:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356394 - in stable/12/sys: dev/usb sys X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys: dev/usb sys X-SVN-Commit-Revision: 356394 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:07:58 -0000 Author: hselasky Date: Mon Jan 6 09:07:57 2020 New Revision: 356394 URL: https://svnweb.freebsd.org/changeset/base/356394 Log: MFC r356135: Make USB statistics per device instead of per bus. Bump the FreeBSD version due to structure change to force recompilation of external USB modules. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/usb/usb_bus.h stable/12/sys/dev/usb/usb_device.h stable/12/sys/dev/usb/usb_generic.c stable/12/sys/dev/usb/usb_transfer.c stable/12/sys/sys/param.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/usb/usb_bus.h ============================================================================== --- stable/12/sys/dev/usb/usb_bus.h Mon Jan 6 02:51:19 2020 (r356393) +++ stable/12/sys/dev/usb/usb_bus.h Mon Jan 6 09:07:57 2020 (r356394) @@ -2,7 +2,7 @@ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -42,19 +42,10 @@ struct usb_bus_msg { }; /* - * The following structure defines the USB statistics structure. - */ -struct usb_bus_stat { - uint32_t uds_requests[4]; -}; - -/* * The following structure defines an USB BUS. There is one USB BUS * for every Host or Device controller. */ struct usb_bus { - struct usb_bus_stat stats_err; - struct usb_bus_stat stats_ok; #if USB_HAVE_ROOT_MOUNT_HOLD struct root_hold_token *bus_roothold; #endif Modified: stable/12/sys/dev/usb/usb_device.h ============================================================================== --- stable/12/sys/dev/usb/usb_device.h Mon Jan 6 02:51:19 2020 (r356393) +++ stable/12/sys/dev/usb/usb_device.h Mon Jan 6 09:07:57 2020 (r356394) @@ -2,7 +2,7 @@ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -177,10 +177,21 @@ union usb_device_scratch { }; /* + * Helper structure to keep track of USB device statistics. + */ +struct usb_device_statistics { + uint32_t uds_requests[4]; +}; + +/* * The following structure defines an USB device. There exists one of * these structures for every USB device. */ struct usb_device { + /* statistics */ + struct usb_device_statistics stats_err; + struct usb_device_statistics stats_ok; + /* generic clear stall message */ struct usb_udev_msg cs_msg[2]; struct sx enum_sx; Modified: stable/12/sys/dev/usb/usb_generic.c ============================================================================== --- stable/12/sys/dev/usb/usb_generic.c Mon Jan 6 02:51:19 2020 (r356393) +++ stable/12/sys/dev/usb/usb_generic.c Mon Jan 6 09:07:57 2020 (r356394) @@ -2223,10 +2223,9 @@ ugen_ioctl_post(struct usb_fifo *f, u_long cmd, void * for (n = 0; n != 4; n++) { u.stat->uds_requests_fail[n] = - f->udev->bus->stats_err.uds_requests[n]; - + f->udev->stats_err.uds_requests[n]; u.stat->uds_requests_ok[n] = - f->udev->bus->stats_ok.uds_requests[n]; + f->udev->stats_ok.uds_requests[n]; } break; Modified: stable/12/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/12/sys/dev/usb/usb_transfer.c Mon Jan 6 02:51:19 2020 (r356393) +++ stable/12/sys/dev/usb/usb_transfer.c Mon Jan 6 09:07:57 2020 (r356394) @@ -2594,10 +2594,10 @@ usbd_transfer_done(struct usb_xfer *xfer, usb_error_t #endif /* keep some statistics */ if (xfer->error) { - info->bus->stats_err.uds_requests + info->udev->stats_err.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } else { - info->bus->stats_ok.uds_requests + info->udev->stats_ok.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } Modified: stable/12/sys/sys/param.h ============================================================================== --- stable/12/sys/sys/param.h Mon Jan 6 02:51:19 2020 (r356393) +++ stable/12/sys/sys/param.h Mon Jan 6 09:07:57 2020 (r356394) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1201507 /* Master, propagated to newvers */ +#define __FreeBSD_version 1201508 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-stable@freebsd.org Mon Jan 6 09:10:15 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 433AF1FDED3; Mon, 6 Jan 2020 09:10:15 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqTz14nvz4QbK; Mon, 6 Jan 2020 09:10:15 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2032CC037; Mon, 6 Jan 2020 09:10:15 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069AEvG095490; Mon, 6 Jan 2020 09:10:14 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069AERf095485; Mon, 6 Jan 2020 09:10:14 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060910.0069AERf095485@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:10:14 +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: r356395 - in stable/11/sys: dev/usb sys X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys: dev/usb sys X-SVN-Commit-Revision: 356395 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:10:15 -0000 Author: hselasky Date: Mon Jan 6 09:10:13 2020 New Revision: 356395 URL: https://svnweb.freebsd.org/changeset/base/356395 Log: MFC r356135: Make USB statistics per device instead of per bus. Bump the FreeBSD version due to structure change to force recompilation of external USB modules. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/usb_bus.h stable/11/sys/dev/usb/usb_device.h stable/11/sys/dev/usb/usb_generic.c stable/11/sys/dev/usb/usb_transfer.c stable/11/sys/sys/param.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/usb_bus.h ============================================================================== --- stable/11/sys/dev/usb/usb_bus.h Mon Jan 6 09:07:57 2020 (r356394) +++ stable/11/sys/dev/usb/usb_bus.h Mon Jan 6 09:10:13 2020 (r356395) @@ -1,6 +1,6 @@ /* $FreeBSD$ */ /*- - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -40,19 +40,10 @@ struct usb_bus_msg { }; /* - * The following structure defines the USB statistics structure. - */ -struct usb_bus_stat { - uint32_t uds_requests[4]; -}; - -/* * The following structure defines an USB BUS. There is one USB BUS * for every Host or Device controller. */ struct usb_bus { - struct usb_bus_stat stats_err; - struct usb_bus_stat stats_ok; #if USB_HAVE_ROOT_MOUNT_HOLD struct root_hold_token *bus_roothold; #endif Modified: stable/11/sys/dev/usb/usb_device.h ============================================================================== --- stable/11/sys/dev/usb/usb_device.h Mon Jan 6 09:07:57 2020 (r356394) +++ stable/11/sys/dev/usb/usb_device.h Mon Jan 6 09:10:13 2020 (r356395) @@ -1,6 +1,6 @@ /* $FreeBSD$ */ /*- - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -175,10 +175,21 @@ union usb_device_scratch { }; /* + * Helper structure to keep track of USB device statistics. + */ +struct usb_device_statistics { + uint32_t uds_requests[4]; +}; + +/* * The following structure defines an USB device. There exists one of * these structures for every USB device. */ struct usb_device { + /* statistics */ + struct usb_device_statistics stats_err; + struct usb_device_statistics stats_ok; + /* generic clear stall message */ struct usb_udev_msg cs_msg[2]; struct sx enum_sx; Modified: stable/11/sys/dev/usb/usb_generic.c ============================================================================== --- stable/11/sys/dev/usb/usb_generic.c Mon Jan 6 09:07:57 2020 (r356394) +++ stable/11/sys/dev/usb/usb_generic.c Mon Jan 6 09:10:13 2020 (r356395) @@ -2221,10 +2221,9 @@ ugen_ioctl_post(struct usb_fifo *f, u_long cmd, void * for (n = 0; n != 4; n++) { u.stat->uds_requests_fail[n] = - f->udev->bus->stats_err.uds_requests[n]; - + f->udev->stats_err.uds_requests[n]; u.stat->uds_requests_ok[n] = - f->udev->bus->stats_ok.uds_requests[n]; + f->udev->stats_ok.uds_requests[n]; } break; Modified: stable/11/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/11/sys/dev/usb/usb_transfer.c Mon Jan 6 09:07:57 2020 (r356394) +++ stable/11/sys/dev/usb/usb_transfer.c Mon Jan 6 09:10:13 2020 (r356395) @@ -2593,10 +2593,10 @@ usbd_transfer_done(struct usb_xfer *xfer, usb_error_t #endif /* keep some statistics */ if (xfer->error) { - info->bus->stats_err.uds_requests + info->udev->stats_err.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } else { - info->bus->stats_ok.uds_requests + info->udev->stats_ok.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } Modified: stable/11/sys/sys/param.h ============================================================================== --- stable/11/sys/sys/param.h Mon Jan 6 09:07:57 2020 (r356394) +++ stable/11/sys/sys/param.h Mon Jan 6 09:10:13 2020 (r356395) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1103505 /* Master, propagated to newvers */ +#define __FreeBSD_version 1103506 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-stable@freebsd.org Mon Jan 6 09:16:42 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D32701FE0F6; Mon, 6 Jan 2020 09:16:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqdQ5Gfkz4R3n; Mon, 6 Jan 2020 09:16:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AFEC0C227; Mon, 6 Jan 2020 09:16:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069GgqK001128; Mon, 6 Jan 2020 09:16:42 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069Gf04001124; Mon, 6 Jan 2020 09:16:41 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060916.0069Gf04001124@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:16: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: r356396 - in stable/10/sys: dev/usb sys X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/10/sys: dev/usb sys X-SVN-Commit-Revision: 356396 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:16:42 -0000 Author: hselasky Date: Mon Jan 6 09:16:41 2020 New Revision: 356396 URL: https://svnweb.freebsd.org/changeset/base/356396 Log: MFC r356135: Make USB statistics per device instead of per bus. Bump the FreeBSD version due to structure change to force recompilation of external USB modules. Sponsored by: Mellanox Technologies Modified: stable/10/sys/dev/usb/usb_bus.h stable/10/sys/dev/usb/usb_device.h stable/10/sys/dev/usb/usb_generic.c stable/10/sys/dev/usb/usb_transfer.c stable/10/sys/sys/param.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/usb/usb_bus.h ============================================================================== --- stable/10/sys/dev/usb/usb_bus.h Mon Jan 6 09:10:13 2020 (r356395) +++ stable/10/sys/dev/usb/usb_bus.h Mon Jan 6 09:16:41 2020 (r356396) @@ -1,6 +1,6 @@ /* $FreeBSD$ */ /*- - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -40,19 +40,10 @@ struct usb_bus_msg { }; /* - * The following structure defines the USB statistics structure. - */ -struct usb_bus_stat { - uint32_t uds_requests[4]; -}; - -/* * The following structure defines an USB BUS. There is one USB BUS * for every Host or Device controller. */ struct usb_bus { - struct usb_bus_stat stats_err; - struct usb_bus_stat stats_ok; #if USB_HAVE_ROOT_MOUNT_HOLD struct root_hold_token *bus_roothold; #endif Modified: stable/10/sys/dev/usb/usb_device.h ============================================================================== --- stable/10/sys/dev/usb/usb_device.h Mon Jan 6 09:10:13 2020 (r356395) +++ stable/10/sys/dev/usb/usb_device.h Mon Jan 6 09:16:41 2020 (r356396) @@ -1,6 +1,6 @@ /* $FreeBSD$ */ /*- - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. + * Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -175,10 +175,21 @@ union usb_device_scratch { }; /* + * Helper structure to keep track of USB device statistics. + */ +struct usb_device_statistics { + uint32_t uds_requests[4]; +}; + +/* * The following structure defines an USB device. There exists one of * these structures for every USB device. */ struct usb_device { + /* statistics */ + struct usb_device_statistics stats_err; + struct usb_device_statistics stats_ok; + /* generic clear stall message */ struct usb_udev_msg cs_msg[2]; struct sx enum_sx; Modified: stable/10/sys/dev/usb/usb_generic.c ============================================================================== --- stable/10/sys/dev/usb/usb_generic.c Mon Jan 6 09:10:13 2020 (r356395) +++ stable/10/sys/dev/usb/usb_generic.c Mon Jan 6 09:16:41 2020 (r356396) @@ -2222,10 +2222,9 @@ ugen_ioctl_post(struct usb_fifo *f, u_long cmd, void * for (n = 0; n != 4; n++) { u.stat->uds_requests_fail[n] = - f->udev->bus->stats_err.uds_requests[n]; - + f->udev->stats_err.uds_requests[n]; u.stat->uds_requests_ok[n] = - f->udev->bus->stats_ok.uds_requests[n]; + f->udev->stats_ok.uds_requests[n]; } break; Modified: stable/10/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/10/sys/dev/usb/usb_transfer.c Mon Jan 6 09:10:13 2020 (r356395) +++ stable/10/sys/dev/usb/usb_transfer.c Mon Jan 6 09:16:41 2020 (r356396) @@ -2593,10 +2593,10 @@ usbd_transfer_done(struct usb_xfer *xfer, usb_error_t #endif /* keep some statistics */ if (xfer->error) { - info->bus->stats_err.uds_requests + info->udev->stats_err.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } else { - info->bus->stats_ok.uds_requests + info->udev->stats_ok.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } Modified: stable/10/sys/sys/param.h ============================================================================== --- stable/10/sys/sys/param.h Mon Jan 6 09:10:13 2020 (r356395) +++ stable/10/sys/sys/param.h Mon Jan 6 09:16:41 2020 (r356396) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1004501 /* Master, propagated to newvers */ +#define __FreeBSD_version 1004502 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-stable@freebsd.org Mon Jan 6 09:20:06 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9B58A1FE1F6; Mon, 6 Jan 2020 09:20:06 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqjL3fsQz4RKS; Mon, 6 Jan 2020 09:20:06 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6038EC240; Mon, 6 Jan 2020 09:20:06 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069K6KB001382; Mon, 6 Jan 2020 09:20:06 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069K5PH001376; Mon, 6 Jan 2020 09:20:05 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060920.0069K5PH001376@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:20:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356397 - stable/12/lib/libusb X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/lib/libusb X-SVN-Commit-Revision: 356397 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:20:06 -0000 Author: hselasky Date: Mon Jan 6 09:20:04 2020 New Revision: 356397 URL: https://svnweb.freebsd.org/changeset/base/356397 Log: MFC r356136: Implement new libusb v2.0 API function, libusb20_dev_get_stats(). This function is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/12/lib/libusb/Makefile stable/12/lib/libusb/libusb20.3 stable/12/lib/libusb/libusb20.c stable/12/lib/libusb/libusb20.h stable/12/lib/libusb/libusb20_int.h stable/12/lib/libusb/libusb20_ugen20.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libusb/Makefile ============================================================================== --- stable/12/lib/libusb/Makefile Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/Makefile Mon Jan 6 09:20:04 2020 (r356397) @@ -220,6 +220,7 @@ MLINKS += libusb20.3 libusb20_dev_get_backend_name.3 MLINKS += libusb20.3 libusb20_dev_get_info.3 MLINKS += libusb20.3 libusb20_dev_get_iface_desc.3 MLINKS += libusb20.3 libusb20_dev_get_desc.3 +MLINKS += libusb20.3 libusb20_dev_get_stats.3 MLINKS += libusb20.3 libusb20_dev_close.3 MLINKS += libusb20.3 libusb20_dev_detach_kernel_driver.3 MLINKS += libusb20.3 libusb20_dev_set_config_index.3 Modified: stable/12/lib/libusb/libusb20.3 ============================================================================== --- stable/12/lib/libusb/libusb20.3 Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/libusb20.3 Mon Jan 6 09:20:04 2020 (r356397) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2008 Hans Petter Selasky +.\" Copyright (c) 2008-2019 Hans Petter Selasky .\" .\" All rights reserved. .\" @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 3, 2013 +.Dd December 27, 2019 .Dt LIBUSB20 3 .Os .Sh NAME @@ -122,6 +122,8 @@ USB access library (libusb -lusb) .Ft const char * .Fn libusb20_dev_get_desc "struct libusb20_device *pdev" .Ft int +.Fn libusb20_dev_get_stats "struct libusb20_device *pdev" "struct libusb20_device_stats *pstats" +.Ft int .Fn libusb20_dev_close "struct libusb20_device *pdev" .Ft int .Fn libusb20_dev_detach_kernel_driver "struct libusb20_device *pdev" "uint8_t iface_index" @@ -594,6 +596,14 @@ This function returns zero on success else a LIBUSB20_ .Fn libusb20_dev_get_desc returns a zero terminated string describing the given USB device. The format of the string is: "drivername: " +. +.Pp +. +.Fn libusb20_dev_get_stats +retrieves the device statistics into the structure pointed to by the +.Fa pstats +argument. +This function returns zero on success else a LIBUSB20_ERROR value is returned. . .Pp . Modified: stable/12/lib/libusb/libusb20.c ============================================================================== --- stable/12/lib/libusb/libusb20.c Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/libusb20.c Mon Jan 6 09:20:04 2020 (r356397) @@ -78,6 +78,7 @@ dummy_callback(struct libusb20_transfer *xfer) #define dummy_set_power_mode (void *)dummy_int #define dummy_get_power_mode (void *)dummy_int #define dummy_get_power_usage (void *)dummy_int +#define dummy_get_stats (void *)dummy_int #define dummy_kernel_driver_active (void *)dummy_int #define dummy_detach_kernel_driver (void *)dummy_int #define dummy_do_request_sync (void *)dummy_int @@ -1047,6 +1048,31 @@ uint8_t libusb20_dev_get_speed(struct libusb20_device *pdev) { return (pdev->usb_speed); +} + +int +libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + uint8_t do_close; + int error; + + if (!pdev->is_opened) { + error = libusb20_dev_open(pdev, 0); + if (error == 0) { + do_close = 1; + } else { + do_close = 0; + } + } else { + do_close = 0; + } + + error = pdev->methods->get_stats(pdev, pstats); + + if (do_close) + (void) libusb20_dev_close(pdev); + + return (error); } /* if this function returns an error, the device is gone */ Modified: stable/12/lib/libusb/libusb20.h ============================================================================== --- stable/12/lib/libusb/libusb20.h Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/libusb20.h Mon Jan 6 09:20:04 2020 (r356397) @@ -195,6 +195,12 @@ struct libusb20_quirk { char quirkname[64 - 12]; }; +struct libusb20_device_stats { + uint64_t xfer_ok[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_fail[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_reserved[24]; /* reserved */ +}; + #define LIBUSB20_MAX_FRAME_PRE_SCALE (1U << 31) /* USB transfer operations */ @@ -243,6 +249,7 @@ int libusb20_dev_detach_kernel_driver(struct libusb20_ int libusb20_dev_set_config_index(struct libusb20_device *pdev, uint8_t configIndex); int libusb20_dev_get_debug(struct libusb20_device *pdev); int libusb20_dev_get_fd(struct libusb20_device *pdev); +int libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstat); int libusb20_dev_kernel_driver_active(struct libusb20_device *pdev, uint8_t iface_index); int libusb20_dev_open(struct libusb20_device *pdev, uint16_t transfer_max); int libusb20_dev_process(struct libusb20_device *pdev); Modified: stable/12/lib/libusb/libusb20_int.h ============================================================================== --- stable/12/lib/libusb/libusb20_int.h Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/libusb20_int.h Mon Jan 6 09:20:04 2020 (r356397) @@ -108,10 +108,12 @@ typedef int (libusb20_reset_device_t)(struct libusb20_ typedef int (libusb20_set_power_mode_t)(struct libusb20_device *pdev, uint8_t power_mode); typedef int (libusb20_get_power_mode_t)(struct libusb20_device *pdev, uint8_t *power_mode); typedef int (libusb20_get_power_usage_t)(struct libusb20_device *pdev, uint16_t *power_usage); +typedef int (libusb20_get_stats_t)(struct libusb20_device *pdev, struct libusb20_device_stats *pstats); typedef int (libusb20_set_alt_index_t)(struct libusb20_device *pdev, uint8_t iface_index, uint8_t alt_index); typedef int (libusb20_set_config_index_t)(struct libusb20_device *pdev, uint8_t index); typedef int (libusb20_check_connected_t)(struct libusb20_device *pdev); + /* USB transfer specific */ typedef int (libusb20_tr_open_t)(struct libusb20_transfer *xfer, uint32_t MaxBufSize, uint32_t MaxFrameCount, uint8_t ep_no, uint16_t stream_id, uint8_t pre_scale); typedef int (libusb20_tr_close_t)(struct libusb20_transfer *xfer); @@ -131,6 +133,7 @@ typedef void (libusb20_tr_cancel_async_t)(struct libus m(n, set_power_mode) \ m(n, get_power_mode) \ m(n, get_power_usage) \ + m(n, get_stats) \ m(n, set_alt_index) \ m(n, set_config_index) \ m(n, tr_cancel_async) \ Modified: stable/12/lib/libusb/libusb20_ugen20.c ============================================================================== --- stable/12/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:16:41 2020 (r356396) +++ stable/12/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:20:04 2020 (r356397) @@ -80,6 +80,7 @@ static libusb20_check_connected_t ugen20_check_connect static libusb20_set_power_mode_t ugen20_set_power_mode; static libusb20_get_power_mode_t ugen20_get_power_mode; static libusb20_get_power_usage_t ugen20_get_power_usage; +static libusb20_get_stats_t ugen20_get_stats; static libusb20_kernel_driver_active_t ugen20_kernel_driver_active; static libusb20_detach_kernel_driver_t ugen20_detach_kernel_driver; static libusb20_do_request_sync_t ugen20_do_request_sync; @@ -666,6 +667,29 @@ ugen20_get_power_usage(struct libusb20_device *pdev, u return (LIBUSB20_ERROR_OTHER); } *power_usage = temp; + return (0); /* success */ +} + +static int +ugen20_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + struct usb_device_stats st; + + if (ioctl(pdev->file_ctrl, IOUSB(USB_DEVICESTATS), &st)) + return (LIBUSB20_ERROR_OTHER); + + memset(pstats, 0, sizeof(*pstats)); + + pstats->xfer_ok[0] = st.uds_requests_ok[0]; + pstats->xfer_ok[1] = st.uds_requests_ok[1]; + pstats->xfer_ok[2] = st.uds_requests_ok[2]; + pstats->xfer_ok[3] = st.uds_requests_ok[3]; + + pstats->xfer_fail[0] = st.uds_requests_fail[0]; + pstats->xfer_fail[1] = st.uds_requests_fail[1]; + pstats->xfer_fail[2] = st.uds_requests_fail[2]; + pstats->xfer_fail[3] = st.uds_requests_fail[3]; + return (0); /* success */ } From owner-svn-src-stable@freebsd.org Mon Jan 6 09:21:17 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8B6A41FE3A9; Mon, 6 Jan 2020 09:21:17 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqkj3BjXz4RTx; Mon, 6 Jan 2020 09:21:17 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 68E03C398; Mon, 6 Jan 2020 09:21:17 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069LHp3003162; Mon, 6 Jan 2020 09:21:17 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069LGOj003154; Mon, 6 Jan 2020 09:21:16 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060921.0069LGOj003154@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:21:16 +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: r356398 - stable/11/lib/libusb X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/lib/libusb X-SVN-Commit-Revision: 356398 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:21:17 -0000 Author: hselasky Date: Mon Jan 6 09:21:15 2020 New Revision: 356398 URL: https://svnweb.freebsd.org/changeset/base/356398 Log: MFC r356136: Implement new libusb v2.0 API function, libusb20_dev_get_stats(). This function is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/11/lib/libusb/Makefile stable/11/lib/libusb/libusb20.3 stable/11/lib/libusb/libusb20.c stable/11/lib/libusb/libusb20.h stable/11/lib/libusb/libusb20_int.h stable/11/lib/libusb/libusb20_ugen20.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libusb/Makefile ============================================================================== --- stable/11/lib/libusb/Makefile Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/Makefile Mon Jan 6 09:21:15 2020 (r356398) @@ -220,6 +220,7 @@ MLINKS += libusb20.3 libusb20_dev_get_backend_name.3 MLINKS += libusb20.3 libusb20_dev_get_info.3 MLINKS += libusb20.3 libusb20_dev_get_iface_desc.3 MLINKS += libusb20.3 libusb20_dev_get_desc.3 +MLINKS += libusb20.3 libusb20_dev_get_stats.3 MLINKS += libusb20.3 libusb20_dev_close.3 MLINKS += libusb20.3 libusb20_dev_detach_kernel_driver.3 MLINKS += libusb20.3 libusb20_dev_set_config_index.3 Modified: stable/11/lib/libusb/libusb20.3 ============================================================================== --- stable/11/lib/libusb/libusb20.3 Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/libusb20.3 Mon Jan 6 09:21:15 2020 (r356398) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2008 Hans Petter Selasky +.\" Copyright (c) 2008-2019 Hans Petter Selasky .\" .\" All rights reserved. .\" @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 3, 2013 +.Dd December 27, 2019 .Dt LIBUSB20 3 .Os .Sh NAME @@ -122,6 +122,8 @@ USB access library (libusb -lusb) .Ft const char * .Fn libusb20_dev_get_desc "struct libusb20_device *pdev" .Ft int +.Fn libusb20_dev_get_stats "struct libusb20_device *pdev" "struct libusb20_device_stats *pstats" +.Ft int .Fn libusb20_dev_close "struct libusb20_device *pdev" .Ft int .Fn libusb20_dev_detach_kernel_driver "struct libusb20_device *pdev" "uint8_t iface_index" @@ -594,6 +596,14 @@ This function returns zero on success else a LIBUSB20_ .Fn libusb20_dev_get_desc returns a zero terminated string describing the given USB device. The format of the string is: "drivername: " +. +.Pp +. +.Fn libusb20_dev_get_stats +retrieves the device statistics into the structure pointed to by the +.Fa pstats +argument. +This function returns zero on success else a LIBUSB20_ERROR value is returned. . .Pp . Modified: stable/11/lib/libusb/libusb20.c ============================================================================== --- stable/11/lib/libusb/libusb20.c Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/libusb20.c Mon Jan 6 09:21:15 2020 (r356398) @@ -76,6 +76,7 @@ dummy_callback(struct libusb20_transfer *xfer) #define dummy_set_power_mode (void *)dummy_int #define dummy_get_power_mode (void *)dummy_int #define dummy_get_power_usage (void *)dummy_int +#define dummy_get_stats (void *)dummy_int #define dummy_kernel_driver_active (void *)dummy_int #define dummy_detach_kernel_driver (void *)dummy_int #define dummy_do_request_sync (void *)dummy_int @@ -1045,6 +1046,31 @@ uint8_t libusb20_dev_get_speed(struct libusb20_device *pdev) { return (pdev->usb_speed); +} + +int +libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + uint8_t do_close; + int error; + + if (!pdev->is_opened) { + error = libusb20_dev_open(pdev, 0); + if (error == 0) { + do_close = 1; + } else { + do_close = 0; + } + } else { + do_close = 0; + } + + error = pdev->methods->get_stats(pdev, pstats); + + if (do_close) + (void) libusb20_dev_close(pdev); + + return (error); } /* if this function returns an error, the device is gone */ Modified: stable/11/lib/libusb/libusb20.h ============================================================================== --- stable/11/lib/libusb/libusb20.h Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/libusb20.h Mon Jan 6 09:21:15 2020 (r356398) @@ -193,6 +193,12 @@ struct libusb20_quirk { char quirkname[64 - 12]; }; +struct libusb20_device_stats { + uint64_t xfer_ok[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_fail[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_reserved[24]; /* reserved */ +}; + #define LIBUSB20_MAX_FRAME_PRE_SCALE (1U << 31) /* USB transfer operations */ @@ -241,6 +247,7 @@ int libusb20_dev_detach_kernel_driver(struct libusb20_ int libusb20_dev_set_config_index(struct libusb20_device *pdev, uint8_t configIndex); int libusb20_dev_get_debug(struct libusb20_device *pdev); int libusb20_dev_get_fd(struct libusb20_device *pdev); +int libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstat); int libusb20_dev_kernel_driver_active(struct libusb20_device *pdev, uint8_t iface_index); int libusb20_dev_open(struct libusb20_device *pdev, uint16_t transfer_max); int libusb20_dev_process(struct libusb20_device *pdev); Modified: stable/11/lib/libusb/libusb20_int.h ============================================================================== --- stable/11/lib/libusb/libusb20_int.h Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/libusb20_int.h Mon Jan 6 09:21:15 2020 (r356398) @@ -106,10 +106,12 @@ typedef int (libusb20_reset_device_t)(struct libusb20_ typedef int (libusb20_set_power_mode_t)(struct libusb20_device *pdev, uint8_t power_mode); typedef int (libusb20_get_power_mode_t)(struct libusb20_device *pdev, uint8_t *power_mode); typedef int (libusb20_get_power_usage_t)(struct libusb20_device *pdev, uint16_t *power_usage); +typedef int (libusb20_get_stats_t)(struct libusb20_device *pdev, struct libusb20_device_stats *pstats); typedef int (libusb20_set_alt_index_t)(struct libusb20_device *pdev, uint8_t iface_index, uint8_t alt_index); typedef int (libusb20_set_config_index_t)(struct libusb20_device *pdev, uint8_t index); typedef int (libusb20_check_connected_t)(struct libusb20_device *pdev); + /* USB transfer specific */ typedef int (libusb20_tr_open_t)(struct libusb20_transfer *xfer, uint32_t MaxBufSize, uint32_t MaxFrameCount, uint8_t ep_no, uint16_t stream_id, uint8_t pre_scale); typedef int (libusb20_tr_close_t)(struct libusb20_transfer *xfer); @@ -129,6 +131,7 @@ typedef void (libusb20_tr_cancel_async_t)(struct libus m(n, set_power_mode) \ m(n, get_power_mode) \ m(n, get_power_usage) \ + m(n, get_stats) \ m(n, set_alt_index) \ m(n, set_config_index) \ m(n, tr_cancel_async) \ Modified: stable/11/lib/libusb/libusb20_ugen20.c ============================================================================== --- stable/11/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:20:04 2020 (r356397) +++ stable/11/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:21:15 2020 (r356398) @@ -78,6 +78,7 @@ static libusb20_check_connected_t ugen20_check_connect static libusb20_set_power_mode_t ugen20_set_power_mode; static libusb20_get_power_mode_t ugen20_get_power_mode; static libusb20_get_power_usage_t ugen20_get_power_usage; +static libusb20_get_stats_t ugen20_get_stats; static libusb20_kernel_driver_active_t ugen20_kernel_driver_active; static libusb20_detach_kernel_driver_t ugen20_detach_kernel_driver; static libusb20_do_request_sync_t ugen20_do_request_sync; @@ -664,6 +665,29 @@ ugen20_get_power_usage(struct libusb20_device *pdev, u return (LIBUSB20_ERROR_OTHER); } *power_usage = temp; + return (0); /* success */ +} + +static int +ugen20_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + struct usb_device_stats st; + + if (ioctl(pdev->file_ctrl, IOUSB(USB_DEVICESTATS), &st)) + return (LIBUSB20_ERROR_OTHER); + + memset(pstats, 0, sizeof(*pstats)); + + pstats->xfer_ok[0] = st.uds_requests_ok[0]; + pstats->xfer_ok[1] = st.uds_requests_ok[1]; + pstats->xfer_ok[2] = st.uds_requests_ok[2]; + pstats->xfer_ok[3] = st.uds_requests_ok[3]; + + pstats->xfer_fail[0] = st.uds_requests_fail[0]; + pstats->xfer_fail[1] = st.uds_requests_fail[1]; + pstats->xfer_fail[2] = st.uds_requests_fail[2]; + pstats->xfer_fail[3] = st.uds_requests_fail[3]; + return (0); /* success */ } From owner-svn-src-stable@freebsd.org Mon Jan 6 09:22:34 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DF8171FE440; Mon, 6 Jan 2020 09:22:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqmB5hs8z4Rny; Mon, 6 Jan 2020 09:22:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BEE5CC40B; Mon, 6 Jan 2020 09:22:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069MYG5007232; Mon, 6 Jan 2020 09:22:34 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069MXan007226; Mon, 6 Jan 2020 09:22:33 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060922.0069MXan007226@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:22: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: r356399 - stable/10/lib/libusb X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/lib/libusb X-SVN-Commit-Revision: 356399 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:22:34 -0000 Author: hselasky Date: Mon Jan 6 09:22:33 2020 New Revision: 356399 URL: https://svnweb.freebsd.org/changeset/base/356399 Log: MFC r356136: Implement new libusb v2.0 API function, libusb20_dev_get_stats(). This function is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/10/lib/libusb/Makefile stable/10/lib/libusb/libusb20.3 stable/10/lib/libusb/libusb20.c stable/10/lib/libusb/libusb20.h stable/10/lib/libusb/libusb20_int.h stable/10/lib/libusb/libusb20_ugen20.c Directory Properties: stable/10/ (props changed) Modified: stable/10/lib/libusb/Makefile ============================================================================== --- stable/10/lib/libusb/Makefile Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/Makefile Mon Jan 6 09:22:33 2020 (r356399) @@ -222,6 +222,7 @@ MLINKS += libusb20.3 libusb20_dev_get_backend_name.3 MLINKS += libusb20.3 libusb20_dev_get_info.3 MLINKS += libusb20.3 libusb20_dev_get_iface_desc.3 MLINKS += libusb20.3 libusb20_dev_get_desc.3 +MLINKS += libusb20.3 libusb20_dev_get_stats.3 MLINKS += libusb20.3 libusb20_dev_close.3 MLINKS += libusb20.3 libusb20_dev_detach_kernel_driver.3 MLINKS += libusb20.3 libusb20_dev_set_config_index.3 Modified: stable/10/lib/libusb/libusb20.3 ============================================================================== --- stable/10/lib/libusb/libusb20.3 Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/libusb20.3 Mon Jan 6 09:22:33 2020 (r356399) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2008 Hans Petter Selasky +.\" Copyright (c) 2008-2019 Hans Petter Selasky .\" .\" All rights reserved. .\" @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 3, 2013 +.Dd December 27, 2019 .Dt LIBUSB20 3 .Os .Sh NAME @@ -122,6 +122,8 @@ USB access library (libusb -lusb) .Ft const char * .Fn libusb20_dev_get_desc "struct libusb20_device *pdev" .Ft int +.Fn libusb20_dev_get_stats "struct libusb20_device *pdev" "struct libusb20_device_stats *pstats" +.Ft int .Fn libusb20_dev_close "struct libusb20_device *pdev" .Ft int .Fn libusb20_dev_detach_kernel_driver "struct libusb20_device *pdev" "uint8_t iface_index" @@ -594,6 +596,14 @@ This function returns zero on success else a LIBUSB20_ .Fn libusb20_dev_get_desc returns a zero terminated string describing the given USB device. The format of the string is: "drivername: " +. +.Pp +. +.Fn libusb20_dev_get_stats +retrieves the device statistics into the structure pointed to by the +.Fa pstats +argument. +This function returns zero on success else a LIBUSB20_ERROR value is returned. . .Pp . Modified: stable/10/lib/libusb/libusb20.c ============================================================================== --- stable/10/lib/libusb/libusb20.c Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/libusb20.c Mon Jan 6 09:22:33 2020 (r356399) @@ -77,6 +77,7 @@ dummy_callback(struct libusb20_transfer *xfer) #define dummy_get_power_mode (void *)dummy_int #define dummy_get_port_path (void *)dummy_int #define dummy_get_power_usage (void *)dummy_int +#define dummy_get_stats (void *)dummy_int #define dummy_kernel_driver_active (void *)dummy_int #define dummy_detach_kernel_driver (void *)dummy_int #define dummy_do_request_sync (void *)dummy_int @@ -1027,6 +1028,31 @@ uint8_t libusb20_dev_get_speed(struct libusb20_device *pdev) { return (pdev->usb_speed); +} + +int +libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + uint8_t do_close; + int error; + + if (!pdev->is_opened) { + error = libusb20_dev_open(pdev, 0); + if (error == 0) { + do_close = 1; + } else { + do_close = 0; + } + } else { + do_close = 0; + } + + error = pdev->methods->get_stats(pdev, pstats); + + if (do_close) + (void) libusb20_dev_close(pdev); + + return (error); } /* if this function returns an error, the device is gone */ Modified: stable/10/lib/libusb/libusb20.h ============================================================================== --- stable/10/lib/libusb/libusb20.h Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/libusb20.h Mon Jan 6 09:22:33 2020 (r356399) @@ -193,6 +193,12 @@ struct libusb20_quirk { char quirkname[64 - 12]; }; +struct libusb20_device_stats { + uint64_t xfer_ok[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_fail[4]; /* sorted by USB transfer type, UE_XXX */ + uint64_t xfer_reserved[24]; /* reserved */ +}; + #define LIBUSB20_MAX_FRAME_PRE_SCALE (1U << 31) /* USB transfer operations */ @@ -241,6 +247,7 @@ int libusb20_dev_detach_kernel_driver(struct libusb20_ int libusb20_dev_set_config_index(struct libusb20_device *pdev, uint8_t configIndex); int libusb20_dev_get_debug(struct libusb20_device *pdev); int libusb20_dev_get_fd(struct libusb20_device *pdev); +int libusb20_dev_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstat); int libusb20_dev_kernel_driver_active(struct libusb20_device *pdev, uint8_t iface_index); int libusb20_dev_open(struct libusb20_device *pdev, uint16_t transfer_max); int libusb20_dev_process(struct libusb20_device *pdev); Modified: stable/10/lib/libusb/libusb20_int.h ============================================================================== --- stable/10/lib/libusb/libusb20_int.h Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/libusb20_int.h Mon Jan 6 09:22:33 2020 (r356399) @@ -107,10 +107,12 @@ typedef int (libusb20_set_power_mode_t)(struct libusb2 typedef int (libusb20_get_power_mode_t)(struct libusb20_device *pdev, uint8_t *power_mode); typedef int (libusb20_get_port_path_t)(struct libusb20_device *pdev, uint8_t *buf, uint8_t bufsize); typedef int (libusb20_get_power_usage_t)(struct libusb20_device *pdev, uint16_t *power_usage); +typedef int (libusb20_get_stats_t)(struct libusb20_device *pdev, struct libusb20_device_stats *pstats); typedef int (libusb20_set_alt_index_t)(struct libusb20_device *pdev, uint8_t iface_index, uint8_t alt_index); typedef int (libusb20_set_config_index_t)(struct libusb20_device *pdev, uint8_t index); typedef int (libusb20_check_connected_t)(struct libusb20_device *pdev); + /* USB transfer specific */ typedef int (libusb20_tr_open_t)(struct libusb20_transfer *xfer, uint32_t MaxBufSize, uint32_t MaxFrameCount, uint8_t ep_no, uint16_t stream_id, uint8_t pre_scale); typedef int (libusb20_tr_close_t)(struct libusb20_transfer *xfer); @@ -131,6 +133,7 @@ typedef void (libusb20_tr_cancel_async_t)(struct libus m(n, get_power_mode) \ m(n, get_port_path) \ m(n, get_power_usage) \ + m(n, get_stats) \ m(n, set_alt_index) \ m(n, set_config_index) \ m(n, tr_cancel_async) \ Modified: stable/10/lib/libusb/libusb20_ugen20.c ============================================================================== --- stable/10/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:21:15 2020 (r356398) +++ stable/10/lib/libusb/libusb20_ugen20.c Mon Jan 6 09:22:33 2020 (r356399) @@ -79,6 +79,7 @@ static libusb20_set_power_mode_t ugen20_set_power_mode static libusb20_get_power_mode_t ugen20_get_power_mode; static libusb20_get_port_path_t ugen20_get_port_path; static libusb20_get_power_usage_t ugen20_get_power_usage; +static libusb20_get_stats_t ugen20_get_stats; static libusb20_kernel_driver_active_t ugen20_kernel_driver_active; static libusb20_detach_kernel_driver_t ugen20_detach_kernel_driver; static libusb20_do_request_sync_t ugen20_do_request_sync; @@ -673,6 +674,29 @@ ugen20_get_power_usage(struct libusb20_device *pdev, u return (LIBUSB20_ERROR_OTHER); } *power_usage = temp; + return (0); /* success */ +} + +static int +ugen20_get_stats(struct libusb20_device *pdev, struct libusb20_device_stats *pstats) +{ + struct usb_device_stats st; + + if (ioctl(pdev->file_ctrl, IOUSB(USB_DEVICESTATS), &st)) + return (LIBUSB20_ERROR_OTHER); + + memset(pstats, 0, sizeof(*pstats)); + + pstats->xfer_ok[0] = st.uds_requests_ok[0]; + pstats->xfer_ok[1] = st.uds_requests_ok[1]; + pstats->xfer_ok[2] = st.uds_requests_ok[2]; + pstats->xfer_ok[3] = st.uds_requests_ok[3]; + + pstats->xfer_fail[0] = st.uds_requests_fail[0]; + pstats->xfer_fail[1] = st.uds_requests_fail[1]; + pstats->xfer_fail[2] = st.uds_requests_fail[2]; + pstats->xfer_fail[3] = st.uds_requests_fail[3]; + return (0); /* success */ } From owner-svn-src-stable@freebsd.org Mon Jan 6 09:23:55 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 59D891FE4E4; Mon, 6 Jan 2020 09:23:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqnl1hhtz4Rw8; Mon, 6 Jan 2020 09:23:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3552FC40E; Mon, 6 Jan 2020 09:23:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069NtFe007353; Mon, 6 Jan 2020 09:23:55 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069Ns7n007349; Mon, 6 Jan 2020 09:23:54 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060923.0069Ns7n007349@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:23:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356400 - stable/12/usr.sbin/usbconfig X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/usr.sbin/usbconfig X-SVN-Commit-Revision: 356400 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:23:55 -0000 Author: hselasky Date: Mon Jan 6 09:23:54 2020 New Revision: 356400 URL: https://svnweb.freebsd.org/changeset/base/356400 Log: MFC r356137: Implement dump_stats command for usbconfig(8). This command is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/12/usr.sbin/usbconfig/dump.c stable/12/usr.sbin/usbconfig/dump.h stable/12/usr.sbin/usbconfig/usbconfig.8 stable/12/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/usbconfig/dump.c ============================================================================== --- stable/12/usr.sbin/usbconfig/dump.c Mon Jan 6 09:22:33 2020 (r356399) +++ stable/12/usr.sbin/usbconfig/dump.c Mon Jan 6 09:23:54 2020 (r356400) @@ -483,3 +483,32 @@ dump_string_by_index(struct libusb20_device *pdev, uin } free(pbuf); } + +void +dump_device_stats(struct libusb20_device *pdev) +{ + struct libusb20_device_stats st; + + if (libusb20_dev_get_stats(pdev, &st)) { + printf("{}\n"); + } else { + printf("{\n" + " UE_CONTROL_OK : %llu\n" + " UE_ISOCHRONOUS_OK : %llu\n" + " UE_BULK_OK : %llu\n" + " UE_INTERRUPT_OK : %llu\n" + " UE_CONTROL_FAIL : %llu\n" + " UE_ISOCHRONOUS_FAIL : %llu\n" + " UE_BULK_FAIL : %llu\n" + " UE_INTERRUPT_FAIL : %llu\n" + "}\n", + (unsigned long long)st.xfer_ok[0], + (unsigned long long)st.xfer_ok[1], + (unsigned long long)st.xfer_ok[2], + (unsigned long long)st.xfer_ok[3], + (unsigned long long)st.xfer_fail[0], + (unsigned long long)st.xfer_fail[1], + (unsigned long long)st.xfer_fail[2], + (unsigned long long)st.xfer_fail[3]); + } +} Modified: stable/12/usr.sbin/usbconfig/dump.h ============================================================================== --- stable/12/usr.sbin/usbconfig/dump.h Mon Jan 6 09:22:33 2020 (r356399) +++ stable/12/usr.sbin/usbconfig/dump.h Mon Jan 6 09:23:54 2020 (r356400) @@ -37,6 +37,7 @@ void dump_device_info(struct libusb20_device *pdev, ui void dump_be_quirk_names(struct libusb20_backend *pbe); void dump_be_dev_quirks(struct libusb20_backend *pbe); void dump_device_desc(struct libusb20_device *pdev); +void dump_device_stats(struct libusb20_device *pdev); void dump_config(struct libusb20_device *pdev, uint8_t all_cfg); #endif /* _DUMP_H_ */ Modified: stable/12/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/12/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:22:33 2020 (r356399) +++ stable/12/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:23:54 2020 (r356400) @@ -1,6 +1,6 @@ .\" $FreeBSD$ .\" -.\" Copyright (c) 2008-2010 Hans Petter Selasky. All rights reserved. +.\" Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 16, 2019 +.Dd December 27, 2019 .Dt USBCONFIG 8 .Os .Sh NAME @@ -116,6 +116,8 @@ Display all the configuration descriptors. Display string descriptor at selected index. .It Cm dump_info Display summary information about the device. +.It Cm dump_stats +Display USB transfer statistics. .It Cm show_ifdrv Display the list of interface drivers (such as .Xr ukbd 4 Modified: stable/12/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/12/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:22:33 2020 (r356399) +++ stable/12/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:23:54 2020 (r356400) @@ -82,6 +82,7 @@ struct options { uint8_t got_dump_curr_config:1; uint8_t got_dump_all_config:1; uint8_t got_dump_info:1; + uint8_t got_dump_stats:1; uint8_t got_show_iface_driver:1; uint8_t got_remove_device_quirk:1; uint8_t got_add_device_quirk:1; @@ -121,6 +122,7 @@ enum { T_DUMP_ALL_CONFIG_DESC, T_DUMP_STRING, T_DUMP_INFO, + T_DUMP_STATS, T_SUSPEND, T_RESUME, T_POWER_OFF, @@ -155,6 +157,7 @@ static const struct token token[] = { {"dump_all_config_desc", T_DUMP_ALL_CONFIG_DESC, 0}, {"dump_string", T_DUMP_STRING, 1}, {"dump_info", T_DUMP_INFO, 0}, + {"dump_stats", T_DUMP_STATS, 0}, {"show_ifdrv", T_SHOW_IFACE_DRIVER, 0}, {"suspend", T_SUSPEND, 0}, {"resume", T_RESUME, 0}, @@ -296,6 +299,7 @@ usage(void) " dump_all_config_desc" "\n" " dump_string " "\n" " dump_info" "\n" + " dump_stats" "\n" " show_ifdrv" "\n" " suspend" "\n" " resume" "\n" @@ -506,7 +510,8 @@ flush_command(struct libusb20_backend *pbe, struct opt opt->got_dump_device_desc || opt->got_dump_curr_config || opt->got_dump_all_config || - opt->got_dump_info); + opt->got_dump_info || + opt->got_dump_stats); if (opt->got_list || dump_any) { dump_device_info(pdev, @@ -527,6 +532,10 @@ flush_command(struct libusb20_backend *pbe, struct opt dump_device_desc(pdev); dump_config(pdev, 1); } + if (opt->got_dump_stats) { + printf("\n"); + dump_device_stats(pdev); + } if (dump_any) { printf("\n"); } @@ -749,6 +758,12 @@ main(int argc, char **argv) if (opt->got_dump_info) duplicate_option(argv[n]); opt->got_dump_info = 1; + opt->got_any++; + break; + case T_DUMP_STATS: + if (opt->got_dump_stats) + duplicate_option(argv[n]); + opt->got_dump_stats = 1; opt->got_any++; break; case T_DUMP_STRING: From owner-svn-src-stable@freebsd.org Mon Jan 6 09:24:49 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0A6B71FE57A; Mon, 6 Jan 2020 09:24:49 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rqpm6TsVz4S3W; Mon, 6 Jan 2020 09:24:48 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D9D96C410; Mon, 6 Jan 2020 09:24:48 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069OmVq007461; Mon, 6 Jan 2020 09:24:48 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069Om3W007458; Mon, 6 Jan 2020 09:24:48 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060924.0069Om3W007458@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:24:48 +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: r356401 - stable/11/usr.sbin/usbconfig X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/usr.sbin/usbconfig X-SVN-Commit-Revision: 356401 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:24:49 -0000 Author: hselasky Date: Mon Jan 6 09:24:47 2020 New Revision: 356401 URL: https://svnweb.freebsd.org/changeset/base/356401 Log: MFC r356137: Implement dump_stats command for usbconfig(8). This command is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/11/usr.sbin/usbconfig/dump.c stable/11/usr.sbin/usbconfig/dump.h stable/11/usr.sbin/usbconfig/usbconfig.8 stable/11/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/usbconfig/dump.c ============================================================================== --- stable/11/usr.sbin/usbconfig/dump.c Mon Jan 6 09:23:54 2020 (r356400) +++ stable/11/usr.sbin/usbconfig/dump.c Mon Jan 6 09:24:47 2020 (r356401) @@ -483,3 +483,32 @@ dump_string_by_index(struct libusb20_device *pdev, uin } free(pbuf); } + +void +dump_device_stats(struct libusb20_device *pdev) +{ + struct libusb20_device_stats st; + + if (libusb20_dev_get_stats(pdev, &st)) { + printf("{}\n"); + } else { + printf("{\n" + " UE_CONTROL_OK : %llu\n" + " UE_ISOCHRONOUS_OK : %llu\n" + " UE_BULK_OK : %llu\n" + " UE_INTERRUPT_OK : %llu\n" + " UE_CONTROL_FAIL : %llu\n" + " UE_ISOCHRONOUS_FAIL : %llu\n" + " UE_BULK_FAIL : %llu\n" + " UE_INTERRUPT_FAIL : %llu\n" + "}\n", + (unsigned long long)st.xfer_ok[0], + (unsigned long long)st.xfer_ok[1], + (unsigned long long)st.xfer_ok[2], + (unsigned long long)st.xfer_ok[3], + (unsigned long long)st.xfer_fail[0], + (unsigned long long)st.xfer_fail[1], + (unsigned long long)st.xfer_fail[2], + (unsigned long long)st.xfer_fail[3]); + } +} Modified: stable/11/usr.sbin/usbconfig/dump.h ============================================================================== --- stable/11/usr.sbin/usbconfig/dump.h Mon Jan 6 09:23:54 2020 (r356400) +++ stable/11/usr.sbin/usbconfig/dump.h Mon Jan 6 09:24:47 2020 (r356401) @@ -37,6 +37,7 @@ void dump_device_info(struct libusb20_device *pdev, ui void dump_be_quirk_names(struct libusb20_backend *pbe); void dump_be_dev_quirks(struct libusb20_backend *pbe); void dump_device_desc(struct libusb20_device *pdev); +void dump_device_stats(struct libusb20_device *pdev); void dump_config(struct libusb20_device *pdev, uint8_t all_cfg); #endif /* _DUMP_H_ */ Modified: stable/11/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/11/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:23:54 2020 (r356400) +++ stable/11/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:24:47 2020 (r356401) @@ -1,6 +1,6 @@ .\" $FreeBSD$ .\" -.\" Copyright (c) 2008-2010 Hans Petter Selasky. All rights reserved. +.\" Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 16, 2019 +.Dd December 27, 2019 .Dt USBCONFIG 8 .Os .Sh NAME @@ -116,6 +116,8 @@ Display all the configuration descriptors. Display string descriptor at selected index. .It Cm dump_info Display summary information about the device. +.It Cm dump_stats +Display USB transfer statistics. .It Cm show_ifdrv Display the list of interface drivers (such as .Xr ukbd 4 Modified: stable/11/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/11/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:23:54 2020 (r356400) +++ stable/11/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:24:47 2020 (r356401) @@ -82,6 +82,7 @@ struct options { uint8_t got_dump_curr_config:1; uint8_t got_dump_all_config:1; uint8_t got_dump_info:1; + uint8_t got_dump_stats:1; uint8_t got_show_iface_driver:1; uint8_t got_remove_device_quirk:1; uint8_t got_add_device_quirk:1; @@ -121,6 +122,7 @@ enum { T_DUMP_ALL_CONFIG_DESC, T_DUMP_STRING, T_DUMP_INFO, + T_DUMP_STATS, T_SUSPEND, T_RESUME, T_POWER_OFF, @@ -155,6 +157,7 @@ static const struct token token[] = { {"dump_all_config_desc", T_DUMP_ALL_CONFIG_DESC, 0}, {"dump_string", T_DUMP_STRING, 1}, {"dump_info", T_DUMP_INFO, 0}, + {"dump_stats", T_DUMP_STATS, 0}, {"show_ifdrv", T_SHOW_IFACE_DRIVER, 0}, {"suspend", T_SUSPEND, 0}, {"resume", T_RESUME, 0}, @@ -296,6 +299,7 @@ usage(void) " dump_all_config_desc" "\n" " dump_string " "\n" " dump_info" "\n" + " dump_stats" "\n" " show_ifdrv" "\n" " suspend" "\n" " resume" "\n" @@ -506,7 +510,8 @@ flush_command(struct libusb20_backend *pbe, struct opt opt->got_dump_device_desc || opt->got_dump_curr_config || opt->got_dump_all_config || - opt->got_dump_info); + opt->got_dump_info || + opt->got_dump_stats); if (opt->got_list || dump_any) { dump_device_info(pdev, @@ -527,6 +532,10 @@ flush_command(struct libusb20_backend *pbe, struct opt dump_device_desc(pdev); dump_config(pdev, 1); } + if (opt->got_dump_stats) { + printf("\n"); + dump_device_stats(pdev); + } if (dump_any) { printf("\n"); } @@ -749,6 +758,12 @@ main(int argc, char **argv) if (opt->got_dump_info) duplicate_option(argv[n]); opt->got_dump_info = 1; + opt->got_any++; + break; + case T_DUMP_STATS: + if (opt->got_dump_stats) + duplicate_option(argv[n]); + opt->got_dump_stats = 1; opt->got_any++; break; case T_DUMP_STRING: From owner-svn-src-stable@freebsd.org Mon Jan 6 09:35:12 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1E0161FE97D; Mon, 6 Jan 2020 09:35:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr2m01Ggz4Sk6; Mon, 6 Jan 2020 09:35:12 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EFD6CC5E7; Mon, 6 Jan 2020 09:35:11 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069ZBnZ013704; Mon, 6 Jan 2020 09:35:11 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069ZB3R013703; Mon, 6 Jan 2020 09:35:11 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060935.0069ZB3R013703@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:35: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: r356402 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356402 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:35:12 -0000 Author: hselasky Date: Mon Jan 6 09:35:11 2020 New Revision: 356402 URL: https://svnweb.freebsd.org/changeset/base/356402 Log: MFC r327382: Improve usbconfig(8) manual page by adding descriptions for subcommands. Reviewed by: hselasky Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D13445 Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:24:47 2020 (r356401) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:35:11 2020 (r356402) @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 6, 2010 +.Dd December 30, 2017 .Dt USBCONFIG 8 .Os .Sh NAME @@ -56,45 +56,124 @@ The unit and address coordinates may be prefixed by th Show help and available commands. .El .Pp -When called without options, +The following commands may be used with +.Nm : +.Bl -tag -width indent +.It Cm set_config Ar cfg_index +Choose the configuration for the USB device. +Valid values range from zero to the number reported as the +.Ar bNumConfigurations +in +.Cm dump_device_desc +output. +The special value of 255 unconfigures the device, detaching +the interface drivers and reducing the power consumption to minimum, +but without going into power saving mode or detaching from the bus. +In some cases, it prevents the device from charging. +.It Cm set_alt Ar alt_index +Choose the alternate interface for the USB device. +Alternative settings for the current configuration are available as the +.Ar bAlternateSetting +in +.Cm dump_curr_config_desc +output. +Usually there is no need to adjust this setting. +.It Cm set_template Ar template +Set the global USB device side template. +See +.Xr usb_template 4 +for more information. +.It Cm get_template +Get the current USB device side template. +.It Cm add_dev_quirk_vplh Ar vid Ar pid Ar lo_rev Ar hi_rev Ar quirk_name +Add a quirk by specifying the Vendor ID, Product ID, low and high +revision numbers, and the quirk name. +See +.Xr usb_quirk 4 +for more information. +.It Cm remove_dev_quirk_vplh Ar vid Ar pid Ar lo_rev Ar hi_rev Ar quirk_name +Remove a quirk. +.It Cm add_quirk Ar quirk_name +Add quirk for the currently selected USB device. +.It Cm remove_quirk Ar quirk_name +Remove a quirk for the currently selected USB device. +.It Cm dump_quirk_names +Display the list of supported quirk names. +.It Cm dump_device_quirks +Display the list of current device quirks. +.It Cm dump_device_desc +Display the device descriptor. +.It Cm dump_curr_config_desc +Display current configuration descriptor. +.It Cm dump_all_config_desc +Display all the configuration descriptors. +.It Cm dump_string Ar index +Display string descriptor at selected index. +.It Cm dump_info +Display summary information about the device. +.It Cm show_ifdrv +Display the list of interface drivers (such as +.Xr ukbd 4 +or +.Xr u3g 4 ) +currently attached to the device. +.It Cm suspend +Force the device to suspend. +.It Cm resume +Force the device to resume. +.It Cm power_off +Turn the device off. +.It Cm power_save +Turn the automatic suspend and resume on. +This is the default for USB hubs. +.It Cm power_on +Turn the device on and disable automatic suspend and resume. +This is the default for non-hub devices. +.It Cm reset +Reset the device. +This forces the USB stack to reenumerate the bus. +.It Cm list +List all available USB devices. +This is the default if .Nm -prints a list of all available USB devices. +is called without specifying a command. +.It Cm do_request Ar bmReqTyp Ar bReq Ar wVal Ar wIdx Ar wLen Ar data... +Perform a synchronous control request on the specified device. +See +.Xr libusb20_dev_request_sync 3 +for more information. +.El .Sh EXAMPLES +.Pp Show information about the device on USB bus 1 at address 2: .Pp -.Dl usbconfig -u 1 -a 2 dump_info +.Dl usbconfig -d ugen1.2 dump_info .Pp Dump HID descriptor for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -u 1 -a 2 do_request 0x81 0x06 0x2200 0 0x100 +.Dl usbconfig -d ugen1.2 do_request 0x81 0x06 0x2200 0 0x100 .Pp Dump string descriptor at index Z for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -u 1 -a 2 dump_string Z +.Dl usbconfig -d ugen1.2 dump_string Z .Pp Dump current configuration descriptor for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -u 1 -a 2 dump_curr_config_desc +.Dl usbconfig -d ugen1.2 dump_curr_config_desc .Pp Dump device descriptor for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -u 1 -a 2 dump_device_desc +.Dl usbconfig -d ugen1.2 dump_device_desc .Pp Program the device on USB bus 1 at address 2 to suspend, resume, power off, go into power save, or power on: .Pp -.Dl usbconfig -u 1 -a 2 suspend -.Dl usbconfig -u 1 -a 2 resume -.Dl usbconfig -u 1 -a 2 power_off -.Dl usbconfig -u 1 -a 2 power_save -.Dl usbconfig -u 1 -a 2 power_on +.Dl usbconfig -d ugen1.2 suspend +.Dl usbconfig -d ugen1.2 resume +.Dl usbconfig -d ugen1.2 power_off +.Dl usbconfig -d ugen1.2 power_save +.Dl usbconfig -d ugen1.2 power_on .Pp -Display a list of available quirk names: -.Pp -.Dl usbconfig dump_quirk_names -.Pp -See -.Xr usb_quirk 4 -for more information on quirks. .Sh SEE ALSO .Xr usb 4 , -.Xr usb_quirk 4 +.Xr usb_quirk 4 , +.Xr usb_template 4 From owner-svn-src-stable@freebsd.org Mon Jan 6 09:35:58 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3B75C1FEA0F; Mon, 6 Jan 2020 09:35:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr3f0p97z4Srl; Mon, 6 Jan 2020 09:35:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 16C80C5F7; Mon, 6 Jan 2020 09:35:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069ZvdH013801; Mon, 6 Jan 2020 09:35:57 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069ZvU7013800; Mon, 6 Jan 2020 09:35:57 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060935.0069ZvU7013800@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:35:57 +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: r356403 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356403 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:35:58 -0000 Author: hselasky Date: Mon Jan 6 09:35:57 2020 New Revision: 356403 URL: https://svnweb.freebsd.org/changeset/base/356403 Log: MFC r327522: Fix warnings from "mandoc -Tlint -Wwarning". Reported by: Yuri Pankov Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:35:11 2020 (r356402) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:35:57 2020 (r356403) @@ -144,7 +144,6 @@ See for more information. .El .Sh EXAMPLES -.Pp Show information about the device on USB bus 1 at address 2: .Pp .Dl usbconfig -d ugen1.2 dump_info @@ -172,7 +171,6 @@ Program the device on USB bus 1 at address 2 to suspen .Dl usbconfig -d ugen1.2 power_off .Dl usbconfig -d ugen1.2 power_save .Dl usbconfig -d ugen1.2 power_on -.Pp .Sh SEE ALSO .Xr usb 4 , .Xr usb_quirk 4 , From owner-svn-src-stable@freebsd.org Mon Jan 6 09:37:13 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C002B1FEAD0; Mon, 6 Jan 2020 09:37:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr554TSFz4T0B; Mon, 6 Jan 2020 09:37:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 950FBC5FB; Mon, 6 Jan 2020 09:37:13 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069bDc5013919; Mon, 6 Jan 2020 09:37:13 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069bDrM013918; Mon, 6 Jan 2020 09:37:13 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060937.0069bDrM013918@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:37:13 +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: r356404 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356404 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:37:13 -0000 Author: hselasky Date: Mon Jan 6 09:37:13 2020 New Revision: 356404 URL: https://svnweb.freebsd.org/changeset/base/356404 Log: MFC r330875: Add "usbconfig dump_all_desc", a subcommand to dump all device and config descriptors. Reviewed by: hselasky@ Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 stable/10/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:35:57 2020 (r356403) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:37:13 2020 (r356404) @@ -97,6 +97,8 @@ Remove a quirk. Add quirk for the currently selected USB device. .It Cm remove_quirk Ar quirk_name Remove a quirk for the currently selected USB device. +.It Cm dump_all_desc +Display the device and configuration descriptors. .It Cm dump_quirk_names Display the list of supported quirk names. .It Cm dump_device_quirks Modified: stable/10/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:35:57 2020 (r356403) +++ stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:37:13 2020 (r356404) @@ -75,6 +75,7 @@ struct options { uint8_t got_power_on:1; uint8_t got_dump_device_quirks:1; uint8_t got_dump_quirk_names:1; + uint8_t got_dump_all_desc:1; uint8_t got_dump_device_desc:1; uint8_t got_dump_curr_config:1; uint8_t got_dump_all_config:1; @@ -110,6 +111,7 @@ enum { T_SHOW_IFACE_DRIVER, T_DUMP_QUIRK_NAMES, T_DUMP_DEVICE_QUIRKS, + T_DUMP_ALL_DESC, T_DUMP_DEVICE_DESC, T_DUMP_CURR_CONFIG_DESC, T_DUMP_ALL_CONFIG_DESC, @@ -142,6 +144,7 @@ static const struct token token[] = { {"remove_quirk", T_REMOVE_QUIRK, 1}, {"dump_quirk_names", T_DUMP_QUIRK_NAMES, 0}, {"dump_device_quirks", T_DUMP_DEVICE_QUIRKS, 0}, + {"dump_all_desc", T_DUMP_ALL_DESC, 0}, {"dump_device_desc", T_DUMP_DEVICE_DESC, 0}, {"dump_curr_config_desc", T_DUMP_CURR_CONFIG_DESC, 0}, {"dump_all_config_desc", T_DUMP_ALL_CONFIG_DESC, 0}, @@ -281,6 +284,7 @@ usage(void) " remove_quirk " "\n" " dump_quirk_names" "\n" " dump_device_quirks" "\n" + " dump_all_desc" "\n" " dump_device_desc" "\n" " dump_curr_config_desc" "\n" " dump_all_config_desc" "\n" @@ -487,7 +491,8 @@ flush_command(struct libusb20_backend *pbe, struct opt } } dump_any = - (opt->got_dump_device_desc || + (opt->got_dump_all_desc || + opt->got_dump_device_desc || opt->got_dump_curr_config || opt->got_dump_all_config || opt->got_dump_info); @@ -506,6 +511,10 @@ flush_command(struct libusb20_backend *pbe, struct opt } else if (opt->got_dump_curr_config) { printf("\n"); dump_config(pdev, 0); + } else if (opt->got_dump_all_desc) { + printf("\n"); + dump_device_desc(pdev); + dump_config(pdev, 1); } if (dump_any) { printf("\n"); @@ -692,6 +701,12 @@ main(int argc, char **argv) if (opt->got_get_template) duplicate_option(argv[n]); opt->got_get_template = 1; + opt->got_any++; + break; + case T_DUMP_ALL_DESC: + if (opt->got_dump_all_desc) + duplicate_option(argv[n]); + opt->got_dump_all_desc = 1; opt->got_any++; break; case T_DUMP_DEVICE_DESC: From owner-svn-src-stable@freebsd.org Mon Jan 6 09:38:08 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F055D1FEB5E; Mon, 6 Jan 2020 09:38:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr68652pz4T6J; Mon, 6 Jan 2020 09:38:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CC498C5FD; Mon, 6 Jan 2020 09:38:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069c8UV014017; Mon, 6 Jan 2020 09:38:08 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069c8bu014015; Mon, 6 Jan 2020 09:38:08 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060938.0069c8bu014015@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:38: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: r356405 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356405 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:38:09 -0000 Author: hselasky Date: Mon Jan 6 09:38:08 2020 New Revision: 356405 URL: https://svnweb.freebsd.org/changeset/base/356405 Log: MFC r332659: Make it possible to pass the ugenX.Y to usbconfig(8) without using "-d", eg "usbconfig ugen1.2 dump_all_desc". Reviewed by: hselasky@ Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 stable/10/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:37:13 2020 (r356404) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:38:08 2020 (r356405) @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 30, 2017 +.Dd April 17, 2018 .Dt USBCONFIG 8 .Os .Sh NAME @@ -35,7 +35,7 @@ .Op Fl a Ar addr .Op cmds... .Nm -.Op Fl d Ar [ugen]. +.Op Oo Fl d Oc Ar [ugen]. .Op cmds... .Sh DESCRIPTION The Modified: stable/10/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:37:13 2020 (r356404) +++ stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:38:08 2020 (r356405) @@ -818,6 +818,29 @@ main(int argc, char **argv) opt->got_any++; break; default: + if (n == 1) { + ptr = argv[n]; + + if ((ptr[0] == 'u') && + (ptr[1] == 'g') && + (ptr[2] == 'e') && + (ptr[3] == 'n')) + ptr += 4; + + if ((sscanf(ptr, "%d.%d", + &unit, &addr) != 2) || + (unit < 0) || (unit > 65535) || + (addr < 0) || (addr > 65535)) { + usage(); + break; + } + + opt->bus = unit; + opt->addr = addr; + opt->got_bus = 1; + opt->got_addr = 1; + break; + } usage(); break; } From owner-svn-src-stable@freebsd.org Mon Jan 6 09:38:57 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C9D201FEBDF; Mon, 6 Jan 2020 09:38:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr754vBbz4TDj; Mon, 6 Jan 2020 09:38:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A3659C5FE; Mon, 6 Jan 2020 09:38:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069cv4o014111; Mon, 6 Jan 2020 09:38:57 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069cv2f014110; Mon, 6 Jan 2020 09:38:57 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060938.0069cv2f014110@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:38:57 +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: r356406 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356406 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:38:57 -0000 Author: hselasky Date: Mon Jan 6 09:38:57 2020 New Revision: 356406 URL: https://svnweb.freebsd.org/changeset/base/356406 Log: MFC r333089: Clean up the EXAMPLES section of usbconfig(8). This removes parts that become redundant after documenting all the subcommands, and switches to the new syntax, without the '-d'. Reviewed by: hselasky@ Sponsored by: The FreeBSD Foundation Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:38:08 2020 (r356405) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:38:57 2020 (r356406) @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 17, 2018 +.Dd April 29, 2018 .Dt USBCONFIG 8 .Os .Sh NAME @@ -146,33 +146,21 @@ See for more information. .El .Sh EXAMPLES -Show information about the device on USB bus 1 at address 2: +List all connected USB devices and their attached interface drivers: .Pp -.Dl usbconfig -d ugen1.2 dump_info +.Dl usbconfig show_ifdrv .Pp -Dump HID descriptor for device on USB bus 1 at address 2: +Dump device and configuration descriptors for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -d ugen1.2 do_request 0x81 0x06 0x2200 0 0x100 +.Dl usbconfig ugen1.2 dump_all_desc .Pp -Dump string descriptor at index Z for device on USB bus 1 at address 2: +Dump HID descriptor for device on USB bus 1 at address 2: .Pp -.Dl usbconfig -d ugen1.2 dump_string Z +.Dl usbconfig ugen1.2 do_request 0x81 0x06 0x2200 0 0x100 .Pp -Dump current configuration descriptor for device on USB bus 1 at address 2: +Power off the device on USB bus 1 at address 2: .Pp -.Dl usbconfig -d ugen1.2 dump_curr_config_desc -.Pp -Dump device descriptor for device on USB bus 1 at address 2: -.Pp -.Dl usbconfig -d ugen1.2 dump_device_desc -.Pp -Program the device on USB bus 1 at address 2 to suspend, resume, power off, go into power save, or power on: -.Pp -.Dl usbconfig -d ugen1.2 suspend -.Dl usbconfig -d ugen1.2 resume -.Dl usbconfig -d ugen1.2 power_off -.Dl usbconfig -d ugen1.2 power_save -.Dl usbconfig -d ugen1.2 power_on +.Dl usbconfig ugen1.2 power_off .Sh SEE ALSO .Xr usb 4 , .Xr usb_quirk 4 , From owner-svn-src-stable@freebsd.org Mon Jan 6 09:40:19 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 54EA11FECA7; Mon, 6 Jan 2020 09:40:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr8g1bDTz4TMC; Mon, 6 Jan 2020 09:40:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 31CF5C602; Mon, 6 Jan 2020 09:40:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069eJfA014271; Mon, 6 Jan 2020 09:40:19 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069eIpu014269; Mon, 6 Jan 2020 09:40:18 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060940.0069eIpu014269@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:40:18 +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: r356407 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356407 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:40:19 -0000 Author: hselasky Date: Mon Jan 6 09:40:18 2020 New Revision: 356407 URL: https://svnweb.freebsd.org/changeset/base/356407 Log: MFC r351146: Implement detach_kernel_driver command in usbconfig(8). Submitted by: Kevin Zheng PR: 239916 Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 stable/10/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:38:57 2020 (r356406) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:40:18 2020 (r356407) @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 29, 2018 +.Dd August 16, 2019 .Dt USBCONFIG 8 .Os .Sh NAME @@ -52,6 +52,9 @@ Should only be used in conjunction with the unit argum .It Fl d Ar [ugen]. Limit device range to USB devices connected to the given unit and address. The unit and address coordinates may be prefixed by the lowercased word "ugen". +.It Fl i Ar interface_index +Specify interface index as indicated by the command description. +If this argument is not specified a value of zero will be used for the interface index. .It Fl h Show help and available commands. .El @@ -71,7 +74,7 @@ the interface drivers and reducing the power consumpti but without going into power saving mode or detaching from the bus. In some cases, it prevents the device from charging. .It Cm set_alt Ar alt_index -Choose the alternate interface for the USB device. +Choose the alternate interface for the selected interface and USB device. Alternative settings for the current configuration are available as the .Ar bAlternateSetting in @@ -119,6 +122,8 @@ Display the list of interface drivers (such as or .Xr u3g 4 ) currently attached to the device. +.It Cm detach_kernel_driver +Detach kernel driver for the selected interface and USB device. .It Cm suspend Force the device to suspend. .It Cm resume Modified: stable/10/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:38:57 2020 (r356406) +++ stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:40:18 2020 (r356407) @@ -87,6 +87,7 @@ struct options { uint8_t got_add_quirk:1; uint8_t got_dump_string:1; uint8_t got_do_request:1; + uint8_t got_detach_kernel_driver:1; }; struct token { @@ -109,6 +110,7 @@ enum { T_ADD_QUIRK, T_REMOVE_QUIRK, T_SHOW_IFACE_DRIVER, + T_DETACH_KERNEL_DRIVER, T_DUMP_QUIRK_NAMES, T_DUMP_DEVICE_QUIRKS, T_DUMP_ALL_DESC, @@ -142,6 +144,7 @@ static const struct token token[] = { {"remove_dev_quirk_vplh", T_REMOVE_DEVICE_QUIRK, 5}, {"add_quirk", T_ADD_QUIRK, 1}, {"remove_quirk", T_REMOVE_QUIRK, 1}, + {"detach_kernel_driver", T_DETACH_KERNEL_DRIVER, 0}, {"dump_quirk_names", T_DUMP_QUIRK_NAMES, 0}, {"dump_device_quirks", T_DUMP_DEVICE_QUIRKS, 0}, {"dump_all_desc", T_DUMP_ALL_DESC, 0}, @@ -282,6 +285,7 @@ usage(void) " remove_dev_quirk_vplh " "\n" " add_quirk " "\n" " remove_quirk " "\n" + " detach_kernel_driver" "\n" " dump_quirk_names" "\n" " dump_device_quirks" "\n" " dump_all_desc" "\n" @@ -490,6 +494,11 @@ flush_command(struct libusb20_backend *pbe, struct opt err(1, "could not set power ON"); } } + if (opt->got_detach_kernel_driver) { + if (libusb20_dev_detach_kernel_driver(pdev, opt->iface)) { + err(1, "could not detach kernel driver"); + } + } dump_any = (opt->got_dump_all_desc || opt->got_dump_device_desc || @@ -606,6 +615,13 @@ main(int argc, char **argv) opt->quirkname = argv[n + 5]; n += 5; opt->got_remove_device_quirk = 1; + opt->got_any++; + break; + + case T_DETACH_KERNEL_DRIVER: + if (opt->got_detach_kernel_driver) + duplicate_option(argv[n]); + opt->got_detach_kernel_driver = 1; opt->got_any++; break; From owner-svn-src-stable@freebsd.org Mon Jan 6 09:41:01 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0ED841FED15; Mon, 6 Jan 2020 09:41:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rr9S6fJJz4TVX; Mon, 6 Jan 2020 09:41:00 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DF8A3C634; Mon, 6 Jan 2020 09:41:00 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069f0PV015906; Mon, 6 Jan 2020 09:41:00 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069f0hK015897; Mon, 6 Jan 2020 09:41:00 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060941.0069f0hK015897@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:41:00 +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: r356408 - stable/10/usr.sbin/usbconfig X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/usr.sbin/usbconfig X-SVN-Commit-Revision: 356408 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:41:01 -0000 Author: hselasky Date: Mon Jan 6 09:40:59 2020 New Revision: 356408 URL: https://svnweb.freebsd.org/changeset/base/356408 Log: MFC r356137: Implement dump_stats command for usbconfig(8). This command is useful when debugging USB device issues. Sponsored by: Mellanox Technologies Modified: stable/10/usr.sbin/usbconfig/dump.c stable/10/usr.sbin/usbconfig/dump.h stable/10/usr.sbin/usbconfig/usbconfig.8 stable/10/usr.sbin/usbconfig/usbconfig.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/usbconfig/dump.c ============================================================================== --- stable/10/usr.sbin/usbconfig/dump.c Mon Jan 6 09:40:18 2020 (r356407) +++ stable/10/usr.sbin/usbconfig/dump.c Mon Jan 6 09:40:59 2020 (r356408) @@ -481,3 +481,32 @@ dump_string_by_index(struct libusb20_device *pdev, uin } free(pbuf); } + +void +dump_device_stats(struct libusb20_device *pdev) +{ + struct libusb20_device_stats st; + + if (libusb20_dev_get_stats(pdev, &st)) { + printf("{}\n"); + } else { + printf("{\n" + " UE_CONTROL_OK : %llu\n" + " UE_ISOCHRONOUS_OK : %llu\n" + " UE_BULK_OK : %llu\n" + " UE_INTERRUPT_OK : %llu\n" + " UE_CONTROL_FAIL : %llu\n" + " UE_ISOCHRONOUS_FAIL : %llu\n" + " UE_BULK_FAIL : %llu\n" + " UE_INTERRUPT_FAIL : %llu\n" + "}\n", + (unsigned long long)st.xfer_ok[0], + (unsigned long long)st.xfer_ok[1], + (unsigned long long)st.xfer_ok[2], + (unsigned long long)st.xfer_ok[3], + (unsigned long long)st.xfer_fail[0], + (unsigned long long)st.xfer_fail[1], + (unsigned long long)st.xfer_fail[2], + (unsigned long long)st.xfer_fail[3]); + } +} Modified: stable/10/usr.sbin/usbconfig/dump.h ============================================================================== --- stable/10/usr.sbin/usbconfig/dump.h Mon Jan 6 09:40:18 2020 (r356407) +++ stable/10/usr.sbin/usbconfig/dump.h Mon Jan 6 09:40:59 2020 (r356408) @@ -35,6 +35,7 @@ void dump_device_info(struct libusb20_device *pdev, ui void dump_be_quirk_names(struct libusb20_backend *pbe); void dump_be_dev_quirks(struct libusb20_backend *pbe); void dump_device_desc(struct libusb20_device *pdev); +void dump_device_stats(struct libusb20_device *pdev); void dump_config(struct libusb20_device *pdev, uint8_t all_cfg); #endif /* _DUMP_H_ */ Modified: stable/10/usr.sbin/usbconfig/usbconfig.8 ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:40:18 2020 (r356407) +++ stable/10/usr.sbin/usbconfig/usbconfig.8 Mon Jan 6 09:40:59 2020 (r356408) @@ -1,6 +1,6 @@ .\" $FreeBSD$ .\" -.\" Copyright (c) 2008-2010 Hans Petter Selasky. All rights reserved. +.\" Copyright (c) 2008-2019 Hans Petter Selasky. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 16, 2019 +.Dd December 27, 2019 .Dt USBCONFIG 8 .Os .Sh NAME @@ -116,6 +116,8 @@ Display all the configuration descriptors. Display string descriptor at selected index. .It Cm dump_info Display summary information about the device. +.It Cm dump_stats +Display USB transfer statistics. .It Cm show_ifdrv Display the list of interface drivers (such as .Xr ukbd 4 Modified: stable/10/usr.sbin/usbconfig/usbconfig.c ============================================================================== --- stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:40:18 2020 (r356407) +++ stable/10/usr.sbin/usbconfig/usbconfig.c Mon Jan 6 09:40:59 2020 (r356408) @@ -80,6 +80,7 @@ struct options { uint8_t got_dump_curr_config:1; uint8_t got_dump_all_config:1; uint8_t got_dump_info:1; + uint8_t got_dump_stats:1; uint8_t got_show_iface_driver:1; uint8_t got_remove_device_quirk:1; uint8_t got_add_device_quirk:1; @@ -119,6 +120,7 @@ enum { T_DUMP_ALL_CONFIG_DESC, T_DUMP_STRING, T_DUMP_INFO, + T_DUMP_STATS, T_SUSPEND, T_RESUME, T_POWER_OFF, @@ -153,6 +155,7 @@ static const struct token token[] = { {"dump_all_config_desc", T_DUMP_ALL_CONFIG_DESC, 0}, {"dump_string", T_DUMP_STRING, 1}, {"dump_info", T_DUMP_INFO, 0}, + {"dump_stats", T_DUMP_STATS, 0}, {"show_ifdrv", T_SHOW_IFACE_DRIVER, 0}, {"suspend", T_SUSPEND, 0}, {"resume", T_RESUME, 0}, @@ -294,6 +297,7 @@ usage(void) " dump_all_config_desc" "\n" " dump_string " "\n" " dump_info" "\n" + " dump_stats" "\n" " show_ifdrv" "\n" " suspend" "\n" " resume" "\n" @@ -504,7 +508,8 @@ flush_command(struct libusb20_backend *pbe, struct opt opt->got_dump_device_desc || opt->got_dump_curr_config || opt->got_dump_all_config || - opt->got_dump_info); + opt->got_dump_info || + opt->got_dump_stats); if (opt->got_list || dump_any) { dump_device_info(pdev, @@ -525,6 +530,10 @@ flush_command(struct libusb20_backend *pbe, struct opt dump_device_desc(pdev); dump_config(pdev, 1); } + if (opt->got_dump_stats) { + printf("\n"); + dump_device_stats(pdev); + } if (dump_any) { printf("\n"); } @@ -747,6 +756,12 @@ main(int argc, char **argv) if (opt->got_dump_info) duplicate_option(argv[n]); opt->got_dump_info = 1; + opt->got_any++; + break; + case T_DUMP_STATS: + if (opt->got_dump_stats) + duplicate_option(argv[n]); + opt->got_dump_stats = 1; opt->got_any++; break; case T_DUMP_STRING: From owner-svn-src-stable@freebsd.org Mon Jan 6 09:50:44 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EB38F1FF135; Mon, 6 Jan 2020 09:50:44 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rrNh63L8z4VF5; Mon, 6 Jan 2020 09:50:44 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CB1F3C834; Mon, 6 Jan 2020 09:50:44 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069oiGW020716; Mon, 6 Jan 2020 09:50:44 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069oiAE020715; Mon, 6 Jan 2020 09:50:44 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060950.0069oiAE020715@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:50:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356410 - stable/12/sys/dev/hyperv/netvsc X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/hyperv/netvsc X-SVN-Commit-Revision: 356410 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:50:45 -0000 Author: hselasky Date: Mon Jan 6 09:50:44 2020 New Revision: 356410 URL: https://svnweb.freebsd.org/changeset/base/356410 Log: MFC r356201: Fix spelling. PR: 242891 Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/hyperv/netvsc/if_hn.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/hyperv/netvsc/if_hn.c ============================================================================== --- stable/12/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:49:20 2020 (r356409) +++ stable/12/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:50:44 2020 (r356410) @@ -1506,7 +1506,7 @@ hn_vf_rss_fixup(struct hn_softc *sc, bool reconf) strlcpy(ifrk.ifrk_name, vf_ifp->if_xname, sizeof(ifrk.ifrk_name)); error = vf_ifp->if_ioctl(vf_ifp, SIOCGIFRSSKEY, (caddr_t)&ifrk); if (error) { - if_printf(ifp, "%s SIOCGRSSKEY failed: %d\n", + if_printf(ifp, "%s SIOCGIFRSSKEY failed: %d\n", vf_ifp->if_xname, error); goto done; } From owner-svn-src-stable@freebsd.org Mon Jan 6 09:51:22 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C3CFB1FF1DC; Mon, 6 Jan 2020 09:51:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rrPQ4sSfz4VPb; Mon, 6 Jan 2020 09:51:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A1BBDC984; Mon, 6 Jan 2020 09:51:22 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069pMXX021532; Mon, 6 Jan 2020 09:51:22 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069pMuq021531; Mon, 6 Jan 2020 09:51:22 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060951.0069pMuq021531@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:51:22 +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: r356411 - stable/11/sys/dev/hyperv/netvsc X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/hyperv/netvsc X-SVN-Commit-Revision: 356411 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:51:22 -0000 Author: hselasky Date: Mon Jan 6 09:51:22 2020 New Revision: 356411 URL: https://svnweb.freebsd.org/changeset/base/356411 Log: MFC r356201: Fix spelling. PR: 242891 Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/hyperv/netvsc/if_hn.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/hyperv/netvsc/if_hn.c ============================================================================== --- stable/11/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:50:44 2020 (r356410) +++ stable/11/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:51:22 2020 (r356411) @@ -1506,7 +1506,7 @@ hn_vf_rss_fixup(struct hn_softc *sc, bool reconf) strlcpy(ifrk.ifrk_name, vf_ifp->if_xname, sizeof(ifrk.ifrk_name)); error = vf_ifp->if_ioctl(vf_ifp, SIOCGIFRSSKEY, (caddr_t)&ifrk); if (error) { - if_printf(ifp, "%s SIOCGRSSKEY failed: %d\n", + if_printf(ifp, "%s SIOCGIFRSSKEY failed: %d\n", vf_ifp->if_xname, error); goto done; } From owner-svn-src-stable@freebsd.org Mon Jan 6 09:51:55 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E9AB1FF2C5; Mon, 6 Jan 2020 09:51:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rrQ32qX6z4Vhn; Mon, 6 Jan 2020 09:51:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5C452C9B1; Mon, 6 Jan 2020 09:51:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 0069ptUn024599; Mon, 6 Jan 2020 09:51:55 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0069ptld024598; Mon, 6 Jan 2020 09:51:55 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001060951.0069ptld024598@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 6 Jan 2020 09:51:55 +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: r356412 - stable/10/sys/dev/hyperv/netvsc X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/sys/dev/hyperv/netvsc X-SVN-Commit-Revision: 356412 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 09:51:55 -0000 Author: hselasky Date: Mon Jan 6 09:51:54 2020 New Revision: 356412 URL: https://svnweb.freebsd.org/changeset/base/356412 Log: MFC r356201: Fix spelling. PR: 242891 Sponsored by: Mellanox Technologies Modified: stable/10/sys/dev/hyperv/netvsc/if_hn.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/hyperv/netvsc/if_hn.c ============================================================================== --- stable/10/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:51:22 2020 (r356411) +++ stable/10/sys/dev/hyperv/netvsc/if_hn.c Mon Jan 6 09:51:54 2020 (r356412) @@ -1502,7 +1502,7 @@ hn_vf_rss_fixup(struct hn_softc *sc, bool reconf) strlcpy(ifrk.ifrk_name, vf_ifp->if_xname, sizeof(ifrk.ifrk_name)); error = vf_ifp->if_ioctl(vf_ifp, SIOCGIFRSSKEY, (caddr_t)&ifrk); if (error) { - if_printf(ifp, "%s SIOCGRSSKEY failed: %d\n", + if_printf(ifp, "%s SIOCGIFRSSKEY failed: %d\n", vf_ifp->if_xname, error); goto done; } From owner-svn-src-stable@freebsd.org Mon Jan 6 21:14:27 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DF5D31EFA60; Mon, 6 Jan 2020 21:14:27 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s7Yb5fLZz4DRl; Mon, 6 Jan 2020 21:14:27 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BD2AC1C6BD; Mon, 6 Jan 2020 21:14:27 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006LERBH069982; Mon, 6 Jan 2020 21:14:27 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006LERon069981; Mon, 6 Jan 2020 21:14:27 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202001062114.006LERon069981@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Mon, 6 Jan 2020 21:14:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356427 - stable/12/sbin/fsck_ffs X-SVN-Group: stable-12 X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: stable/12/sbin/fsck_ffs X-SVN-Commit-Revision: 356427 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 21:14:28 -0000 Author: mckusick Date: Mon Jan 6 21:14:27 2020 New Revision: 356427 URL: https://svnweb.freebsd.org/changeset/base/356427 Log: MFC of 356063 Do not ask to use journal in fsck_ffs if journal is out of date Modified: stable/12/sbin/fsck_ffs/main.c stable/12/sbin/fsck_ffs/suj.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/fsck_ffs/main.c ============================================================================== --- stable/12/sbin/fsck_ffs/main.c Mon Jan 6 20:57:59 2020 (r356426) +++ stable/12/sbin/fsck_ffs/main.c Mon Jan 6 21:14:27 2020 (r356427) @@ -423,13 +423,11 @@ checkfilesys(char *filesys) */ if ((sblock.fs_flags & FS_SUJ) == FS_SUJ) { if ((sblock.fs_flags & FS_NEEDSFSCK) != FS_NEEDSFSCK && skipclean) { - if (preen || reply("USE JOURNAL")) { - if (suj_check(filesys) == 0) { - printf("\n***** FILE SYSTEM MARKED CLEAN *****\n"); - if (chkdoreload(mntp) == 0) - exit(0); - exit(4); - } + if (suj_check(filesys) == 0) { + printf("\n***** FILE SYSTEM MARKED CLEAN *****\n"); + if (chkdoreload(mntp) == 0) + exit(0); + exit(4); } printf("** Skipping journal, falling through to full fsck\n\n"); } Modified: stable/12/sbin/fsck_ffs/suj.c ============================================================================== --- stable/12/sbin/fsck_ffs/suj.c Mon Jan 6 20:57:59 2020 (r356426) +++ stable/12/sbin/fsck_ffs/suj.c Mon Jan 6 21:14:27 2020 (r356427) @@ -2709,6 +2709,8 @@ suj_check(const char *filesys) printf("** SU+J Recovering %s\n", filesys); if (suj_verifyino(jip) != 0) return (-1); + if (!preen && !reply("USE JOURNAL")) + return (-1); /* * Build a list of journal blocks in jblocks before parsing the * available journal blocks in with suj_read(). From owner-svn-src-stable@freebsd.org Mon Jan 6 21:23:15 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D4A851F0942; Mon, 6 Jan 2020 21:23:15 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47s7ll4cN8z4F5b; Mon, 6 Jan 2020 21:23:15 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 98FBA1C88D; Mon, 6 Jan 2020 21:23:15 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 006LNFxo076240; Mon, 6 Jan 2020 21:23:15 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 006LNF4W076234; Mon, 6 Jan 2020 21:23:15 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202001062123.006LNF4W076234@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Mon, 6 Jan 2020 21:23:15 +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: r356428 - stable/11/sbin/fsck_ffs X-SVN-Group: stable-11 X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: stable/11/sbin/fsck_ffs X-SVN-Commit-Revision: 356428 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 21:23:15 -0000 Author: mckusick Date: Mon Jan 6 21:23:14 2020 New Revision: 356428 URL: https://svnweb.freebsd.org/changeset/base/356428 Log: MFC of 356063 Do not ask to use journal in fsck_ffs if journal is out of date Modified: stable/11/sbin/fsck_ffs/main.c stable/11/sbin/fsck_ffs/suj.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/fsck_ffs/main.c ============================================================================== --- stable/11/sbin/fsck_ffs/main.c Mon Jan 6 21:14:27 2020 (r356427) +++ stable/11/sbin/fsck_ffs/main.c Mon Jan 6 21:23:14 2020 (r356428) @@ -420,13 +420,11 @@ checkfilesys(char *filesys) */ if ((sblock.fs_flags & FS_SUJ) == FS_SUJ) { if ((sblock.fs_flags & FS_NEEDSFSCK) != FS_NEEDSFSCK && skipclean) { - if (preen || reply("USE JOURNAL")) { - if (suj_check(filesys) == 0) { - printf("\n***** FILE SYSTEM MARKED CLEAN *****\n"); - if (chkdoreload(mntp) == 0) - exit(0); - exit(4); - } + if (suj_check(filesys) == 0) { + printf("\n***** FILE SYSTEM MARKED CLEAN *****\n"); + if (chkdoreload(mntp) == 0) + exit(0); + exit(4); } printf("** Skipping journal, falling through to full fsck\n\n"); } Modified: stable/11/sbin/fsck_ffs/suj.c ============================================================================== --- stable/11/sbin/fsck_ffs/suj.c Mon Jan 6 21:14:27 2020 (r356427) +++ stable/11/sbin/fsck_ffs/suj.c Mon Jan 6 21:23:14 2020 (r356428) @@ -2726,6 +2726,8 @@ suj_check(const char *filesys) printf("** SU+J Recovering %s\n", filesys); if (suj_verifyino(jip) != 0) return (-1); + if (!preen && !reply("USE JOURNAL")) + return (-1); /* * Build a list of journal blocks in jblocks before parsing the * available journal blocks in with suj_read(). From owner-svn-src-stable@freebsd.org Tue Jan 7 00:54:24 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 272881DD046; Tue, 7 Jan 2020 00:54:24 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sDRN0H72z4TLn; Tue, 7 Jan 2020 00:54:24 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04E5F1EEEB; Tue, 7 Jan 2020 00:54:24 +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 0070sN5A005204; Tue, 7 Jan 2020 00:54:23 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0070sNUu005203; Tue, 7 Jan 2020 00:54:23 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001070054.0070sNUu005203@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 7 Jan 2020 00:54:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356429 - stable/12/sys/dev/ioat X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/dev/ioat X-SVN-Commit-Revision: 356429 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 00:54:24 -0000 Author: mav Date: Tue Jan 7 00:54:23 2020 New Revision: 356429 URL: https://svnweb.freebsd.org/changeset/base/356429 Log: MFC r356216: Don't spin on cleanup_lock if we are not interrupt. If somebody else holds that lock, it will likely do the work for us. If it won't, then we return here later and retry. Under heavy load it allows to avoid lock congestion between interrupt and polling threads. Modified: stable/12/sys/dev/ioat/ioat.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/ioat/ioat.c ============================================================================== --- stable/12/sys/dev/ioat/ioat.c Mon Jan 6 21:23:14 2020 (r356428) +++ stable/12/sys/dev/ioat/ioat.c Tue Jan 7 00:54:23 2020 (r356429) @@ -788,7 +788,12 @@ ioat_process_events(struct ioat_softc *ioat, boolean_t uint32_t completed, chanerr; int error; - mtx_lock(&ioat->cleanup_lock); + if (intr) { + mtx_lock(&ioat->cleanup_lock); + } else { + if (!mtx_trylock(&ioat->cleanup_lock)) + return; + } /* * Don't run while the hardware is being reset. Reset is responsible From owner-svn-src-stable@freebsd.org Tue Jan 7 00:54:45 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C38431DD0CF; Tue, 7 Jan 2020 00:54:45 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sDRn4rWRz4TSl; Tue, 7 Jan 2020 00:54:45 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A18E01EEEC; Tue, 7 Jan 2020 00:54:45 +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 0070sjE2005280; Tue, 7 Jan 2020 00:54:45 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0070sjZN005279; Tue, 7 Jan 2020 00:54:45 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001070054.0070sjZN005279@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 7 Jan 2020 00:54: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: r356430 - stable/11/sys/dev/ioat X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/dev/ioat X-SVN-Commit-Revision: 356430 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 00:54:45 -0000 Author: mav Date: Tue Jan 7 00:54:45 2020 New Revision: 356430 URL: https://svnweb.freebsd.org/changeset/base/356430 Log: MFC r356216: Don't spin on cleanup_lock if we are not interrupt. If somebody else holds that lock, it will likely do the work for us. If it won't, then we return here later and retry. Under heavy load it allows to avoid lock congestion between interrupt and polling threads. Modified: stable/11/sys/dev/ioat/ioat.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/ioat/ioat.c ============================================================================== --- stable/11/sys/dev/ioat/ioat.c Tue Jan 7 00:54:23 2020 (r356429) +++ stable/11/sys/dev/ioat/ioat.c Tue Jan 7 00:54:45 2020 (r356430) @@ -682,7 +682,12 @@ ioat_process_events(struct ioat_softc *ioat, boolean_t uint32_t completed, chanerr; int error; - mtx_lock(&ioat->cleanup_lock); + if (intr) { + mtx_lock(&ioat->cleanup_lock); + } else { + if (!mtx_trylock(&ioat->cleanup_lock)) + return; + } /* * Don't run while the hardware is being reset. Reset is responsible From owner-svn-src-stable@freebsd.org Tue Jan 7 16:44:20 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 496951EC8C7; Tue, 7 Jan 2020 16:44:20 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdWS1F6hz4KWV; Tue, 7 Jan 2020 16:44:20 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 25D911D97; Tue, 7 Jan 2020 16:44:20 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007GiK4Y080290; Tue, 7 Jan 2020 16:44:20 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GiKg2080289; Tue, 7 Jan 2020 16:44:20 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071644.007GiKg2080289@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:44:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356446 - stable/12/sys/contrib/dev/ath/ath_hal/ar9300 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/contrib/dev/ath/ath_hal/ar9300 X-SVN-Commit-Revision: 356446 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:44:20 -0000 Author: bz Date: Tue Jan 7 16:44:19 2020 New Revision: 356446 URL: https://svnweb.freebsd.org/changeset/base/356446 Log: MFC r351327: athhal: disable unused function (big endian only) Disable ar9300_swap_tx_desc() for the moment. It is an unused function only tried to compile on big endian systems. Modified: stable/12/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c ============================================================================== --- stable/12/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c Tue Jan 7 16:07:30 2020 (r356445) +++ stable/12/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c Tue Jan 7 16:44:19 2020 (r356446) @@ -26,9 +26,11 @@ #include "ar9300/ar9300phy.h" #include "ah_devid.h" +#if 0 #if AH_BYTE_ORDER == AH_BIG_ENDIAN static void ar9300_swap_tx_desc(void *ds); #endif +#endif void ar9300_tx_req_intr_desc(struct ath_hal *ah, void *ds) @@ -174,6 +176,7 @@ ar9300_clear_dest_mask(struct ath_hal *ah, void *ds) } #endif +#if 0 #if AH_BYTE_ORDER == AH_BIG_ENDIAN /* XXX what words need swapping */ /* Swap transmit descriptor */ @@ -192,6 +195,7 @@ ar9300_swap_tx_desc(void *dsp) ds->status7 = __bswap32(ds->status7); ds->status8 = __bswap32(ds->status8); } +#endif #endif From owner-svn-src-stable@freebsd.org Tue Jan 7 16:47:26 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3DFFD1EC989; Tue, 7 Jan 2020 16:47:26 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdb20y5Yz4KfR; Tue, 7 Jan 2020 16:47:26 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 015831D9A; Tue, 7 Jan 2020 16:47:26 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007GlPSX080521; Tue, 7 Jan 2020 16:47:25 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GlPHa080518; Tue, 7 Jan 2020 16:47:25 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071647.007GlPHa080518@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:47:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356447 - stable/12/usr.bin/gprof X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/usr.bin/gprof X-SVN-Commit-Revision: 356447 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:47:26 -0000 Author: bz Date: Tue Jan 7 16:47:25 2020 New Revision: 356447 URL: https://svnweb.freebsd.org/changeset/base/356447 Log: MFC r351329: gprof: disable building of a.out components On arm64, riscv, and s390x disable building of aout components. This allows gprof to build on these architectures which never supported the legacy a.out binary format. Note: there might be more work needed for arm64 or risv and the MACHINE_ checks are based on what was use elsewhere in the tree at that time. Other will fix these parts with follow-up work. Modified: stable/12/usr.bin/gprof/Makefile stable/12/usr.bin/gprof/gprof.c stable/12/usr.bin/gprof/gprof.h Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/gprof/Makefile ============================================================================== --- stable/12/usr.bin/gprof/Makefile Tue Jan 7 16:44:19 2020 (r356446) +++ stable/12/usr.bin/gprof/Makefile Tue Jan 7 16:47:25 2020 (r356447) @@ -2,8 +2,14 @@ # $FreeBSD$ PROG= gprof -SRCS= gprof.c aout.c arcs.c dfn.c elf.c lookup.c hertz.c \ +SRCS= gprof.c arcs.c dfn.c elf.c lookup.c hertz.c \ printgprof.c printlist.c kernel.c + +.if ${MACHINE_ARCH} != "aarch64" && ${MACHINE_ARCH} != "riscv" && \ + ${MACHINE_ARCH} != "s390x" +SRCS+= aout.c +CFLAGS+= -DWITH_AOUT +.endif FILES= gprof.flat gprof.callg FILESDIR= ${SHAREDIR}/misc Modified: stable/12/usr.bin/gprof/gprof.c ============================================================================== --- stable/12/usr.bin/gprof/gprof.c Tue Jan 7 16:44:19 2020 (r356446) +++ stable/12/usr.bin/gprof/gprof.c Tue Jan 7 16:47:25 2020 (r356447) @@ -160,8 +160,11 @@ main(int argc, char **argv) * get information from the executable file. */ if ((Kflag && kernel_getnfile(a_outname, &defaultEs) == -1) || - (!Kflag && elf_getnfile(a_outname, &defaultEs) == -1 && - aout_getnfile(a_outname, &defaultEs) == -1)) + (!Kflag && elf_getnfile(a_outname, &defaultEs) == -1 +#ifdef WITH_AOUT + && aout_getnfile(a_outname, &defaultEs) == -1 +#endif + )) errx(1, "%s: bad format", a_outname); /* * sort symbol table. Modified: stable/12/usr.bin/gprof/gprof.h ============================================================================== --- stable/12/usr.bin/gprof/gprof.h Tue Jan 7 16:44:19 2020 (r356446) +++ stable/12/usr.bin/gprof/gprof.h Tue Jan 7 16:47:25 2020 (r356447) @@ -256,7 +256,9 @@ void addarc(nltype *, nltype *, long); bool addcycle(arctype **, arctype **); void addlist(struct stringlist *, char *); void alignentries(void); +#ifdef WITH_AOUT int aout_getnfile(const char *, char ***); +#endif int arccmp(arctype *, arctype *); arctype *arclookup(nltype *, nltype *); void asgnsamples(void); From owner-svn-src-stable@freebsd.org Tue Jan 7 16:49:50 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9527F1ECA4B; Tue, 7 Jan 2020 16:49:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sddp3TZXz4Kpb; Tue, 7 Jan 2020 16:49:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 72D381DB9; Tue, 7 Jan 2020 16:49:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Gno2U080694; Tue, 7 Jan 2020 16:49:50 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GnoOW080693; Tue, 7 Jan 2020 16:49:50 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071649.007GnoOW080693@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:49:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356448 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 356448 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:49:50 -0000 Author: bz Date: Tue Jan 7 16:49:50 2020 New Revision: 356448 URL: https://svnweb.freebsd.org/changeset/base/356448 Log: MFC r354416: m_pulldown(): Change an if () panic() into a KASSERT(). If we pass in a NULL mbuf to m_pulldown() we are in a bad situation already. There is no point in doing that check for production code. Change the if () panic() into a KASSERT. Modified: stable/12/sys/kern/uipc_mbuf2.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/uipc_mbuf2.c ============================================================================== --- stable/12/sys/kern/uipc_mbuf2.c Tue Jan 7 16:47:25 2020 (r356447) +++ stable/12/sys/kern/uipc_mbuf2.c Tue Jan 7 16:49:50 2020 (r356448) @@ -101,8 +101,8 @@ m_pulldown(struct mbuf *m, int off, int len, int *offp int writable; /* check invalid arguments. */ - if (m == NULL) - panic("m == NULL in m_pulldown()"); + KASSERT(m != NULL, ("%s: fix caller: m is NULL off %d len %d offp %p\n", + __func__, off, len, offp)); if (len > MCLBYTES) { m_freem(m); return NULL; /* impossible */ From owner-svn-src-stable@freebsd.org Tue Jan 7 16:49:57 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5E0BA1ECA88; Tue, 7 Jan 2020 16:49:57 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sddx1xL7z4Kw9; Tue, 7 Jan 2020 16:49:57 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3B98D1DBA; Tue, 7 Jan 2020 16:49:57 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Gnv6k080744; Tue, 7 Jan 2020 16:49:57 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GnvS1080743; Tue, 7 Jan 2020 16:49:57 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071649.007GnvS1080743@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:49: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: r356449 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 356449 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:49:57 -0000 Author: bz Date: Tue Jan 7 16:49:56 2020 New Revision: 356449 URL: https://svnweb.freebsd.org/changeset/base/356449 Log: MFC r354416: m_pulldown(): Change an if () panic() into a KASSERT(). If we pass in a NULL mbuf to m_pulldown() we are in a bad situation already. There is no point in doing that check for production code. Change the if () panic() into a KASSERT. Modified: stable/11/sys/kern/uipc_mbuf2.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/uipc_mbuf2.c ============================================================================== --- stable/11/sys/kern/uipc_mbuf2.c Tue Jan 7 16:49:50 2020 (r356448) +++ stable/11/sys/kern/uipc_mbuf2.c Tue Jan 7 16:49:56 2020 (r356449) @@ -99,8 +99,8 @@ m_pulldown(struct mbuf *m, int off, int len, int *offp int writable; /* check invalid arguments. */ - if (m == NULL) - panic("m == NULL in m_pulldown()"); + KASSERT(m != NULL, ("%s: fix caller: m is NULL off %d len %d offp %p\n", + __func__, off, len, offp)); if (len > MCLBYTES) { m_freem(m); return NULL; /* impossible */ From owner-svn-src-stable@freebsd.org Tue Jan 7 16:52:06 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B6D5F1ECC10; Tue, 7 Jan 2020 16:52:06 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdhQ4Ky5z4LK7; Tue, 7 Jan 2020 16:52:06 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 900A31F53; Tue, 7 Jan 2020 16:52:06 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Gq6EZ086206; Tue, 7 Jan 2020 16:52:06 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007Gq6EB086205; Tue, 7 Jan 2020 16:52:06 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071652.007Gq6EB086205@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:52:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356450 - stable/12/lib/libipsec X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/lib/libipsec X-SVN-Commit-Revision: 356450 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:52:06 -0000 Author: bz Date: Tue Jan 7 16:52:05 2020 New Revision: 356450 URL: https://svnweb.freebsd.org/changeset/base/356450 Log: MFC r354572: libipsec: correct a typo Correct a typo in the ipsec_errlist and replicated in a comment. No functional changes. Modified: stable/12/lib/libipsec/ipsec_strerror.c stable/12/lib/libipsec/ipsec_strerror.h Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libipsec/ipsec_strerror.c ============================================================================== --- stable/12/lib/libipsec/ipsec_strerror.c Tue Jan 7 16:49:56 2020 (r356449) +++ stable/12/lib/libipsec/ipsec_strerror.c Tue Jan 7 16:52:05 2020 (r356450) @@ -62,7 +62,7 @@ static const char *ipsec_errlist[] = { "Invalid key length", /*EIPSEC_INVAL_KEYLEN*/ "Invalid address family", /*EIPSEC_INVAL_FAMILY*/ "Invalid prefix length", /*EIPSEC_INVAL_PREFIXLEN*/ -"Invalid direciton", /*EIPSEC_INVAL_DIR*/ +"Invalid direction", /*EIPSEC_INVAL_DIR*/ "SPI range violation", /*EIPSEC_INVAL_SPI*/ "No protocol specified", /*EIPSEC_NO_PROTO*/ "No algorithm specified", /*EIPSEC_NO_ALGS*/ Modified: stable/12/lib/libipsec/ipsec_strerror.h ============================================================================== --- stable/12/lib/libipsec/ipsec_strerror.h Tue Jan 7 16:49:56 2020 (r356449) +++ stable/12/lib/libipsec/ipsec_strerror.h Tue Jan 7 16:52:05 2020 (r356450) @@ -52,7 +52,7 @@ extern void __ipsec_set_strerror(const char *); #define EIPSEC_INVAL_KEYLEN 14 /*invalid key length*/ #define EIPSEC_INVAL_FAMILY 15 /*invalid address family*/ #define EIPSEC_INVAL_PREFIXLEN 16 /*SPI range violation*/ -#define EIPSEC_INVAL_DIR 17 /*Invalid direciton*/ +#define EIPSEC_INVAL_DIR 17 /*Invalid direction*/ #define EIPSEC_INVAL_SPI 18 /*invalid prefixlen*/ #define EIPSEC_NO_PROTO 19 /*no protocol specified*/ #define EIPSEC_NO_ALGS 20 /*No algorithm specified*/ From owner-svn-src-stable@freebsd.org Tue Jan 7 16:52:16 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 931441ECC66; Tue, 7 Jan 2020 16:52:16 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdhc3SWtz4LRH; Tue, 7 Jan 2020 16:52:16 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 71CD21F5F; Tue, 7 Jan 2020 16:52:16 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007GqGVx086260; Tue, 7 Jan 2020 16:52:16 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GqG4C086259; Tue, 7 Jan 2020 16:52:16 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071652.007GqG4C086259@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:52:16 +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: r356451 - stable/11/lib/libipsec X-SVN-Group: stable-11 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/11/lib/libipsec X-SVN-Commit-Revision: 356451 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:52:16 -0000 Author: bz Date: Tue Jan 7 16:52:15 2020 New Revision: 356451 URL: https://svnweb.freebsd.org/changeset/base/356451 Log: MFC r354572: libipsec: correct a typo Correct a typo in the ipsec_errlist and replicated in a comment. No functional changes. Modified: stable/11/lib/libipsec/ipsec_strerror.c stable/11/lib/libipsec/ipsec_strerror.h Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libipsec/ipsec_strerror.c ============================================================================== --- stable/11/lib/libipsec/ipsec_strerror.c Tue Jan 7 16:52:05 2020 (r356450) +++ stable/11/lib/libipsec/ipsec_strerror.c Tue Jan 7 16:52:15 2020 (r356451) @@ -60,7 +60,7 @@ static const char *ipsec_errlist[] = { "Invalid key length", /*EIPSEC_INVAL_KEYLEN*/ "Invalid address family", /*EIPSEC_INVAL_FAMILY*/ "Invalid prefix length", /*EIPSEC_INVAL_PREFIXLEN*/ -"Invalid direciton", /*EIPSEC_INVAL_DIR*/ +"Invalid direction", /*EIPSEC_INVAL_DIR*/ "SPI range violation", /*EIPSEC_INVAL_SPI*/ "No protocol specified", /*EIPSEC_NO_PROTO*/ "No algorithm specified", /*EIPSEC_NO_ALGS*/ Modified: stable/11/lib/libipsec/ipsec_strerror.h ============================================================================== --- stable/11/lib/libipsec/ipsec_strerror.h Tue Jan 7 16:52:05 2020 (r356450) +++ stable/11/lib/libipsec/ipsec_strerror.h Tue Jan 7 16:52:15 2020 (r356451) @@ -50,7 +50,7 @@ extern void __ipsec_set_strerror(const char *); #define EIPSEC_INVAL_KEYLEN 14 /*invalid key length*/ #define EIPSEC_INVAL_FAMILY 15 /*invalid address family*/ #define EIPSEC_INVAL_PREFIXLEN 16 /*SPI range violation*/ -#define EIPSEC_INVAL_DIR 17 /*Invalid direciton*/ +#define EIPSEC_INVAL_DIR 17 /*Invalid direction*/ #define EIPSEC_INVAL_SPI 18 /*invalid prefixlen*/ #define EIPSEC_NO_PROTO 19 /*no protocol specified*/ #define EIPSEC_NO_ALGS 20 /*No algorithm specified*/ From owner-svn-src-stable@freebsd.org Tue Jan 7 16:54:44 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5E5B31ECF31; Tue, 7 Jan 2020 16:54:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdlS1sKDz4LkY; Tue, 7 Jan 2020 16:54:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3B2E41F81; Tue, 7 Jan 2020 16:54:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007Gsi0o086496; Tue, 7 Jan 2020 16:54:44 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007Gsing086495; Tue, 7 Jan 2020 16:54:44 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071654.007Gsing086495@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:54:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356453 - stable/12/usr.bin/netstat X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/usr.bin/netstat X-SVN-Commit-Revision: 356453 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:54:44 -0000 Author: bz Date: Tue Jan 7 16:54:43 2020 New Revision: 356453 URL: https://svnweb.freebsd.org/changeset/base/356453 Log: MFC r354639: netstat: igmp stats, error on unexpected information, not only warn The igmp stats tend to print two lines of warning for an unexpected version and length. Despite an invalid version and struct size it continues to try to do something with the data. Do not try to parse the remainder of the struct and error on warning. Note the underlying issue of the data not being available properly is still there and needs to be fixed seperately. Reported by: test cases, lwhsu Modified: stable/12/usr.bin/netstat/inet.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.bin/netstat/inet.c ============================================================================== --- stable/12/usr.bin/netstat/inet.c Tue Jan 7 16:53:51 2020 (r356452) +++ stable/12/usr.bin/netstat/inet.c Tue Jan 7 16:54:43 2020 (r356453) @@ -1229,10 +1229,12 @@ igmp_stats(u_long off, const char *name, int af1 __unu if (igmpstat.igps_version != IGPS_VERSION_3) { xo_warnx("%s: version mismatch (%d != %d)", __func__, igmpstat.igps_version, IGPS_VERSION_3); + return; } if (igmpstat.igps_len != IGPS_VERSION3_LEN) { xo_warnx("%s: size mismatch (%d != %d)", __func__, igmpstat.igps_len, IGPS_VERSION3_LEN); + return; } xo_open_container(name); From owner-svn-src-stable@freebsd.org Tue Jan 7 16:54:54 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 02DFB1ECF7E; Tue, 7 Jan 2020 16:54:54 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdld6GLRz4LrH; Tue, 7 Jan 2020 16:54:53 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D208F1F82; Tue, 7 Jan 2020 16:54:53 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007GsrZD086551; Tue, 7 Jan 2020 16:54:53 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GsrHq086550; Tue, 7 Jan 2020 16:54:53 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071654.007GsrHq086550@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:54: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: r356454 - stable/11/usr.bin/netstat X-SVN-Group: stable-11 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/11/usr.bin/netstat X-SVN-Commit-Revision: 356454 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:54:54 -0000 Author: bz Date: Tue Jan 7 16:54:53 2020 New Revision: 356454 URL: https://svnweb.freebsd.org/changeset/base/356454 Log: MFC r354639: netstat: igmp stats, error on unexpected information, not only warn The igmp stats tend to print two lines of warning for an unexpected version and length. Despite an invalid version and struct size it continues to try to do something with the data. Do not try to parse the remainder of the struct and error on warning. Note the underlying issue of the data not being available properly is still there and needs to be fixed seperately. Reported by: test cases, lwhsu Modified: stable/11/usr.bin/netstat/inet.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.bin/netstat/inet.c ============================================================================== --- stable/11/usr.bin/netstat/inet.c Tue Jan 7 16:54:43 2020 (r356453) +++ stable/11/usr.bin/netstat/inet.c Tue Jan 7 16:54:53 2020 (r356454) @@ -1330,10 +1330,12 @@ igmp_stats(u_long off, const char *name, int af1 __unu if (igmpstat.igps_version != IGPS_VERSION_3) { xo_warnx("%s: version mismatch (%d != %d)", __func__, igmpstat.igps_version, IGPS_VERSION_3); + return; } if (igmpstat.igps_len != IGPS_VERSION3_LEN) { xo_warnx("%s: size mismatch (%d != %d)", __func__, igmpstat.igps_len, IGPS_VERSION3_LEN); + return; } xo_open_container(name); From owner-svn-src-stable@freebsd.org Tue Jan 7 16:58:39 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BF5B31ED0E2; Tue, 7 Jan 2020 16:58:39 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdqz4kHYz4M75; Tue, 7 Jan 2020 16:58:39 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9D6051F96; Tue, 7 Jan 2020 16:58:39 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007GwdfO086927; Tue, 7 Jan 2020 16:58:39 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007GwdfY086926; Tue, 7 Jan 2020 16:58:39 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071658.007GwdfY086926@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 16:58:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356455 - stable/12/sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/net X-SVN-Commit-Revision: 356455 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 16:58:39 -0000 Author: bz Date: Tue Jan 7 16:58:39 2020 New Revision: 356455 URL: https://svnweb.freebsd.org/changeset/base/356455 Log: MFC r355070: Allow kernel to compile without BPF. r297816 added some bpf magic for VIMAGE unconditionally which no longer allows kernels to compile without bpf (but with other networking). Add the missing ifdef checks and allow a kernel to compile without bpf again. PR: 242136 Reported by: dave mischler.com Modified: stable/12/sys/net/if.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/net/if.c ============================================================================== --- stable/12/sys/net/if.c Tue Jan 7 16:54:53 2020 (r356454) +++ stable/12/sys/net/if.c Tue Jan 7 16:58:39 2020 (r356455) @@ -32,6 +32,7 @@ * $FreeBSD$ */ +#include "opt_bpf.h" #include "opt_inet6.h" #include "opt_inet.h" @@ -1244,16 +1245,20 @@ static void if_vmove(struct ifnet *ifp, struct vnet *new_vnet) { struct if_clone *ifc; +#ifdef DEV_BPF u_int bif_dlt, bif_hdrlen; +#endif void *old; int rc; +#ifdef DEV_BPF /* * if_detach_internal() will call the eventhandler to notify * interface departure. That will detach if_bpf. We need to * safe the dlt and hdrlen so we can re-attach it later. */ bpf_get_bp_params(ifp->if_bpf, &bif_dlt, &bif_hdrlen); +#endif /* * Detach from current vnet, but preserve LLADDR info, do not @@ -1300,8 +1305,10 @@ if_vmove(struct ifnet *ifp, struct vnet *new_vnet) if_attach_internal(ifp, 1, ifc); +#ifdef DEV_BPF if (ifp->if_bpf == NULL) bpfattach(ifp, bif_dlt, bif_hdrlen); +#endif CURVNET_RESTORE(); } From owner-svn-src-stable@freebsd.org Tue Jan 7 17:02:50 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4C7B41ED35A; Tue, 7 Jan 2020 17:02:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sdwp1LPyz4MWb; Tue, 7 Jan 2020 17:02:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 29595218F; Tue, 7 Jan 2020 17:02:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007H2oLE092416; Tue, 7 Jan 2020 17:02:50 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007H2ol8092415; Tue, 7 Jan 2020 17:02:50 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001071702.007H2ol8092415@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Tue, 7 Jan 2020 17:02: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: r356456 - stable/11/sys/net X-SVN-Group: stable-11 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/11/sys/net X-SVN-Commit-Revision: 356456 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 17:02:50 -0000 Author: bz Date: Tue Jan 7 17:02:49 2020 New Revision: 356456 URL: https://svnweb.freebsd.org/changeset/base/356456 Log: MFC r355070: Allow kernel to compile without BPF. r297816 added some bpf magic for VIMAGE unconditionally which no longer allows kernels to compile without bpf (but with other networking). Add the missing ifdef checks and allow a kernel to compile without bpf again. PR: 242136 Reported by: dave mischler.com MFC after: 2 weeks Modified: stable/11/sys/net/if.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/net/if.c ============================================================================== --- stable/11/sys/net/if.c Tue Jan 7 16:58:39 2020 (r356455) +++ stable/11/sys/net/if.c Tue Jan 7 17:02:49 2020 (r356456) @@ -31,6 +31,7 @@ */ #include "opt_compat.h" +#include "opt_bpf.h" #include "opt_inet6.h" #include "opt_inet.h" @@ -1201,15 +1202,19 @@ static void if_vmove(struct ifnet *ifp, struct vnet *new_vnet) { struct if_clone *ifc; +#ifdef DEV_BPF u_int bif_dlt, bif_hdrlen; +#endif int rc; +#ifdef DEV_BPF /* * if_detach_internal() will call the eventhandler to notify * interface departure. That will detach if_bpf. We need to * safe the dlt and hdrlen so we can re-attach it later. */ bpf_get_bp_params(ifp->if_bpf, &bif_dlt, &bif_hdrlen); +#endif /* * Detach from current vnet, but preserve LLADDR info, do not @@ -1250,8 +1255,10 @@ if_vmove(struct ifnet *ifp, struct vnet *new_vnet) if_attach_internal(ifp, 1, ifc); +#ifdef DEV_BPF if (ifp->if_bpf == NULL) bpfattach(ifp, bif_dlt, bif_hdrlen); +#endif CURVNET_RESTORE(); } From owner-svn-src-stable@freebsd.org Tue Jan 7 18:08:17 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C5EC01EE755; Tue, 7 Jan 2020 18:08:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sgNK5Kzhz4QYC; Tue, 7 Jan 2020 18:08:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AEE122CFD; Tue, 7 Jan 2020 18:08:17 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007I8HoA030446; Tue, 7 Jan 2020 18:08:17 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007I8Gq5030436; Tue, 7 Jan 2020 18:08:16 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001071808.007I8Gq5030436@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 18:08:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356460 - in stable/12: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contri... X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: . contrib/compiler-rt contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/builtin... X-SVN-Commit-Revision: 356460 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 18:08:17 -0000 Author: dim Date: Tue Jan 7 18:08:09 2020 New Revision: 356460 URL: https://svnweb.freebsd.org/changeset/base/356460 Log: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.0 final release r372316. (NOTE: This does not yet consolidate all the llvm project sources under contrib/llvm-project (e.g., MFC r355940), due to Subversion limitations. It will be done in a follow-up MFC.) MFC r348610 (by emaste): build llvm-ar and llvm-nm with Clang (promote out of CLANG_EXTRAS) To facilitate experimentation with LTO we require an ar that supports LLVM IR, and to a lesser degree also an nm. As a first step always install llvm-ar and llvm-nm. Sponsored by: The FreeBSD Foundation MFC r350467 (by luporl): [PPC64] Backport fix for missing IRELATIVE relocations This is a backport of LLVM commit 8331f61a51a7a0a1efbf5ed398e181593023d151, llvm-svn: 353981: ELF: Allow GOT relocs pointing to non-preemptable ifunc to resolve to an IRELATIVE where possible. This is needed in order to make ifuncs work correctly on PPC64. It fixes an issue with lld, in which it would skip emitting necessary IRELATIVE relocations. Without this change, indirect calls to ifuncs would result in a segmentation fault, in static binaries or when defined in the main binary (outside shared libraries). This change also reverts the local "Preserve relocations against ifuncs when -zifunc-noplt" commit and replaces it by its upstream version, as part of the merge. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D21102 MFC r351662 (by emaste): lldb: shorten thread names to make logs easier to follow lldb prepends the thread name to log entries, and the existing thread name for the FreeBSD ProcessMonitor thread was longer than the kernel's supported thread name length, and so was truncated. This made logs hard to read, as the truncated thread name ran into the log message. Shorten "lldb.process.freebsd.operation" to just "freebsd.op" so that logs are more readable. (Upstreaming to lldb still to be done). MFC r352095 (by emaste): compiler-rt: use more __sanitizer_time_t on FreeBSD A few structs were using long for time_t members. Obtained from: LLVM r370755 MFC r352096 (by emaste): compiler-rt: use 64-bit time_t for all FreeBSD archs except i386 Obtained from: LLVM r370756 MFC r352167 (by imp): Remove dir empty since r276851 MFC r352168 (by imp): Remove dirs empty since r280031 MFC r352169 (by imp): Remove dir empty since r314564 MFC r352170 (by imp): Remove dir empty since r327952 MFC r352171 (by imp): Remove dirs (and their now-empty parents) empty since r344779 MFC r352792 (by emaste): compiler-rt: correct RISC-V struct_kernel_stat64_sz The value of struct_kernel_stat64_sz introduced by review D5021 for RISC-V was incorrect. Also add a __riscv_xlen == 64 conditional as the 32-bit ABI is not yet finalized. Submitted by: Luís Marques Differential Revision: https://reviews.freebsd.org/D21684 MFC r353018 (by kevans): clang: use -mxgot for 32-bit mips Various bits in usr.bin/clang/* will fail to compile without -mxgot due to truncated relocations. -mxgot entails a speed penalty, but I suspect we don't care as much about compiler performance in 32-bit mips land. Reviewed by: arichardson Differential Revision: https://reviews.freebsd.org/D21698 MFC r353358: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.0 final release r372316. Release notes for llvm, clang, lld and libc++ 9.0.0 are available here: https://releases.llvm.org/9.0.0/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/9.0.0/projects/libcxx/docs/ReleaseNotes.html PR: 240629 MFC r353363: Put in a band-aid fix for lldb 9 exiting with "Expected must be checked before access or destruction" when launching executables, while we sort this out with upstream. Reported by: jbeich PR: 241137 MFC r353415: Revert r353363 in preparation for applying upstream fix: Put in a band-aid fix for lldb 9 exiting with "Expected must be checked before access or destruction" when launching executables, while we sort this out with upstream. PR: 241137 MFC r353416: Pull in r374444 from upstream lldb trunk (by me): Fix process launch failure on FreeBSD after r365761 Summary: After rLLDB365761, and with `LLVM_ENABLE_ABI_BREAKING_CHECKS` enabled, launching any process on FreeBSD crashes lldb with: ``` Expected must be checked before access or destruction. Expected value was in success state. (Note: Expected values in success mode must still be checked prior to being destroyed). ``` This is because `m_operation_thread` and `m_monitor_thread` were wrapped in `llvm::Expected<>`, but this requires the objects to be correctly initialized before accessing them. To fix the crashes, use `llvm::Optional<>` for the members (as indicated by labath), and use local variables to store the return values of `LaunchThread` and `StartMonitoringChildProcess`. Then, only assign to the member variables after checking if the return values indicated success. Reviewers: devnexen, emaste, MaskRay, mgorny Reviewed By: devnexen Subscribers: jfb, labath, krytarowski, lldb-commits Differential Revision: https://reviews.llvm.org/D68723 PR: 241137 MFC r353579 (by jhb): Use __FreeBSD_version to determine if gets() has been removed. GCC compilers set __FreeBSD__ statically to a build-time determined targeted version (which in ports always matches the build host's version). This means that when building any version (12 or 13, etc.) of riscv or some other architecture via GCC on a 12.x host, __FreeBSD__ will always be set to 12. As a result, __FreeBSD__ cannot be used to reliably detect the target FreeBSD version being built. Instead, __FreeBSD_version from either (in the kernel) or (in userland) should be used. This changes the gets() test in libc++ to use __FreeBSD_version from . Reported by: jenkins (riscv64 and amd64-gcc) Reviewed by: dim, imp Differential Revision: https://reviews.freebsd.org/D22034 MFC r353711 (by mhorne): Fix build of LLVM RISC-V backend Reviewed by: dim MFC with: r353358 Differential Revision: https://reviews.freebsd.org/D21963 MFC r353738: Pull in r372651 from upstream lld trunk (by Simon Atanasyan): [mips] Support elf32btsmipn32_fbsd / elf32ltsmipn32_fbsd emulations Patch by Kyle Evans. Requested by: kevans MFC r353739: Pull in r374154 from upstream clang trunk (by Simon Atanasyan): [mips] Set default float ABI to "soft" on FreeBSD Initial patch by Kyle Evans. Fix PR43596 Requested by: kevans MFC r353936: Bump clang's default target CPU for the i386 architecture (aka "x86") to i686, as per the discussion on the freebsd-arch mailing list. Earlier in r352030, I had already bumped it to i586, to work around missing atomic 64 bit functions for the i386 architecture. Relnotes: yes MFC r354097: Pull in r372186 from upstream llvm trunk (by Eli Friedman): [ARM] VFPv2 only supports 16 D registers. r361845 changed the way we handle "D16" vs. "D32" targets; there used to be a negative "d16" which removed instructions from the instruction set, and now there's a "d32" feature which adds instructions to the instruction set. This is good, but there was an oversight in the implementation: the behavior of VFPv2 was changed. In particular, the "vfp2" feature was changed to imply "d32". This is wrong: VFPv2 only supports 16 D registers. In practice, this means if you specify -mfpu=vfpv2, the compiler will generate illegal instructions. This patch gets rid of "vfp2d16" and "vfp2d16sp", and fixes "vfp2" and "vfp2sp" so they don't imply "d32". Differential Revision: https://reviews.llvm.org/D67375 Pull in r372187 from upstream clang trunk (by Eli Friedman): [ARM] Update clang for removal of vfp2d16 and vfp2d16sp Matching fix for https://reviews.llvm.org/D67375 (r372186). Differential Revision: https://reviews.llvm.org/D67467 This should fix clang generating invalid opcodes for floating point operations on armv6. Requested by: mmel MFC r354146: Pull in r373338 from upstream llvm trunk (by Simon Pilgrim): Revert rL349624 : Let TableGen write output only if it changed, instead of doing so in cmake, attempt 2 Differential Revision: https://reviews.llvm.org/D55842 ----------------- As discussed on PR43385 this is causing Visual Studio msbuilds to perpetually rebuild all tablegen generated files Pull in r373664 from upstream llvm trunk (by Nico Weber): Reland r349624: Let TableGen write output only if it changed, instead of doing so in cmake Move the write-if-changed logic behind a flag and don't pass it with the MSVC generator. msbuild doesn't have a restat optimization, so not doing write-if-change there doesn't have a cost, and it should fix whatever causes PR43385. This should fix the scenario where an incremental build from before r353358 (the clang 9.0.0 upgrade) to r353358 or later fails to update the timestamp of the generated lib/clang/headers/arm_fp16.h header. After such a build, installing world from read-only source and object directories would attempt to generate the header again, leading to "clang-tblgen: error opening arm_fp16.h.d:Read-only file system". Reported by: avg, np PR: 241402 MFC r354339: Merge commit 97e362607 from llvm git (by Nemanja Ivanovic): [PowerPC] Do not emit HW loop if the body contains calls to lrint/lround These two intrinsics are lowered to calls so should prevent the formation of CTR loops. In a subsequent patch, we will handle all currently known intrinsics and prevent the formation of HW loops if any unknown intrinsics are encountered. Differential revision: https://reviews.llvm.org/D68841 This should fix an "invalid CRT loop" assertion when building the www/node port for powerpc64. Requested by: Alfredo Dal'Ava Júnior MFC r354347 (by cem): Fix llvm-libunwind userspace build on ARM GCC's libgcc exports a few ARM-specific symbols for ARM EABI, AEABI, or EHABI or whatever it's called. Export the same ones from LLVM-libunwind's libgcc_s, on ARM. As part of this, convert libgcc_s from a direct Version.map to one constructed from component Symbol.map files. This allows the ARM-specific Symbol.map to be included only on ARM. Fix ARM-only oddities in struct name/aliases in LLVM-libunwind to match non-ARM definitions and ARM-specific expectations in libcxxrt / libcompiler_rt. No functional change intended for non-ARM architectures. This commit does not actually flip the switch for ARM defaults from libgcc to llvm-libunwind, but makes it possible (to compile, anyway). MFC r354418 (by cem): clang: Enable unwind tables on !amd64 There doesn't seem to be much sense in defaulting "on" unwind tables on amd64 and not on other arches. It causes surprising differences between platforms, such as the PR below. Prior to this change, FreeBSD inherited the default implementation of the method from the Gnu.h Generic_Elf => Generic_GCC parent class, which returned true only for amd64 targets. Override that and opt on always, similar to, e.g., NetBSD. PR: 241562 Reported by: lwhsu Reviewed by: dim Discussed with: emaste Relnotes: yes Differential Revision: https://reviews.freebsd.org/D22252 MFC r354429: Merge commit 8e34dd941 from llvm git (by Sanjay Patel): [x86] avoid crashing when splitting AVX stores with non-simple type (PR43916) The store splitting transform was assuming a simple type (MVT), but that's not necessarily the case as shown in the test. This should fix 'Assertion failed: (isSimple() && "Expected a SimpleValueType!")' when building the security/openssl111 port targeting a CPU that supports AVX, but not AVX2, such as sandybridge. PR: 241747 MFC r354469: Merge commit f596f4507 from llvm git (by Sam Elliott): [RISCV] Add Custom Parser for Atomic Memory Operands Summary: GCC Accepts both (reg) and 0(reg) for atomic instruction memory operands. These instructions do not allow for an offset in their encoding, so in the latter case, the 0 is silently dropped. Due to how we have structured the RISCVAsmParser, the easiest way to add support for parsing this offset is to add a custom AsmOperand and parser. This parser drops all the parens, and just keeps the register. This commit also adds a custom printer for these operands, which matches the GCC canonical printer, printing both `(a0)` and `0(a0)` as `(a0)`. Reviewers: asb, lewis-revill Reviewed By: asb Subscribers: s.egerton, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, jfb, PkmX, jocewei, psnobl, benna, Jim, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65205 llvm-svn: 367553 Merge commit f596f4507 from llvm git (by Sam Elliott): [RISCV] Add FreeBSD targets Reviewers: asb Reviewed By: asb Subscribers: simoncook, s.egerton, lenary, psnobl, benna, mhorne, emaste, kito-cheng, shiva0217, rogfer01, rkruppe, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57795 Patch by James Clarke (jrtc27) llvm-svn: 367557 Merge commit f596f4507 from llvm git (by Hsiangkai Wang): [DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame. It is necessary to generate fixups in .debug_frame or .eh_frame as relaxation is enabled due to the address delta may be changed after relaxation. There is an opcode with 6-bits data in debug frame encoding. So, we also need 6-bits fixup types. Differential Revision: https://reviews.llvm.org/D58335 llvm-svn: 366524 Merge commit f596f4507 from llvm git (by Hsiangkai Wang): [DebugInfo] Some fields do not need relocations even relax is enabled. In debug frame information, some fields, e.g., Length in CIE/FDE and Offset in FDE are attributes to describe the structure of CIE/FDE. They are not related to the relaxed code. However, these attributes are symbol differences. So, in current design, these attributes will be filled as zero and LLVM generates relocations for them. We only need to generate relocations for symbols in executable sections. So, if the symbols are not located in executable sections, we still evaluate their values under relaxation. Differential Revision: https://reviews.llvm.org/D61584 llvm-svn: 366531 Merge commit f596f4507 from llvm git (by Alex Bradbury): [RISCV] Don't force absolute FK_Data_X fixups to relocs The current behavior of shouldForceRelocation forces relocations for the majority of fixups when relaxation is enabled. This makes sense for fixups which incorporate symbols but is unnecessary for simple data fixups where the fixup target is already resolved to an absolute value. Differential Revision: https://reviews.llvm.org/D63404 Patch by Edward Jones. llvm-svn: 369257 Merge commit f596f4507 from llvm git (by Alex Bradbury): [RISCV] Implement getExprForFDESymbol to ensure RISCV_32_PCREL is used for the FDE location Follow binutils in using RISCV_32_PCREL for the FDE initial location. As explained in the relevant binutils commit , the ADD/SUB pair of relocations is problematic in the presence of linker relaxation. This patch has the same end goal as D64715 but includes test changes and avoids adding a new global VariantKind to MCExpr.h (preferring RISCVMCExpr VKs like the rest of the RISC-V backend). Differential Revision: https://reviews.llvm.org/D66419 llvm-svn: 369375 This series of merges will permit riscv64 kernels and riscv64sf worlds to build with clang instead of gcc (but still using the bfd linker). Requested by: jhb Obtained from: https://github.com/freebsd/freebsd/compare/master...bsdjhb:riscv_clang MFC r354662 (by jhb): Sync target triple generation with the version in Makefile.inc1. Reviewed by: dim Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D22333 MFC r354692 (by emaste): llvm: use AT_EXECPATH from ELF auxiliary vectors for getExecutablePath /proc/curproc/file and the KERN_PROC_PATHNAME sysctl may not return the desired path if there are multiple hardlinks to the file. PR: 241932 Tested by: ler Sponsored by: The FreeBSD Foundation MFC r354707 (by emaste): llvm: use elf_aux_info to get executable's path, if available Obtained from: LLVM a0a38b81ea MFC with: r354692 Sponsored by: The FreeBSD Foundation MFC r354979: Merge commit 7bed381ea from llvm git (by Simon Atanasyan): [mips] Implement Octeon+ `saa` and `saad` instructions `saa` and `saad` are 32-bit and 64-bit store atomic add instructions. memory[base] = memory[base] + rt These instructions are available for "Octeon+" CPU. The patch adds support for both instructions to MIPS assembler and diassembler and introduces new CPU type - "octeon+". Next patches will implement `.set arch=octeon+` directive and `AFL_EXT_OCTEONP` ISA extension flag support. Differential Revision: https://reviews.llvm.org/D69849 This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354980: Merge commit 3718102d4 from llvm git (by Simon Atanasyan): [mips] Support `octeon+` CPU in the `.set arch=` directive Differential Revision: https://reviews.llvm.org/D69850 This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354981: Merge commit bf996f761 from llvm git (by Simon Atanasyan): [mips] Write `AFL_EXT_OCTEONP` flag to the `.MIPS.abiflags` section Differential Revision: https://reviews.llvm.org/D69851 This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354982: Merge commit 3552d3e0f from llvm git (by Simon Atanasyan): [mips] Add `octeon+` to the list of CPUs accepted by the driver This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354983: Merge commit e578d0fd2 from llvm git (by Simon Atanasyan): [mips] Fix `__mips_isa_rev` macros value for Octeon CPU This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354984: Merge commit 0d14656b9 from llvm git (by Simon Atanasyan): [mips] Set __OCTEON__ macros This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r354985: Merge commit a751f557d from llvm git (by Simon Atanasyan): [mips] Set macros for Octeon+ CPU This is one of the upstream changes needed for adding support for the OCTEON+ CPU type, so that we can test Clang builds using the most commonly available FreeBSD/mips64 reference platform, the Edge Router Lite. Requested by: kevans MFC r355397: Merge commit 241cbf201 from llvm git (by Nemanja Ivanovic): [PowerPC] Fix crash in peephole optimization When converting reg+reg shifts to reg+imm rotates, we neglect to consider the CodeGenOnly versions of the 32-bit shift mnemonics. This means we produce a rotate with missing operands which causes a crash. Committing this fix without review since it is non-controversial that the list of mnemonics to consider should include the 64-bit aliases for the exact mnemonics. Fixes PR44183. This should fix "Assertion failed: (idx < size()), function operator[], file /usr/src/contrib/llvm/include/llvm/ADT/SmallVector.h, line 153" when building the graphics/mesa-dri port for the PowerPC64 ELFv2 ABI. Reported by: Alfredo Dal'Ava Júnior MFC r355602: Add a few missed source files to libllvm, for the MK_LLVM_TARGET_BPF=yes case. Otherwise, linking of clang and other llvm based executables would complain about missing symbols. Reported by: rstone MFC r355645 (by cem): arm: libgcc_s: Fix ABI breakage introduced in r354347 Provide the symbol version for llvm-libunwind's _Unwind_Backtrace that libgcc has historically provided on arm, in addition to the (default) standard version used on all other arch. Reported by: mmel MFC r355803 (by mmel): Fix LLVM libunwnwind _Unwind_Backtrace symbol version for ARM. In original GNU libgcc, _Unwind_Backtrace is published with GCC_3.3 version for all architectures but ARM. For ARM should be publishes with GCC_4.3.0 version. This was originally omitted in r255095, fixed in r318024 and omitted aging in LLVM libunwind implementation in r354347. For ARM _Unwind_Backtrace should be published as default with GCC_4.3.0 version , (because this is right original version) and again as normal(not-default) with GCC_3.3 version (to maintain ABI compatibility compiled/linked with wrong pre r318024 libgcc) PR: 233664 Added: stable/12/contrib/compiler-rt/FREEBSD-Xlist - copied unchanged from r353358, head/contrib/compiler-rt/FREEBSD-Xlist stable/12/contrib/compiler-rt/lib/asan/asan_interceptors_vfork.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/asan/asan_interceptors_vfork.S stable/12/contrib/compiler-rt/lib/asan/asan_mapping_sparc64.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/asan/asan_mapping_sparc64.h stable/12/contrib/compiler-rt/lib/cfi/cfi.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/cfi/cfi.cpp stable/12/contrib/compiler-rt/lib/crt/ - copied from r353358, head/contrib/compiler-rt/lib/crt/ stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerFork.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/fuzzer/FuzzerFork.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerFork.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/fuzzer/FuzzerFork.h stable/12/contrib/compiler-rt/lib/fuzzer/utils/ - copied from r353358, head/contrib/compiler-rt/lib/fuzzer/utils/ stable/12/contrib/compiler-rt/lib/gwp_asan/ - copied from r353358, head/contrib/compiler-rt/lib/gwp_asan/ stable/12/contrib/compiler-rt/lib/hwasan/hwasan.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_interceptors_vfork.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_interceptors_vfork.S stable/12/contrib/compiler-rt/lib/hwasan/hwasan_linux.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_linux.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_malloc_bisect.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_malloc_bisect.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_report.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_report.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_thread.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cpp - copied unchanged from r353358, head/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cpp stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformWindows.c - copied unchanged from r353358, head/contrib/compiler-rt/lib/profile/InstrProfilingPlatformWindows.c stable/12/contrib/compiler-rt/lib/safestack/safestack_platform.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/safestack/safestack_platform.h stable/12/contrib/compiler-rt/lib/safestack/safestack_util.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/safestack/safestack_util.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_hash.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_hash.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cc - copied unchanged from r353358, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cc stable/12/contrib/compiler-rt/lib/scudo/standalone/ - copied from r353358, head/contrib/compiler-rt/lib/scudo/standalone/ stable/12/contrib/compiler-rt/lib/tsan/benchmarks/func_entry_exit.cc - copied unchanged from r353358, head/contrib/compiler-rt/lib/tsan/benchmarks/func_entry_exit.cc stable/12/contrib/compiler-rt/lib/tsan/benchmarks/mop.cc - copied unchanged from r353358, head/contrib/compiler-rt/lib/tsan/benchmarks/mop.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_dispatch_defs.h - copied unchanged from r353358, head/contrib/compiler-rt/lib/tsan/rtl/tsan_dispatch_defs.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch.cc - copied unchanged from r353358, head/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch.cc stable/12/contrib/libc++/FREEBSD-Xlist - copied unchanged from r353358, head/contrib/libc++/FREEBSD-Xlist stable/12/contrib/libc++/include/fenv.h - copied unchanged from r353358, head/contrib/libc++/include/fenv.h stable/12/contrib/libc++/src/CMakeLists.txt - copied unchanged from r353358, head/contrib/libc++/src/CMakeLists.txt stable/12/contrib/libc++/src/condition_variable_destructor.cpp - copied unchanged from r353358, head/contrib/libc++/src/condition_variable_destructor.cpp stable/12/contrib/libc++/src/mutex_destructor.cpp - copied unchanged from r353358, head/contrib/libc++/src/mutex_destructor.cpp stable/12/contrib/libc++/src/support/runtime/stdexcept_default.ipp - copied unchanged from r353358, head/contrib/libc++/src/support/runtime/stdexcept_default.ipp stable/12/contrib/libc++/src/support/runtime/stdexcept_vcruntime.ipp - copied unchanged from r353358, head/contrib/libc++/src/support/runtime/stdexcept_vcruntime.ipp stable/12/contrib/libunwind/FREEBSD-Xlist - copied unchanged from r353358, head/contrib/libunwind/FREEBSD-Xlist stable/12/contrib/llvm/include/llvm-c/Remarks.h - copied unchanged from r353358, head/contrib/llvm/include/llvm-c/Remarks.h stable/12/contrib/llvm/include/llvm/ADT/fallible_iterator.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/ADT/fallible_iterator.h stable/12/contrib/llvm/include/llvm/Analysis/DomTreeUpdater.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Analysis/DomTreeUpdater.h stable/12/contrib/llvm/include/llvm/Analysis/VecFuncs.def - copied unchanged from r353358, head/contrib/llvm/include/llvm/Analysis/VecFuncs.def stable/12/contrib/llvm/include/llvm/BinaryFormat/Minidump.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/BinaryFormat/Minidump.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MinidumpConstants.def - copied unchanged from r353358, head/contrib/llvm/include/llvm/BinaryFormat/MinidumpConstants.def stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPackDocument.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/BinaryFormat/MsgPackDocument.h stable/12/contrib/llvm/include/llvm/BinaryFormat/XCOFF.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/BinaryFormat/XCOFF.h stable/12/contrib/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h stable/12/contrib/llvm/include/llvm/Bitstream/ - copied from r353358, head/contrib/llvm/include/llvm/Bitstream/ stable/12/contrib/llvm/include/llvm/CodeGen/CSEConfigBase.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/CodeGen/CSEConfigBase.h stable/12/contrib/llvm/include/llvm/CodeGen/MIRParser/MIParser.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/CodeGen/MIRParser/MIParser.h stable/12/contrib/llvm/include/llvm/CodeGen/Register.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/CodeGen/Register.h stable/12/contrib/llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h stable/12/contrib/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h stable/12/contrib/llvm/include/llvm/DebugInfo/GSYM/ - copied from r353358, head/contrib/llvm/include/llvm/DebugInfo/GSYM/ stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h stable/12/contrib/llvm/include/llvm/Demangle/DemangleConfig.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Demangle/DemangleConfig.h stable/12/contrib/llvm/include/llvm/Demangle/README.txt - copied unchanged from r353358, head/contrib/llvm/include/llvm/Demangle/README.txt stable/12/contrib/llvm/include/llvm/ExecutionEngine/JITLink/ - copied from r353358, head/contrib/llvm/include/llvm/ExecutionEngine/JITLink/ stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/OrcV1Deprecation.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/ExecutionEngine/OrcV1Deprecation.h stable/12/contrib/llvm/include/llvm/IR/RemarkStreamer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/IR/RemarkStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfoXCOFF.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MC/MCAsmInfoXCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCSectionXCOFF.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MC/MCSectionXCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCSymbolXCOFF.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MC/MCSymbolXCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCXCOFFObjectWriter.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MC/MCXCOFFObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCXCOFFStreamer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MC/MCXCOFFStreamer.h stable/12/contrib/llvm/include/llvm/MCA/Stages/MicroOpQueueStage.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/MCA/Stages/MicroOpQueueStage.h stable/12/contrib/llvm/include/llvm/Object/Minidump.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Object/Minidump.h stable/12/contrib/llvm/include/llvm/Object/RelocationResolver.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Object/RelocationResolver.h stable/12/contrib/llvm/include/llvm/Object/WindowsMachineFlag.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Object/WindowsMachineFlag.h stable/12/contrib/llvm/include/llvm/Object/XCOFFObjectFile.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Object/XCOFFObjectFile.h stable/12/contrib/llvm/include/llvm/ObjectYAML/MinidumpYAML.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/ObjectYAML/MinidumpYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/XCOFFYAML.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/ObjectYAML/XCOFFYAML.h stable/12/contrib/llvm/include/llvm/Remarks/ - copied from r353358, head/contrib/llvm/include/llvm/Remarks/ stable/12/contrib/llvm/include/llvm/Support/CRC.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/CRC.h stable/12/contrib/llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h stable/12/contrib/llvm/include/llvm/Support/SMTAPI.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/SMTAPI.h stable/12/contrib/llvm/include/llvm/Support/ScalableSize.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/ScalableSize.h stable/12/contrib/llvm/include/llvm/Support/Signposts.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/Signposts.h stable/12/contrib/llvm/include/llvm/Support/TimeProfiler.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Support/TimeProfiler.h stable/12/contrib/llvm/include/llvm/Testing/Support/Annotations.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Testing/Support/Annotations.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/Attributor.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/IPO/Attributor.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/PoisonChecking.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Instrumentation/PoisonChecking.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopFuse.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Scalar/LoopFuse.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LowerWidenableCondition.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Scalar/LowerWidenableCondition.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/MergeICmps.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Scalar/MergeICmps.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SizeOpts.h - copied unchanged from r353358, head/contrib/llvm/include/llvm/Transforms/Utils/SizeOpts.h stable/12/contrib/llvm/lib/Analysis/DomTreeUpdater.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Analysis/DomTreeUpdater.cpp stable/12/contrib/llvm/lib/BinaryFormat/Minidump.cpp - copied unchanged from r353358, head/contrib/llvm/lib/BinaryFormat/Minidump.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackDocument.cpp - copied unchanged from r353358, head/contrib/llvm/lib/BinaryFormat/MsgPackDocument.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackDocumentYAML.cpp - copied unchanged from r353358, head/contrib/llvm/lib/BinaryFormat/MsgPackDocumentYAML.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp stable/12/contrib/llvm/lib/Bitstream/ - copied from r353358, head/contrib/llvm/lib/Bitstream/ stable/12/contrib/llvm/lib/CodeGen/FinalizeISel.cpp - copied unchanged from r353358, head/contrib/llvm/lib/CodeGen/FinalizeISel.cpp stable/12/contrib/llvm/lib/CodeGen/HardwareLoops.cpp - copied unchanged from r353358, head/contrib/llvm/lib/CodeGen/HardwareLoops.cpp stable/12/contrib/llvm/lib/CodeGen/SwiftErrorValueTracking.cpp - copied unchanged from r353358, head/contrib/llvm/lib/CodeGen/SwiftErrorValueTracking.cpp stable/12/contrib/llvm/lib/CodeGen/SwitchLoweringUtils.cpp - copied unchanged from r353358, head/contrib/llvm/lib/CodeGen/SwitchLoweringUtils.cpp stable/12/contrib/llvm/lib/DebugInfo/GSYM/ - copied from r353358, head/contrib/llvm/lib/DebugInfo/GSYM/ stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/InjectedSourceStream.cpp - copied unchanged from r353358, head/contrib/llvm/lib/DebugInfo/PDB/Native/InjectedSourceStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp - copied unchanged from r353358, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp stable/12/contrib/llvm/lib/Demangle/Demangle.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Demangle/Demangle.cpp stable/12/contrib/llvm/lib/ExecutionEngine/JITLink/ - copied from r353358, head/contrib/llvm/lib/ExecutionEngine/JITLink/ stable/12/contrib/llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp - copied unchanged from r353358, head/contrib/llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp - copied unchanged from r353358, head/contrib/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp stable/12/contrib/llvm/lib/IR/AbstractCallSite.cpp - copied unchanged from r353358, head/contrib/llvm/lib/IR/AbstractCallSite.cpp stable/12/contrib/llvm/lib/IR/RemarkStreamer.cpp - copied unchanged from r353358, head/contrib/llvm/lib/IR/RemarkStreamer.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoXCOFF.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MC/MCAsmInfoXCOFF.cpp stable/12/contrib/llvm/lib/MC/MCSectionXCOFF.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MC/MCSectionXCOFF.cpp stable/12/contrib/llvm/lib/MC/MCXCOFFObjectTargetWriter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MC/MCXCOFFObjectTargetWriter.cpp stable/12/contrib/llvm/lib/MC/MCXCOFFStreamer.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MC/MCXCOFFStreamer.cpp stable/12/contrib/llvm/lib/MC/XCOFFObjectWriter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MC/XCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/MCA/Stages/MicroOpQueueStage.cpp - copied unchanged from r353358, head/contrib/llvm/lib/MCA/Stages/MicroOpQueueStage.cpp stable/12/contrib/llvm/lib/Object/Minidump.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Object/Minidump.cpp stable/12/contrib/llvm/lib/Object/RelocationResolver.cpp - copied, changed from r353358, head/contrib/llvm/lib/Object/RelocationResolver.cpp stable/12/contrib/llvm/lib/Object/WindowsMachineFlag.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Object/WindowsMachineFlag.cpp stable/12/contrib/llvm/lib/Object/XCOFFObjectFile.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Object/XCOFFObjectFile.cpp stable/12/contrib/llvm/lib/ObjectYAML/MinidumpYAML.cpp - copied unchanged from r353358, head/contrib/llvm/lib/ObjectYAML/MinidumpYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/XCOFFYAML.cpp - copied unchanged from r353358, head/contrib/llvm/lib/ObjectYAML/XCOFFYAML.cpp stable/12/contrib/llvm/lib/Remarks/ - copied from r353358, head/contrib/llvm/lib/Remarks/ stable/12/contrib/llvm/lib/Support/CRC.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Support/CRC.cpp stable/12/contrib/llvm/lib/Support/Optional.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Support/Optional.cpp stable/12/contrib/llvm/lib/Support/Signposts.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Support/Signposts.cpp stable/12/contrib/llvm/lib/Support/TimeProfiler.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Support/TimeProfiler.cpp stable/12/contrib/llvm/lib/Support/Z3Solver.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Support/Z3Solver.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/AArch64ExpandImm.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64StackTagging.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/AArch64StackTagging.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h stable/12/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPropagateAttributes.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUPropagateAttributes.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h stable/12/contrib/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h stable/12/contrib/llvm/lib/Target/ARC/ARCOptAddrMode.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARC/ARCOptAddrMode.cpp stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.cpp stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.h stable/12/contrib/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMBasicBlockInfo.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/ARMBasicBlockInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMCallingConv.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/ARMCallingConv.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMInstrMVE.td - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/ARMInstrMVE.td stable/12/contrib/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMPredicates.td - copied, changed from r353358, head/contrib/llvm/lib/Target/ARM/ARMPredicates.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleM4.td - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/ARMScheduleM4.td stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h stable/12/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h stable/12/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.h stable/12/contrib/llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFCORE.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/BPFCORE.h stable/12/contrib/llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.h stable/12/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.inc - copied unchanged from r353358, head/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.inc stable/12/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.h stable/12/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.h stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.h stable/12/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.h stable/12/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h stable/12/contrib/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/PPCMachineScheduler.h stable/12/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp - copied, changed from r353358, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.h - copied, changed from r353358, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.h stable/12/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/SystemZ/SystemZPostRewrite.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleArch13.td - copied unchanged from r353358, head/contrib/llvm/lib/Target/SystemZ/SystemZScheduleArch13.td stable/12/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h stable/12/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td - copied unchanged from r353358, head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td - copied unchanged from r353358, head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.h stable/12/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.h stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.cpp stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.h stable/12/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.h - copied unchanged from r353358, head/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.h stable/12/contrib/llvm/lib/Testing/Support/Annotations.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Testing/Support/Annotations.cpp stable/12/contrib/llvm/lib/Transforms/IPO/Attributor.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/IPO/Attributor.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/InstrOrderFile.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Instrumentation/InstrOrderFile.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopFuse.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Scalar/LoopFuse.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LowerWidenableCondition.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Scalar/LowerWidenableCondition.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SizeOpts.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Utils/SizeOpts.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.h - copied unchanged from r353358, head/contrib/llvm/lib/Transforms/Vectorize/VPlanPredicator.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTDumper.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/AST/ASTDumper.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTImporterSharedState.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/AST/ASTImporterSharedState.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTNodeTraverser.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/AST/ASTNodeTraverser.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CurrentSourceLocExprScope.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/AST/CurrentSourceLocExprScope.h stable/12/contrib/llvm/tools/clang/include/clang/AST/JSONNodeDumper.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/AST/JSONNodeDumper.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/AnyCall.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Analysis/AnyCall.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/RetainSummaryManager.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Analysis/RetainSummaryManager.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/JsonSupport.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Basic/JsonSupport.h stable/12/contrib/llvm/tools/clang/include/clang/DirectoryWatcher/ - copied from r353358, head/contrib/llvm/tools/clang/include/clang/DirectoryWatcher/ stable/12/contrib/llvm/tools/clang/include/clang/Index/DeclOccurrence.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Index/DeclOccurrence.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/DependencyDirectivesSourceMinimizer.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Lex/DependencyDirectivesSourceMinimizer.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/InMemoryModuleCache.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Serialization/InMemoryModuleCache.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/DependencyScanning/ - copied from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/DependencyScanning/ stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RangeSelector.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RangeSelector.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/SourceCode.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/SourceCode.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Stencil.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Stencil.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Transformer.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Transformer.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Syntax/ - copied from r353358, head/contrib/llvm/tools/clang/include/clang/Tooling/Syntax/ stable/12/contrib/llvm/tools/clang/lib/AST/JSONNodeDumper.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/AST/JSONNodeDumper.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/RetainSummaryManager.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Analysis/RetainSummaryManager.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/plugins/ - copied from r353358, head/contrib/llvm/tools/clang/lib/Analysis/plugins/ stable/12/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/CodeGen/PatternInit.h stable/12/contrib/llvm/tools/clang/lib/DirectoryWatcher/ - copied from r353358, head/contrib/llvm/tools/clang/lib/DirectoryWatcher/ stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Driver/ToolChains/PPCLinux.h stable/12/contrib/llvm/tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/Headers/avx512bf16intrin.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/avx512bf16intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlbf16intrin.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/avx512vlbf16intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlvp2intersectintrin.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/avx512vlvp2intersectintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vp2intersectintrin.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/avx512vp2intersectintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/enqcmdintrin.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/enqcmdintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/opencl-c-base.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Headers/opencl-c-base.h stable/12/contrib/llvm/tools/clang/lib/Headers/openmp_wrappers/ - copied from r353358, head/contrib/llvm/tools/clang/lib/Headers/openmp_wrappers/ stable/12/contrib/llvm/tools/clang/lib/Headers/ppc_wrappers/ - copied from r353358, head/contrib/llvm/tools/clang/lib/Headers/ppc_wrappers/ stable/12/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.cpp stable/12/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Index/FileIndexRecord.h stable/12/contrib/llvm/tools/clang/lib/Lex/DependencyDirectivesSourceMinimizer.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Lex/DependencyDirectivesSourceMinimizer.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/OpenCLBuiltins.td - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Sema/OpenCLBuiltins.td stable/12/contrib/llvm/tools/clang/lib/Sema/SemaModule.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Sema/SemaModule.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/InMemoryModuleCache.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Serialization/InMemoryModuleCache.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Move.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Move.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/OSObjectCStyleCast.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnValueChecker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnValueChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.h - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Taint.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SMTConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/DependencyScanning/ - copied from r353358, head/contrib/llvm/tools/clang/lib/Tooling/DependencyScanning/ stable/12/contrib/llvm/tools/clang/lib/Tooling/GuessTargetAndModeCompilationDatabase.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Tooling/GuessTargetAndModeCompilationDatabase.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RangeSelector.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RangeSelector.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/SourceCode.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/SourceCode.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Stencil.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Stencil.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Transformer.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Transformer.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Syntax/ - copied from r353358, head/contrib/llvm/tools/clang/lib/Tooling/Syntax/ stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp - copied unchanged from r353358, head/contrib/llvm/tools/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp stable/12/contrib/llvm/tools/lld/COFF/DebugTypes.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lld/COFF/DebugTypes.cpp stable/12/contrib/llvm/tools/lld/COFF/DebugTypes.h - copied unchanged from r353358, head/contrib/llvm/tools/lld/COFF/DebugTypes.h stable/12/contrib/llvm/tools/lld/COFF/TypeMerger.h - copied unchanged from r353358, head/contrib/llvm/tools/lld/COFF/TypeMerger.h stable/12/contrib/llvm/tools/lld/Common/Filesystem.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lld/Common/Filesystem.cpp stable/12/contrib/llvm/tools/lld/docs/Partitions.rst - copied unchanged from r353358, head/contrib/llvm/tools/lld/docs/Partitions.rst stable/12/contrib/llvm/tools/lld/docs/partitions.dot - copied unchanged from r353358, head/contrib/llvm/tools/lld/docs/partitions.dot stable/12/contrib/llvm/tools/lld/docs/partitions.svg - copied unchanged from r353358, head/contrib/llvm/tools/lld/docs/partitions.svg stable/12/contrib/llvm/tools/lld/include/lld/Common/Filesystem.h - copied unchanged from r353358, head/contrib/llvm/tools/lld/include/lld/Common/Filesystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBReproducer.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/API/SBReproducer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointPrecondition.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointPrecondition.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/DynamicCheckerFunctions.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Expression/DynamicCheckerFunctions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/FileAction.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Host/FileAction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/ProcessLaunchInfo.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Host/ProcessLaunchInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CxxModuleHandler.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Symbol/CxxModuleHandler.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/LocateSymbolFile.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Symbol/LocateSymbolFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/PostfixExpression.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Symbol/PostfixExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SourceModule.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Symbol/SourceModule.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/RemoteAwarePlatform.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Target/RemoteAwarePlatform.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/FileCollector.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Utility/FileCollector.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/ProcessInfo.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Utility/ProcessInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/RangeMap.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Utility/RangeMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/ReproducerInstrumentation.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Utility/ReproducerInstrumentation.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/UserIDResolver.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/include/lldb/Utility/UserIDResolver.h stable/12/contrib/llvm/tools/lldb/source/API/SBReproducer.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/API/SBReproducer.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBReproducerPrivate.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/API/SBReproducerPrivate.h stable/12/contrib/llvm/tools/lldb/source/API/Utils.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/API/Utils.h stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointPrecondition.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointPrecondition.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/Options.td - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Commands/Options.td stable/12/contrib/llvm/tools/lldb/source/Commands/OptionsBase.td - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Commands/OptionsBase.td stable/12/contrib/llvm/tools/lldb/source/Host/common/FileAction.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Host/common/FileAction.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/ProcessLaunchInfo.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Host/common/ProcessLaunchInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/Windows-x86_64/ - copied from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ABI/Windows-x86_64/ stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ModuleDependencyCollector.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/NativeProcessELF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/AuxVector.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CodeViewRegisterMapping.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.h - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpression.h stable/12/contrib/llvm/tools/lldb/source/Symbol/CxxModuleHandler.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Symbol/CxxModuleHandler.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/DeclVendor.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Symbol/DeclVendor.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFile.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFile.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFileMacOSX.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Symbol/LocateSymbolFileMacOSX.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/PostfixExpression.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Symbol/PostfixExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Target/RemoteAwarePlatform.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Target/RemoteAwarePlatform.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/FileCollector.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Utility/FileCollector.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/ProcessInfo.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Utility/ProcessInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/ReproducerInstrumentation.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Utility/ReproducerInstrumentation.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/UserIDResolver.cpp - copied unchanged from r353358, head/contrib/llvm/tools/lldb/source/Utility/UserIDResolver.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-instr/ - copied from r353358, head/contrib/llvm/tools/lldb/tools/lldb-instr/ stable/12/contrib/llvm/tools/lldb/utils/ - copied from r353358, head/contrib/llvm/tools/lldb/utils/ stable/12/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.cpp - copied unchanged from r353358, head/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.h - copied unchanged from r353358, head/contrib/llvm/tools/llvm-mca/Views/BottleneckAnalysis.h stable/12/contrib/llvm/tools/llvm-objcopy/MachO/ - copied from r353358, head/contrib/llvm/tools/llvm-objcopy/MachO/ stable/12/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.cpp - copied unchanged from r353358, head/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.h - copied unchanged from r353358, head/contrib/llvm/tools/llvm-pdbutil/TypeReferenceTracker.h stable/12/contrib/llvm/tools/llvm-readobj/XCOFFDumper.cpp - copied unchanged from r353358, head/contrib/llvm/tools/llvm-readobj/XCOFFDumper.cpp stable/12/contrib/openmp/FREEBSD-Xlist - copied unchanged from r353358, head/contrib/openmp/FREEBSD-Xlist stable/12/contrib/openmp/runtime/src/include/omp-tools.h.var - copied unchanged from r353358, head/contrib/openmp/runtime/src/include/omp-tools.h.var stable/12/contrib/openmp/runtime/src/include/omp.h.var - copied unchanged from r353358, head/contrib/openmp/runtime/src/include/omp.h.var stable/12/contrib/openmp/runtime/src/include/omp_lib.f.var - copied unchanged from r353358, head/contrib/openmp/runtime/src/include/omp_lib.f.var stable/12/contrib/openmp/runtime/src/include/omp_lib.f90.var - copied unchanged from r353358, head/contrib/openmp/runtime/src/include/omp_lib.f90.var stable/12/contrib/openmp/runtime/src/include/omp_lib.h.var - copied unchanged from r353358, head/contrib/openmp/runtime/src/include/omp_lib.h.var stable/12/lib/clang/include/VCSVersion.inc - copied, changed from r353358, head/lib/clang/include/VCSVersion.inc stable/12/lib/libclang_rt/cfi/ - copied from r353358, head/lib/libclang_rt/cfi/ stable/12/lib/libclang_rt/cfi_diag/ - copied from r353358, head/lib/libclang_rt/cfi_diag/ stable/12/lib/libclang_rt/dd/ - copied from r353358, head/lib/libclang_rt/dd/ stable/12/lib/libclang_rt/xray/ - copied from r353358, head/lib/libclang_rt/xray/ stable/12/lib/libclang_rt/xray-basic/ - copied from r353358, head/lib/libclang_rt/xray-basic/ stable/12/lib/libclang_rt/xray-fdr/ - copied from r353358, head/lib/libclang_rt/xray-fdr/ stable/12/lib/libclang_rt/xray-profiling/ - copied from r353358, head/lib/libclang_rt/xray-profiling/ stable/12/lib/libgcc_s/Symbol.map - copied, changed from r354347, head/lib/libgcc_s/Symbol.map stable/12/lib/libgcc_s/SymbolDefault.map - copied unchanged from r355803, head/lib/libgcc_s/SymbolDefault.map stable/12/lib/libgcc_s/Versions.def - copied unchanged from r354347, head/lib/libgcc_s/Versions.def stable/12/lib/libgcc_s/arm/ - copied from r354347, head/lib/libgcc_s/arm/ stable/12/usr.bin/clang/lldb-tblgen/ - copied from r353358, head/usr.bin/clang/lldb-tblgen/ Replaced: stable/12/contrib/llvm/include/llvm/TextAPI/MachO/ - copied from r353358, head/contrib/llvm/include/llvm/TextAPI/MachO/ stable/12/contrib/llvm/lib/TextAPI/MachO/ - copied from r353358, head/contrib/llvm/lib/TextAPI/MachO/ Deleted: stable/12/contrib/compiler-rt/include/sanitizer/esan_interface.h stable/12/contrib/compiler-rt/lib/builtins/armv6m/ stable/12/contrib/compiler-rt/lib/cfi/cfi.cc stable/12/contrib/compiler-rt/lib/esan/ stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerShmem.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerShmemFuchsia.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerShmemPosix.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerShmemWindows.cpp stable/12/contrib/compiler-rt/lib/hwasan/hwasan.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_allocator.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_interceptors.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_linux.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_memintrinsics.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_new_delete.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_report.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread.cc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.cc stable/12/contrib/compiler-rt/lib/sancov/ stable/12/contrib/compiler-rt/lib/sanitizer_common/sancov_begin.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sancov_end.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_mips64.S stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_x86_64.S stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc stable/12/contrib/libc++/include/experimental/any stable/12/contrib/libc++/include/experimental/chrono stable/12/contrib/libc++/include/experimental/numeric stable/12/contrib/libc++/include/experimental/optional stable/12/contrib/libc++/include/experimental/ratio stable/12/contrib/libc++/include/experimental/string_view stable/12/contrib/libc++/include/experimental/system_error stable/12/contrib/libc++/include/experimental/tuple stable/12/contrib/llvm/include/llvm-c/OptRemarks.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPackTypes.h stable/12/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs/ stable/12/contrib/llvm/include/llvm/Bitcode/BitCodes.h stable/12/contrib/llvm/include/llvm/Bitcode/BitstreamReader.h stable/12/contrib/llvm/include/llvm/Bitcode/BitstreamWriter.h stable/12/contrib/llvm/include/llvm/Demangle/Compiler.h stable/12/contrib/llvm/include/llvm/IR/DomTreeUpdater.h stable/12/contrib/llvm/include/llvm/MC/MCAnalysis/ stable/12/contrib/llvm/include/llvm/Object/RelocVisitor.h stable/12/contrib/llvm/lib/Analysis/IteratedDominanceFrontier.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackTypes.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/BitstreamReader.cpp stable/12/contrib/llvm/lib/CodeGen/ExpandISelPseudos.cpp stable/12/contrib/llvm/lib/CodeGen/MIRParser/MIParser.h stable/12/contrib/llvm/lib/ExecutionEngine/JIT/ stable/12/contrib/llvm/lib/IR/DomTreeUpdater.cpp stable/12/contrib/llvm/lib/MC/MCAnalysis/ stable/12/contrib/llvm/lib/OptRemarks/ stable/12/contrib/llvm/lib/Target/AArch64/InstPrinter/ stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegAsmNames.inc.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/InstPrinter/ stable/12/contrib/llvm/lib/Target/AMDGPU/SIDebuggerInsertNops.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFixWWMLiveness.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIIntrinsics.td stable/12/contrib/llvm/lib/Target/ARC/InstPrinter/ stable/12/contrib/llvm/lib/Target/ARM/ARMComputeBlockSize.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleM3.td stable/12/contrib/llvm/lib/Target/ARM/InstPrinter/ stable/12/contrib/llvm/lib/Target/ARM/LICENSE.TXT stable/12/contrib/llvm/lib/Target/AVR/InstPrinter/ stable/12/contrib/llvm/lib/Target/BPF/InstPrinter/ stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.h stable/12/contrib/llvm/lib/Target/Lanai/InstPrinter/ stable/12/contrib/llvm/lib/Target/MSP430/InstPrinter/ stable/12/contrib/llvm/lib/Target/Mips/InstPrinter/ stable/12/contrib/llvm/lib/Target/NVPTX/InstPrinter/ stable/12/contrib/llvm/lib/Target/Nios2/ stable/12/contrib/llvm/lib/Target/PowerPC/InstPrinter/ stable/12/contrib/llvm/lib/Target/RISCV/InstPrinter/ stable/12/contrib/llvm/lib/Target/Sparc/InstPrinter/ stable/12/contrib/llvm/lib/Target/SystemZ/InstPrinter/ stable/12/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyEHRestoreStackPointer.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrExceptRef.td stable/12/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp stable/12/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h stable/12/contrib/llvm/lib/Target/X86/InstPrinter/ stable/12/contrib/llvm/lib/Target/X86/ShadowCallStack.cpp stable/12/contrib/llvm/lib/Target/XCore/InstPrinter/ stable/12/contrib/llvm/lib/Transforms/Instrumentation/EfficiencySanitizer.cpp stable/12/contrib/llvm/tools/clang/include/clang/Basic/MemoryBufferCache.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTExpr.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSolver.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTSort.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/RetainSummaryManager.h stable/12/contrib/llvm/tools/clang/lib/Basic/MemoryBufferCache.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/TaintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Z3ConstraintManager.cpp stable/12/contrib/llvm/tools/lld/ELF/Bits.h stable/12/contrib/llvm/tools/lld/ELF/Filesystem.cpp stable/12/contrib/llvm/tools/lld/ELF/Filesystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBInitializerOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/RangeMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/IRDynamicChecks.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Symbols.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/CPPLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/FileAction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ObjCLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ProcessInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h stable/12/contrib/llvm/tools/lldb/source/API/SBInitializerOptions.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/ExpressionSourceCode.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRDynamicChecks.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Go/ stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Go/ stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/Java/ stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/OCaml/ stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Go/ stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Java/ stable/12/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Go/ stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIECollection.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfoEntry.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacinfoEntry.h stable/12/contrib/llvm/tools/lldb/source/Target/CPPLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/FileAction.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ObjCLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ProcessInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp stable/12/contrib/llvm/tools/llvm-mca/include/ stable/12/contrib/llvm/tools/llvm-mca/lib/ stable/12/contrib/openmp/runtime/src/include/30/ stable/12/contrib/openmp/runtime/src/include/40/ stable/12/contrib/openmp/runtime/src/include/45/ stable/12/contrib/openmp/runtime/src/include/50/ stable/12/lib/libc++fs/ stable/12/lib/libgcc_s/Version.map Modified: stable/12/Makefile.inc1 stable/12/ObsoleteFiles.inc stable/12/UPDATING stable/12/contrib/compiler-rt/LICENSE.TXT stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h stable/12/contrib/compiler-rt/include/sanitizer/asan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h stable/12/contrib/compiler-rt/include/sanitizer/coverage_interface.h stable/12/contrib/compiler-rt/include/sanitizer/dfsan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/hwasan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/linux_syscall_hooks.h stable/12/contrib/compiler-rt/include/sanitizer/lsan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/msan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h stable/12/contrib/compiler-rt/include/sanitizer/scudo_interface.h stable/12/contrib/compiler-rt/include/sanitizer/tsan_interface.h stable/12/contrib/compiler-rt/include/sanitizer/tsan_interface_atomic.h stable/12/contrib/compiler-rt/include/xray/xray_interface.h stable/12/contrib/compiler-rt/include/xray/xray_log_interface.h stable/12/contrib/compiler-rt/include/xray/xray_records.h stable/12/contrib/compiler-rt/lib/asan/asan_activation.cc stable/12/contrib/compiler-rt/lib/asan/asan_activation.h stable/12/contrib/compiler-rt/lib/asan/asan_activation_flags.inc stable/12/contrib/compiler-rt/lib/asan/asan_allocator.cc stable/12/contrib/compiler-rt/lib/asan/asan_allocator.h stable/12/contrib/compiler-rt/lib/asan/asan_debugging.cc stable/12/contrib/compiler-rt/lib/asan/asan_descriptions.cc stable/12/contrib/compiler-rt/lib/asan/asan_descriptions.h stable/12/contrib/compiler-rt/lib/asan/asan_errors.cc stable/12/contrib/compiler-rt/lib/asan/asan_errors.h stable/12/contrib/compiler-rt/lib/asan/asan_fake_stack.cc stable/12/contrib/compiler-rt/lib/asan/asan_fake_stack.h stable/12/contrib/compiler-rt/lib/asan/asan_flags.cc stable/12/contrib/compiler-rt/lib/asan/asan_flags.h stable/12/contrib/compiler-rt/lib/asan/asan_flags.inc stable/12/contrib/compiler-rt/lib/asan/asan_fuchsia.cc stable/12/contrib/compiler-rt/lib/asan/asan_globals.cc stable/12/contrib/compiler-rt/lib/asan/asan_globals_win.cc stable/12/contrib/compiler-rt/lib/asan/asan_init_version.h stable/12/contrib/compiler-rt/lib/asan/asan_interceptors.cc stable/12/contrib/compiler-rt/lib/asan/asan_interceptors.h stable/12/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc stable/12/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h stable/12/contrib/compiler-rt/lib/asan/asan_interface.inc stable/12/contrib/compiler-rt/lib/asan/asan_interface_internal.h stable/12/contrib/compiler-rt/lib/asan/asan_internal.h stable/12/contrib/compiler-rt/lib/asan/asan_linux.cc stable/12/contrib/compiler-rt/lib/asan/asan_mac.cc stable/12/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc stable/12/contrib/compiler-rt/lib/asan/asan_malloc_local.h stable/12/contrib/compiler-rt/lib/asan/asan_malloc_mac.cc stable/12/contrib/compiler-rt/lib/asan/asan_malloc_win.cc stable/12/contrib/compiler-rt/lib/asan/asan_mapping.h stable/12/contrib/compiler-rt/lib/asan/asan_mapping_myriad.h stable/12/contrib/compiler-rt/lib/asan/asan_memory_profile.cc stable/12/contrib/compiler-rt/lib/asan/asan_new_delete.cc stable/12/contrib/compiler-rt/lib/asan/asan_poisoning.cc stable/12/contrib/compiler-rt/lib/asan/asan_poisoning.h stable/12/contrib/compiler-rt/lib/asan/asan_posix.cc stable/12/contrib/compiler-rt/lib/asan/asan_preinit.cc stable/12/contrib/compiler-rt/lib/asan/asan_premap_shadow.cc stable/12/contrib/compiler-rt/lib/asan/asan_premap_shadow.h stable/12/contrib/compiler-rt/lib/asan/asan_report.cc stable/12/contrib/compiler-rt/lib/asan/asan_report.h stable/12/contrib/compiler-rt/lib/asan/asan_rtems.cc stable/12/contrib/compiler-rt/lib/asan/asan_rtl.cc stable/12/contrib/compiler-rt/lib/asan/asan_scariness_score.h stable/12/contrib/compiler-rt/lib/asan/asan_shadow_setup.cc stable/12/contrib/compiler-rt/lib/asan/asan_stack.cc stable/12/contrib/compiler-rt/lib/asan/asan_stack.h stable/12/contrib/compiler-rt/lib/asan/asan_stats.cc stable/12/contrib/compiler-rt/lib/asan/asan_stats.h stable/12/contrib/compiler-rt/lib/asan/asan_suppressions.cc stable/12/contrib/compiler-rt/lib/asan/asan_suppressions.h stable/12/contrib/compiler-rt/lib/asan/asan_thread.cc stable/12/contrib/compiler-rt/lib/asan/asan_thread.h stable/12/contrib/compiler-rt/lib/asan/asan_win.cc stable/12/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc stable/12/contrib/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cc stable/12/contrib/compiler-rt/lib/asan/asan_win_weak_interception.cc stable/12/contrib/compiler-rt/lib/builtins/aarch64/chkstk.S stable/12/contrib/compiler-rt/lib/builtins/absvdi2.c stable/12/contrib/compiler-rt/lib/builtins/absvsi2.c stable/12/contrib/compiler-rt/lib/builtins/absvti2.c stable/12/contrib/compiler-rt/lib/builtins/adddf3.c stable/12/contrib/compiler-rt/lib/builtins/addsf3.c stable/12/contrib/compiler-rt/lib/builtins/addtf3.c stable/12/contrib/compiler-rt/lib/builtins/addvdi3.c stable/12/contrib/compiler-rt/lib/builtins/addvsi3.c stable/12/contrib/compiler-rt/lib/builtins/addvti3.c stable/12/contrib/compiler-rt/lib/builtins/apple_versioning.c stable/12/contrib/compiler-rt/lib/builtins/arm/adddf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/addsf3.S stable/12/contrib/compiler-rt/lib/builtins/arm/addsf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_dcmp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_div0.c stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_drsub.c stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_fcmp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_frsub.c stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_idivmod.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_ldivmod.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_memcmp.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_memcpy.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_memmove.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_memset.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_uidivmod.S stable/12/contrib/compiler-rt/lib/builtins/arm/aeabi_uldivmod.S stable/12/contrib/compiler-rt/lib/builtins/arm/bswapdi2.S stable/12/contrib/compiler-rt/lib/builtins/arm/bswapsi2.S stable/12/contrib/compiler-rt/lib/builtins/arm/chkstk.S stable/12/contrib/compiler-rt/lib/builtins/arm/clzdi2.S stable/12/contrib/compiler-rt/lib/builtins/arm/clzsi2.S stable/12/contrib/compiler-rt/lib/builtins/arm/comparesf2.S stable/12/contrib/compiler-rt/lib/builtins/arm/divdf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/divmodsi4.S stable/12/contrib/compiler-rt/lib/builtins/arm/divsf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/divsi3.S stable/12/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/extendsfdf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/fixdfsivfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/fixsfsivfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/fixunsdfsivfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/fixunssfsivfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/floatsidfvfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/floatsisfvfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/floatunssidfvfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/floatunssisfvfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/modsi3.S stable/12/contrib/compiler-rt/lib/builtins/arm/muldf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/mulsf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/negdf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/negsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/restore_vfp_d8_d15_regs.S stable/12/contrib/compiler-rt/lib/builtins/arm/save_vfp_d8_d15_regs.S stable/12/contrib/compiler-rt/lib/builtins/arm/softfloat-alias.list stable/12/contrib/compiler-rt/lib/builtins/arm/subdf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/subsf3vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/switch16.S stable/12/contrib/compiler-rt/lib/builtins/arm/switch32.S stable/12/contrib/compiler-rt/lib/builtins/arm/switch8.S stable/12/contrib/compiler-rt/lib/builtins/arm/switchu8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync-ops.h stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_add_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_add_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_and_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_and_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_max_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_max_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_min_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_min_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_or_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_or_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_4.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_8.S stable/12/contrib/compiler-rt/lib/builtins/arm/sync_synchronize.S stable/12/contrib/compiler-rt/lib/builtins/arm/truncdfsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/udivmodsi4.S stable/12/contrib/compiler-rt/lib/builtins/arm/udivsi3.S stable/12/contrib/compiler-rt/lib/builtins/arm/umodsi3.S stable/12/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S stable/12/contrib/compiler-rt/lib/builtins/ashldi3.c stable/12/contrib/compiler-rt/lib/builtins/ashlti3.c stable/12/contrib/compiler-rt/lib/builtins/ashrdi3.c stable/12/contrib/compiler-rt/lib/builtins/ashrti3.c stable/12/contrib/compiler-rt/lib/builtins/assembly.h stable/12/contrib/compiler-rt/lib/builtins/atomic.c stable/12/contrib/compiler-rt/lib/builtins/atomic_flag_clear.c stable/12/contrib/compiler-rt/lib/builtins/atomic_flag_clear_explicit.c stable/12/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set.c stable/12/contrib/compiler-rt/lib/builtins/atomic_flag_test_and_set_explicit.c stable/12/contrib/compiler-rt/lib/builtins/atomic_signal_fence.c stable/12/contrib/compiler-rt/lib/builtins/atomic_thread_fence.c stable/12/contrib/compiler-rt/lib/builtins/bswapdi2.c stable/12/contrib/compiler-rt/lib/builtins/bswapsi2.c stable/12/contrib/compiler-rt/lib/builtins/clear_cache.c stable/12/contrib/compiler-rt/lib/builtins/clzdi2.c stable/12/contrib/compiler-rt/lib/builtins/clzsi2.c stable/12/contrib/compiler-rt/lib/builtins/clzti2.c stable/12/contrib/compiler-rt/lib/builtins/cmpdi2.c stable/12/contrib/compiler-rt/lib/builtins/cmpti2.c stable/12/contrib/compiler-rt/lib/builtins/comparedf2.c stable/12/contrib/compiler-rt/lib/builtins/comparesf2.c stable/12/contrib/compiler-rt/lib/builtins/comparetf2.c stable/12/contrib/compiler-rt/lib/builtins/cpu_model.c stable/12/contrib/compiler-rt/lib/builtins/ctzdi2.c stable/12/contrib/compiler-rt/lib/builtins/ctzsi2.c stable/12/contrib/compiler-rt/lib/builtins/ctzti2.c stable/12/contrib/compiler-rt/lib/builtins/divdc3.c stable/12/contrib/compiler-rt/lib/builtins/divdf3.c stable/12/contrib/compiler-rt/lib/builtins/divdi3.c stable/12/contrib/compiler-rt/lib/builtins/divmoddi4.c stable/12/contrib/compiler-rt/lib/builtins/divmodsi4.c stable/12/contrib/compiler-rt/lib/builtins/divsc3.c stable/12/contrib/compiler-rt/lib/builtins/divsf3.c stable/12/contrib/compiler-rt/lib/builtins/divsi3.c stable/12/contrib/compiler-rt/lib/builtins/divtc3.c stable/12/contrib/compiler-rt/lib/builtins/divtf3.c stable/12/contrib/compiler-rt/lib/builtins/divti3.c stable/12/contrib/compiler-rt/lib/builtins/divxc3.c stable/12/contrib/compiler-rt/lib/builtins/emutls.c stable/12/contrib/compiler-rt/lib/builtins/enable_execute_stack.c stable/12/contrib/compiler-rt/lib/builtins/eprintf.c stable/12/contrib/compiler-rt/lib/builtins/extenddftf2.c stable/12/contrib/compiler-rt/lib/builtins/extendhfsf2.c stable/12/contrib/compiler-rt/lib/builtins/extendsfdf2.c stable/12/contrib/compiler-rt/lib/builtins/extendsftf2.c stable/12/contrib/compiler-rt/lib/builtins/ffsdi2.c stable/12/contrib/compiler-rt/lib/builtins/ffssi2.c stable/12/contrib/compiler-rt/lib/builtins/ffsti2.c stable/12/contrib/compiler-rt/lib/builtins/fixdfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixdfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixdfti.c stable/12/contrib/compiler-rt/lib/builtins/fixsfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixsfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixsfti.c stable/12/contrib/compiler-rt/lib/builtins/fixtfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixtfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixtfti.c stable/12/contrib/compiler-rt/lib/builtins/fixunsdfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixunsdfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixunsdfti.c stable/12/contrib/compiler-rt/lib/builtins/fixunssfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixunssfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixunssfti.c stable/12/contrib/compiler-rt/lib/builtins/fixunstfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixunstfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixunstfti.c stable/12/contrib/compiler-rt/lib/builtins/fixunsxfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixunsxfsi.c stable/12/contrib/compiler-rt/lib/builtins/fixunsxfti.c stable/12/contrib/compiler-rt/lib/builtins/fixxfdi.c stable/12/contrib/compiler-rt/lib/builtins/fixxfti.c stable/12/contrib/compiler-rt/lib/builtins/floatdidf.c stable/12/contrib/compiler-rt/lib/builtins/floatdisf.c stable/12/contrib/compiler-rt/lib/builtins/floatditf.c stable/12/contrib/compiler-rt/lib/builtins/floatdixf.c stable/12/contrib/compiler-rt/lib/builtins/floatsidf.c stable/12/contrib/compiler-rt/lib/builtins/floatsisf.c stable/12/contrib/compiler-rt/lib/builtins/floatsitf.c stable/12/contrib/compiler-rt/lib/builtins/floattidf.c stable/12/contrib/compiler-rt/lib/builtins/floattisf.c stable/12/contrib/compiler-rt/lib/builtins/floattitf.c stable/12/contrib/compiler-rt/lib/builtins/floattixf.c stable/12/contrib/compiler-rt/lib/builtins/floatundidf.c stable/12/contrib/compiler-rt/lib/builtins/floatundisf.c stable/12/contrib/compiler-rt/lib/builtins/floatunditf.c stable/12/contrib/compiler-rt/lib/builtins/floatundixf.c stable/12/contrib/compiler-rt/lib/builtins/floatunsidf.c stable/12/contrib/compiler-rt/lib/builtins/floatunsisf.c stable/12/contrib/compiler-rt/lib/builtins/floatunsitf.c stable/12/contrib/compiler-rt/lib/builtins/floatuntidf.c stable/12/contrib/compiler-rt/lib/builtins/floatuntisf.c stable/12/contrib/compiler-rt/lib/builtins/floatuntitf.c stable/12/contrib/compiler-rt/lib/builtins/floatuntixf.c stable/12/contrib/compiler-rt/lib/builtins/fp_add_impl.inc stable/12/contrib/compiler-rt/lib/builtins/fp_extend.h stable/12/contrib/compiler-rt/lib/builtins/fp_extend_impl.inc stable/12/contrib/compiler-rt/lib/builtins/fp_fixint_impl.inc stable/12/contrib/compiler-rt/lib/builtins/fp_fixuint_impl.inc stable/12/contrib/compiler-rt/lib/builtins/fp_lib.h stable/12/contrib/compiler-rt/lib/builtins/fp_mul_impl.inc stable/12/contrib/compiler-rt/lib/builtins/fp_trunc.h stable/12/contrib/compiler-rt/lib/builtins/fp_trunc_impl.inc stable/12/contrib/compiler-rt/lib/builtins/gcc_personality_v0.c stable/12/contrib/compiler-rt/lib/builtins/hexagon/common_entry_exit_abi1.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/common_entry_exit_abi2.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/common_entry_exit_legacy.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dfaddsub.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dfdiv.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dffma.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dfminmax.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dfmul.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/dfsqrt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/divdi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/divsi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fabs_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fastmath2_dlib_asm.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fastmath2_ldlib_asm.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fastmath_dlib_asm.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fma_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fmax_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/fmin_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/memcpy_forward_vp4cp4n2.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/memcpy_likely_aligned.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/moddi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/modsi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/sfdiv_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/sfsqrt_opt.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/udivdi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/udivmoddi4.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/udivmodsi4.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/udivsi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/umoddi3.S stable/12/contrib/compiler-rt/lib/builtins/hexagon/umodsi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/ashldi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/ashrdi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/chkstk.S stable/12/contrib/compiler-rt/lib/builtins/i386/chkstk2.S stable/12/contrib/compiler-rt/lib/builtins/i386/divdi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatdidf.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatdisf.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatdixf.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatundidf.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatundisf.S stable/12/contrib/compiler-rt/lib/builtins/i386/floatundixf.S stable/12/contrib/compiler-rt/lib/builtins/i386/lshrdi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/moddi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/muldi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/udivdi3.S stable/12/contrib/compiler-rt/lib/builtins/i386/umoddi3.S stable/12/contrib/compiler-rt/lib/builtins/int_endianness.h stable/12/contrib/compiler-rt/lib/builtins/int_lib.h stable/12/contrib/compiler-rt/lib/builtins/int_math.h stable/12/contrib/compiler-rt/lib/builtins/int_types.h stable/12/contrib/compiler-rt/lib/builtins/int_util.c stable/12/contrib/compiler-rt/lib/builtins/int_util.h stable/12/contrib/compiler-rt/lib/builtins/lshrdi3.c stable/12/contrib/compiler-rt/lib/builtins/lshrti3.c stable/12/contrib/compiler-rt/lib/builtins/mingw_fixfloat.c stable/12/contrib/compiler-rt/lib/builtins/moddi3.c stable/12/contrib/compiler-rt/lib/builtins/modsi3.c stable/12/contrib/compiler-rt/lib/builtins/modti3.c stable/12/contrib/compiler-rt/lib/builtins/muldc3.c stable/12/contrib/compiler-rt/lib/builtins/muldf3.c stable/12/contrib/compiler-rt/lib/builtins/muldi3.c stable/12/contrib/compiler-rt/lib/builtins/mulodi4.c stable/12/contrib/compiler-rt/lib/builtins/mulosi4.c stable/12/contrib/compiler-rt/lib/builtins/muloti4.c stable/12/contrib/compiler-rt/lib/builtins/mulsc3.c stable/12/contrib/compiler-rt/lib/builtins/mulsf3.c stable/12/contrib/compiler-rt/lib/builtins/multc3.c stable/12/contrib/compiler-rt/lib/builtins/multf3.c stable/12/contrib/compiler-rt/lib/builtins/multi3.c stable/12/contrib/compiler-rt/lib/builtins/mulvdi3.c stable/12/contrib/compiler-rt/lib/builtins/mulvsi3.c stable/12/contrib/compiler-rt/lib/builtins/mulvti3.c stable/12/contrib/compiler-rt/lib/builtins/mulxc3.c stable/12/contrib/compiler-rt/lib/builtins/negdf2.c stable/12/contrib/compiler-rt/lib/builtins/negdi2.c stable/12/contrib/compiler-rt/lib/builtins/negsf2.c stable/12/contrib/compiler-rt/lib/builtins/negti2.c stable/12/contrib/compiler-rt/lib/builtins/negvdi2.c stable/12/contrib/compiler-rt/lib/builtins/negvsi2.c stable/12/contrib/compiler-rt/lib/builtins/negvti2.c stable/12/contrib/compiler-rt/lib/builtins/os_version_check.c stable/12/contrib/compiler-rt/lib/builtins/paritydi2.c stable/12/contrib/compiler-rt/lib/builtins/paritysi2.c stable/12/contrib/compiler-rt/lib/builtins/parityti2.c stable/12/contrib/compiler-rt/lib/builtins/popcountdi2.c stable/12/contrib/compiler-rt/lib/builtins/popcountsi2.c stable/12/contrib/compiler-rt/lib/builtins/popcountti2.c stable/12/contrib/compiler-rt/lib/builtins/powidf2.c stable/12/contrib/compiler-rt/lib/builtins/powisf2.c stable/12/contrib/compiler-rt/lib/builtins/powitf2.c stable/12/contrib/compiler-rt/lib/builtins/powixf2.c stable/12/contrib/compiler-rt/lib/builtins/ppc/DD.h stable/12/contrib/compiler-rt/lib/builtins/ppc/divtc3.c stable/12/contrib/compiler-rt/lib/builtins/ppc/fixtfdi.c stable/12/contrib/compiler-rt/lib/builtins/ppc/fixunstfdi.c stable/12/contrib/compiler-rt/lib/builtins/ppc/fixunstfti.c stable/12/contrib/compiler-rt/lib/builtins/ppc/floatditf.c stable/12/contrib/compiler-rt/lib/builtins/ppc/floattitf.c stable/12/contrib/compiler-rt/lib/builtins/ppc/floatunditf.c stable/12/contrib/compiler-rt/lib/builtins/ppc/gcc_qadd.c stable/12/contrib/compiler-rt/lib/builtins/ppc/gcc_qdiv.c stable/12/contrib/compiler-rt/lib/builtins/ppc/gcc_qmul.c stable/12/contrib/compiler-rt/lib/builtins/ppc/gcc_qsub.c stable/12/contrib/compiler-rt/lib/builtins/ppc/multc3.c stable/12/contrib/compiler-rt/lib/builtins/ppc/restFP.S stable/12/contrib/compiler-rt/lib/builtins/ppc/saveFP.S stable/12/contrib/compiler-rt/lib/builtins/riscv/mulsi3.S stable/12/contrib/compiler-rt/lib/builtins/subdf3.c stable/12/contrib/compiler-rt/lib/builtins/subsf3.c stable/12/contrib/compiler-rt/lib/builtins/subtf3.c stable/12/contrib/compiler-rt/lib/builtins/subvdi3.c stable/12/contrib/compiler-rt/lib/builtins/subvsi3.c stable/12/contrib/compiler-rt/lib/builtins/subvti3.c stable/12/contrib/compiler-rt/lib/builtins/trampoline_setup.c stable/12/contrib/compiler-rt/lib/builtins/truncdfhf2.c stable/12/contrib/compiler-rt/lib/builtins/truncdfsf2.c stable/12/contrib/compiler-rt/lib/builtins/truncsfhf2.c stable/12/contrib/compiler-rt/lib/builtins/trunctfdf2.c stable/12/contrib/compiler-rt/lib/builtins/trunctfsf2.c stable/12/contrib/compiler-rt/lib/builtins/ucmpdi2.c stable/12/contrib/compiler-rt/lib/builtins/ucmpti2.c stable/12/contrib/compiler-rt/lib/builtins/udivdi3.c stable/12/contrib/compiler-rt/lib/builtins/udivmoddi4.c stable/12/contrib/compiler-rt/lib/builtins/udivmodsi4.c stable/12/contrib/compiler-rt/lib/builtins/udivmodti4.c stable/12/contrib/compiler-rt/lib/builtins/udivsi3.c stable/12/contrib/compiler-rt/lib/builtins/udivti3.c stable/12/contrib/compiler-rt/lib/builtins/umoddi3.c stable/12/contrib/compiler-rt/lib/builtins/umodsi3.c stable/12/contrib/compiler-rt/lib/builtins/umodti3.c stable/12/contrib/compiler-rt/lib/builtins/unwind-ehabi-helpers.h stable/12/contrib/compiler-rt/lib/builtins/x86_64/chkstk.S stable/12/contrib/compiler-rt/lib/builtins/x86_64/chkstk2.S stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatdidf.c stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatdisf.c stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatdixf.c stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatundidf.S stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatundisf.S stable/12/contrib/compiler-rt/lib/builtins/x86_64/floatundixf.S stable/12/contrib/compiler-rt/lib/dfsan/dfsan.cc stable/12/contrib/compiler-rt/lib/dfsan/dfsan.h stable/12/contrib/compiler-rt/lib/dfsan/dfsan_custom.cc stable/12/contrib/compiler-rt/lib/dfsan/dfsan_flags.inc stable/12/contrib/compiler-rt/lib/dfsan/dfsan_interceptors.cc stable/12/contrib/compiler-rt/lib/dfsan/dfsan_platform.h stable/12/contrib/compiler-rt/lib/dfsan/done_abilist.txt stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltins.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerBuiltinsMsvc.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerCommand.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerCorpus.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerCrossOver.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDataFlowTrace.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDataFlowTrace.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDefs.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDictionary.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerDriver.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctions.def stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctions.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsDlsym.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWindows.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerFlags.def stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIO.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIO.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIOPosix.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerIOWindows.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerInterface.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerInternal.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerLoop.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMain.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMerge.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMerge.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMutate.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerMutate.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerOptions.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerRandom.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerSHA1.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerSHA1.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerTracePC.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerTracePC.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtil.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtil.h stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp stable/12/contrib/compiler-rt/lib/fuzzer/FuzzerValueBitMap.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_allocator.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_checks.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_dynamic_shadow.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_flags.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_flags.inc stable/12/contrib/compiler-rt/lib/hwasan/hwasan_interface_internal.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_mapping.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_poisoning.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_report.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread.h stable/12/contrib/compiler-rt/lib/hwasan/hwasan_thread_list.h stable/12/contrib/compiler-rt/lib/interception/interception.h stable/12/contrib/compiler-rt/lib/interception/interception_linux.cc stable/12/contrib/compiler-rt/lib/interception/interception_linux.h stable/12/contrib/compiler-rt/lib/interception/interception_mac.cc stable/12/contrib/compiler-rt/lib/interception/interception_mac.h stable/12/contrib/compiler-rt/lib/interception/interception_type_test.cc stable/12/contrib/compiler-rt/lib/interception/interception_win.cc stable/12/contrib/compiler-rt/lib/interception/interception_win.h stable/12/contrib/compiler-rt/lib/lsan/lsan.cc stable/12/contrib/compiler-rt/lib/lsan/lsan.h stable/12/contrib/compiler-rt/lib/lsan/lsan_allocator.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_allocator.h stable/12/contrib/compiler-rt/lib/lsan/lsan_common.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_common.h stable/12/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_flags.inc stable/12/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_linux.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_mac.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_malloc_mac.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_preinit.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_thread.cc stable/12/contrib/compiler-rt/lib/lsan/lsan_thread.h stable/12/contrib/compiler-rt/lib/msan/msan.cc stable/12/contrib/compiler-rt/lib/msan/msan.h stable/12/contrib/compiler-rt/lib/msan/msan_allocator.cc stable/12/contrib/compiler-rt/lib/msan/msan_allocator.h stable/12/contrib/compiler-rt/lib/msan/msan_chained_origin_depot.cc stable/12/contrib/compiler-rt/lib/msan/msan_chained_origin_depot.h stable/12/contrib/compiler-rt/lib/msan/msan_flags.h stable/12/contrib/compiler-rt/lib/msan/msan_flags.inc stable/12/contrib/compiler-rt/lib/msan/msan_interceptors.cc stable/12/contrib/compiler-rt/lib/msan/msan_interface_internal.h stable/12/contrib/compiler-rt/lib/msan/msan_linux.cc stable/12/contrib/compiler-rt/lib/msan/msan_new_delete.cc stable/12/contrib/compiler-rt/lib/msan/msan_origin.h stable/12/contrib/compiler-rt/lib/msan/msan_poisoning.cc stable/12/contrib/compiler-rt/lib/msan/msan_poisoning.h stable/12/contrib/compiler-rt/lib/msan/msan_report.cc stable/12/contrib/compiler-rt/lib/msan/msan_report.h stable/12/contrib/compiler-rt/lib/msan/msan_thread.h stable/12/contrib/compiler-rt/lib/profile/GCDAProfiling.c stable/12/contrib/compiler-rt/lib/profile/InstrProfData.inc stable/12/contrib/compiler-rt/lib/profile/InstrProfiling.c stable/12/contrib/compiler-rt/lib/profile/InstrProfiling.h stable/12/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingFile.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h stable/12/contrib/compiler-rt/lib/profile/InstrProfilingMerge.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingMergeFile.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingNameVar.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformDarwin.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPlatformOther.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingPort.h stable/12/contrib/compiler-rt/lib/profile/InstrProfilingRuntime.cc stable/12/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingUtil.h stable/12/contrib/compiler-rt/lib/profile/InstrProfilingValue.c stable/12/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c stable/12/contrib/compiler-rt/lib/profile/WindowsMMap.h stable/12/contrib/compiler-rt/lib/safestack/safestack.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sancov_flags.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_bytemap.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_interface.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_internal.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_size_class_map.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_stats.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_asm.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_mips.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_x86.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_msvc.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bvgraph.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interface.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interface_posix.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_interface.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_sections.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_dbghelp.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector2.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno_codes.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_freebsd.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_getauxval.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_lfstack.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libc.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_list.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_local_address_space_view.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mutex.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_netbsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_openbsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_placement_new.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_report_decorator.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_rtems.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_signal_interceptors.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stackdepotbase.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_sparc.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_markup.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_rtems.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_x86_64.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_termination.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_type_traits.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_win.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_vector.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_defs.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dll_thunk.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dll_thunk.h stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.h stable/12/contrib/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc stable/12/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh stable/12/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt stable/12/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_allocator.h stable/12/contrib/compiler-rt/lib/scudo/scudo_allocator_combined.h stable/12/contrib/compiler-rt/lib/scudo/scudo_allocator_secondary.h stable/12/contrib/compiler-rt/lib/scudo/scudo_crc32.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_crc32.h stable/12/contrib/compiler-rt/lib/scudo/scudo_errors.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_errors.h stable/12/contrib/compiler-rt/lib/scudo/scudo_flags.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_flags.h stable/12/contrib/compiler-rt/lib/scudo/scudo_flags.inc stable/12/contrib/compiler-rt/lib/scudo/scudo_interface_internal.h stable/12/contrib/compiler-rt/lib/scudo/scudo_malloc.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_new_delete.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_platform.h stable/12/contrib/compiler-rt/lib/scudo/scudo_termination.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_tsd.h stable/12/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.inc stable/12/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.inc stable/12/contrib/compiler-rt/lib/scudo/scudo_utils.cpp stable/12/contrib/compiler-rt/lib/scudo/scudo_utils.h stable/12/contrib/compiler-rt/lib/stats/stats.cc stable/12/contrib/compiler-rt/lib/stats/stats.h stable/12/contrib/compiler-rt/lib/stats/stats_client.cc stable/12/contrib/compiler-rt/lib/tsan/dd/dd_interceptors.cc stable/12/contrib/compiler-rt/lib/tsan/dd/dd_rtl.cc stable/12/contrib/compiler-rt/lib/tsan/dd/dd_rtl.h stable/12/contrib/compiler-rt/lib/tsan/go/test.c stable/12/contrib/compiler-rt/lib/tsan/go/tsan_go.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_debugging.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_defs.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_external.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_fd.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_fd.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_flags.inc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_ignoreset.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_ignoreset.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_ann.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_inl.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_java.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_java.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_md5.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mutex.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mutex.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mutexset.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_mutexset.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_windows.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_preinit.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_report.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_proc.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_stack_trace.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_stack_trace.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_suppressions.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_symbolize.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.cc stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_trace.h stable/12/contrib/compiler-rt/lib/tsan/rtl/tsan_update_shadow_word_inl.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_checks.inc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_diag.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_diag_standalone.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_flags.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_flags.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_flags.inc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_handlers.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_init.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_init.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone_preinit.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_interface.inc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_monitor.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_monitor.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_platform.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_type_hash.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_type_hash.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_type_hash_win.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_value.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_value.h stable/12/contrib/compiler-rt/lib/ubsan/ubsan_win_dll_thunk.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cc stable/12/contrib/compiler-rt/lib/ubsan/ubsan_win_weak_interception.cc stable/12/contrib/compiler-rt/lib/xray/xray_AArch64.cc stable/12/contrib/compiler-rt/lib/xray/xray_allocator.h stable/12/contrib/compiler-rt/lib/xray/xray_arm.cc stable/12/contrib/compiler-rt/lib/xray/xray_basic_flags.cc stable/12/contrib/compiler-rt/lib/xray/xray_basic_flags.h stable/12/contrib/compiler-rt/lib/xray/xray_basic_flags.inc stable/12/contrib/compiler-rt/lib/xray/xray_basic_logging.cc stable/12/contrib/compiler-rt/lib/xray/xray_basic_logging.h stable/12/contrib/compiler-rt/lib/xray/xray_buffer_queue.cc stable/12/contrib/compiler-rt/lib/xray/xray_buffer_queue.h stable/12/contrib/compiler-rt/lib/xray/xray_defs.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_controller.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_flags.cc stable/12/contrib/compiler-rt/lib/xray/xray_fdr_flags.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_flags.inc stable/12/contrib/compiler-rt/lib/xray/xray_fdr_log_records.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_log_writer.h stable/12/contrib/compiler-rt/lib/xray/xray_fdr_logging.cc stable/12/contrib/compiler-rt/lib/xray/xray_fdr_logging.h stable/12/contrib/compiler-rt/lib/xray/xray_flags.cc stable/12/contrib/compiler-rt/lib/xray/xray_flags.h stable/12/contrib/compiler-rt/lib/xray/xray_flags.inc stable/12/contrib/compiler-rt/lib/xray/xray_function_call_trie.h stable/12/contrib/compiler-rt/lib/xray/xray_init.cc stable/12/contrib/compiler-rt/lib/xray/xray_interface.cc stable/12/contrib/compiler-rt/lib/xray/xray_interface_internal.h stable/12/contrib/compiler-rt/lib/xray/xray_log_interface.cc stable/12/contrib/compiler-rt/lib/xray/xray_mips.cc stable/12/contrib/compiler-rt/lib/xray/xray_mips64.cc stable/12/contrib/compiler-rt/lib/xray/xray_powerpc64.cc stable/12/contrib/compiler-rt/lib/xray/xray_powerpc64.inc stable/12/contrib/compiler-rt/lib/xray/xray_profile_collector.cc stable/12/contrib/compiler-rt/lib/xray/xray_profile_collector.h stable/12/contrib/compiler-rt/lib/xray/xray_profiling.cc stable/12/contrib/compiler-rt/lib/xray/xray_profiling_flags.cc stable/12/contrib/compiler-rt/lib/xray/xray_profiling_flags.h stable/12/contrib/compiler-rt/lib/xray/xray_profiling_flags.inc stable/12/contrib/compiler-rt/lib/xray/xray_recursion_guard.h stable/12/contrib/compiler-rt/lib/xray/xray_segmented_array.h stable/12/contrib/compiler-rt/lib/xray/xray_trampoline_mips.S stable/12/contrib/compiler-rt/lib/xray/xray_trampoline_mips64.S stable/12/contrib/compiler-rt/lib/xray/xray_trampoline_x86_64.S stable/12/contrib/compiler-rt/lib/xray/xray_tsc.h stable/12/contrib/compiler-rt/lib/xray/xray_utils.cc stable/12/contrib/compiler-rt/lib/xray/xray_utils.h stable/12/contrib/compiler-rt/lib/xray/xray_x86_64.inc stable/12/contrib/googletest/googlemock/test/gmock-spec-builders_test.cc stable/12/contrib/libc++/LICENSE.TXT stable/12/contrib/libc++/include/__bit_reference stable/12/contrib/libc++/include/__bsd_locale_defaults.h stable/12/contrib/libc++/include/__bsd_locale_fallbacks.h stable/12/contrib/libc++/include/__config stable/12/contrib/libc++/include/__debug stable/12/contrib/libc++/include/__errc stable/12/contrib/libc++/include/__functional_03 stable/12/contrib/libc++/include/__functional_base stable/12/contrib/libc++/include/__functional_base_03 stable/12/contrib/libc++/include/__hash_table stable/12/contrib/libc++/include/__libcpp_version stable/12/contrib/libc++/include/__locale stable/12/contrib/libc++/include/__mutex_base stable/12/contrib/libc++/include/__node_handle stable/12/contrib/libc++/include/__nullptr stable/12/contrib/libc++/include/__sso_allocator stable/12/contrib/libc++/include/__std_stream stable/12/contrib/libc++/include/__string stable/12/contrib/libc++/include/__threading_support stable/12/contrib/libc++/include/__tree stable/12/contrib/libc++/include/__tuple stable/12/contrib/libc++/include/__undef_macros stable/12/contrib/libc++/include/algorithm stable/12/contrib/libc++/include/any stable/12/contrib/libc++/include/array stable/12/contrib/libc++/include/atomic stable/12/contrib/libc++/include/bit stable/12/contrib/libc++/include/bitset stable/12/contrib/libc++/include/cassert stable/12/contrib/libc++/include/ccomplex stable/12/contrib/libc++/include/cctype stable/12/contrib/libc++/include/cerrno stable/12/contrib/libc++/include/cfenv stable/12/contrib/libc++/include/cfloat stable/12/contrib/libc++/include/charconv stable/12/contrib/libc++/include/chrono stable/12/contrib/libc++/include/cinttypes stable/12/contrib/libc++/include/ciso646 stable/12/contrib/libc++/include/climits stable/12/contrib/libc++/include/clocale stable/12/contrib/libc++/include/cmath stable/12/contrib/libc++/include/codecvt stable/12/contrib/libc++/include/compare stable/12/contrib/libc++/include/complex stable/12/contrib/libc++/include/complex.h stable/12/contrib/libc++/include/condition_variable stable/12/contrib/libc++/include/csetjmp stable/12/contrib/libc++/include/csignal stable/12/contrib/libc++/include/cstdarg stable/12/contrib/libc++/include/cstdbool stable/12/contrib/libc++/include/cstddef stable/12/contrib/libc++/include/cstdint stable/12/contrib/libc++/include/cstdio stable/12/contrib/libc++/include/cstdlib stable/12/contrib/libc++/include/cstring stable/12/contrib/libc++/include/ctgmath stable/12/contrib/libc++/include/ctime stable/12/contrib/libc++/include/ctype.h stable/12/contrib/libc++/include/cwchar stable/12/contrib/libc++/include/cwctype stable/12/contrib/libc++/include/deque stable/12/contrib/libc++/include/errno.h stable/12/contrib/libc++/include/exception stable/12/contrib/libc++/include/experimental/__config stable/12/contrib/libc++/include/experimental/__memory stable/12/contrib/libc++/include/experimental/algorithm stable/12/contrib/libc++/include/experimental/coroutine stable/12/contrib/libc++/include/experimental/deque stable/12/contrib/libc++/include/experimental/filesystem stable/12/contrib/libc++/include/experimental/forward_list stable/12/contrib/libc++/include/experimental/functional stable/12/contrib/libc++/include/experimental/iterator stable/12/contrib/libc++/include/experimental/list stable/12/contrib/libc++/include/experimental/map stable/12/contrib/libc++/include/experimental/memory_resource stable/12/contrib/libc++/include/experimental/propagate_const stable/12/contrib/libc++/include/experimental/regex stable/12/contrib/libc++/include/experimental/set stable/12/contrib/libc++/include/experimental/simd stable/12/contrib/libc++/include/experimental/string stable/12/contrib/libc++/include/experimental/type_traits stable/12/contrib/libc++/include/experimental/unordered_map stable/12/contrib/libc++/include/experimental/unordered_set stable/12/contrib/libc++/include/experimental/utility stable/12/contrib/libc++/include/experimental/vector stable/12/contrib/libc++/include/ext/__hash stable/12/contrib/libc++/include/ext/hash_map stable/12/contrib/libc++/include/ext/hash_set stable/12/contrib/libc++/include/filesystem stable/12/contrib/libc++/include/float.h stable/12/contrib/libc++/include/forward_list stable/12/contrib/libc++/include/fstream stable/12/contrib/libc++/include/functional stable/12/contrib/libc++/include/future stable/12/contrib/libc++/include/initializer_list stable/12/contrib/libc++/include/inttypes.h stable/12/contrib/libc++/include/iomanip stable/12/contrib/libc++/include/ios stable/12/contrib/libc++/include/iosfwd stable/12/contrib/libc++/include/iostream stable/12/contrib/libc++/include/istream stable/12/contrib/libc++/include/iterator stable/12/contrib/libc++/include/limits stable/12/contrib/libc++/include/limits.h stable/12/contrib/libc++/include/list stable/12/contrib/libc++/include/locale stable/12/contrib/libc++/include/locale.h stable/12/contrib/libc++/include/map stable/12/contrib/libc++/include/math.h stable/12/contrib/libc++/include/memory stable/12/contrib/libc++/include/module.modulemap stable/12/contrib/libc++/include/mutex stable/12/contrib/libc++/include/new stable/12/contrib/libc++/include/numeric stable/12/contrib/libc++/include/optional stable/12/contrib/libc++/include/ostream stable/12/contrib/libc++/include/queue stable/12/contrib/libc++/include/random stable/12/contrib/libc++/include/ratio stable/12/contrib/libc++/include/regex stable/12/contrib/libc++/include/scoped_allocator stable/12/contrib/libc++/include/set stable/12/contrib/libc++/include/setjmp.h stable/12/contrib/libc++/include/shared_mutex stable/12/contrib/libc++/include/span stable/12/contrib/libc++/include/sstream stable/12/contrib/libc++/include/stack stable/12/contrib/libc++/include/stdbool.h stable/12/contrib/libc++/include/stddef.h stable/12/contrib/libc++/include/stdexcept stable/12/contrib/libc++/include/stdint.h stable/12/contrib/libc++/include/stdio.h stable/12/contrib/libc++/include/stdlib.h stable/12/contrib/libc++/include/streambuf stable/12/contrib/libc++/include/string stable/12/contrib/libc++/include/string.h stable/12/contrib/libc++/include/string_view stable/12/contrib/libc++/include/strstream stable/12/contrib/libc++/include/system_error stable/12/contrib/libc++/include/tgmath.h stable/12/contrib/libc++/include/thread stable/12/contrib/libc++/include/tuple stable/12/contrib/libc++/include/type_traits stable/12/contrib/libc++/include/typeindex stable/12/contrib/libc++/include/typeinfo stable/12/contrib/libc++/include/unordered_map stable/12/contrib/libc++/include/unordered_set stable/12/contrib/libc++/include/utility stable/12/contrib/libc++/include/valarray stable/12/contrib/libc++/include/variant stable/12/contrib/libc++/include/vector stable/12/contrib/libc++/include/version stable/12/contrib/libc++/include/wchar.h stable/12/contrib/libc++/include/wctype.h stable/12/contrib/libc++/src/algorithm.cpp stable/12/contrib/libc++/src/any.cpp stable/12/contrib/libc++/src/bind.cpp stable/12/contrib/libc++/src/charconv.cpp stable/12/contrib/libc++/src/chrono.cpp stable/12/contrib/libc++/src/condition_variable.cpp stable/12/contrib/libc++/src/debug.cpp stable/12/contrib/libc++/src/exception.cpp stable/12/contrib/libc++/src/experimental/memory_resource.cpp stable/12/contrib/libc++/src/filesystem/directory_iterator.cpp stable/12/contrib/libc++/src/filesystem/filesystem_common.h stable/12/contrib/libc++/src/filesystem/int128_builtins.cpp stable/12/contrib/libc++/src/filesystem/operations.cpp stable/12/contrib/libc++/src/functional.cpp stable/12/contrib/libc++/src/future.cpp stable/12/contrib/libc++/src/hash.cpp stable/12/contrib/libc++/src/include/apple_availability.h stable/12/contrib/libc++/src/include/atomic_support.h stable/12/contrib/libc++/src/include/config_elast.h stable/12/contrib/libc++/src/include/refstring.h stable/12/contrib/libc++/src/ios.cpp stable/12/contrib/libc++/src/iostream.cpp stable/12/contrib/libc++/src/locale.cpp stable/12/contrib/libc++/src/memory.cpp stable/12/contrib/libc++/src/mutex.cpp stable/12/contrib/libc++/src/new.cpp stable/12/contrib/libc++/src/optional.cpp stable/12/contrib/libc++/src/random.cpp stable/12/contrib/libc++/src/regex.cpp stable/12/contrib/libc++/src/shared_mutex.cpp stable/12/contrib/libc++/src/stdexcept.cpp stable/12/contrib/libc++/src/string.cpp stable/12/contrib/libc++/src/strstream.cpp stable/12/contrib/libc++/src/support/runtime/exception_fallback.ipp stable/12/contrib/libc++/src/support/runtime/exception_glibcxx.ipp stable/12/contrib/libc++/src/support/runtime/exception_libcxxabi.ipp stable/12/contrib/libc++/src/support/runtime/exception_libcxxrt.ipp stable/12/contrib/libc++/src/support/runtime/exception_msvc.ipp stable/12/contrib/libc++/src/support/runtime/exception_pointer_cxxabi.ipp stable/12/contrib/libc++/src/support/runtime/exception_pointer_glibcxx.ipp stable/12/contrib/libc++/src/support/runtime/exception_pointer_msvc.ipp stable/12/contrib/libc++/src/support/runtime/exception_pointer_unimplemented.ipp stable/12/contrib/libc++/src/support/runtime/new_handler_fallback.ipp stable/12/contrib/libc++/src/system_error.cpp stable/12/contrib/libc++/src/thread.cpp stable/12/contrib/libc++/src/typeinfo.cpp stable/12/contrib/libc++/src/utility.cpp stable/12/contrib/libc++/src/valarray.cpp stable/12/contrib/libc++/src/variant.cpp stable/12/contrib/libc++/src/vector.cpp stable/12/contrib/libunwind/LICENSE.TXT stable/12/contrib/libunwind/include/__libunwind_config.h stable/12/contrib/libunwind/include/libunwind.h stable/12/contrib/libunwind/include/mach-o/compact_unwind_encoding.h stable/12/contrib/libunwind/include/unwind.h stable/12/contrib/libunwind/src/AddressSpace.hpp stable/12/contrib/libunwind/src/CompactUnwinder.hpp stable/12/contrib/libunwind/src/DwarfInstructions.hpp stable/12/contrib/libunwind/src/DwarfParser.hpp stable/12/contrib/libunwind/src/EHHeaderParser.hpp stable/12/contrib/libunwind/src/RWMutex.hpp stable/12/contrib/libunwind/src/Registers.hpp stable/12/contrib/libunwind/src/Unwind-EHABI.cpp stable/12/contrib/libunwind/src/Unwind-EHABI.h stable/12/contrib/libunwind/src/Unwind-seh.cpp stable/12/contrib/libunwind/src/Unwind-sjlj.c stable/12/contrib/libunwind/src/UnwindCursor.hpp stable/12/contrib/libunwind/src/UnwindLevel1-gcc-ext.c stable/12/contrib/libunwind/src/UnwindLevel1.c stable/12/contrib/libunwind/src/UnwindRegistersRestore.S stable/12/contrib/libunwind/src/UnwindRegistersSave.S stable/12/contrib/libunwind/src/Unwind_AppleExtras.cpp stable/12/contrib/libunwind/src/assembly.h stable/12/contrib/libunwind/src/config.h stable/12/contrib/libunwind/src/dwarf2.h stable/12/contrib/libunwind/src/libunwind.cpp stable/12/contrib/libunwind/src/libunwind_ext.h stable/12/contrib/llvm/FREEBSD-Xlist stable/12/contrib/llvm/LICENSE.TXT stable/12/contrib/llvm/include/llvm-c/Analysis.h stable/12/contrib/llvm/include/llvm-c/BitReader.h stable/12/contrib/llvm/include/llvm-c/BitWriter.h stable/12/contrib/llvm/include/llvm-c/Comdat.h stable/12/contrib/llvm/include/llvm-c/Core.h stable/12/contrib/llvm/include/llvm-c/DataTypes.h stable/12/contrib/llvm/include/llvm-c/DebugInfo.h stable/12/contrib/llvm/include/llvm-c/Disassembler.h stable/12/contrib/llvm/include/llvm-c/DisassemblerTypes.h stable/12/contrib/llvm/include/llvm-c/Error.h stable/12/contrib/llvm/include/llvm-c/ErrorHandling.h stable/12/contrib/llvm/include/llvm-c/ExecutionEngine.h stable/12/contrib/llvm/include/llvm-c/IRReader.h stable/12/contrib/llvm/include/llvm-c/Initialization.h stable/12/contrib/llvm/include/llvm-c/LinkTimeOptimizer.h stable/12/contrib/llvm/include/llvm-c/Linker.h stable/12/contrib/llvm/include/llvm-c/Object.h stable/12/contrib/llvm/include/llvm-c/OrcBindings.h stable/12/contrib/llvm/include/llvm-c/Support.h stable/12/contrib/llvm/include/llvm-c/Target.h stable/12/contrib/llvm/include/llvm-c/TargetMachine.h stable/12/contrib/llvm/include/llvm-c/Transforms/AggressiveInstCombine.h stable/12/contrib/llvm/include/llvm-c/Transforms/Coroutines.h stable/12/contrib/llvm/include/llvm-c/Transforms/IPO.h stable/12/contrib/llvm/include/llvm-c/Transforms/InstCombine.h stable/12/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h stable/12/contrib/llvm/include/llvm-c/Transforms/Scalar.h stable/12/contrib/llvm/include/llvm-c/Transforms/Utils.h stable/12/contrib/llvm/include/llvm-c/Transforms/Vectorize.h stable/12/contrib/llvm/include/llvm-c/Types.h stable/12/contrib/llvm/include/llvm-c/lto.h stable/12/contrib/llvm/include/llvm/ADT/APFloat.h stable/12/contrib/llvm/include/llvm/ADT/APInt.h stable/12/contrib/llvm/include/llvm/ADT/APSInt.h stable/12/contrib/llvm/include/llvm/ADT/AllocatorList.h stable/12/contrib/llvm/include/llvm/ADT/Any.h stable/12/contrib/llvm/include/llvm/ADT/ArrayRef.h stable/12/contrib/llvm/include/llvm/ADT/BitVector.h stable/12/contrib/llvm/include/llvm/ADT/BitmaskEnum.h stable/12/contrib/llvm/include/llvm/ADT/BreadthFirstIterator.h stable/12/contrib/llvm/include/llvm/ADT/CachedHashString.h stable/12/contrib/llvm/include/llvm/ADT/DAGDeltaAlgorithm.h stable/12/contrib/llvm/include/llvm/ADT/DeltaAlgorithm.h stable/12/contrib/llvm/include/llvm/ADT/DenseMap.h stable/12/contrib/llvm/include/llvm/ADT/DenseMapInfo.h stable/12/contrib/llvm/include/llvm/ADT/DenseSet.h stable/12/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h stable/12/contrib/llvm/include/llvm/ADT/EpochTracker.h stable/12/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h stable/12/contrib/llvm/include/llvm/ADT/FoldingSet.h stable/12/contrib/llvm/include/llvm/ADT/FunctionExtras.h stable/12/contrib/llvm/include/llvm/ADT/GraphTraits.h stable/12/contrib/llvm/include/llvm/ADT/Hashing.h stable/12/contrib/llvm/include/llvm/ADT/ImmutableList.h stable/12/contrib/llvm/include/llvm/ADT/ImmutableMap.h stable/12/contrib/llvm/include/llvm/ADT/ImmutableSet.h stable/12/contrib/llvm/include/llvm/ADT/IndexedMap.h stable/12/contrib/llvm/include/llvm/ADT/IntEqClasses.h stable/12/contrib/llvm/include/llvm/ADT/IntervalMap.h stable/12/contrib/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h stable/12/contrib/llvm/include/llvm/ADT/MapVector.h stable/12/contrib/llvm/include/llvm/ADT/None.h stable/12/contrib/llvm/include/llvm/ADT/Optional.h stable/12/contrib/llvm/include/llvm/ADT/PackedVector.h stable/12/contrib/llvm/include/llvm/ADT/PointerEmbeddedInt.h stable/12/contrib/llvm/include/llvm/ADT/PointerIntPair.h stable/12/contrib/llvm/include/llvm/ADT/PointerSumType.h stable/12/contrib/llvm/include/llvm/ADT/PointerUnion.h stable/12/contrib/llvm/include/llvm/ADT/PostOrderIterator.h stable/12/contrib/llvm/include/llvm/ADT/PriorityQueue.h stable/12/contrib/llvm/include/llvm/ADT/PriorityWorklist.h stable/12/contrib/llvm/include/llvm/ADT/SCCIterator.h stable/12/contrib/llvm/include/llvm/ADT/STLExtras.h stable/12/contrib/llvm/include/llvm/ADT/ScopeExit.h stable/12/contrib/llvm/include/llvm/ADT/ScopedHashTable.h stable/12/contrib/llvm/include/llvm/ADT/Sequence.h stable/12/contrib/llvm/include/llvm/ADT/SetOperations.h stable/12/contrib/llvm/include/llvm/ADT/SetVector.h stable/12/contrib/llvm/include/llvm/ADT/SmallBitVector.h stable/12/contrib/llvm/include/llvm/ADT/SmallPtrSet.h stable/12/contrib/llvm/include/llvm/ADT/SmallSet.h stable/12/contrib/llvm/include/llvm/ADT/SmallString.h stable/12/contrib/llvm/include/llvm/ADT/SmallVector.h stable/12/contrib/llvm/include/llvm/ADT/SparseBitVector.h stable/12/contrib/llvm/include/llvm/ADT/SparseMultiSet.h stable/12/contrib/llvm/include/llvm/ADT/SparseSet.h stable/12/contrib/llvm/include/llvm/ADT/Statistic.h stable/12/contrib/llvm/include/llvm/ADT/StringExtras.h stable/12/contrib/llvm/include/llvm/ADT/StringMap.h stable/12/contrib/llvm/include/llvm/ADT/StringRef.h stable/12/contrib/llvm/include/llvm/ADT/StringSet.h stable/12/contrib/llvm/include/llvm/ADT/StringSwitch.h stable/12/contrib/llvm/include/llvm/ADT/TinyPtrVector.h stable/12/contrib/llvm/include/llvm/ADT/Triple.h stable/12/contrib/llvm/include/llvm/ADT/Twine.h stable/12/contrib/llvm/include/llvm/ADT/UniqueVector.h stable/12/contrib/llvm/include/llvm/ADT/VariadicFunction.h stable/12/contrib/llvm/include/llvm/ADT/bit.h stable/12/contrib/llvm/include/llvm/ADT/edit_distance.h stable/12/contrib/llvm/include/llvm/ADT/ilist.h stable/12/contrib/llvm/include/llvm/ADT/ilist_base.h stable/12/contrib/llvm/include/llvm/ADT/ilist_iterator.h stable/12/contrib/llvm/include/llvm/ADT/ilist_node.h stable/12/contrib/llvm/include/llvm/ADT/ilist_node_base.h stable/12/contrib/llvm/include/llvm/ADT/ilist_node_options.h stable/12/contrib/llvm/include/llvm/ADT/iterator.h stable/12/contrib/llvm/include/llvm/ADT/iterator_range.h stable/12/contrib/llvm/include/llvm/ADT/simple_ilist.h stable/12/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h stable/12/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h stable/12/contrib/llvm/include/llvm/Analysis/AssumptionCache.h stable/12/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h stable/12/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h stable/12/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h stable/12/contrib/llvm/include/llvm/Analysis/CFG.h stable/12/contrib/llvm/include/llvm/Analysis/CFGPrinter.h stable/12/contrib/llvm/include/llvm/Analysis/CFLAliasAnalysisUtils.h stable/12/contrib/llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h stable/12/contrib/llvm/include/llvm/Analysis/CallGraph.h stable/12/contrib/llvm/include/llvm/Analysis/CallGraphSCCPass.h stable/12/contrib/llvm/include/llvm/Analysis/CallPrinter.h stable/12/contrib/llvm/include/llvm/Analysis/CaptureTracking.h stable/12/contrib/llvm/include/llvm/Analysis/CmpInstAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/CodeMetrics.h stable/12/contrib/llvm/include/llvm/Analysis/ConstantFolding.h stable/12/contrib/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h stable/12/contrib/llvm/include/llvm/Analysis/DemandedBits.h stable/12/contrib/llvm/include/llvm/Analysis/DependenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/DivergenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/DomPrinter.h stable/12/contrib/llvm/include/llvm/Analysis/DominanceFrontier.h stable/12/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h stable/12/contrib/llvm/include/llvm/Analysis/EHPersonalities.h stable/12/contrib/llvm/include/llvm/Analysis/GlobalsModRef.h stable/12/contrib/llvm/include/llvm/Analysis/GuardUtils.h stable/12/contrib/llvm/include/llvm/Analysis/IVDescriptors.h stable/12/contrib/llvm/include/llvm/Analysis/IVUsers.h stable/12/contrib/llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/IndirectCallVisitor.h stable/12/contrib/llvm/include/llvm/Analysis/InlineCost.h stable/12/contrib/llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h stable/12/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h stable/12/contrib/llvm/include/llvm/Analysis/Interval.h stable/12/contrib/llvm/include/llvm/Analysis/IntervalIterator.h stable/12/contrib/llvm/include/llvm/Analysis/IntervalPartition.h stable/12/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h stable/12/contrib/llvm/include/llvm/Analysis/LazyBlockFrequencyInfo.h stable/12/contrib/llvm/include/llvm/Analysis/LazyBranchProbabilityInfo.h stable/12/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h stable/12/contrib/llvm/include/llvm/Analysis/LazyValueInfo.h stable/12/contrib/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/Lint.h stable/12/contrib/llvm/include/llvm/Analysis/Loads.h stable/12/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/LoopAnalysisManager.h stable/12/contrib/llvm/include/llvm/Analysis/LoopInfo.h stable/12/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h stable/12/contrib/llvm/include/llvm/Analysis/LoopIterator.h stable/12/contrib/llvm/include/llvm/Analysis/LoopPass.h stable/12/contrib/llvm/include/llvm/Analysis/LoopUnrollAnalyzer.h stable/12/contrib/llvm/include/llvm/Analysis/MemoryBuiltins.h stable/12/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/MemoryLocation.h stable/12/contrib/llvm/include/llvm/Analysis/MemorySSA.h stable/12/contrib/llvm/include/llvm/Analysis/MemorySSAUpdater.h stable/12/contrib/llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/MustExecute.h stable/12/contrib/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h stable/12/contrib/llvm/include/llvm/Analysis/ObjCARCInstKind.h stable/12/contrib/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h stable/12/contrib/llvm/include/llvm/Analysis/OrderedBasicBlock.h stable/12/contrib/llvm/include/llvm/Analysis/OrderedInstructions.h stable/12/contrib/llvm/include/llvm/Analysis/PHITransAddr.h stable/12/contrib/llvm/include/llvm/Analysis/Passes.h stable/12/contrib/llvm/include/llvm/Analysis/PhiValues.h stable/12/contrib/llvm/include/llvm/Analysis/PostDominators.h stable/12/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h stable/12/contrib/llvm/include/llvm/Analysis/PtrUseVisitor.h stable/12/contrib/llvm/include/llvm/Analysis/RegionInfo.h stable/12/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h stable/12/contrib/llvm/include/llvm/Analysis/RegionIterator.h stable/12/contrib/llvm/include/llvm/Analysis/RegionPass.h stable/12/contrib/llvm/include/llvm/Analysis/RegionPrinter.h stable/12/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h stable/12/contrib/llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h stable/12/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h stable/12/contrib/llvm/include/llvm/Analysis/ScalarEvolutionNormalization.h stable/12/contrib/llvm/include/llvm/Analysis/ScopedNoAliasAA.h stable/12/contrib/llvm/include/llvm/Analysis/SparsePropagation.h stable/12/contrib/llvm/include/llvm/Analysis/StackSafetyAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/SyncDependenceAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/SyntheticCountsUtils.h stable/12/contrib/llvm/include/llvm/Analysis/TargetFolder.h stable/12/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.def stable/12/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.h stable/12/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h stable/12/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h stable/12/contrib/llvm/include/llvm/Analysis/Trace.h stable/12/contrib/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h stable/12/contrib/llvm/include/llvm/Analysis/TypeMetadataUtils.h stable/12/contrib/llvm/include/llvm/Analysis/Utils/Local.h stable/12/contrib/llvm/include/llvm/Analysis/ValueLattice.h stable/12/contrib/llvm/include/llvm/Analysis/ValueLatticeUtils.h stable/12/contrib/llvm/include/llvm/Analysis/ValueTracking.h stable/12/contrib/llvm/include/llvm/Analysis/VectorUtils.h stable/12/contrib/llvm/include/llvm/AsmParser/Parser.h stable/12/contrib/llvm/include/llvm/AsmParser/SlotMapping.h stable/12/contrib/llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h stable/12/contrib/llvm/include/llvm/BinaryFormat/COFF.h stable/12/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def stable/12/contrib/llvm/include/llvm/BinaryFormat/Dwarf.h stable/12/contrib/llvm/include/llvm/BinaryFormat/DynamicTags.def stable/12/contrib/llvm/include/llvm/BinaryFormat/ELF.h stable/12/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/ARM.def stable/12/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/PowerPC.def stable/12/contrib/llvm/include/llvm/BinaryFormat/MachO.def stable/12/contrib/llvm/include/llvm/BinaryFormat/MachO.h stable/12/contrib/llvm/include/llvm/BinaryFormat/Magic.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPack.def stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPack.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPackReader.h stable/12/contrib/llvm/include/llvm/BinaryFormat/MsgPackWriter.h stable/12/contrib/llvm/include/llvm/BinaryFormat/Wasm.h stable/12/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def stable/12/contrib/llvm/include/llvm/Bitcode/BitcodeReader.h stable/12/contrib/llvm/include/llvm/Bitcode/BitcodeWriter.h stable/12/contrib/llvm/include/llvm/Bitcode/BitcodeWriterPass.h stable/12/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h stable/12/contrib/llvm/include/llvm/CodeGen/AccelTable.h stable/12/contrib/llvm/include/llvm/CodeGen/Analysis.h stable/12/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h stable/12/contrib/llvm/include/llvm/CodeGen/AsmPrinterHandler.h stable/12/contrib/llvm/include/llvm/CodeGen/AtomicExpandUtils.h stable/12/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h stable/12/contrib/llvm/include/llvm/CodeGen/BuiltinGCs.h stable/12/contrib/llvm/include/llvm/CodeGen/CalcSpillWeights.h stable/12/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h stable/12/contrib/llvm/include/llvm/CodeGen/CommandFlags.inc stable/12/contrib/llvm/include/llvm/CodeGen/CostTable.h stable/12/contrib/llvm/include/llvm/CodeGen/DAGCombine.h stable/12/contrib/llvm/include/llvm/CodeGen/DFAPacketizer.h stable/12/contrib/llvm/include/llvm/CodeGen/DIE.h stable/12/contrib/llvm/include/llvm/CodeGen/DIEValue.def stable/12/contrib/llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h stable/12/contrib/llvm/include/llvm/CodeGen/DebugHandlerBase.h stable/12/contrib/llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h stable/12/contrib/llvm/include/llvm/CodeGen/EdgeBundles.h stable/12/contrib/llvm/include/llvm/CodeGen/ExecutionDomainFix.h stable/12/contrib/llvm/include/llvm/CodeGen/ExpandReductions.h stable/12/contrib/llvm/include/llvm/CodeGen/FastISel.h stable/12/contrib/llvm/include/llvm/CodeGen/FaultMaps.h stable/12/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GCMetadata.h stable/12/contrib/llvm/include/llvm/CodeGen/GCMetadataPrinter.h stable/12/contrib/llvm/include/llvm/CodeGen/GCStrategy.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Combiner.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/ConstantFoldingMIRBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelect.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBank.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Types.h stable/12/contrib/llvm/include/llvm/CodeGen/GlobalISel/Utils.h stable/12/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h stable/12/contrib/llvm/include/llvm/CodeGen/IntrinsicLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h stable/12/contrib/llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/LexicalScopes.h stable/12/contrib/llvm/include/llvm/CodeGen/LinkAllAsmWriterComponents.h stable/12/contrib/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveInterval.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveIntervalUnion.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveIntervals.h stable/12/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveRangeEdit.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveRegMatrix.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveRegUnits.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveStacks.h stable/12/contrib/llvm/include/llvm/CodeGen/LiveVariables.h stable/12/contrib/llvm/include/llvm/CodeGen/LoopTraversal.h stable/12/contrib/llvm/include/llvm/CodeGen/LowLevelType.h stable/12/contrib/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h stable/12/contrib/llvm/include/llvm/CodeGen/MIRPrinter.h stable/12/contrib/llvm/include/llvm/CodeGen/MIRYamlMapping.h stable/12/contrib/llvm/include/llvm/CodeGen/MachORelocation.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineCombinerPattern.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineConstantPool.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineDominators.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineFunction.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineFunctionPass.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineInstr.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineInstrBundle.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineJumpTableInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineLoopInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineMemOperand.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineOperand.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineOutliner.h stable/12/contrib/llvm/include/llvm/CodeGen/MachinePassRegistry.h stable/12/contrib/llvm/include/llvm/CodeGen/MachinePipeliner.h stable/12/contrib/llvm/include/llvm/CodeGen/MachinePostDominators.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineRegionInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineSSAUpdater.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h stable/12/contrib/llvm/include/llvm/CodeGen/MachineTraceMetrics.h stable/12/contrib/llvm/include/llvm/CodeGen/MacroFusion.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQP/Graph.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQP/Math.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQP/ReductionRules.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQP/Solution.h stable/12/contrib/llvm/include/llvm/CodeGen/PBQPRAConstraint.h stable/12/contrib/llvm/include/llvm/CodeGen/ParallelCG.h stable/12/contrib/llvm/include/llvm/CodeGen/Passes.h stable/12/contrib/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h stable/12/contrib/llvm/include/llvm/CodeGen/ReachingDefAnalysis.h stable/12/contrib/llvm/include/llvm/CodeGen/RegAllocPBQP.h stable/12/contrib/llvm/include/llvm/CodeGen/RegAllocRegistry.h stable/12/contrib/llvm/include/llvm/CodeGen/RegisterClassInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/RegisterPressure.h stable/12/contrib/llvm/include/llvm/CodeGen/RegisterScavenging.h stable/12/contrib/llvm/include/llvm/CodeGen/RegisterUsageInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h stable/12/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h stable/12/contrib/llvm/include/llvm/CodeGen/SDNodeProperties.td stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleDAGMutation.h stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleDFS.h stable/12/contrib/llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h stable/12/contrib/llvm/include/llvm/CodeGen/SchedulerRegistry.h stable/12/contrib/llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h stable/12/contrib/llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h stable/12/contrib/llvm/include/llvm/CodeGen/StackMaps.h stable/12/contrib/llvm/include/llvm/CodeGen/StackProtector.h stable/12/contrib/llvm/include/llvm/CodeGen/TailDuplicator.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetCallingConv.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetFrameLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetInstrInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetLowering.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetSchedule.h stable/12/contrib/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/UnreachableBlockElim.h stable/12/contrib/llvm/include/llvm/CodeGen/ValueTypes.h stable/12/contrib/llvm/include/llvm/CodeGen/ValueTypes.td stable/12/contrib/llvm/include/llvm/CodeGen/VirtRegMap.h stable/12/contrib/llvm/include/llvm/CodeGen/WasmEHFuncInfo.h stable/12/contrib/llvm/include/llvm/CodeGen/WinEHFuncInfo.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeView.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewError.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewTypes.def stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/Formatters.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/FunctionId.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/GUID.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/Line.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordName.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordSerialization.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeCollection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeTableCollection.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h stable/12/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h stable/12/contrib/llvm/include/llvm/DebugInfo/DIContext.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAttribute.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h stable/12/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h stable/12/contrib/llvm/include/llvm/DebugInfo/MSF/IMSFFile.h stable/12/contrib/llvm/include/llvm/DebugInfo/MSF/MSFBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/MSF/MSFCommon.h stable/12/contrib/llvm/include/llvm/DebugInfo/MSF/MSFError.h stable/12/contrib/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAError.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAFrameData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASectionContrib.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASession.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASupport.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIATable.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAUtils.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/GenericError.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBLineNumber.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSourceFile.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Formatters.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Hash.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawConstants.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawError.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDB.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBContext.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymDumper.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h stable/12/contrib/llvm/include/llvm/DebugInfo/PDB/UDTLayout.h stable/12/contrib/llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h stable/12/contrib/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h stable/12/contrib/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h stable/12/contrib/llvm/include/llvm/Demangle/Demangle.h stable/12/contrib/llvm/include/llvm/Demangle/ItaniumDemangle.h stable/12/contrib/llvm/include/llvm/Demangle/MicrosoftDemangle.h stable/12/contrib/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h stable/12/contrib/llvm/include/llvm/Demangle/StringView.h stable/12/contrib/llvm/include/llvm/Demangle/Utility.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/GenericValue.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Interpreter.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/JITEventListener.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/JITSymbol.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/MCJIT.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/OProfileWrapper.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/ObjectCache.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/Core.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/LambdaResolver.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/Layer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/Legacy.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/NullResolver.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RawByteChannel.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/OrcMCJITReplacement.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h stable/12/contrib/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h stable/12/contrib/llvm/include/llvm/FuzzMutate/FuzzerCLI.h stable/12/contrib/llvm/include/llvm/FuzzMutate/IRMutator.h stable/12/contrib/llvm/include/llvm/FuzzMutate/OpDescriptor.h stable/12/contrib/llvm/include/llvm/FuzzMutate/Operations.h stable/12/contrib/llvm/include/llvm/FuzzMutate/Random.h stable/12/contrib/llvm/include/llvm/FuzzMutate/RandomIRBuilder.h stable/12/contrib/llvm/include/llvm/IR/Argument.h stable/12/contrib/llvm/include/llvm/IR/AssemblyAnnotationWriter.h stable/12/contrib/llvm/include/llvm/IR/Attributes.h stable/12/contrib/llvm/include/llvm/IR/Attributes.td stable/12/contrib/llvm/include/llvm/IR/AutoUpgrade.h stable/12/contrib/llvm/include/llvm/IR/BasicBlock.h stable/12/contrib/llvm/include/llvm/IR/CFG.h stable/12/contrib/llvm/include/llvm/IR/CFGDiff.h stable/12/contrib/llvm/include/llvm/IR/CallSite.h stable/12/contrib/llvm/include/llvm/IR/CallingConv.h stable/12/contrib/llvm/include/llvm/IR/Comdat.h stable/12/contrib/llvm/include/llvm/IR/Constant.h stable/12/contrib/llvm/include/llvm/IR/ConstantFolder.h stable/12/contrib/llvm/include/llvm/IR/ConstantRange.h stable/12/contrib/llvm/include/llvm/IR/Constants.h stable/12/contrib/llvm/include/llvm/IR/DIBuilder.h stable/12/contrib/llvm/include/llvm/IR/DataLayout.h stable/12/contrib/llvm/include/llvm/IR/DebugInfo.h stable/12/contrib/llvm/include/llvm/IR/DebugInfoFlags.def stable/12/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h stable/12/contrib/llvm/include/llvm/IR/DebugLoc.h stable/12/contrib/llvm/include/llvm/IR/DerivedTypes.h stable/12/contrib/llvm/include/llvm/IR/DerivedUser.h stable/12/contrib/llvm/include/llvm/IR/DiagnosticHandler.h stable/12/contrib/llvm/include/llvm/IR/DiagnosticInfo.h stable/12/contrib/llvm/include/llvm/IR/DiagnosticPrinter.h stable/12/contrib/llvm/include/llvm/IR/Dominators.h stable/12/contrib/llvm/include/llvm/IR/Function.h stable/12/contrib/llvm/include/llvm/IR/GVMaterializer.h stable/12/contrib/llvm/include/llvm/IR/GetElementPtrTypeIterator.h stable/12/contrib/llvm/include/llvm/IR/GlobalAlias.h stable/12/contrib/llvm/include/llvm/IR/GlobalIFunc.h stable/12/contrib/llvm/include/llvm/IR/GlobalIndirectSymbol.h stable/12/contrib/llvm/include/llvm/IR/GlobalObject.h stable/12/contrib/llvm/include/llvm/IR/GlobalValue.h stable/12/contrib/llvm/include/llvm/IR/GlobalVariable.h stable/12/contrib/llvm/include/llvm/IR/IRBuilder.h stable/12/contrib/llvm/include/llvm/IR/IRPrintingPasses.h stable/12/contrib/llvm/include/llvm/IR/InlineAsm.h stable/12/contrib/llvm/include/llvm/IR/InstIterator.h stable/12/contrib/llvm/include/llvm/IR/InstVisitor.h stable/12/contrib/llvm/include/llvm/IR/InstrTypes.h stable/12/contrib/llvm/include/llvm/IR/Instruction.def stable/12/contrib/llvm/include/llvm/IR/Instruction.h stable/12/contrib/llvm/include/llvm/IR/Instructions.h stable/12/contrib/llvm/include/llvm/IR/IntrinsicInst.h stable/12/contrib/llvm/include/llvm/IR/Intrinsics.h stable/12/contrib/llvm/include/llvm/IR/Intrinsics.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsAArch64.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsARM.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsBPF.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsMips.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsNVVM.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsPowerPC.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsRISCV.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsSystemZ.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsWebAssembly.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsX86.td stable/12/contrib/llvm/include/llvm/IR/IntrinsicsXCore.td stable/12/contrib/llvm/include/llvm/IR/LLVMContext.h stable/12/contrib/llvm/include/llvm/IR/LegacyPassManager.h stable/12/contrib/llvm/include/llvm/IR/LegacyPassManagers.h stable/12/contrib/llvm/include/llvm/IR/LegacyPassNameParser.h stable/12/contrib/llvm/include/llvm/IR/MDBuilder.h stable/12/contrib/llvm/include/llvm/IR/Mangler.h stable/12/contrib/llvm/include/llvm/IR/Metadata.def stable/12/contrib/llvm/include/llvm/IR/Metadata.h stable/12/contrib/llvm/include/llvm/IR/Module.h stable/12/contrib/llvm/include/llvm/IR/ModuleSlotTracker.h stable/12/contrib/llvm/include/llvm/IR/ModuleSummaryIndex.h stable/12/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h stable/12/contrib/llvm/include/llvm/IR/NoFolder.h stable/12/contrib/llvm/include/llvm/IR/OperandTraits.h stable/12/contrib/llvm/include/llvm/IR/Operator.h stable/12/contrib/llvm/include/llvm/IR/OptBisect.h stable/12/contrib/llvm/include/llvm/IR/PassInstrumentation.h stable/12/contrib/llvm/include/llvm/IR/PassManager.h stable/12/contrib/llvm/include/llvm/IR/PassManagerInternal.h stable/12/contrib/llvm/include/llvm/IR/PassTimingInfo.h stable/12/contrib/llvm/include/llvm/IR/PatternMatch.h stable/12/contrib/llvm/include/llvm/IR/PredIteratorCache.h stable/12/contrib/llvm/include/llvm/IR/ProfileSummary.h stable/12/contrib/llvm/include/llvm/IR/RuntimeLibcalls.def stable/12/contrib/llvm/include/llvm/IR/SafepointIRVerifier.h stable/12/contrib/llvm/include/llvm/IR/Statepoint.h stable/12/contrib/llvm/include/llvm/IR/SymbolTableListTraits.h stable/12/contrib/llvm/include/llvm/IR/TrackingMDRef.h stable/12/contrib/llvm/include/llvm/IR/Type.h stable/12/contrib/llvm/include/llvm/IR/TypeFinder.h stable/12/contrib/llvm/include/llvm/IR/Use.h stable/12/contrib/llvm/include/llvm/IR/UseListOrder.h stable/12/contrib/llvm/include/llvm/IR/User.h stable/12/contrib/llvm/include/llvm/IR/Value.def stable/12/contrib/llvm/include/llvm/IR/Value.h stable/12/contrib/llvm/include/llvm/IR/ValueHandle.h stable/12/contrib/llvm/include/llvm/IR/ValueMap.h stable/12/contrib/llvm/include/llvm/IR/ValueSymbolTable.h stable/12/contrib/llvm/include/llvm/IR/Verifier.h stable/12/contrib/llvm/include/llvm/IRReader/IRReader.h stable/12/contrib/llvm/include/llvm/InitializePasses.h stable/12/contrib/llvm/include/llvm/LTO/Caching.h stable/12/contrib/llvm/include/llvm/LTO/Config.h stable/12/contrib/llvm/include/llvm/LTO/LTO.h stable/12/contrib/llvm/include/llvm/LTO/LTOBackend.h stable/12/contrib/llvm/include/llvm/LTO/SummaryBasedOptimizations.h stable/12/contrib/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h stable/12/contrib/llvm/include/llvm/LTO/legacy/LTOModule.h stable/12/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h stable/12/contrib/llvm/include/llvm/LTO/legacy/UpdateCompilerUsed.h stable/12/contrib/llvm/include/llvm/LineEditor/LineEditor.h stable/12/contrib/llvm/include/llvm/LinkAllIR.h stable/12/contrib/llvm/include/llvm/LinkAllPasses.h stable/12/contrib/llvm/include/llvm/Linker/IRMover.h stable/12/contrib/llvm/include/llvm/Linker/Linker.h stable/12/contrib/llvm/include/llvm/MC/ConstantPools.h stable/12/contrib/llvm/include/llvm/MC/LaneBitmask.h stable/12/contrib/llvm/include/llvm/MC/MCAsmBackend.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfo.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfoCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfoDarwin.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfoELF.h stable/12/contrib/llvm/include/llvm/MC/MCAsmInfoWasm.h stable/12/contrib/llvm/include/llvm/MC/MCAsmLayout.h stable/12/contrib/llvm/include/llvm/MC/MCAsmMacro.h stable/12/contrib/llvm/include/llvm/MC/MCAssembler.h stable/12/contrib/llvm/include/llvm/MC/MCCodeEmitter.h stable/12/contrib/llvm/include/llvm/MC/MCCodePadder.h stable/12/contrib/llvm/include/llvm/MC/MCCodeView.h stable/12/contrib/llvm/include/llvm/MC/MCContext.h stable/12/contrib/llvm/include/llvm/MC/MCDirectives.h stable/12/contrib/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h stable/12/contrib/llvm/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h stable/12/contrib/llvm/include/llvm/MC/MCDisassembler/MCRelocationInfo.h stable/12/contrib/llvm/include/llvm/MC/MCDisassembler/MCSymbolizer.h stable/12/contrib/llvm/include/llvm/MC/MCDwarf.h stable/12/contrib/llvm/include/llvm/MC/MCELFObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCELFStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCExpr.h stable/12/contrib/llvm/include/llvm/MC/MCFixedLenDisassembler.h stable/12/contrib/llvm/include/llvm/MC/MCFixup.h stable/12/contrib/llvm/include/llvm/MC/MCFixupKindInfo.h stable/12/contrib/llvm/include/llvm/MC/MCFragment.h stable/12/contrib/llvm/include/llvm/MC/MCInst.h stable/12/contrib/llvm/include/llvm/MC/MCInstBuilder.h stable/12/contrib/llvm/include/llvm/MC/MCInstPrinter.h stable/12/contrib/llvm/include/llvm/MC/MCInstrAnalysis.h stable/12/contrib/llvm/include/llvm/MC/MCInstrDesc.h stable/12/contrib/llvm/include/llvm/MC/MCInstrInfo.h stable/12/contrib/llvm/include/llvm/MC/MCInstrItineraries.h stable/12/contrib/llvm/include/llvm/MC/MCLabel.h stable/12/contrib/llvm/include/llvm/MC/MCLinkerOptimizationHint.h stable/12/contrib/llvm/include/llvm/MC/MCMachObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h stable/12/contrib/llvm/include/llvm/MC/MCObjectStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCParser/AsmCond.h stable/12/contrib/llvm/include/llvm/MC/MCParser/AsmLexer.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserUtils.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h stable/12/contrib/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h stable/12/contrib/llvm/include/llvm/MC/MCRegisterInfo.h stable/12/contrib/llvm/include/llvm/MC/MCSchedule.h stable/12/contrib/llvm/include/llvm/MC/MCSection.h stable/12/contrib/llvm/include/llvm/MC/MCSectionCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCSectionELF.h stable/12/contrib/llvm/include/llvm/MC/MCSectionMachO.h stable/12/contrib/llvm/include/llvm/MC/MCSectionWasm.h stable/12/contrib/llvm/include/llvm/MC/MCStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCSubtargetInfo.h stable/12/contrib/llvm/include/llvm/MC/MCSymbol.h stable/12/contrib/llvm/include/llvm/MC/MCSymbolCOFF.h stable/12/contrib/llvm/include/llvm/MC/MCSymbolELF.h stable/12/contrib/llvm/include/llvm/MC/MCSymbolMachO.h stable/12/contrib/llvm/include/llvm/MC/MCSymbolWasm.h stable/12/contrib/llvm/include/llvm/MC/MCTargetOptions.h stable/12/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.inc stable/12/contrib/llvm/include/llvm/MC/MCValue.h stable/12/contrib/llvm/include/llvm/MC/MCWasmObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCWasmStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCWin64EH.h stable/12/contrib/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h stable/12/contrib/llvm/include/llvm/MC/MCWinCOFFStreamer.h stable/12/contrib/llvm/include/llvm/MC/MCWinEH.h stable/12/contrib/llvm/include/llvm/MC/MachineLocation.h stable/12/contrib/llvm/include/llvm/MC/SectionKind.h stable/12/contrib/llvm/include/llvm/MC/StringTableBuilder.h stable/12/contrib/llvm/include/llvm/MC/SubtargetFeature.h stable/12/contrib/llvm/include/llvm/MCA/Context.h stable/12/contrib/llvm/include/llvm/MCA/HWEventListener.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/HardwareUnit.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/LSUnit.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/RegisterFile.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h stable/12/contrib/llvm/include/llvm/MCA/HardwareUnits/Scheduler.h stable/12/contrib/llvm/include/llvm/MCA/InstrBuilder.h stable/12/contrib/llvm/include/llvm/MCA/Instruction.h stable/12/contrib/llvm/include/llvm/MCA/Pipeline.h stable/12/contrib/llvm/include/llvm/MCA/SourceMgr.h stable/12/contrib/llvm/include/llvm/MCA/Stages/DispatchStage.h stable/12/contrib/llvm/include/llvm/MCA/Stages/EntryStage.h stable/12/contrib/llvm/include/llvm/MCA/Stages/ExecuteStage.h stable/12/contrib/llvm/include/llvm/MCA/Stages/InstructionTables.h stable/12/contrib/llvm/include/llvm/MCA/Stages/RetireStage.h stable/12/contrib/llvm/include/llvm/MCA/Stages/Stage.h stable/12/contrib/llvm/include/llvm/MCA/Support.h stable/12/contrib/llvm/include/llvm/Object/Archive.h stable/12/contrib/llvm/include/llvm/Object/ArchiveWriter.h stable/12/contrib/llvm/include/llvm/Object/Binary.h stable/12/contrib/llvm/include/llvm/Object/COFF.h stable/12/contrib/llvm/include/llvm/Object/COFFImportFile.h stable/12/contrib/llvm/include/llvm/Object/COFFModuleDefinition.h stable/12/contrib/llvm/include/llvm/Object/CVDebugRecord.h stable/12/contrib/llvm/include/llvm/Object/Decompressor.h stable/12/contrib/llvm/include/llvm/Object/ELF.h stable/12/contrib/llvm/include/llvm/Object/ELFObjectFile.h stable/12/contrib/llvm/include/llvm/Object/ELFTypes.h stable/12/contrib/llvm/include/llvm/Object/Error.h stable/12/contrib/llvm/include/llvm/Object/IRObjectFile.h stable/12/contrib/llvm/include/llvm/Object/IRSymtab.h stable/12/contrib/llvm/include/llvm/Object/MachO.h stable/12/contrib/llvm/include/llvm/Object/MachOUniversal.h stable/12/contrib/llvm/include/llvm/Object/ModuleSymbolTable.h stable/12/contrib/llvm/include/llvm/Object/ObjectFile.h stable/12/contrib/llvm/include/llvm/Object/StackMapParser.h stable/12/contrib/llvm/include/llvm/Object/SymbolSize.h stable/12/contrib/llvm/include/llvm/Object/SymbolicFile.h stable/12/contrib/llvm/include/llvm/Object/Wasm.h stable/12/contrib/llvm/include/llvm/Object/WasmTraits.h stable/12/contrib/llvm/include/llvm/Object/WindowsResource.h stable/12/contrib/llvm/include/llvm/ObjectYAML/COFFYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h stable/12/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h stable/12/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h stable/12/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h stable/12/contrib/llvm/include/llvm/ObjectYAML/DWARFEmitter.h stable/12/contrib/llvm/include/llvm/ObjectYAML/DWARFYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/ELFYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/MachOYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/ObjectYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/WasmYAML.h stable/12/contrib/llvm/include/llvm/ObjectYAML/YAML.h stable/12/contrib/llvm/include/llvm/Option/Arg.h stable/12/contrib/llvm/include/llvm/Option/ArgList.h stable/12/contrib/llvm/include/llvm/Option/OptParser.td stable/12/contrib/llvm/include/llvm/Option/OptSpecifier.h stable/12/contrib/llvm/include/llvm/Option/OptTable.h stable/12/contrib/llvm/include/llvm/Option/Option.h stable/12/contrib/llvm/include/llvm/Pass.h stable/12/contrib/llvm/include/llvm/PassAnalysisSupport.h stable/12/contrib/llvm/include/llvm/PassInfo.h stable/12/contrib/llvm/include/llvm/PassRegistry.h stable/12/contrib/llvm/include/llvm/PassSupport.h stable/12/contrib/llvm/include/llvm/Passes/PassBuilder.h stable/12/contrib/llvm/include/llvm/Passes/PassPlugin.h stable/12/contrib/llvm/include/llvm/Passes/StandardInstrumentations.h stable/12/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h stable/12/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h stable/12/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h stable/12/contrib/llvm/include/llvm/ProfileData/GCOV.h stable/12/contrib/llvm/include/llvm/ProfileData/InstrProf.h stable/12/contrib/llvm/include/llvm/ProfileData/InstrProfData.inc stable/12/contrib/llvm/include/llvm/ProfileData/InstrProfReader.h stable/12/contrib/llvm/include/llvm/ProfileData/InstrProfWriter.h stable/12/contrib/llvm/include/llvm/ProfileData/ProfileCommon.h stable/12/contrib/llvm/include/llvm/ProfileData/SampleProf.h stable/12/contrib/llvm/include/llvm/ProfileData/SampleProfReader.h stable/12/contrib/llvm/include/llvm/ProfileData/SampleProfWriter.h stable/12/contrib/llvm/include/llvm/Support/AArch64TargetParser.def stable/12/contrib/llvm/include/llvm/Support/AArch64TargetParser.h stable/12/contrib/llvm/include/llvm/Support/AMDGPUMetadata.h stable/12/contrib/llvm/include/llvm/Support/AMDHSAKernelDescriptor.h stable/12/contrib/llvm/include/llvm/Support/ARMAttributeParser.h stable/12/contrib/llvm/include/llvm/Support/ARMBuildAttributes.h stable/12/contrib/llvm/include/llvm/Support/ARMEHABI.h stable/12/contrib/llvm/include/llvm/Support/ARMTargetParser.def stable/12/contrib/llvm/include/llvm/Support/ARMTargetParser.h stable/12/contrib/llvm/include/llvm/Support/ARMWinEH.h stable/12/contrib/llvm/include/llvm/Support/AlignOf.h stable/12/contrib/llvm/include/llvm/Support/Allocator.h stable/12/contrib/llvm/include/llvm/Support/ArrayRecycler.h stable/12/contrib/llvm/include/llvm/Support/Atomic.h stable/12/contrib/llvm/include/llvm/Support/AtomicOrdering.h stable/12/contrib/llvm/include/llvm/Support/BinaryByteStream.h stable/12/contrib/llvm/include/llvm/Support/BinaryItemStream.h stable/12/contrib/llvm/include/llvm/Support/BinaryStream.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamArray.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamError.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamReader.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamRef.h stable/12/contrib/llvm/include/llvm/Support/BinaryStreamWriter.h stable/12/contrib/llvm/include/llvm/Support/BlockFrequency.h stable/12/contrib/llvm/include/llvm/Support/BranchProbability.h stable/12/contrib/llvm/include/llvm/Support/BuryPointer.h stable/12/contrib/llvm/include/llvm/Support/CBindingWrapping.h stable/12/contrib/llvm/include/llvm/Support/CFGUpdate.h stable/12/contrib/llvm/include/llvm/Support/COM.h stable/12/contrib/llvm/include/llvm/Support/CachePruning.h stable/12/contrib/llvm/include/llvm/Support/Capacity.h stable/12/contrib/llvm/include/llvm/Support/Casting.h stable/12/contrib/llvm/include/llvm/Support/CheckedArithmetic.h stable/12/contrib/llvm/include/llvm/Support/Chrono.h stable/12/contrib/llvm/include/llvm/Support/CodeGen.h stable/12/contrib/llvm/include/llvm/Support/CodeGenCoverage.h stable/12/contrib/llvm/include/llvm/Support/CommandLine.h stable/12/contrib/llvm/include/llvm/Support/Compiler.h stable/12/contrib/llvm/include/llvm/Support/Compression.h stable/12/contrib/llvm/include/llvm/Support/ConvertUTF.h stable/12/contrib/llvm/include/llvm/Support/CrashRecoveryContext.h stable/12/contrib/llvm/include/llvm/Support/DJB.h stable/12/contrib/llvm/include/llvm/Support/DOTGraphTraits.h stable/12/contrib/llvm/include/llvm/Support/DataExtractor.h stable/12/contrib/llvm/include/llvm/Support/DataTypes.h stable/12/contrib/llvm/include/llvm/Support/Debug.h stable/12/contrib/llvm/include/llvm/Support/DebugCounter.h stable/12/contrib/llvm/include/llvm/Support/DynamicLibrary.h stable/12/contrib/llvm/include/llvm/Support/Endian.h stable/12/contrib/llvm/include/llvm/Support/EndianStream.h stable/12/contrib/llvm/include/llvm/Support/Errc.h stable/12/contrib/llvm/include/llvm/Support/Errno.h stable/12/contrib/llvm/include/llvm/Support/Error.h stable/12/contrib/llvm/include/llvm/Support/ErrorHandling.h stable/12/contrib/llvm/include/llvm/Support/ErrorOr.h stable/12/contrib/llvm/include/llvm/Support/FileCheck.h stable/12/contrib/llvm/include/llvm/Support/FileOutputBuffer.h stable/12/contrib/llvm/include/llvm/Support/FileSystem.h stable/12/contrib/llvm/include/llvm/Support/FileUtilities.h stable/12/contrib/llvm/include/llvm/Support/Format.h stable/12/contrib/llvm/include/llvm/Support/FormatAdapters.h stable/12/contrib/llvm/include/llvm/Support/FormatCommon.h stable/12/contrib/llvm/include/llvm/Support/FormatProviders.h stable/12/contrib/llvm/include/llvm/Support/FormatVariadic.h stable/12/contrib/llvm/include/llvm/Support/FormatVariadicDetails.h stable/12/contrib/llvm/include/llvm/Support/FormattedStream.h stable/12/contrib/llvm/include/llvm/Support/GenericDomTree.h stable/12/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h stable/12/contrib/llvm/include/llvm/Support/GlobPattern.h stable/12/contrib/llvm/include/llvm/Support/GraphWriter.h stable/12/contrib/llvm/include/llvm/Support/Host.h stable/12/contrib/llvm/include/llvm/Support/InitLLVM.h stable/12/contrib/llvm/include/llvm/Support/ItaniumManglingCanonicalizer.h stable/12/contrib/llvm/include/llvm/Support/JSON.h stable/12/contrib/llvm/include/llvm/Support/JamCRC.h stable/12/contrib/llvm/include/llvm/Support/KnownBits.h stable/12/contrib/llvm/include/llvm/Support/LEB128.h stable/12/contrib/llvm/include/llvm/Support/LineIterator.h stable/12/contrib/llvm/include/llvm/Support/LockFileManager.h stable/12/contrib/llvm/include/llvm/Support/LowLevelTypeImpl.h stable/12/contrib/llvm/include/llvm/Support/MSVCErrorWorkarounds.h stable/12/contrib/llvm/include/llvm/Support/MachineValueType.h stable/12/contrib/llvm/include/llvm/Support/ManagedStatic.h stable/12/contrib/llvm/include/llvm/Support/MathExtras.h stable/12/contrib/llvm/include/llvm/Support/MemAlloc.h stable/12/contrib/llvm/include/llvm/Support/Memory.h stable/12/contrib/llvm/include/llvm/Support/MemoryBuffer.h stable/12/contrib/llvm/include/llvm/Support/MipsABIFlags.h stable/12/contrib/llvm/include/llvm/Support/Mutex.h stable/12/contrib/llvm/include/llvm/Support/MutexGuard.h stable/12/contrib/llvm/include/llvm/Support/NativeFormatting.h stable/12/contrib/llvm/include/llvm/Support/OnDiskHashTable.h stable/12/contrib/llvm/include/llvm/Support/Options.h stable/12/contrib/llvm/include/llvm/Support/Parallel.h stable/12/contrib/llvm/include/llvm/Support/Path.h stable/12/contrib/llvm/include/llvm/Support/PluginLoader.h stable/12/contrib/llvm/include/llvm/Support/PointerLikeTypeTraits.h stable/12/contrib/llvm/include/llvm/Support/PrettyStackTrace.h stable/12/contrib/llvm/include/llvm/Support/Printable.h stable/12/contrib/llvm/include/llvm/Support/Process.h stable/12/contrib/llvm/include/llvm/Support/Program.h stable/12/contrib/llvm/include/llvm/Support/RWMutex.h stable/12/contrib/llvm/include/llvm/Support/RandomNumberGenerator.h stable/12/contrib/llvm/include/llvm/Support/Recycler.h stable/12/contrib/llvm/include/llvm/Support/RecyclingAllocator.h stable/12/contrib/llvm/include/llvm/Support/Regex.h stable/12/contrib/llvm/include/llvm/Support/Registry.h stable/12/contrib/llvm/include/llvm/Support/SHA1.h stable/12/contrib/llvm/include/llvm/Support/SMLoc.h stable/12/contrib/llvm/include/llvm/Support/SaveAndRestore.h stable/12/contrib/llvm/include/llvm/Support/ScaledNumber.h stable/12/contrib/llvm/include/llvm/Support/ScopedPrinter.h stable/12/contrib/llvm/include/llvm/Support/Signals.h stable/12/contrib/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h stable/12/contrib/llvm/include/llvm/Support/Solaris/sys/regset.h stable/12/contrib/llvm/include/llvm/Support/SourceMgr.h stable/12/contrib/llvm/include/llvm/Support/SpecialCaseList.h stable/12/contrib/llvm/include/llvm/Support/StringPool.h stable/12/contrib/llvm/include/llvm/Support/StringSaver.h stable/12/contrib/llvm/include/llvm/Support/SwapByteOrder.h stable/12/contrib/llvm/include/llvm/Support/SymbolRemappingReader.h stable/12/contrib/llvm/include/llvm/Support/SystemUtils.h stable/12/contrib/llvm/include/llvm/Support/TarWriter.h stable/12/contrib/llvm/include/llvm/Support/TargetOpcodes.def stable/12/contrib/llvm/include/llvm/Support/TargetParser.h stable/12/contrib/llvm/include/llvm/Support/TargetRegistry.h stable/12/contrib/llvm/include/llvm/Support/TargetSelect.h stable/12/contrib/llvm/include/llvm/Support/TaskQueue.h stable/12/contrib/llvm/include/llvm/Support/ThreadLocal.h stable/12/contrib/llvm/include/llvm/Support/ThreadPool.h stable/12/contrib/llvm/include/llvm/Support/Threading.h stable/12/contrib/llvm/include/llvm/Support/Timer.h stable/12/contrib/llvm/include/llvm/Support/ToolOutputFile.h stable/12/contrib/llvm/include/llvm/Support/TrailingObjects.h stable/12/contrib/llvm/include/llvm/Support/TrigramIndex.h stable/12/contrib/llvm/include/llvm/Support/TypeName.h stable/12/contrib/llvm/include/llvm/Support/Unicode.h stable/12/contrib/llvm/include/llvm/Support/UnicodeCharRanges.h stable/12/contrib/llvm/include/llvm/Support/UniqueLock.h stable/12/contrib/llvm/include/llvm/Support/Valgrind.h stable/12/contrib/llvm/include/llvm/Support/VersionTuple.h stable/12/contrib/llvm/include/llvm/Support/VirtualFileSystem.h stable/12/contrib/llvm/include/llvm/Support/Watchdog.h stable/12/contrib/llvm/include/llvm/Support/Win64EH.h stable/12/contrib/llvm/include/llvm/Support/WindowsError.h stable/12/contrib/llvm/include/llvm/Support/WithColor.h stable/12/contrib/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h stable/12/contrib/llvm/include/llvm/Support/X86TargetParser.def stable/12/contrib/llvm/include/llvm/Support/YAMLParser.h stable/12/contrib/llvm/include/llvm/Support/YAMLTraits.h stable/12/contrib/llvm/include/llvm/Support/circular_raw_ostream.h stable/12/contrib/llvm/include/llvm/Support/raw_os_ostream.h stable/12/contrib/llvm/include/llvm/Support/raw_ostream.h stable/12/contrib/llvm/include/llvm/Support/raw_sha1_ostream.h stable/12/contrib/llvm/include/llvm/Support/thread.h stable/12/contrib/llvm/include/llvm/Support/type_traits.h stable/12/contrib/llvm/include/llvm/TableGen/Error.h stable/12/contrib/llvm/include/llvm/TableGen/Main.h stable/12/contrib/llvm/include/llvm/TableGen/Record.h stable/12/contrib/llvm/include/llvm/TableGen/SearchableTable.td stable/12/contrib/llvm/include/llvm/TableGen/SetTheory.h stable/12/contrib/llvm/include/llvm/TableGen/StringMatcher.h stable/12/contrib/llvm/include/llvm/TableGen/StringToOffsetTable.h stable/12/contrib/llvm/include/llvm/TableGen/TableGenBackend.h stable/12/contrib/llvm/include/llvm/Target/CodeGenCWrappers.h stable/12/contrib/llvm/include/llvm/Target/GenericOpcodes.td stable/12/contrib/llvm/include/llvm/Target/GlobalISel/RegisterBank.td stable/12/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td stable/12/contrib/llvm/include/llvm/Target/GlobalISel/Target.td stable/12/contrib/llvm/include/llvm/Target/Target.td stable/12/contrib/llvm/include/llvm/Target/TargetCallingConv.td stable/12/contrib/llvm/include/llvm/Target/TargetInstrPredicate.td stable/12/contrib/llvm/include/llvm/Target/TargetIntrinsicInfo.h stable/12/contrib/llvm/include/llvm/Target/TargetItinerary.td stable/12/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h stable/12/contrib/llvm/include/llvm/Target/TargetMachine.h stable/12/contrib/llvm/include/llvm/Target/TargetOptions.h stable/12/contrib/llvm/include/llvm/Target/TargetPfmCounters.td stable/12/contrib/llvm/include/llvm/Target/TargetSchedule.td stable/12/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td stable/12/contrib/llvm/include/llvm/Testing/Support/Error.h stable/12/contrib/llvm/include/llvm/Testing/Support/SupportHelpers.h stable/12/contrib/llvm/include/llvm/TextAPI/ELF/ELFStub.h stable/12/contrib/llvm/include/llvm/TextAPI/ELF/TBEHandler.h stable/12/contrib/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h stable/12/contrib/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h stable/12/contrib/llvm/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h stable/12/contrib/llvm/include/llvm/Transforms/Coroutines.h stable/12/contrib/llvm/include/llvm/Transforms/IPO.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/AlwaysInliner.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/ConstantMerge.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/FunctionImport.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/GlobalDCE.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/GlobalOpt.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/GlobalSplit.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/Inliner.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/Internalize.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/LowerTypeTests.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/PartialInlining.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/SCCP.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/SampleProfile.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h stable/12/contrib/llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h stable/12/contrib/llvm/include/llvm/Transforms/InstCombine/InstCombine.h stable/12/contrib/llvm/include/llvm/Transforms/InstCombine/InstCombineWorklist.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/BoundsChecking.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/CGProfile.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h stable/12/contrib/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h stable/12/contrib/llvm/include/llvm/Transforms/ObjCARC.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/ADCE.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/BDCE.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/DCE.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/EarlyCSE.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/Float2Int.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/GVNExpression.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/GuardWidening.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/JumpThreading.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LICM.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopDeletion.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopDistribute.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopPredication.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopRotation.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopSink.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LowerAtomic.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/LowerGuardIntrinsic.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/MemCpyOptimizer.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/NaryReassociate.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/NewGVN.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/Reassociate.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SCCP.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SROA.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/Scalarizer.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/Sink.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/TailRecursionElimination.h stable/12/contrib/llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h stable/12/contrib/llvm/include/llvm/Transforms/Utils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/AddDiscriminators.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/BreakCriticalEdges.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/CallPromotionUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/CanonicalizeAliases.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/CtorUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/EscapeEnumerator.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/Evaluator.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/FunctionComparator.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/FunctionImportUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/GlobalStatus.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/GuardUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/IntegerDivision.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LCSSA.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LibCallsShrinkWrap.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/Local.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LoopRotationUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LoopSimplify.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LoopVersioning.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LowerInvoke.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/LowerMemIntrinsics.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/Mem2Reg.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/ModuleUtils.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/NameAnonGlobals.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/PredicateInfo.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/PromoteMemToReg.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SanitizerStats.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SplitModule.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/SymbolRewriter.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/VNCoercion.h stable/12/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h stable/12/contrib/llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h stable/12/contrib/llvm/include/llvm/WindowsManifest/WindowsManifestMerger.h stable/12/contrib/llvm/include/llvm/WindowsResource/ResourceProcessor.h stable/12/contrib/llvm/include/llvm/WindowsResource/ResourceScriptToken.h stable/12/contrib/llvm/include/llvm/WindowsResource/ResourceScriptTokenList.h stable/12/contrib/llvm/include/llvm/XRay/BlockIndexer.h stable/12/contrib/llvm/include/llvm/XRay/BlockPrinter.h stable/12/contrib/llvm/include/llvm/XRay/BlockVerifier.h stable/12/contrib/llvm/include/llvm/XRay/FDRLogBuilder.h stable/12/contrib/llvm/include/llvm/XRay/FDRRecordConsumer.h stable/12/contrib/llvm/include/llvm/XRay/FDRRecordProducer.h stable/12/contrib/llvm/include/llvm/XRay/FDRRecords.h stable/12/contrib/llvm/include/llvm/XRay/FDRTraceExpander.h stable/12/contrib/llvm/include/llvm/XRay/FDRTraceWriter.h stable/12/contrib/llvm/include/llvm/XRay/FileHeaderReader.h stable/12/contrib/llvm/include/llvm/XRay/Graph.h stable/12/contrib/llvm/include/llvm/XRay/InstrumentationMap.h stable/12/contrib/llvm/include/llvm/XRay/Profile.h stable/12/contrib/llvm/include/llvm/XRay/RecordPrinter.h stable/12/contrib/llvm/include/llvm/XRay/Trace.h stable/12/contrib/llvm/include/llvm/XRay/XRayRecord.h stable/12/contrib/llvm/include/llvm/XRay/YAMLXRayRecord.h stable/12/contrib/llvm/include/llvm/module.modulemap stable/12/contrib/llvm/lib/Analysis/AliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp stable/12/contrib/llvm/lib/Analysis/AliasAnalysisSummary.cpp stable/12/contrib/llvm/lib/Analysis/AliasAnalysisSummary.h stable/12/contrib/llvm/lib/Analysis/AliasSetTracker.cpp stable/12/contrib/llvm/lib/Analysis/Analysis.cpp stable/12/contrib/llvm/lib/Analysis/AssumptionCache.cpp stable/12/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/BlockFrequencyInfo.cpp stable/12/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp stable/12/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp stable/12/contrib/llvm/lib/Analysis/CFG.cpp stable/12/contrib/llvm/lib/Analysis/CFGPrinter.cpp stable/12/contrib/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/CFLGraph.h stable/12/contrib/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp stable/12/contrib/llvm/lib/Analysis/CallGraph.cpp stable/12/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp stable/12/contrib/llvm/lib/Analysis/CallPrinter.cpp stable/12/contrib/llvm/lib/Analysis/CaptureTracking.cpp stable/12/contrib/llvm/lib/Analysis/CmpInstAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/CodeMetrics.cpp stable/12/contrib/llvm/lib/Analysis/ConstantFolding.cpp stable/12/contrib/llvm/lib/Analysis/CostModel.cpp stable/12/contrib/llvm/lib/Analysis/Delinearization.cpp stable/12/contrib/llvm/lib/Analysis/DemandedBits.cpp stable/12/contrib/llvm/lib/Analysis/DependenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/DivergenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/DomPrinter.cpp stable/12/contrib/llvm/lib/Analysis/DominanceFrontier.cpp stable/12/contrib/llvm/lib/Analysis/EHPersonalities.cpp stable/12/contrib/llvm/lib/Analysis/GlobalsModRef.cpp stable/12/contrib/llvm/lib/Analysis/GuardUtils.cpp stable/12/contrib/llvm/lib/Analysis/IVDescriptors.cpp stable/12/contrib/llvm/lib/Analysis/IVUsers.cpp stable/12/contrib/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/InlineCost.cpp stable/12/contrib/llvm/lib/Analysis/InstCount.cpp stable/12/contrib/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp stable/12/contrib/llvm/lib/Analysis/InstructionSimplify.cpp stable/12/contrib/llvm/lib/Analysis/Interval.cpp stable/12/contrib/llvm/lib/Analysis/IntervalPartition.cpp stable/12/contrib/llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp stable/12/contrib/llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp stable/12/contrib/llvm/lib/Analysis/LazyCallGraph.cpp stable/12/contrib/llvm/lib/Analysis/LazyValueInfo.cpp stable/12/contrib/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/Lint.cpp stable/12/contrib/llvm/lib/Analysis/Loads.cpp stable/12/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/LoopAnalysisManager.cpp stable/12/contrib/llvm/lib/Analysis/LoopInfo.cpp stable/12/contrib/llvm/lib/Analysis/LoopPass.cpp stable/12/contrib/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp stable/12/contrib/llvm/lib/Analysis/MemDepPrinter.cpp stable/12/contrib/llvm/lib/Analysis/MemDerefPrinter.cpp stable/12/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp stable/12/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/MemoryLocation.cpp stable/12/contrib/llvm/lib/Analysis/MemorySSA.cpp stable/12/contrib/llvm/lib/Analysis/MemorySSAUpdater.cpp stable/12/contrib/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp stable/12/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/MustExecute.cpp stable/12/contrib/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/ObjCARCAnalysisUtils.cpp stable/12/contrib/llvm/lib/Analysis/ObjCARCInstKind.cpp stable/12/contrib/llvm/lib/Analysis/OptimizationRemarkEmitter.cpp stable/12/contrib/llvm/lib/Analysis/OrderedBasicBlock.cpp stable/12/contrib/llvm/lib/Analysis/OrderedInstructions.cpp stable/12/contrib/llvm/lib/Analysis/PHITransAddr.cpp stable/12/contrib/llvm/lib/Analysis/PhiValues.cpp stable/12/contrib/llvm/lib/Analysis/PostDominators.cpp stable/12/contrib/llvm/lib/Analysis/ProfileSummaryInfo.cpp stable/12/contrib/llvm/lib/Analysis/PtrUseVisitor.cpp stable/12/contrib/llvm/lib/Analysis/RegionInfo.cpp stable/12/contrib/llvm/lib/Analysis/RegionPass.cpp stable/12/contrib/llvm/lib/Analysis/RegionPrinter.cpp stable/12/contrib/llvm/lib/Analysis/ScalarEvolution.cpp stable/12/contrib/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp stable/12/contrib/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp stable/12/contrib/llvm/lib/Analysis/ScopedNoAliasAA.cpp stable/12/contrib/llvm/lib/Analysis/StackSafetyAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/StratifiedSets.h stable/12/contrib/llvm/lib/Analysis/SyncDependenceAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/SyntheticCountsUtils.cpp stable/12/contrib/llvm/lib/Analysis/TargetLibraryInfo.cpp stable/12/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp stable/12/contrib/llvm/lib/Analysis/Trace.cpp stable/12/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp stable/12/contrib/llvm/lib/Analysis/TypeMetadataUtils.cpp stable/12/contrib/llvm/lib/Analysis/ValueLattice.cpp stable/12/contrib/llvm/lib/Analysis/ValueLatticeUtils.cpp stable/12/contrib/llvm/lib/Analysis/ValueTracking.cpp stable/12/contrib/llvm/lib/Analysis/VectorUtils.cpp stable/12/contrib/llvm/lib/AsmParser/LLLexer.cpp stable/12/contrib/llvm/lib/AsmParser/LLLexer.h stable/12/contrib/llvm/lib/AsmParser/LLParser.cpp stable/12/contrib/llvm/lib/AsmParser/LLParser.h stable/12/contrib/llvm/lib/AsmParser/LLToken.h stable/12/contrib/llvm/lib/AsmParser/Parser.cpp stable/12/contrib/llvm/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp stable/12/contrib/llvm/lib/BinaryFormat/Dwarf.cpp stable/12/contrib/llvm/lib/BinaryFormat/Magic.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackReader.cpp stable/12/contrib/llvm/lib/BinaryFormat/MsgPackWriter.cpp stable/12/contrib/llvm/lib/BinaryFormat/Wasm.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/BitReader.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.h stable/12/contrib/llvm/lib/Bitcode/Reader/ValueList.cpp stable/12/contrib/llvm/lib/Bitcode/Reader/ValueList.h stable/12/contrib/llvm/lib/Bitcode/Writer/BitWriter.cpp stable/12/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp stable/12/contrib/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp stable/12/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp stable/12/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.h stable/12/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp stable/12/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h stable/12/contrib/llvm/lib/CodeGen/AllocationOrder.cpp stable/12/contrib/llvm/lib/CodeGen/AllocationOrder.h stable/12/contrib/llvm/lib/CodeGen/Analysis.cpp stable/12/contrib/llvm/lib/CodeGen/AntiDepBreaker.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/ByteStreamer.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WasmException.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.h stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.cpp stable/12/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.h stable/12/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp stable/12/contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp stable/12/contrib/llvm/lib/CodeGen/BranchFolding.cpp stable/12/contrib/llvm/lib/CodeGen/BranchFolding.h stable/12/contrib/llvm/lib/CodeGen/BranchRelaxation.cpp stable/12/contrib/llvm/lib/CodeGen/BreakFalseDeps.cpp stable/12/contrib/llvm/lib/CodeGen/BuiltinGCs.cpp stable/12/contrib/llvm/lib/CodeGen/CFIInstrInserter.cpp stable/12/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp stable/12/contrib/llvm/lib/CodeGen/CallingConvLower.cpp stable/12/contrib/llvm/lib/CodeGen/CodeGen.cpp stable/12/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp stable/12/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.h stable/12/contrib/llvm/lib/CodeGen/DFAPacketizer.cpp stable/12/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp stable/12/contrib/llvm/lib/CodeGen/DetectDeadLanes.cpp stable/12/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp stable/12/contrib/llvm/lib/CodeGen/EdgeBundles.cpp stable/12/contrib/llvm/lib/CodeGen/ExecutionDomainFix.cpp stable/12/contrib/llvm/lib/CodeGen/ExpandMemCmp.cpp stable/12/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp stable/12/contrib/llvm/lib/CodeGen/ExpandReductions.cpp stable/12/contrib/llvm/lib/CodeGen/FEntryInserter.cpp stable/12/contrib/llvm/lib/CodeGen/FaultMaps.cpp stable/12/contrib/llvm/lib/CodeGen/FuncletLayout.cpp stable/12/contrib/llvm/lib/CodeGen/GCMetadata.cpp stable/12/contrib/llvm/lib/CodeGen/GCMetadataPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/GCRootLowering.cpp stable/12/contrib/llvm/lib/CodeGen/GCStrategy.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CallLowering.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/Combiner.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/LegalizeMutations.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/Localizer.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBank.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalISel/Utils.cpp stable/12/contrib/llvm/lib/CodeGen/GlobalMerge.cpp stable/12/contrib/llvm/lib/CodeGen/IfConversion.cpp stable/12/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp stable/12/contrib/llvm/lib/CodeGen/IndirectBrExpandPass.cpp stable/12/contrib/llvm/lib/CodeGen/InlineSpiller.cpp stable/12/contrib/llvm/lib/CodeGen/InterferenceCache.cpp stable/12/contrib/llvm/lib/CodeGen/InterferenceCache.h stable/12/contrib/llvm/lib/CodeGen/InterleavedAccessPass.cpp stable/12/contrib/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp stable/12/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp stable/12/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp stable/12/contrib/llvm/lib/CodeGen/LatencyPriorityQueue.cpp stable/12/contrib/llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp stable/12/contrib/llvm/lib/CodeGen/LexicalScopes.cpp stable/12/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp stable/12/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp stable/12/contrib/llvm/lib/CodeGen/LiveDebugVariables.h stable/12/contrib/llvm/lib/CodeGen/LiveInterval.cpp stable/12/contrib/llvm/lib/CodeGen/LiveIntervalUnion.cpp stable/12/contrib/llvm/lib/CodeGen/LiveIntervals.cpp stable/12/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp stable/12/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp stable/12/contrib/llvm/lib/CodeGen/LiveRangeCalc.h stable/12/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp stable/12/contrib/llvm/lib/CodeGen/LiveRangeShrink.cpp stable/12/contrib/llvm/lib/CodeGen/LiveRangeUtils.h stable/12/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp stable/12/contrib/llvm/lib/CodeGen/LiveRegUnits.cpp stable/12/contrib/llvm/lib/CodeGen/LiveStacks.cpp stable/12/contrib/llvm/lib/CodeGen/LiveVariables.cpp stable/12/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp stable/12/contrib/llvm/lib/CodeGen/LoopTraversal.cpp stable/12/contrib/llvm/lib/CodeGen/LowLevelType.cpp stable/12/contrib/llvm/lib/CodeGen/LowerEmuTLS.cpp stable/12/contrib/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp stable/12/contrib/llvm/lib/CodeGen/MIRParser/MILexer.cpp stable/12/contrib/llvm/lib/CodeGen/MIRParser/MILexer.h stable/12/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp stable/12/contrib/llvm/lib/CodeGen/MIRParser/MIRParser.cpp stable/12/contrib/llvm/lib/CodeGen/MIRPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/MIRPrintingPass.cpp stable/12/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp stable/12/contrib/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp stable/12/contrib/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineCSE.cpp stable/12/contrib/llvm/lib/CodeGen/MachineCombiner.cpp stable/12/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp stable/12/contrib/llvm/lib/CodeGen/MachineDominanceFrontier.cpp stable/12/contrib/llvm/lib/CodeGen/MachineDominators.cpp stable/12/contrib/llvm/lib/CodeGen/MachineFrameInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineFunction.cpp stable/12/contrib/llvm/lib/CodeGen/MachineFunctionPass.cpp stable/12/contrib/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp stable/12/contrib/llvm/lib/CodeGen/MachineInstr.cpp stable/12/contrib/llvm/lib/CodeGen/MachineInstrBundle.cpp stable/12/contrib/llvm/lib/CodeGen/MachineLICM.cpp stable/12/contrib/llvm/lib/CodeGen/MachineLoopInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp stable/12/contrib/llvm/lib/CodeGen/MachineOperand.cpp stable/12/contrib/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp stable/12/contrib/llvm/lib/CodeGen/MachineOutliner.cpp stable/12/contrib/llvm/lib/CodeGen/MachinePipeliner.cpp stable/12/contrib/llvm/lib/CodeGen/MachinePostDominators.cpp stable/12/contrib/llvm/lib/CodeGen/MachineRegionInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp stable/12/contrib/llvm/lib/CodeGen/MachineSSAUpdater.cpp stable/12/contrib/llvm/lib/CodeGen/MachineScheduler.cpp stable/12/contrib/llvm/lib/CodeGen/MachineSink.cpp stable/12/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp stable/12/contrib/llvm/lib/CodeGen/MachineVerifier.cpp stable/12/contrib/llvm/lib/CodeGen/MacroFusion.cpp stable/12/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp stable/12/contrib/llvm/lib/CodeGen/PHIElimination.cpp stable/12/contrib/llvm/lib/CodeGen/PHIEliminationUtils.cpp stable/12/contrib/llvm/lib/CodeGen/PHIEliminationUtils.h stable/12/contrib/llvm/lib/CodeGen/ParallelCG.cpp stable/12/contrib/llvm/lib/CodeGen/PatchableFunction.cpp stable/12/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp stable/12/contrib/llvm/lib/CodeGen/PostRAHazardRecognizer.cpp stable/12/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp stable/12/contrib/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp stable/12/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp stable/12/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp stable/12/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp stable/12/contrib/llvm/lib/CodeGen/ReachingDefAnalysis.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocBase.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocBase.h stable/12/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocFast.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp stable/12/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp stable/12/contrib/llvm/lib/CodeGen/RegUsageInfoCollector.cpp stable/12/contrib/llvm/lib/CodeGen/RegUsageInfoPropagate.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterClassInfo.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterCoalescer.h stable/12/contrib/llvm/lib/CodeGen/RegisterPressure.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp stable/12/contrib/llvm/lib/CodeGen/RegisterUsageInfo.cpp stable/12/contrib/llvm/lib/CodeGen/RenameIndependentSubregs.cpp stable/12/contrib/llvm/lib/CodeGen/ResetMachineFunctionPass.cpp stable/12/contrib/llvm/lib/CodeGen/SafeStack.cpp stable/12/contrib/llvm/lib/CodeGen/SafeStackColoring.cpp stable/12/contrib/llvm/lib/CodeGen/SafeStackColoring.h stable/12/contrib/llvm/lib/CodeGen/SafeStackLayout.cpp stable/12/contrib/llvm/lib/CodeGen/SafeStackLayout.h stable/12/contrib/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp stable/12/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp stable/12/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp stable/12/contrib/llvm/lib/CodeGen/ScheduleDAGPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp stable/12/contrib/llvm/lib/CodeGen/ShadowStackGCLowering.cpp stable/12/contrib/llvm/lib/CodeGen/ShrinkWrap.cpp stable/12/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/SlotIndexes.cpp stable/12/contrib/llvm/lib/CodeGen/SpillPlacement.cpp stable/12/contrib/llvm/lib/CodeGen/SpillPlacement.h stable/12/contrib/llvm/lib/CodeGen/Spiller.h stable/12/contrib/llvm/lib/CodeGen/SplitKit.cpp stable/12/contrib/llvm/lib/CodeGen/SplitKit.h stable/12/contrib/llvm/lib/CodeGen/StackColoring.cpp stable/12/contrib/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp stable/12/contrib/llvm/lib/CodeGen/StackMaps.cpp stable/12/contrib/llvm/lib/CodeGen/StackProtector.cpp stable/12/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp stable/12/contrib/llvm/lib/CodeGen/TailDuplication.cpp stable/12/contrib/llvm/lib/CodeGen/TailDuplicator.cpp stable/12/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp stable/12/contrib/llvm/lib/CodeGen/TargetInstrInfo.cpp stable/12/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp stable/12/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp stable/12/contrib/llvm/lib/CodeGen/TargetOptionsImpl.cpp stable/12/contrib/llvm/lib/CodeGen/TargetPassConfig.cpp stable/12/contrib/llvm/lib/CodeGen/TargetRegisterInfo.cpp stable/12/contrib/llvm/lib/CodeGen/TargetSchedule.cpp stable/12/contrib/llvm/lib/CodeGen/TargetSubtargetInfo.cpp stable/12/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp stable/12/contrib/llvm/lib/CodeGen/UnreachableBlockElim.cpp stable/12/contrib/llvm/lib/CodeGen/ValueTypes.cpp stable/12/contrib/llvm/lib/CodeGen/VirtRegMap.cpp stable/12/contrib/llvm/lib/CodeGen/WasmEHPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp stable/12/contrib/llvm/lib/CodeGen/XRayInstrumentation.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/CodeViewError.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/Formatters.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/Line.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/RecordName.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/RecordSerialization.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/SymbolSerializer.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeIndex.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp stable/12/contrib/llvm/lib/DebugInfo/CodeView/TypeTableCollection.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFAddressRange.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFListTable.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp stable/12/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp stable/12/contrib/llvm/lib/DebugInfo/MSF/MSFBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/MSF/MSFCommon.cpp stable/12/contrib/llvm/lib/DebugInfo/MSF/MSFError.cpp stable/12/contrib/llvm/lib/DebugInfo/MSF/MappedBlockStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIADataStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumDebugStreams.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumFrameData.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumInjectedSources.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumLineNumbers.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSectionContribs.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSourceFiles.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSymbols.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAFrameData.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAInjectedSource.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIALineNumber.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASectionContrib.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/GenericError.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/IPDBSourceFile.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleList.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/EnumTables.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/Hash.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/HashTable.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NamedStreamMap.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeCompilandSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumGlobals.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumModules.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeArray.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeBuiltin.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypePointer.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/NativeTypeUDT.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTable.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTableBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/PublicsStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/RawError.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/SymbolStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDB.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBContext.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymDumper.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolBlock.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolCustom.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolExe.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolLabel.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolThunk.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp stable/12/contrib/llvm/lib/DebugInfo/PDB/UDTLayout.cpp stable/12/contrib/llvm/lib/DebugInfo/Symbolize/DIPrinter.cpp stable/12/contrib/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp stable/12/contrib/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h stable/12/contrib/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp stable/12/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp stable/12/contrib/llvm/lib/Demangle/MicrosoftDemangle.cpp stable/12/contrib/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp stable/12/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp stable/12/contrib/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp stable/12/contrib/llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventsWrapper.h stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_config.h stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_types.h stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.c stable/12/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h stable/12/contrib/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.h stable/12/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp stable/12/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h stable/12/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileJITEventListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/Core.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/Layer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/Legacy.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/NullResolver.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcError.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h stable/12/contrib/llvm/lib/ExecutionEngine/Orc/RPCUtils.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp stable/12/contrib/llvm/lib/ExecutionEngine/Orc/ThreadSafeModule.cpp stable/12/contrib/llvm/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h stable/12/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h stable/12/contrib/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp stable/12/contrib/llvm/lib/ExecutionEngine/TargetSelect.cpp stable/12/contrib/llvm/lib/FuzzMutate/FuzzerCLI.cpp stable/12/contrib/llvm/lib/FuzzMutate/IRMutator.cpp stable/12/contrib/llvm/lib/FuzzMutate/OpDescriptor.cpp stable/12/contrib/llvm/lib/FuzzMutate/Operations.cpp stable/12/contrib/llvm/lib/FuzzMutate/RandomIRBuilder.cpp stable/12/contrib/llvm/lib/IR/AsmWriter.cpp stable/12/contrib/llvm/lib/IR/AttributeImpl.h stable/12/contrib/llvm/lib/IR/Attributes.cpp stable/12/contrib/llvm/lib/IR/AutoUpgrade.cpp stable/12/contrib/llvm/lib/IR/BasicBlock.cpp stable/12/contrib/llvm/lib/IR/Comdat.cpp stable/12/contrib/llvm/lib/IR/ConstantFold.cpp stable/12/contrib/llvm/lib/IR/ConstantFold.h stable/12/contrib/llvm/lib/IR/ConstantRange.cpp stable/12/contrib/llvm/lib/IR/Constants.cpp stable/12/contrib/llvm/lib/IR/ConstantsContext.h stable/12/contrib/llvm/lib/IR/Core.cpp stable/12/contrib/llvm/lib/IR/DIBuilder.cpp stable/12/contrib/llvm/lib/IR/DataLayout.cpp stable/12/contrib/llvm/lib/IR/DebugInfo.cpp stable/12/contrib/llvm/lib/IR/DebugInfoMetadata.cpp stable/12/contrib/llvm/lib/IR/DebugLoc.cpp stable/12/contrib/llvm/lib/IR/DiagnosticHandler.cpp stable/12/contrib/llvm/lib/IR/DiagnosticInfo.cpp stable/12/contrib/llvm/lib/IR/DiagnosticPrinter.cpp stable/12/contrib/llvm/lib/IR/Dominators.cpp stable/12/contrib/llvm/lib/IR/Function.cpp stable/12/contrib/llvm/lib/IR/GVMaterializer.cpp stable/12/contrib/llvm/lib/IR/Globals.cpp stable/12/contrib/llvm/lib/IR/IRBuilder.cpp stable/12/contrib/llvm/lib/IR/IRPrintingPasses.cpp stable/12/contrib/llvm/lib/IR/InlineAsm.cpp stable/12/contrib/llvm/lib/IR/Instruction.cpp stable/12/contrib/llvm/lib/IR/Instructions.cpp stable/12/contrib/llvm/lib/IR/IntrinsicInst.cpp stable/12/contrib/llvm/lib/IR/LLVMContext.cpp stable/12/contrib/llvm/lib/IR/LLVMContextImpl.cpp stable/12/contrib/llvm/lib/IR/LLVMContextImpl.h stable/12/contrib/llvm/lib/IR/LegacyPassManager.cpp stable/12/contrib/llvm/lib/IR/MDBuilder.cpp stable/12/contrib/llvm/lib/IR/Mangler.cpp stable/12/contrib/llvm/lib/IR/Metadata.cpp stable/12/contrib/llvm/lib/IR/MetadataImpl.h stable/12/contrib/llvm/lib/IR/Module.cpp stable/12/contrib/llvm/lib/IR/ModuleSummaryIndex.cpp stable/12/contrib/llvm/lib/IR/Operator.cpp stable/12/contrib/llvm/lib/IR/OptBisect.cpp stable/12/contrib/llvm/lib/IR/Pass.cpp stable/12/contrib/llvm/lib/IR/PassInstrumentation.cpp stable/12/contrib/llvm/lib/IR/PassManager.cpp stable/12/contrib/llvm/lib/IR/PassRegistry.cpp stable/12/contrib/llvm/lib/IR/PassTimingInfo.cpp stable/12/contrib/llvm/lib/IR/ProfileSummary.cpp stable/12/contrib/llvm/lib/IR/SafepointIRVerifier.cpp stable/12/contrib/llvm/lib/IR/Statepoint.cpp stable/12/contrib/llvm/lib/IR/SymbolTableListTraitsImpl.h stable/12/contrib/llvm/lib/IR/Type.cpp stable/12/contrib/llvm/lib/IR/TypeFinder.cpp stable/12/contrib/llvm/lib/IR/Use.cpp stable/12/contrib/llvm/lib/IR/User.cpp stable/12/contrib/llvm/lib/IR/Value.cpp stable/12/contrib/llvm/lib/IR/ValueSymbolTable.cpp stable/12/contrib/llvm/lib/IR/Verifier.cpp stable/12/contrib/llvm/lib/IRReader/IRReader.cpp stable/12/contrib/llvm/lib/LTO/Caching.cpp stable/12/contrib/llvm/lib/LTO/LTO.cpp stable/12/contrib/llvm/lib/LTO/LTOBackend.cpp stable/12/contrib/llvm/lib/LTO/LTOCodeGenerator.cpp stable/12/contrib/llvm/lib/LTO/LTOModule.cpp stable/12/contrib/llvm/lib/LTO/SummaryBasedOptimizations.cpp stable/12/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp stable/12/contrib/llvm/lib/LTO/UpdateCompilerUsed.cpp stable/12/contrib/llvm/lib/LineEditor/LineEditor.cpp stable/12/contrib/llvm/lib/Linker/IRMover.cpp stable/12/contrib/llvm/lib/Linker/LinkDiagnosticInfo.h stable/12/contrib/llvm/lib/Linker/LinkModules.cpp stable/12/contrib/llvm/lib/MC/ConstantPools.cpp stable/12/contrib/llvm/lib/MC/ELFObjectWriter.cpp stable/12/contrib/llvm/lib/MC/MCAsmBackend.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfo.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoCOFF.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoDarwin.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoELF.cpp stable/12/contrib/llvm/lib/MC/MCAsmInfoWasm.cpp stable/12/contrib/llvm/lib/MC/MCAsmMacro.cpp stable/12/contrib/llvm/lib/MC/MCAsmStreamer.cpp stable/12/contrib/llvm/lib/MC/MCAssembler.cpp stable/12/contrib/llvm/lib/MC/MCCodeEmitter.cpp stable/12/contrib/llvm/lib/MC/MCCodePadder.cpp stable/12/contrib/llvm/lib/MC/MCCodeView.cpp stable/12/contrib/llvm/lib/MC/MCContext.cpp stable/12/contrib/llvm/lib/MC/MCDisassembler/Disassembler.cpp stable/12/contrib/llvm/lib/MC/MCDisassembler/Disassembler.h stable/12/contrib/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp stable/12/contrib/llvm/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp stable/12/contrib/llvm/lib/MC/MCDisassembler/MCRelocationInfo.cpp stable/12/contrib/llvm/lib/MC/MCDisassembler/MCSymbolizer.cpp stable/12/contrib/llvm/lib/MC/MCDwarf.cpp stable/12/contrib/llvm/lib/MC/MCELFObjectTargetWriter.cpp stable/12/contrib/llvm/lib/MC/MCELFStreamer.cpp stable/12/contrib/llvm/lib/MC/MCExpr.cpp stable/12/contrib/llvm/lib/MC/MCFragment.cpp stable/12/contrib/llvm/lib/MC/MCInst.cpp stable/12/contrib/llvm/lib/MC/MCInstPrinter.cpp stable/12/contrib/llvm/lib/MC/MCInstrAnalysis.cpp stable/12/contrib/llvm/lib/MC/MCInstrDesc.cpp stable/12/contrib/llvm/lib/MC/MCLabel.cpp stable/12/contrib/llvm/lib/MC/MCLinkerOptimizationHint.cpp stable/12/contrib/llvm/lib/MC/MCMachOStreamer.cpp stable/12/contrib/llvm/lib/MC/MCMachObjectTargetWriter.cpp stable/12/contrib/llvm/lib/MC/MCNullStreamer.cpp stable/12/contrib/llvm/lib/MC/MCObjectFileInfo.cpp stable/12/contrib/llvm/lib/MC/MCObjectStreamer.cpp stable/12/contrib/llvm/lib/MC/MCObjectWriter.cpp stable/12/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp stable/12/contrib/llvm/lib/MC/MCParser/AsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/COFFAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/MCAsmLexer.cpp stable/12/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/MCAsmParserExtension.cpp stable/12/contrib/llvm/lib/MC/MCParser/MCTargetAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCParser/WasmAsmParser.cpp stable/12/contrib/llvm/lib/MC/MCRegisterInfo.cpp stable/12/contrib/llvm/lib/MC/MCSchedule.cpp stable/12/contrib/llvm/lib/MC/MCSection.cpp stable/12/contrib/llvm/lib/MC/MCSectionCOFF.cpp stable/12/contrib/llvm/lib/MC/MCSectionELF.cpp stable/12/contrib/llvm/lib/MC/MCSectionMachO.cpp stable/12/contrib/llvm/lib/MC/MCSectionWasm.cpp stable/12/contrib/llvm/lib/MC/MCStreamer.cpp stable/12/contrib/llvm/lib/MC/MCSubtargetInfo.cpp stable/12/contrib/llvm/lib/MC/MCSymbol.cpp stable/12/contrib/llvm/lib/MC/MCSymbolELF.cpp stable/12/contrib/llvm/lib/MC/MCTargetOptions.cpp stable/12/contrib/llvm/lib/MC/MCValue.cpp stable/12/contrib/llvm/lib/MC/MCWasmObjectTargetWriter.cpp stable/12/contrib/llvm/lib/MC/MCWasmStreamer.cpp stable/12/contrib/llvm/lib/MC/MCWin64EH.cpp stable/12/contrib/llvm/lib/MC/MCWinCOFFStreamer.cpp stable/12/contrib/llvm/lib/MC/MCWinEH.cpp stable/12/contrib/llvm/lib/MC/MachObjectWriter.cpp stable/12/contrib/llvm/lib/MC/StringTableBuilder.cpp stable/12/contrib/llvm/lib/MC/SubtargetFeature.cpp stable/12/contrib/llvm/lib/MC/WasmObjectWriter.cpp stable/12/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/MCA/Context.cpp stable/12/contrib/llvm/lib/MCA/HWEventListener.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/HardwareUnit.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/LSUnit.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/RegisterFile.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/ResourceManager.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/RetireControlUnit.cpp stable/12/contrib/llvm/lib/MCA/HardwareUnits/Scheduler.cpp stable/12/contrib/llvm/lib/MCA/InstrBuilder.cpp stable/12/contrib/llvm/lib/MCA/Instruction.cpp stable/12/contrib/llvm/lib/MCA/Pipeline.cpp stable/12/contrib/llvm/lib/MCA/Stages/DispatchStage.cpp stable/12/contrib/llvm/lib/MCA/Stages/EntryStage.cpp stable/12/contrib/llvm/lib/MCA/Stages/ExecuteStage.cpp stable/12/contrib/llvm/lib/MCA/Stages/InstructionTables.cpp stable/12/contrib/llvm/lib/MCA/Stages/RetireStage.cpp stable/12/contrib/llvm/lib/MCA/Stages/Stage.cpp stable/12/contrib/llvm/lib/MCA/Support.cpp stable/12/contrib/llvm/lib/Object/Archive.cpp stable/12/contrib/llvm/lib/Object/ArchiveWriter.cpp stable/12/contrib/llvm/lib/Object/Binary.cpp stable/12/contrib/llvm/lib/Object/COFFImportFile.cpp stable/12/contrib/llvm/lib/Object/COFFModuleDefinition.cpp stable/12/contrib/llvm/lib/Object/COFFObjectFile.cpp stable/12/contrib/llvm/lib/Object/Decompressor.cpp stable/12/contrib/llvm/lib/Object/ELF.cpp stable/12/contrib/llvm/lib/Object/ELFObjectFile.cpp stable/12/contrib/llvm/lib/Object/Error.cpp stable/12/contrib/llvm/lib/Object/IRObjectFile.cpp stable/12/contrib/llvm/lib/Object/IRSymtab.cpp stable/12/contrib/llvm/lib/Object/MachOObjectFile.cpp stable/12/contrib/llvm/lib/Object/MachOUniversal.cpp stable/12/contrib/llvm/lib/Object/ModuleSymbolTable.cpp stable/12/contrib/llvm/lib/Object/Object.cpp stable/12/contrib/llvm/lib/Object/ObjectFile.cpp stable/12/contrib/llvm/lib/Object/RecordStreamer.cpp stable/12/contrib/llvm/lib/Object/RecordStreamer.h stable/12/contrib/llvm/lib/Object/SymbolSize.cpp stable/12/contrib/llvm/lib/Object/SymbolicFile.cpp stable/12/contrib/llvm/lib/Object/WasmObjectFile.cpp stable/12/contrib/llvm/lib/Object/WindowsResource.cpp stable/12/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp stable/12/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp stable/12/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypeHashing.cpp stable/12/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp stable/12/contrib/llvm/lib/ObjectYAML/DWARFEmitter.cpp stable/12/contrib/llvm/lib/ObjectYAML/DWARFVisitor.cpp stable/12/contrib/llvm/lib/ObjectYAML/DWARFVisitor.h stable/12/contrib/llvm/lib/ObjectYAML/DWARFYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/ELFYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/MachOYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/ObjectYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp stable/12/contrib/llvm/lib/ObjectYAML/YAML.cpp stable/12/contrib/llvm/lib/Option/Arg.cpp stable/12/contrib/llvm/lib/Option/ArgList.cpp stable/12/contrib/llvm/lib/Option/OptTable.cpp stable/12/contrib/llvm/lib/Option/Option.cpp stable/12/contrib/llvm/lib/Passes/PassBuilder.cpp stable/12/contrib/llvm/lib/Passes/PassPlugin.cpp stable/12/contrib/llvm/lib/Passes/PassRegistry.def stable/12/contrib/llvm/lib/Passes/StandardInstrumentations.cpp stable/12/contrib/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp stable/12/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp stable/12/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp stable/12/contrib/llvm/lib/ProfileData/GCOV.cpp stable/12/contrib/llvm/lib/ProfileData/InstrProf.cpp stable/12/contrib/llvm/lib/ProfileData/InstrProfReader.cpp stable/12/contrib/llvm/lib/ProfileData/InstrProfWriter.cpp stable/12/contrib/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp stable/12/contrib/llvm/lib/ProfileData/SampleProf.cpp stable/12/contrib/llvm/lib/ProfileData/SampleProfReader.cpp stable/12/contrib/llvm/lib/ProfileData/SampleProfWriter.cpp stable/12/contrib/llvm/lib/Support/AArch64TargetParser.cpp stable/12/contrib/llvm/lib/Support/AMDGPUMetadata.cpp stable/12/contrib/llvm/lib/Support/APFloat.cpp stable/12/contrib/llvm/lib/Support/APInt.cpp stable/12/contrib/llvm/lib/Support/APSInt.cpp stable/12/contrib/llvm/lib/Support/ARMAttributeParser.cpp stable/12/contrib/llvm/lib/Support/ARMBuildAttrs.cpp stable/12/contrib/llvm/lib/Support/ARMTargetParser.cpp stable/12/contrib/llvm/lib/Support/ARMWinEH.cpp stable/12/contrib/llvm/lib/Support/Allocator.cpp stable/12/contrib/llvm/lib/Support/Atomic.cpp stable/12/contrib/llvm/lib/Support/BinaryStreamError.cpp stable/12/contrib/llvm/lib/Support/BinaryStreamReader.cpp stable/12/contrib/llvm/lib/Support/BinaryStreamRef.cpp stable/12/contrib/llvm/lib/Support/BinaryStreamWriter.cpp stable/12/contrib/llvm/lib/Support/BlockFrequency.cpp stable/12/contrib/llvm/lib/Support/BranchProbability.cpp stable/12/contrib/llvm/lib/Support/BuryPointer.cpp stable/12/contrib/llvm/lib/Support/COM.cpp stable/12/contrib/llvm/lib/Support/CachePruning.cpp stable/12/contrib/llvm/lib/Support/Chrono.cpp stable/12/contrib/llvm/lib/Support/CodeGenCoverage.cpp stable/12/contrib/llvm/lib/Support/CommandLine.cpp stable/12/contrib/llvm/lib/Support/Compression.cpp stable/12/contrib/llvm/lib/Support/ConvertUTF.cpp stable/12/contrib/llvm/lib/Support/ConvertUTFWrapper.cpp stable/12/contrib/llvm/lib/Support/CrashRecoveryContext.cpp stable/12/contrib/llvm/lib/Support/DAGDeltaAlgorithm.cpp stable/12/contrib/llvm/lib/Support/DJB.cpp stable/12/contrib/llvm/lib/Support/DataExtractor.cpp stable/12/contrib/llvm/lib/Support/Debug.cpp stable/12/contrib/llvm/lib/Support/DeltaAlgorithm.cpp stable/12/contrib/llvm/lib/Support/DynamicLibrary.cpp stable/12/contrib/llvm/lib/Support/Errno.cpp stable/12/contrib/llvm/lib/Support/Error.cpp stable/12/contrib/llvm/lib/Support/ErrorHandling.cpp stable/12/contrib/llvm/lib/Support/FileCheck.cpp stable/12/contrib/llvm/lib/Support/FileOutputBuffer.cpp stable/12/contrib/llvm/lib/Support/FileUtilities.cpp stable/12/contrib/llvm/lib/Support/FoldingSet.cpp stable/12/contrib/llvm/lib/Support/FormatVariadic.cpp stable/12/contrib/llvm/lib/Support/FormattedStream.cpp stable/12/contrib/llvm/lib/Support/GlobPattern.cpp stable/12/contrib/llvm/lib/Support/GraphWriter.cpp stable/12/contrib/llvm/lib/Support/Hashing.cpp stable/12/contrib/llvm/lib/Support/Host.cpp stable/12/contrib/llvm/lib/Support/InitLLVM.cpp stable/12/contrib/llvm/lib/Support/IntEqClasses.cpp stable/12/contrib/llvm/lib/Support/IntervalMap.cpp stable/12/contrib/llvm/lib/Support/ItaniumManglingCanonicalizer.cpp stable/12/contrib/llvm/lib/Support/JSON.cpp stable/12/contrib/llvm/lib/Support/JamCRC.cpp stable/12/contrib/llvm/lib/Support/KnownBits.cpp stable/12/contrib/llvm/lib/Support/LEB128.cpp stable/12/contrib/llvm/lib/Support/LineIterator.cpp stable/12/contrib/llvm/lib/Support/LockFileManager.cpp stable/12/contrib/llvm/lib/Support/LowLevelType.cpp stable/12/contrib/llvm/lib/Support/ManagedStatic.cpp stable/12/contrib/llvm/lib/Support/MathExtras.cpp stable/12/contrib/llvm/lib/Support/Memory.cpp stable/12/contrib/llvm/lib/Support/MemoryBuffer.cpp stable/12/contrib/llvm/lib/Support/Mutex.cpp stable/12/contrib/llvm/lib/Support/NativeFormatting.cpp stable/12/contrib/llvm/lib/Support/Options.cpp stable/12/contrib/llvm/lib/Support/Parallel.cpp stable/12/contrib/llvm/lib/Support/Path.cpp stable/12/contrib/llvm/lib/Support/PluginLoader.cpp stable/12/contrib/llvm/lib/Support/PrettyStackTrace.cpp stable/12/contrib/llvm/lib/Support/Process.cpp stable/12/contrib/llvm/lib/Support/Program.cpp stable/12/contrib/llvm/lib/Support/RWMutex.cpp stable/12/contrib/llvm/lib/Support/RandomNumberGenerator.cpp stable/12/contrib/llvm/lib/Support/Regex.cpp stable/12/contrib/llvm/lib/Support/SHA1.cpp stable/12/contrib/llvm/lib/Support/ScaledNumber.cpp stable/12/contrib/llvm/lib/Support/Signals.cpp stable/12/contrib/llvm/lib/Support/SmallPtrSet.cpp stable/12/contrib/llvm/lib/Support/SmallVector.cpp stable/12/contrib/llvm/lib/Support/SourceMgr.cpp stable/12/contrib/llvm/lib/Support/SpecialCaseList.cpp stable/12/contrib/llvm/lib/Support/Statistic.cpp stable/12/contrib/llvm/lib/Support/StringExtras.cpp stable/12/contrib/llvm/lib/Support/StringMap.cpp stable/12/contrib/llvm/lib/Support/StringPool.cpp stable/12/contrib/llvm/lib/Support/StringRef.cpp stable/12/contrib/llvm/lib/Support/StringSaver.cpp stable/12/contrib/llvm/lib/Support/SymbolRemappingReader.cpp stable/12/contrib/llvm/lib/Support/SystemUtils.cpp stable/12/contrib/llvm/lib/Support/TarWriter.cpp stable/12/contrib/llvm/lib/Support/TargetParser.cpp stable/12/contrib/llvm/lib/Support/TargetRegistry.cpp stable/12/contrib/llvm/lib/Support/ThreadLocal.cpp stable/12/contrib/llvm/lib/Support/ThreadPool.cpp stable/12/contrib/llvm/lib/Support/Threading.cpp stable/12/contrib/llvm/lib/Support/Timer.cpp stable/12/contrib/llvm/lib/Support/ToolOutputFile.cpp stable/12/contrib/llvm/lib/Support/TrigramIndex.cpp stable/12/contrib/llvm/lib/Support/Triple.cpp stable/12/contrib/llvm/lib/Support/Twine.cpp stable/12/contrib/llvm/lib/Support/Unicode.cpp stable/12/contrib/llvm/lib/Support/Unix/COM.inc stable/12/contrib/llvm/lib/Support/Unix/DynamicLibrary.inc stable/12/contrib/llvm/lib/Support/Unix/Host.inc stable/12/contrib/llvm/lib/Support/Unix/Memory.inc stable/12/contrib/llvm/lib/Support/Unix/Mutex.inc stable/12/contrib/llvm/lib/Support/Unix/Path.inc stable/12/contrib/llvm/lib/Support/Unix/Process.inc stable/12/contrib/llvm/lib/Support/Unix/Program.inc stable/12/contrib/llvm/lib/Support/Unix/RWMutex.inc stable/12/contrib/llvm/lib/Support/Unix/Signals.inc stable/12/contrib/llvm/lib/Support/Unix/ThreadLocal.inc stable/12/contrib/llvm/lib/Support/Unix/Threading.inc stable/12/contrib/llvm/lib/Support/Unix/Unix.h stable/12/contrib/llvm/lib/Support/Unix/Watchdog.inc stable/12/contrib/llvm/lib/Support/Valgrind.cpp stable/12/contrib/llvm/lib/Support/VersionTuple.cpp stable/12/contrib/llvm/lib/Support/VirtualFileSystem.cpp stable/12/contrib/llvm/lib/Support/Watchdog.cpp stable/12/contrib/llvm/lib/Support/Windows/COM.inc stable/12/contrib/llvm/lib/Support/Windows/DynamicLibrary.inc stable/12/contrib/llvm/lib/Support/Windows/Host.inc stable/12/contrib/llvm/lib/Support/Windows/Memory.inc stable/12/contrib/llvm/lib/Support/Windows/Mutex.inc stable/12/contrib/llvm/lib/Support/Windows/Path.inc stable/12/contrib/llvm/lib/Support/Windows/Process.inc stable/12/contrib/llvm/lib/Support/Windows/Program.inc stable/12/contrib/llvm/lib/Support/Windows/RWMutex.inc stable/12/contrib/llvm/lib/Support/Windows/Signals.inc stable/12/contrib/llvm/lib/Support/Windows/ThreadLocal.inc stable/12/contrib/llvm/lib/Support/Windows/Threading.inc stable/12/contrib/llvm/lib/Support/Windows/Watchdog.inc stable/12/contrib/llvm/lib/Support/Windows/WindowsSupport.h stable/12/contrib/llvm/lib/Support/WithColor.cpp stable/12/contrib/llvm/lib/Support/YAMLParser.cpp stable/12/contrib/llvm/lib/Support/YAMLTraits.cpp stable/12/contrib/llvm/lib/Support/circular_raw_ostream.cpp stable/12/contrib/llvm/lib/Support/raw_os_ostream.cpp stable/12/contrib/llvm/lib/Support/raw_ostream.cpp stable/12/contrib/llvm/lib/TableGen/Error.cpp stable/12/contrib/llvm/lib/TableGen/JSONBackend.cpp stable/12/contrib/llvm/lib/TableGen/Main.cpp stable/12/contrib/llvm/lib/TableGen/Record.cpp stable/12/contrib/llvm/lib/TableGen/SetTheory.cpp stable/12/contrib/llvm/lib/TableGen/StringMatcher.cpp stable/12/contrib/llvm/lib/TableGen/TGLexer.cpp stable/12/contrib/llvm/lib/TableGen/TGLexer.h stable/12/contrib/llvm/lib/TableGen/TGParser.cpp stable/12/contrib/llvm/lib/TableGen/TGParser.h stable/12/contrib/llvm/lib/TableGen/TableGenBackend.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64BranchTargets.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64GenRegisterBankInfo.def stable/12/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrFormats.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64PfmCounters.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterBanks.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedA53.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedA57.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedA57WriteRes.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedCyclone.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM1.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedExynosM4.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkor.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkorDetails.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedKryo.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedKryoDetails.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedPredicates.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64Schedule.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64SpeculationHardening.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64SystemOperands.td stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h stable/12/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp stable/12/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp stable/12/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.h stable/12/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp stable/12/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64FixupKinds.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp stable/12/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h stable/12/contrib/llvm/lib/Target/AArch64/SVEInstrFormats.td stable/12/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp stable/12/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUFeatures.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUFixFunctionBitcasts.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUGISel.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelAttributes.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPTNote.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBanks.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/AMDKernelCodeT.h stable/12/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/BUFInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/CaymanInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/DSInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h stable/12/contrib/llvm/lib/Target/AMDGPU/EvergreenInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/FLATInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h stable/12/contrib/llvm/lib/Target/AMDGPU/GCNILPSched.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.h stable/12/contrib/llvm/lib/Target/AMDGPU/GCNMinRegStrategy.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNProcessors.td stable/12/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.h stable/12/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUFixupKinds.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/MIMGInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600AsmPrinter.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600ClauseMergePass.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600Defines.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600FrameLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600FrameLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600InstrFormats.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600MachineScheduler.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600Packetizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600Processors.td stable/12/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/R600Schedule.td stable/12/contrib/llvm/lib/Target/AMDGPU/R700Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIAddIMGInit.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIDefines.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFixVGPRCopies.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFixupVectorISel.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIInsertSkips.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrFormats.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIModeRegister.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIProgramInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td stable/12/contrib/llvm/lib/Target/AMDGPU/SISchedule.td stable/12/contrib/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/SMInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/SOPInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUAsmUtils.h stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTInfo.h stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp stable/12/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h stable/12/contrib/llvm/lib/Target/AMDGPU/VIInstrFormats.td stable/12/contrib/llvm/lib/Target/AMDGPU/VIInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOP1Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td stable/12/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td stable/12/contrib/llvm/lib/Target/ARC/ARC.h stable/12/contrib/llvm/lib/Target/ARC/ARC.td stable/12/contrib/llvm/lib/Target/ARC/ARCAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCBranchFinalize.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCCallingConv.td stable/12/contrib/llvm/lib/Target/ARC/ARCExpandPseudos.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCFrameLowering.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCFrameLowering.h stable/12/contrib/llvm/lib/Target/ARC/ARCISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCISelLowering.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCISelLowering.h stable/12/contrib/llvm/lib/Target/ARC/ARCInstrFormats.td stable/12/contrib/llvm/lib/Target/ARC/ARCInstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCInstrInfo.h stable/12/contrib/llvm/lib/Target/ARC/ARCInstrInfo.td stable/12/contrib/llvm/lib/Target/ARC/ARCMCInstLower.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCMCInstLower.h stable/12/contrib/llvm/lib/Target/ARC/ARCMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/ARC/ARCRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCRegisterInfo.h stable/12/contrib/llvm/lib/Target/ARC/ARCRegisterInfo.td stable/12/contrib/llvm/lib/Target/ARC/ARCSubtarget.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCSubtarget.h stable/12/contrib/llvm/lib/Target/ARC/ARCTargetMachine.cpp stable/12/contrib/llvm/lib/Target/ARC/ARCTargetMachine.h stable/12/contrib/llvm/lib/Target/ARC/ARCTargetStreamer.h stable/12/contrib/llvm/lib/Target/ARC/ARCTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/ARC/Disassembler/ARCDisassembler.cpp stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCInfo.h stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.h stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.h stable/12/contrib/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/A15SDOptimizer.cpp stable/12/contrib/llvm/lib/Target/ARM/ARM.h stable/12/contrib/llvm/lib/Target/ARM/ARM.td stable/12/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.h stable/12/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMBasicBlockInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMCallLowering.h stable/12/contrib/llvm/lib/Target/ARM/ARMCallingConv.h stable/12/contrib/llvm/lib/Target/ARM/ARMCallingConv.td stable/12/contrib/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.h stable/12/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMFeatures.h stable/12/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h stable/12/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.h stable/12/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMISelLowering.h stable/12/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMInstrInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td stable/12/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMMCInstLower.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMMacroFusion.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMMacroFusion.h stable/12/contrib/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMParallelDSP.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMPerfectShuffle.h stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterBanks.td stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td stable/12/contrib/llvm/lib/Target/ARM/ARMSchedule.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleA57.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleA57WriteRes.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleA8.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleA9.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleR52.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleSwift.td stable/12/contrib/llvm/lib/Target/ARM/ARMScheduleV6.td stable/12/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMSubtarget.h stable/12/contrib/llvm/lib/Target/ARM/ARMSystemRegister.td stable/12/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h stable/12/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.h stable/12/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp stable/12/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.h stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp stable/12/contrib/llvm/lib/Target/ARM/MLxExpansionPass.cpp stable/12/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.h stable/12/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.h stable/12/contrib/llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.h stable/12/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp stable/12/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.h stable/12/contrib/llvm/lib/Target/ARM/Utils/ARMBaseInfo.cpp stable/12/contrib/llvm/lib/Target/ARM/Utils/ARMBaseInfo.h stable/12/contrib/llvm/lib/Target/AVR/AVR.h stable/12/contrib/llvm/lib/Target/AVR/AVR.td stable/12/contrib/llvm/lib/Target/AVR/AVRAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRCallingConv.td stable/12/contrib/llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRFrameLowering.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRFrameLowering.h stable/12/contrib/llvm/lib/Target/AVR/AVRISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRISelLowering.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRISelLowering.h stable/12/contrib/llvm/lib/Target/AVR/AVRInstrFormats.td stable/12/contrib/llvm/lib/Target/AVR/AVRInstrInfo.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRInstrInfo.h stable/12/contrib/llvm/lib/Target/AVR/AVRInstrInfo.td stable/12/contrib/llvm/lib/Target/AVR/AVRMCInstLower.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRMCInstLower.h stable/12/contrib/llvm/lib/Target/AVR/AVRMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.h stable/12/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.td stable/12/contrib/llvm/lib/Target/AVR/AVRRelaxMemOperations.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/AVR/AVRSubtarget.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRSubtarget.h stable/12/contrib/llvm/lib/Target/AVR/AVRTargetMachine.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRTargetMachine.h stable/12/contrib/llvm/lib/Target/AVR/AVRTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/AVR/AVRTargetObjectFile.h stable/12/contrib/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp stable/12/contrib/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRFixupKinds.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.h stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRTargetStreamer.h stable/12/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp stable/12/contrib/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp stable/12/contrib/llvm/lib/Target/BPF/BPF.h stable/12/contrib/llvm/lib/Target/BPF/BPF.td stable/12/contrib/llvm/lib/Target/BPF/BPFAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFCallingConv.td stable/12/contrib/llvm/lib/Target/BPF/BPFFrameLowering.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFFrameLowering.h stable/12/contrib/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFISelLowering.h stable/12/contrib/llvm/lib/Target/BPF/BPFInstrFormats.td stable/12/contrib/llvm/lib/Target/BPF/BPFInstrInfo.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFInstrInfo.h stable/12/contrib/llvm/lib/Target/BPF/BPFInstrInfo.td stable/12/contrib/llvm/lib/Target/BPF/BPFMCInstLower.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFMCInstLower.h stable/12/contrib/llvm/lib/Target/BPF/BPFMIChecking.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFMIPeephole.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.h stable/12/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.td stable/12/contrib/llvm/lib/Target/BPF/BPFSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/BPF/BPFSubtarget.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFSubtarget.h stable/12/contrib/llvm/lib/Target/BPF/BPFTargetMachine.cpp stable/12/contrib/llvm/lib/Target/BPF/BPFTargetMachine.h stable/12/contrib/llvm/lib/Target/BPF/BTF.def stable/12/contrib/llvm/lib/Target/BPF/BTF.h stable/12/contrib/llvm/lib/Target/BPF/BTFDebug.cpp stable/12/contrib/llvm/lib/Target/BPF/BTFDebug.h stable/12/contrib/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.h stable/12/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp stable/12/contrib/llvm/lib/Target/Hexagon/BitTracker.cpp stable/12/contrib/llvm/lib/Target/Hexagon/BitTracker.h stable/12/contrib/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp stable/12/contrib/llvm/lib/Target/Hexagon/Hexagon.h stable/12/contrib/llvm/lib/Target/Hexagon/Hexagon.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonBranchRelaxation.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonCallingConv.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepMappings.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepOperands.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonFixupHwLoops.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonGenMux.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonHazardRecognizer.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonHazardRecognizer.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIICHVX.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIICScalar.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormats.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV5.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV60.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV65.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV60.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV62.gen.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV65.gen.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonOperands.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonPatternsV65.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonPeephole.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonPseudo.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSchedule.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV5.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV55.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV60.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV62.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV65.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV66.td stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetStreamer.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVExtract.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp stable/12/contrib/llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonFixupKinds.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp stable/12/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h stable/12/contrib/llvm/lib/Target/Hexagon/RDFCopy.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFCopy.h stable/12/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.h stable/12/contrib/llvm/lib/Target/Hexagon/RDFGraph.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFGraph.h stable/12/contrib/llvm/lib/Target/Hexagon/RDFLiveness.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFLiveness.h stable/12/contrib/llvm/lib/Target/Hexagon/RDFRegisters.cpp stable/12/contrib/llvm/lib/Target/Hexagon/RDFRegisters.h stable/12/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp stable/12/contrib/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp stable/12/contrib/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.h stable/12/contrib/llvm/lib/Target/Lanai/Lanai.h stable/12/contrib/llvm/lib/Target/Lanai/Lanai.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiAluCode.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiCallingConv.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiFrameLowering.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiFrameLowering.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiInstrFormats.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiMCInstLower.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiMCInstLower.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiSchedule.td stable/12/contrib/llvm/lib/Target/Lanai/LanaiSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiSubtarget.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiSubtarget.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/Lanai/LanaiTargetObjectFile.h stable/12/contrib/llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiBaseInfo.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiFixupKinds.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.h stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h stable/12/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp stable/12/contrib/llvm/lib/Target/MSP430/Disassembler/MSP430Disassembler.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFStreamer.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430FixupKinds.h stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430CallingConv.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrFormats.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430MCInstLower.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430MCInstLower.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.td stable/12/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.h stable/12/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp stable/12/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.h stable/12/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp stable/12/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp stable/12/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsDSPInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips.h stable/12/contrib/llvm/lib/Target/Mips/Mips.td stable/12/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.h stable/12/contrib/llvm/lib/Target/Mips/Mips16HardFloat.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16HardFloatInfo.h stable/12/contrib/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.h stable/12/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.h stable/12/contrib/llvm/lib/Target/Mips/Mips16InstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.h stable/12/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.h stable/12/contrib/llvm/lib/Target/Mips/Mips32r6InstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsAnalyzeImmediate.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsAnalyzeImmediate.h stable/12/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.h stable/12/contrib/llvm/lib/Target/Mips/MipsBranchExpansion.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsCCState.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsCCState.h stable/12/contrib/llvm/lib/Target/Mips/MipsCallLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsCallLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsCallingConv.td stable/12/contrib/llvm/lib/Target/Mips/MipsCondMov.td stable/12/contrib/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsDSPInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MipsDSPInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsEVAInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MipsEVAInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsExpandPseudo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsFrameLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsFrameLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.h stable/12/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsISelLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td stable/12/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsInstructionSelector.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsMCInstLower.h stable/12/contrib/llvm/lib/Target/Mips/MipsMSAInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MipsMSAInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsMTInstrFormats.td stable/12/contrib/llvm/lib/Target/Mips/MipsMTInstrInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsMachineFunction.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsMachineFunction.h stable/12/contrib/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsOptionRecord.h stable/12/contrib/llvm/lib/Target/Mips/MipsOs16.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterBanks.td stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td stable/12/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h stable/12/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.h stable/12/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.h stable/12/contrib/llvm/lib/Target/Mips/MipsSchedule.td stable/12/contrib/llvm/lib/Target/Mips/MipsScheduleGeneric.td stable/12/contrib/llvm/lib/Target/Mips/MipsScheduleP5600.td stable/12/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsSubtarget.h stable/12/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h stable/12/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.h stable/12/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h stable/12/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXBaseInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.h stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h stable/12/contrib/llvm/lib/Target/NVPTX/ManagedStringPool.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTX.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTX.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXInstrFormats.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAlloca.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXPeephole.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXProxyRegErasure.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.td stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetObjectFile.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXUtilities.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVPTXUtilities.h stable/12/contrib/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp stable/12/contrib/llvm/lib/Target/NVPTX/NVVMReflect.cpp stable/12/contrib/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp stable/12/contrib/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.cpp stable/12/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h stable/12/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td stable/12/contrib/llvm/lib/Target/PowerPC/PPC.h stable/12/contrib/llvm/lib/Target/PowerPC/PPC.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCCCState.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCCCState.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCExpandISEL.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCFastISel.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrBuilder.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrFormats.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrHTM.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrQPX.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrSPE.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCPerfectShuffle.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCPfmCounters.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCSchedule.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCSchedule440.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleA2.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleE500mc.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleE5500.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG3.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG4Plus.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleG5.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleP7.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleP8.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCScheduleP9.td stable/12/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTOCRegDeps.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetStreamer.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp stable/12/contrib/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp stable/12/contrib/llvm/lib/Target/PowerPC/README_P9.txt stable/12/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp stable/12/contrib/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h stable/12/contrib/llvm/lib/Target/RISCV/RISCV.h stable/12/contrib/llvm/lib/Target/RISCV/RISCV.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVCallingConv.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrFormats.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrFormatsC.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoA.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoC.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoD.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoF.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoM.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVSystemOperands.td stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.h stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/RISCV/RISCVTargetObjectFile.h stable/12/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/Utils/RISCVBaseInfo.cpp stable/12/contrib/llvm/lib/Target/RISCV/Utils/RISCVBaseInfo.h stable/12/contrib/llvm/lib/Target/RISCV/Utils/RISCVMatInt.cpp stable/12/contrib/llvm/lib/Target/RISCV/Utils/RISCVMatInt.h stable/12/contrib/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp stable/12/contrib/llvm/lib/Target/Sparc/DelaySlotFiller.cpp stable/12/contrib/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp stable/12/contrib/llvm/lib/Target/Sparc/LeonFeatures.td stable/12/contrib/llvm/lib/Target/Sparc/LeonPasses.cpp stable/12/contrib/llvm/lib/Target/Sparc/LeonPasses.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.h stable/12/contrib/llvm/lib/Target/Sparc/Sparc.h stable/12/contrib/llvm/lib/Target/Sparc/Sparc.td stable/12/contrib/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcCallingConv.td stable/12/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.h stable/12/contrib/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h stable/12/contrib/llvm/lib/Target/Sparc/SparcInstr64Bit.td stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrAliases.td stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrFormats.td stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.h stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td stable/12/contrib/llvm/lib/Target/Sparc/SparcInstrVIS.td stable/12/contrib/llvm/lib/Target/Sparc/SparcMCInstLower.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h stable/12/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.td stable/12/contrib/llvm/lib/Target/Sparc/SparcSchedule.td stable/12/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h stable/12/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.h stable/12/contrib/llvm/lib/Target/Sparc/SparcTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/Sparc/SparcTargetObjectFile.h stable/12/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp stable/12/contrib/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCFixups.h stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZ.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZ.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZCallingConv.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZExpandPseudo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZFeatures.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrBuilder.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrDFP.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrHFP.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrSystem.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZInstrVector.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZLongBranch.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMCInstLower.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMCInstLower.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZOperands.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZPatterns.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZProcessors.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSchedule.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ14.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTDC.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.h stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp stable/12/contrib/llvm/lib/Target/Target.cpp stable/12/contrib/llvm/lib/Target/TargetIntrinsicInfo.cpp stable/12/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp stable/12/contrib/llvm/lib/Target/TargetMachine.cpp stable/12/contrib/llvm/lib/Target/TargetMachineC.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyFixupKinds.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h stable/12/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/README.txt stable/12/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssembly.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssembly.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAddMissingPrototypes.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISD.def stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrAtomics.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrCall.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.td stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyReplacePhysRegs.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyUtilities.cpp stable/12/contrib/llvm/lib/Target/WebAssembly/WebAssemblyUtilities.h stable/12/contrib/llvm/lib/Target/WebAssembly/known_gcc_test_failures.txt stable/12/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp stable/12/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h stable/12/contrib/llvm/lib/Target/X86/AsmParser/X86Operand.h stable/12/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp stable/12/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp stable/12/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCExpr.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp stable/12/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp stable/12/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp stable/12/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp stable/12/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h stable/12/contrib/llvm/lib/Target/X86/X86.h stable/12/contrib/llvm/lib/Target/X86/X86.td stable/12/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp stable/12/contrib/llvm/lib/Target/X86/X86AsmPrinter.h stable/12/contrib/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp stable/12/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp stable/12/contrib/llvm/lib/Target/X86/X86CallLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86CallLowering.h stable/12/contrib/llvm/lib/Target/X86/X86CallingConv.cpp stable/12/contrib/llvm/lib/Target/X86/X86CallingConv.h stable/12/contrib/llvm/lib/Target/X86/X86CallingConv.td stable/12/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp stable/12/contrib/llvm/lib/Target/X86/X86CondBrFolding.cpp stable/12/contrib/llvm/lib/Target/X86/X86DiscriminateMemOps.cpp stable/12/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp stable/12/contrib/llvm/lib/Target/X86/X86EvexToVex.cpp stable/12/contrib/llvm/lib/Target/X86/X86ExpandPseudo.cpp stable/12/contrib/llvm/lib/Target/X86/X86FastISel.cpp stable/12/contrib/llvm/lib/Target/X86/X86FixupBWInsts.cpp stable/12/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp stable/12/contrib/llvm/lib/Target/X86/X86FixupSetCC.cpp stable/12/contrib/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp stable/12/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86FrameLowering.h stable/12/contrib/llvm/lib/Target/X86/X86GenRegisterBankInfo.def stable/12/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp stable/12/contrib/llvm/lib/Target/X86/X86ISelLowering.h stable/12/contrib/llvm/lib/Target/X86/X86IndirectBranchTracking.cpp stable/12/contrib/llvm/lib/Target/X86/X86InsertPrefetch.cpp stable/12/contrib/llvm/lib/Target/X86/X86Instr3DNow.td stable/12/contrib/llvm/lib/Target/X86/X86InstrAVX512.td stable/12/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td stable/12/contrib/llvm/lib/Target/X86/X86InstrBuilder.h stable/12/contrib/llvm/lib/Target/X86/X86InstrCMovSetCC.td stable/12/contrib/llvm/lib/Target/X86/X86InstrCompiler.td stable/12/contrib/llvm/lib/Target/X86/X86InstrControl.td stable/12/contrib/llvm/lib/Target/X86/X86InstrExtension.td stable/12/contrib/llvm/lib/Target/X86/X86InstrFMA.td stable/12/contrib/llvm/lib/Target/X86/X86InstrFMA3Info.cpp stable/12/contrib/llvm/lib/Target/X86/X86InstrFMA3Info.h stable/12/contrib/llvm/lib/Target/X86/X86InstrFPStack.td stable/12/contrib/llvm/lib/Target/X86/X86InstrFoldTables.cpp stable/12/contrib/llvm/lib/Target/X86/X86InstrFoldTables.h stable/12/contrib/llvm/lib/Target/X86/X86InstrFormats.td stable/12/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td stable/12/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86InstrInfo.h stable/12/contrib/llvm/lib/Target/X86/X86InstrInfo.td stable/12/contrib/llvm/lib/Target/X86/X86InstrMMX.td stable/12/contrib/llvm/lib/Target/X86/X86InstrMPX.td stable/12/contrib/llvm/lib/Target/X86/X86InstrSGX.td stable/12/contrib/llvm/lib/Target/X86/X86InstrSSE.td stable/12/contrib/llvm/lib/Target/X86/X86InstrSVM.td stable/12/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td stable/12/contrib/llvm/lib/Target/X86/X86InstrSystem.td stable/12/contrib/llvm/lib/Target/X86/X86InstrTSX.td stable/12/contrib/llvm/lib/Target/X86/X86InstrVMX.td stable/12/contrib/llvm/lib/Target/X86/X86InstrVecCompiler.td stable/12/contrib/llvm/lib/Target/X86/X86InstrXOP.td stable/12/contrib/llvm/lib/Target/X86/X86InstructionSelector.cpp stable/12/contrib/llvm/lib/Target/X86/X86InterleavedAccess.cpp stable/12/contrib/llvm/lib/Target/X86/X86IntrinsicsInfo.h stable/12/contrib/llvm/lib/Target/X86/X86LegalizerInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86LegalizerInfo.h stable/12/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp stable/12/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/X86/X86MacroFusion.cpp stable/12/contrib/llvm/lib/Target/X86/X86MacroFusion.h stable/12/contrib/llvm/lib/Target/X86/X86OptimizeLEAs.cpp stable/12/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp stable/12/contrib/llvm/lib/Target/X86/X86PfmCounters.td stable/12/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.h stable/12/contrib/llvm/lib/Target/X86/X86RegisterBanks.td stable/12/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86RegisterInfo.h stable/12/contrib/llvm/lib/Target/X86/X86RegisterInfo.td stable/12/contrib/llvm/lib/Target/X86/X86RetpolineThunks.cpp stable/12/contrib/llvm/lib/Target/X86/X86SchedBroadwell.td stable/12/contrib/llvm/lib/Target/X86/X86SchedHaswell.td stable/12/contrib/llvm/lib/Target/X86/X86SchedPredicates.td stable/12/contrib/llvm/lib/Target/X86/X86SchedSandyBridge.td stable/12/contrib/llvm/lib/Target/X86/X86SchedSkylakeClient.td stable/12/contrib/llvm/lib/Target/X86/X86SchedSkylakeServer.td stable/12/contrib/llvm/lib/Target/X86/X86Schedule.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleAtom.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleBdVer2.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleSLM.td stable/12/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td stable/12/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp stable/12/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h stable/12/contrib/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp stable/12/contrib/llvm/lib/Target/X86/X86Subtarget.cpp stable/12/contrib/llvm/lib/Target/X86/X86Subtarget.h stable/12/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp stable/12/contrib/llvm/lib/Target/X86/X86TargetMachine.h stable/12/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/X86/X86TargetObjectFile.h stable/12/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp stable/12/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.h stable/12/contrib/llvm/lib/Target/X86/X86VZeroUpper.cpp stable/12/contrib/llvm/lib/Target/X86/X86WinAllocaExpander.cpp stable/12/contrib/llvm/lib/Target/X86/X86WinEHState.cpp stable/12/contrib/llvm/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.h stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp stable/12/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.h stable/12/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/XCore.h stable/12/contrib/llvm/lib/Target/XCore/XCore.td stable/12/contrib/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreCallingConv.td stable/12/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.h stable/12/contrib/llvm/lib/Target/XCore/XCoreFrameToArgsOffsetElim.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreISelLowering.h stable/12/contrib/llvm/lib/Target/XCore/XCoreInstrFormats.td stable/12/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.h stable/12/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.td stable/12/contrib/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreMCInstLower.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreMCInstLower.h stable/12/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h stable/12/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h stable/12/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.td stable/12/contrib/llvm/lib/Target/XCore/XCoreSelectionDAGInfo.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreSelectionDAGInfo.h stable/12/contrib/llvm/lib/Target/XCore/XCoreSubtarget.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreSubtarget.h stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.h stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetObjectFile.cpp stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetObjectFile.h stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetStreamer.h stable/12/contrib/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h stable/12/contrib/llvm/lib/Testing/Support/Error.cpp stable/12/contrib/llvm/lib/TextAPI/ELF/ELFStub.cpp stable/12/contrib/llvm/lib/TextAPI/ELF/TBEHandler.cpp stable/12/contrib/llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp stable/12/contrib/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp stable/12/contrib/llvm/lib/ToolDrivers/llvm-lib/Options.td stable/12/contrib/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp stable/12/contrib/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombineInternal.h stable/12/contrib/llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroCleanup.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroEarly.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroElide.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroFrame.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroInstr.h stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroInternal.h stable/12/contrib/llvm/lib/Transforms/Coroutines/CoroSplit.cpp stable/12/contrib/llvm/lib/Transforms/Coroutines/Coroutines.cpp stable/12/contrib/llvm/lib/Transforms/IPO/AlwaysInliner.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp stable/12/contrib/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp stable/12/contrib/llvm/lib/Transforms/IPO/BlockExtractor.cpp stable/12/contrib/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp stable/12/contrib/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp stable/12/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp stable/12/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp stable/12/contrib/llvm/lib/Transforms/IPO/FunctionImport.cpp stable/12/contrib/llvm/lib/Transforms/IPO/GlobalDCE.cpp stable/12/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp stable/12/contrib/llvm/lib/Transforms/IPO/GlobalSplit.cpp stable/12/contrib/llvm/lib/Transforms/IPO/HotColdSplitting.cpp stable/12/contrib/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp stable/12/contrib/llvm/lib/Transforms/IPO/IPO.cpp stable/12/contrib/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp stable/12/contrib/llvm/lib/Transforms/IPO/InlineSimple.cpp stable/12/contrib/llvm/lib/Transforms/IPO/Inliner.cpp stable/12/contrib/llvm/lib/Transforms/IPO/Internalize.cpp stable/12/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp stable/12/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp stable/12/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp stable/12/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp stable/12/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp stable/12/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp stable/12/contrib/llvm/lib/Transforms/IPO/SCCP.cpp stable/12/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp stable/12/contrib/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp stable/12/contrib/llvm/lib/Transforms/IPO/StripSymbols.cpp stable/12/contrib/llvm/lib/Transforms/IPO/SyntheticCountsPropagation.cpp stable/12/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp stable/12/contrib/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp stable/12/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/CFGMST.h stable/12/contrib/llvm/lib/Transforms/Instrumentation/CGProfile.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/MaximumSpanningTree.h stable/12/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp stable/12/contrib/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/BlotMapVector.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCExpand.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h stable/12/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/PtrState.cpp stable/12/contrib/llvm/lib/Transforms/ObjCARC/PtrState.h stable/12/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/BDCE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/ConstantProp.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/DCE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/DivRemPairs.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Float2Int.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GVN.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GVNHoist.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/GuardWidening.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/IVUsersPrinter.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LICM.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopDeletion.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopDistribute.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopPassManager.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopPredication.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopSink.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LowerAtomic.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/NaryReassociate.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Reg2Mem.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SROA.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/Sink.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp stable/12/contrib/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp stable/12/contrib/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp stable/12/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp stable/12/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp stable/12/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp stable/12/contrib/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CanonicalizeAliases.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp stable/12/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/DemoteRegToStack.cpp stable/12/contrib/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp stable/12/contrib/llvm/lib/Transforms/Utils/EscapeEnumerator.cpp stable/12/contrib/llvm/lib/Transforms/Utils/Evaluator.cpp stable/12/contrib/llvm/lib/Transforms/Utils/FlattenCFG.cpp stable/12/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp stable/12/contrib/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/GlobalStatus.cpp stable/12/contrib/llvm/lib/Transforms/Utils/GuardUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp stable/12/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp stable/12/contrib/llvm/lib/Transforms/Utils/InstructionNamer.cpp stable/12/contrib/llvm/lib/Transforms/Utils/IntegerDivision.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp stable/12/contrib/llvm/lib/Transforms/Utils/Local.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LoopVersioning.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LowerInvoke.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp stable/12/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp stable/12/contrib/llvm/lib/Transforms/Utils/Mem2Reg.cpp stable/12/contrib/llvm/lib/Transforms/Utils/MetaRenamer.cpp stable/12/contrib/llvm/lib/Transforms/Utils/ModuleUtils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/NameAnonGlobals.cpp stable/12/contrib/llvm/lib/Transforms/Utils/PredicateInfo.cpp stable/12/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SanitizerStats.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SplitModule.cpp stable/12/contrib/llvm/lib/Transforms/Utils/StripGCRelocates.cpp stable/12/contrib/llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp stable/12/contrib/llvm/lib/Transforms/Utils/SymbolRewriter.cpp stable/12/contrib/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp stable/12/contrib/llvm/lib/Transforms/Utils/Utils.cpp stable/12/contrib/llvm/lib/Transforms/Utils/VNCoercion.cpp stable/12/contrib/llvm/lib/Transforms/Utils/ValueMapper.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h stable/12/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlan.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlan.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanLoopInfo.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanSLP.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanValue.h stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp stable/12/contrib/llvm/lib/Transforms/Vectorize/VPlanVerifier.h stable/12/contrib/llvm/lib/Transforms/Vectorize/Vectorize.cpp stable/12/contrib/llvm/lib/WindowsManifest/WindowsManifestMerger.cpp stable/12/contrib/llvm/lib/XRay/BlockIndexer.cpp stable/12/contrib/llvm/lib/XRay/BlockPrinter.cpp stable/12/contrib/llvm/lib/XRay/BlockVerifier.cpp stable/12/contrib/llvm/lib/XRay/FDRRecordProducer.cpp stable/12/contrib/llvm/lib/XRay/FDRRecords.cpp stable/12/contrib/llvm/lib/XRay/FDRTraceExpander.cpp stable/12/contrib/llvm/lib/XRay/FDRTraceWriter.cpp stable/12/contrib/llvm/lib/XRay/FileHeaderReader.cpp stable/12/contrib/llvm/lib/XRay/InstrumentationMap.cpp stable/12/contrib/llvm/lib/XRay/LogBuilderConsumer.cpp stable/12/contrib/llvm/lib/XRay/Profile.cpp stable/12/contrib/llvm/lib/XRay/RecordInitializer.cpp stable/12/contrib/llvm/lib/XRay/RecordPrinter.cpp stable/12/contrib/llvm/lib/XRay/Trace.cpp stable/12/contrib/llvm/tools/bugpoint/BugDriver.cpp stable/12/contrib/llvm/tools/bugpoint/BugDriver.h stable/12/contrib/llvm/tools/bugpoint/CrashDebugger.cpp stable/12/contrib/llvm/tools/bugpoint/ExecutionDriver.cpp stable/12/contrib/llvm/tools/bugpoint/ExtractFunction.cpp stable/12/contrib/llvm/tools/bugpoint/FindBugs.cpp stable/12/contrib/llvm/tools/bugpoint/ListReducer.h stable/12/contrib/llvm/tools/bugpoint/Miscompilation.cpp stable/12/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp stable/12/contrib/llvm/tools/bugpoint/ToolRunner.cpp stable/12/contrib/llvm/tools/bugpoint/ToolRunner.h stable/12/contrib/llvm/tools/bugpoint/bugpoint.cpp stable/12/contrib/llvm/tools/clang/FREEBSD-Xlist stable/12/contrib/llvm/tools/clang/LICENSE.TXT stable/12/contrib/llvm/tools/clang/include/clang-c/BuildSystem.h stable/12/contrib/llvm/tools/clang/include/clang-c/CXCompilationDatabase.h stable/12/contrib/llvm/tools/clang/include/clang-c/CXErrorCode.h stable/12/contrib/llvm/tools/clang/include/clang-c/CXString.h stable/12/contrib/llvm/tools/clang/include/clang-c/Documentation.h stable/12/contrib/llvm/tools/clang/include/clang-c/Index.h stable/12/contrib/llvm/tools/clang/include/clang-c/Platform.h stable/12/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMT.h stable/12/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMTActions.h stable/12/contrib/llvm/tools/clang/include/clang/ARCMigrate/FileRemapper.h stable/12/contrib/llvm/tools/clang/include/clang/AST/APValue.h stable/12/contrib/llvm/tools/clang/include/clang/AST/AST.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTContextAllocate.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTDumperUtils.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTFwd.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTImporterLookupTable.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTLambda.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTStructuralEquivalence.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTTypeTraits.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ASTVector.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Attr.h stable/12/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h stable/12/contrib/llvm/tools/clang/include/clang/AST/AttrVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Availability.h stable/12/contrib/llvm/tools/clang/include/clang/AST/BaseSubobject.h stable/12/contrib/llvm/tools/clang/include/clang/AST/BuiltinTypes.def stable/12/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CharUnits.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Comment.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentBriefParser.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentCommandTraits.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentLexer.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentParser.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentSema.h stable/12/contrib/llvm/tools/clang/include/clang/AST/CommentVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ComparisonCategories.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DataCollection.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Decl.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclAccessPair.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclContextInternals.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclGroup.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclLookups.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclOpenMP.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h stable/12/contrib/llvm/tools/clang/include/clang/AST/DependentDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/AST/EvaluatedExprVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Expr.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExprOpenMP.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExternalASTMerger.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h stable/12/contrib/llvm/tools/clang/include/clang/AST/FormatString.h stable/12/contrib/llvm/tools/clang/include/clang/AST/GlobalDecl.h stable/12/contrib/llvm/tools/clang/include/clang/AST/LambdaCapture.h stable/12/contrib/llvm/tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/LocInfoType.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Mangle.h stable/12/contrib/llvm/tools/clang/include/clang/AST/MangleNumberingContext.h stable/12/contrib/llvm/tools/clang/include/clang/AST/NSAPI.h stable/12/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h stable/12/contrib/llvm/tools/clang/include/clang/AST/NonTrivialTypeVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h stable/12/contrib/llvm/tools/clang/include/clang/AST/OSLog.h stable/12/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h stable/12/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.def stable/12/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h stable/12/contrib/llvm/tools/clang/include/clang/AST/ParentMap.h stable/12/contrib/llvm/tools/clang/include/clang/AST/PrettyDeclStackTrace.h stable/12/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h stable/12/contrib/llvm/tools/clang/include/clang/AST/QualTypeNames.h stable/12/contrib/llvm/tools/clang/include/clang/AST/RawCommentList.h stable/12/contrib/llvm/tools/clang/include/clang/AST/RecordLayout.h stable/12/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Redeclarable.h stable/12/contrib/llvm/tools/clang/include/clang/AST/SelectorLocationsKind.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Stmt.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtDataCollectors.td stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtGraphTraits.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtIterator.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtObjC.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h stable/12/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TemplateArgumentVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TemplateName.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TextNodeDumper.h stable/12/contrib/llvm/tools/clang/include/clang/AST/Type.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeLocNodes.def stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeLocVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeOrdering.h stable/12/contrib/llvm/tools/clang/include/clang/AST/TypeVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/AST/UnresolvedSet.h stable/12/contrib/llvm/tools/clang/include/clang/AST/VTTBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersMacros.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Diagnostics.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Registry.h stable/12/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Consumed.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ReachableCode.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyLogical.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyOps.def stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyUtil.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/UninitializedValues.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDeclContext.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/BodyFarm.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CFGStmtMap.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CallGraph.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CloneDetection.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/CodeInjector.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/ConstructionContext.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/DomainSpecific/CocoaConventions.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/FlowSensitive/DataflowValues.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/SelectorExtras.h stable/12/contrib/llvm/tools/clang/include/clang/Analysis/Support/BumpVector.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/ABI.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/AddressSpaces.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/AlignedAllocation.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/AllDiagnostics.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Attr.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/AttrKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/AttrSubjectMatchRules.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Attributes.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/BitmaskEnum.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/Builtins.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAArch64.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAMDGPU.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsLe64.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsMips.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNEON.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNVPTX.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsSystemZ.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsWebAssembly.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86_64.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsXCore.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/CapturedStmt.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/CharInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/CodeGenOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/CommentOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Cuda.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DebugInfoOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAST.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAnalysis.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticAnalysisKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCategories.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCategories.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticComment.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommentKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTU.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTUKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDocs.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriver.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticError.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontend.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLex.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParse.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoring.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoringKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSema.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerialization.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/ExceptionSpecificationType.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/ExpressionTraits.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Features.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/FileSystemOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/FileSystemStatCache.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/FixedPoint.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/LLVM.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Lambda.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Linkage.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/MSP430Target.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/MacroBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Module.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/ObjCRuntime.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensionTypes.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensions.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenCLImageTypes.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenCLOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/OperatorKinds.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/OperatorKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/OperatorPrecedence.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/PlistSupport.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/PragmaKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/PrettyStackTrace.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SanitizerBlacklist.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SanitizerSpecialCaseList.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/SourceManagerInternals.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Stack.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/SyncScope.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TargetCXXABI.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TemplateKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Version.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/Visibility.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/X86Target.def stable/12/contrib/llvm/tools/clang/include/clang/Basic/XRayInstr.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/XRayLists.h stable/12/contrib/llvm/tools/clang/include/clang/Basic/arm_fp16.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td stable/12/contrib/llvm/tools/clang/include/clang/Basic/arm_neon_incl.td stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/BackendUtil.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/CGFunctionInfo.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenABITypes.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenAction.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/ConstantInitBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/ConstantInitFuture.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/ModuleBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/ObjectFilePCHContainerOperations.h stable/12/contrib/llvm/tools/clang/include/clang/CodeGen/SwiftCallingConv.h stable/12/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTUDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/CrossTU/CrossTranslationUnit.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Action.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td stable/12/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td stable/12/contrib/llvm/tools/clang/include/clang/Driver/ClangOptionDocs.td stable/12/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/DarwinSDKInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Distro.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Driver.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/DriverDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Job.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Multilib.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Options.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Options.td stable/12/contrib/llvm/tools/clang/include/clang/Driver/Phases.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Tool.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Types.def stable/12/contrib/llvm/tools/clang/include/clang/Driver/Types.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/Util.h stable/12/contrib/llvm/tools/clang/include/clang/Driver/XRayArgs.h stable/12/contrib/llvm/tools/clang/include/clang/Edit/Commit.h stable/12/contrib/llvm/tools/clang/include/clang/Edit/EditedSource.h stable/12/contrib/llvm/tools/clang/include/clang/Edit/EditsReceiver.h stable/12/contrib/llvm/tools/clang/include/clang/Edit/FileOffset.h stable/12/contrib/llvm/tools/clang/include/clang/Edit/Rewriters.h stable/12/contrib/llvm/tools/clang/include/clang/Format/Format.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/ASTConsumers.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/ChainedDiagnosticConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/CommandLineSourceLoc.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/DependencyOutputOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticRenderer.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendAction.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/FrontendPluginRegistry.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def stable/12/contrib/llvm/tools/clang/include/clang/Frontend/LayoutOverrideSource.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/LogDiagnosticPrinter.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/MigratorOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/MultiplexConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/PCHContainerOperations.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/PreprocessorOutputOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticPrinter.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticReader.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/SerializedDiagnostics.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticBuffer.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h stable/12/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/FrontendTool/Utils.h stable/12/contrib/llvm/tools/clang/include/clang/Index/CodegenNameGenerator.h stable/12/contrib/llvm/tools/clang/include/clang/Index/CommentToXML.h stable/12/contrib/llvm/tools/clang/include/clang/Index/IndexDataConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h stable/12/contrib/llvm/tools/clang/include/clang/Index/IndexingAction.h stable/12/contrib/llvm/tools/clang/include/clang/Index/USRGeneration.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/CodeCompletionHandler.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/DirectoryLookup.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/ExternalPreprocessorSource.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/HeaderMap.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/HeaderMapTypes.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearchOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/LexDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/MacroArgs.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/ModuleLoader.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/MultipleIncludeOpt.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PPConditionalDirectiveRecord.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/ScratchBuffer.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/Token.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/TokenConcatenation.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h stable/12/contrib/llvm/tools/clang/include/clang/Lex/VariadicMacroSupport.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/LoopHint.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/ParseAST.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/ParseDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/Parser.h stable/12/contrib/llvm/tools/clang/include/clang/Parse/RAIIObjectsForParser.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/DeltaTree.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/HTMLRewrite.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/RewriteBuffer.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/RewriteRope.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/Rewriter.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Core/TokenRewriter.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/ASTConsumers.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FixItRewriter.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/FrontendActions.h stable/12/contrib/llvm/tools/clang/include/clang/Rewrite/Frontend/Rewriters.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/AnalysisBasedWarnings.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/CXXFieldCollector.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/CleanupInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Designator.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ExternalSemaSource.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/IdentifierResolver.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ObjCMethodList.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Overload.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ParsedAttr.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Scope.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Sema.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/SemaConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/SemaDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/SemaFixItUtils.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/SemaInternal.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/SemaLambda.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Template.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/TemplateInstCallback.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/TypoCorrection.h stable/12/contrib/llvm/tools/clang/include/clang/Sema/Weak.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ASTDeserializationListener.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/GlobalModuleIndex.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/Module.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ModuleFileExtension.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/PCHContainerOperations.h stable/12/contrib/llvm/tools/clang/include/clang/Serialization/SerializationDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/BuiltinCheckerRegistration.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/CheckerBase.td stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/MPIFunctionClassifier.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Analyses.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/IssueHash.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Regions.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Symbols.def stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistry.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h stable/12/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/ASTDiff.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/ASTDiffInternal.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/AllTUsExecution.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/ArgumentsAdjusters.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/CommonOptionsParser.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabasePluginRegistry.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Core/Diagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Core/Lookup.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Core/Replacement.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/DiagnosticsYaml.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Execution.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/FileMatchTrie.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/FixIt.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Inclusions/HeaderIncludes.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Inclusions/IncludeStyle.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/JSONCompilationDatabase.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/ASTSelection.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/AtomicChange.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Extract/Extract.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringAction.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRule.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRules.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOption.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptionVisitor.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptions.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringResultConsumer.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringRuleContext.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/RenamingAction.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolName.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFinder.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/RefactoringCallbacks.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/ReplacementsYaml.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/StandaloneExecution.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/ToolExecutorPluginRegistry.h stable/12/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMTActions.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/Internals.h stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/ObjCMT.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/PlistReporter.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransAPIUses.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransARCAssign.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransBlockObjCVariable.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCAttrs.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransGCCalls.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransProperties.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransProtectedScope.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/TransformActions.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp stable/12/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.h stable/12/contrib/llvm/tools/clang/lib/AST/APValue.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTImporterLookupTable.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTStructuralEquivalence.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ASTTypeTraits.cpp stable/12/contrib/llvm/tools/clang/lib/AST/AttrImpl.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CXXABI.h stable/12/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Comment.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentBriefParser.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentCommandTraits.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentLexer.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentParser.cpp stable/12/contrib/llvm/tools/clang/lib/AST/CommentSema.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ComparisonCategories.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DataCollection.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Decl.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclFriend.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclGroup.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp stable/12/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Expr.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExprObjC.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExternalASTMerger.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp stable/12/contrib/llvm/tools/clang/lib/AST/FormatString.cpp stable/12/contrib/llvm/tools/clang/lib/AST/InheritViz.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Linkage.h stable/12/contrib/llvm/tools/clang/lib/AST/Mangle.cpp stable/12/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp stable/12/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp stable/12/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp stable/12/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ParentMap.cpp stable/12/contrib/llvm/tools/clang/lib/AST/PrintfFormatString.cpp stable/12/contrib/llvm/tools/clang/lib/AST/QualTypeNames.cpp stable/12/contrib/llvm/tools/clang/lib/AST/RawCommentList.cpp stable/12/contrib/llvm/tools/clang/lib/AST/RecordLayout.cpp stable/12/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/AST/ScanfFormatString.cpp stable/12/contrib/llvm/tools/clang/lib/AST/SelectorLocationsKind.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Stmt.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtCXX.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtIterator.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtObjC.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp stable/12/contrib/llvm/tools/clang/lib/AST/StmtViz.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TemplateName.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TextNodeDumper.cpp stable/12/contrib/llvm/tools/clang/lib/AST/Type.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp stable/12/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp stable/12/contrib/llvm/tools/clang/lib/AST/VTTBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp stable/12/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CFGStmtMap.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CallGraph.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CloneDetection.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CocoaConventions.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/CodeInjector.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ConstructionContext.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/Consumed.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/Dominators.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ObjCNoReturn.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/PostOrderCFGView.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ProgramPoint.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyLogical.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp stable/12/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/CharInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/CodeGenOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Cuda.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/DiagnosticOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/FileSystemStatCache.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/FixedPoint.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/LangOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Module.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/OperatorPrecedence.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/SanitizerBlacklist.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/SanitizerSpecialCaseList.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Sanitizers.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AMDGPU.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/ARC.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/ARM.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/ARM.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AVR.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/AVR.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/BPF.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/BPF.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Hexagon.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Hexagon.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Lanai.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Lanai.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Le64.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Le64.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/MSP430.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/MSP430.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Mips.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/OSTargets.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/PNaCl.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/PNaCl.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/PPC.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/RISCV.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/RISCV.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/SPIR.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/SPIR.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Sparc.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/Sparc.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/SystemZ.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/SystemZ.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/TCE.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/TCE.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/WebAssembly.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/X86.h stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/XCore.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Targets/XCore.h stable/12/contrib/llvm/tools/clang/lib/Basic/TokenKinds.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Version.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/Warnings.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/XRayInstr.cpp stable/12/contrib/llvm/tools/clang/lib/Basic/XRayLists.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/ABIInfo.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/Address.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGBuilder.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGCoroutine.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGGPUBuiltin.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenABITypes.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypeCache.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/ConstantEmitter.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/ConstantInitBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/EHScopeStack.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/MacroPPCallbacks.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/SwiftCallingConv.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.h stable/12/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.cpp stable/12/contrib/llvm/tools/clang/lib/CodeGen/VarBypassDetector.h stable/12/contrib/llvm/tools/clang/lib/CrossTU/CrossTranslationUnit.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Action.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/DarwinSDKInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Distro.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Driver.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/DriverOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/InputInfo.h stable/12/contrib/llvm/tools/clang/lib/Driver/Job.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Multilib.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Phases.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/Tool.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/AVR.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/AVR.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Ananas.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Ananas.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/RISCV.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/RISCV.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Sparc.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Sparc.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/SystemZ.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CloudABI.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CloudABI.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Contiki.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Contiki.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/DragonFly.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/DragonFly.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/HIP.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Haiku.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Haiku.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hurd.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Lanai.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSP430.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MipsLinux.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/MipsLinux.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/NaCl.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/NaCl.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/RISCVToolchain.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/TCE.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/TCE.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.h stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/XCore.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/ToolChains/XCore.h stable/12/contrib/llvm/tools/clang/lib/Driver/Types.cpp stable/12/contrib/llvm/tools/clang/lib/Driver/XRayArgs.cpp stable/12/contrib/llvm/tools/clang/lib/Edit/Commit.cpp stable/12/contrib/llvm/tools/clang/lib/Edit/EditedSource.cpp stable/12/contrib/llvm/tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp stable/12/contrib/llvm/tools/clang/lib/Format/AffectedRangeManager.cpp stable/12/contrib/llvm/tools/clang/lib/Format/AffectedRangeManager.h stable/12/contrib/llvm/tools/clang/lib/Format/BreakableToken.cpp stable/12/contrib/llvm/tools/clang/lib/Format/BreakableToken.h stable/12/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp stable/12/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.h stable/12/contrib/llvm/tools/clang/lib/Format/Encoding.h stable/12/contrib/llvm/tools/clang/lib/Format/Format.cpp stable/12/contrib/llvm/tools/clang/lib/Format/FormatInternal.h stable/12/contrib/llvm/tools/clang/lib/Format/FormatToken.cpp stable/12/contrib/llvm/tools/clang/lib/Format/FormatToken.h stable/12/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.cpp stable/12/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.h stable/12/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.cpp stable/12/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.h stable/12/contrib/llvm/tools/clang/lib/Format/SortJavaScriptImports.cpp stable/12/contrib/llvm/tools/clang/lib/Format/SortJavaScriptImports.h stable/12/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.cpp stable/12/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.h stable/12/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp stable/12/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.h stable/12/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp stable/12/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.h stable/12/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp stable/12/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h stable/12/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.cpp stable/12/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.h stable/12/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.cpp stable/12/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.h stable/12/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ChainedDiagnosticConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/DependencyGraph.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/FrontendOptions.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/FrontendTiming.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/HeaderIncludeGen.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/LangStandards.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/LayoutOverrideSource.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/LogDiagnosticPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/PrecompiledPreamble.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FixItRewriter.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/HTMLPrint.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteMacros.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteTest.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticReader.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.h stable/12/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticBuffer.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp stable/12/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_builtin_vars.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_cmath.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_complex_builtins.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_device_functions.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_intrinsics.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_libdevice_declares.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_math_forward_declares.h stable/12/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_runtime_wrapper.h stable/12/contrib/llvm/tools/clang/lib/Headers/__stddef_max_align_t.h stable/12/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_aes.h stable/12/contrib/llvm/tools/clang/lib/Headers/__wmmintrin_pclmul.h stable/12/contrib/llvm/tools/clang/lib/Headers/adxintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/altivec.h stable/12/contrib/llvm/tools/clang/lib/Headers/ammintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/arm64intr.h stable/12/contrib/llvm/tools/clang/lib/Headers/arm_acle.h stable/12/contrib/llvm/tools/clang/lib/Headers/armintr.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx2intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512bitalgintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512bwintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512cdintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512dqintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512erintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512fintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512ifmaintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512ifmavlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512pfintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vbmi2intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vbmiintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vbmivlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlbitalgintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlbwintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlcdintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vldqintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vlvnniintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vnniintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqvlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/avxintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/bmi2intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/bmiintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/cetintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/cldemoteintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/clflushoptintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/clwbintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/clzerointrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/cpuid.h stable/12/contrib/llvm/tools/clang/lib/Headers/emmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/f16cintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/float.h stable/12/contrib/llvm/tools/clang/lib/Headers/fma4intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/fmaintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/fxsrintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/gfniintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/htmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/htmxlintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/ia32intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/immintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/inttypes.h stable/12/contrib/llvm/tools/clang/lib/Headers/invpcidintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/iso646.h stable/12/contrib/llvm/tools/clang/lib/Headers/limits.h stable/12/contrib/llvm/tools/clang/lib/Headers/lwpintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/lzcntintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/mm3dnow.h stable/12/contrib/llvm/tools/clang/lib/Headers/mm_malloc.h stable/12/contrib/llvm/tools/clang/lib/Headers/mmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/module.modulemap stable/12/contrib/llvm/tools/clang/lib/Headers/movdirintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/msa.h stable/12/contrib/llvm/tools/clang/lib/Headers/mwaitxintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/nmmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/opencl-c.h stable/12/contrib/llvm/tools/clang/lib/Headers/pconfigintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/pkuintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/pmmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/popcntintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/prfchwintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/ptwriteintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/rdseedintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/rtmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/s390intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/sgxintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/shaintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/smmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdalign.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdarg.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdatomic.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdbool.h stable/12/contrib/llvm/tools/clang/lib/Headers/stddef.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdint.h stable/12/contrib/llvm/tools/clang/lib/Headers/stdnoreturn.h stable/12/contrib/llvm/tools/clang/lib/Headers/tbmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/tgmath.h stable/12/contrib/llvm/tools/clang/lib/Headers/tmmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/unwind.h stable/12/contrib/llvm/tools/clang/lib/Headers/vadefs.h stable/12/contrib/llvm/tools/clang/lib/Headers/vaesintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/varargs.h stable/12/contrib/llvm/tools/clang/lib/Headers/vecintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/vpclmulqdqintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/waitpkgintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/wbnoinvdintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/wmmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/x86intrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xopintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xsavecintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xsaveintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xsaveoptintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xsavesintrin.h stable/12/contrib/llvm/tools/clang/lib/Headers/xtestintrin.h stable/12/contrib/llvm/tools/clang/lib/Index/CodegenNameGenerator.cpp stable/12/contrib/llvm/tools/clang/lib/Index/CommentToXML.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexBody.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexTypeSourceInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexingAction.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp stable/12/contrib/llvm/tools/clang/lib/Index/IndexingContext.h stable/12/contrib/llvm/tools/clang/lib/Index/SimpleFormatContext.h stable/12/contrib/llvm/tools/clang/lib/Index/USRGeneration.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/HeaderMap.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPCaching.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPCallbacks.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPConditionalDirectiveRecord.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/PreprocessorLexer.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/ScratchBuffer.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp stable/12/contrib/llvm/tools/clang/lib/Lex/UnicodeCharSets.h stable/12/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp stable/12/contrib/llvm/tools/clang/lib/Parse/Parser.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp stable/12/contrib/llvm/tools/clang/lib/Rewrite/TokenRewriter.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/CoroutineStmtBuilder.h stable/12/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/DelayedDiagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/ParsedAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/Scope.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/ScopeInfo.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/Sema.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCUDA.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaFixItUtils.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h stable/12/contrib/llvm/tools/clang/lib/Sema/TypeLocBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/Sema/TypeLocBuilder.h stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.h stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/Module.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ModuleFileExtension.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp stable/12/contrib/llvm/tools/clang/lib/Serialization/MultiOnDiskHashTable.h stable/12/contrib/llvm/tools/clang/lib/Serialization/PCHContainerOperations.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationState.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CloneChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/EnumCastOutOfRangeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GTestChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InterCheckerAPI.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIFunctionClassifier.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPITypes.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAutoreleaseWriteChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCPropertyChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RunLoopAutoreleaseLeakChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedPointee.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/APSIntType.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BlockCounter.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CommonBugCategories.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/FunctionSummary.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SubEngine.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/WorkList.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/FrontendActions.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelConsumer.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp stable/12/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.h stable/12/contrib/llvm/tools/clang/lib/Tooling/ASTDiff/ASTDiff.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/AllTUsExecution.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Core/Diagnostic.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Core/Lookup.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Core/Replacement.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Execution.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/FileMatchTrie.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/FixIt.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Inclusions/IncludeStyle.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/AtomicChange.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/Extract.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.h stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RefactoringActions.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/SymbolOccurrences.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFinder.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/RefactoringCallbacks.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/StandaloneExecution.cpp stable/12/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp stable/12/contrib/llvm/tools/clang/tools/clang-format/ClangFormat.cpp stable/12/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp stable/12/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp stable/12/contrib/llvm/tools/clang/tools/driver/cc1gen_reproducer_main.cpp stable/12/contrib/llvm/tools/clang/tools/driver/driver.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangASTNodesEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangCommentCommandInfoEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangCommentHTMLTagsEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangOptionDocEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/ClangSACheckersEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp stable/12/contrib/llvm/tools/clang/utils/TableGen/TableGenBackends.h stable/12/contrib/llvm/tools/llc/llc.cpp stable/12/contrib/llvm/tools/lld/CMakeLists.txt stable/12/contrib/llvm/tools/lld/COFF/CMakeLists.txt stable/12/contrib/llvm/tools/lld/COFF/Chunks.cpp stable/12/contrib/llvm/tools/lld/COFF/Chunks.h stable/12/contrib/llvm/tools/lld/COFF/Config.h stable/12/contrib/llvm/tools/lld/COFF/DLL.cpp stable/12/contrib/llvm/tools/lld/COFF/DLL.h stable/12/contrib/llvm/tools/lld/COFF/Driver.cpp stable/12/contrib/llvm/tools/lld/COFF/Driver.h stable/12/contrib/llvm/tools/lld/COFF/DriverUtils.cpp stable/12/contrib/llvm/tools/lld/COFF/ICF.cpp stable/12/contrib/llvm/tools/lld/COFF/ICF.h stable/12/contrib/llvm/tools/lld/COFF/InputFiles.cpp stable/12/contrib/llvm/tools/lld/COFF/InputFiles.h stable/12/contrib/llvm/tools/lld/COFF/LTO.cpp stable/12/contrib/llvm/tools/lld/COFF/LTO.h stable/12/contrib/llvm/tools/lld/COFF/MapFile.cpp stable/12/contrib/llvm/tools/lld/COFF/MapFile.h stable/12/contrib/llvm/tools/lld/COFF/MarkLive.cpp stable/12/contrib/llvm/tools/lld/COFF/MarkLive.h stable/12/contrib/llvm/tools/lld/COFF/MinGW.cpp stable/12/contrib/llvm/tools/lld/COFF/MinGW.h stable/12/contrib/llvm/tools/lld/COFF/Options.td stable/12/contrib/llvm/tools/lld/COFF/PDB.cpp stable/12/contrib/llvm/tools/lld/COFF/PDB.h stable/12/contrib/llvm/tools/lld/COFF/SymbolTable.cpp stable/12/contrib/llvm/tools/lld/COFF/SymbolTable.h stable/12/contrib/llvm/tools/lld/COFF/Symbols.cpp stable/12/contrib/llvm/tools/lld/COFF/Symbols.h stable/12/contrib/llvm/tools/lld/COFF/Writer.cpp stable/12/contrib/llvm/tools/lld/COFF/Writer.h stable/12/contrib/llvm/tools/lld/Common/Args.cpp stable/12/contrib/llvm/tools/lld/Common/CMakeLists.txt stable/12/contrib/llvm/tools/lld/Common/ErrorHandler.cpp stable/12/contrib/llvm/tools/lld/Common/Memory.cpp stable/12/contrib/llvm/tools/lld/Common/Reproduce.cpp stable/12/contrib/llvm/tools/lld/Common/Strings.cpp stable/12/contrib/llvm/tools/lld/Common/TargetOptionsCommandFlags.cpp stable/12/contrib/llvm/tools/lld/Common/Threads.cpp stable/12/contrib/llvm/tools/lld/Common/Timer.cpp stable/12/contrib/llvm/tools/lld/Common/Version.cpp stable/12/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp stable/12/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.h stable/12/contrib/llvm/tools/lld/ELF/Arch/AArch64.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/AMDGPU.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/AVR.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/Hexagon.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/MSP430.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/Mips.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/PPC.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/PPC64.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/RISCV.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/SPARCV9.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/X86.cpp stable/12/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp stable/12/contrib/llvm/tools/lld/ELF/CMakeLists.txt stable/12/contrib/llvm/tools/lld/ELF/CallGraphSort.cpp stable/12/contrib/llvm/tools/lld/ELF/CallGraphSort.h stable/12/contrib/llvm/tools/lld/ELF/Config.h stable/12/contrib/llvm/tools/lld/ELF/DWARF.cpp stable/12/contrib/llvm/tools/lld/ELF/DWARF.h stable/12/contrib/llvm/tools/lld/ELF/Driver.cpp stable/12/contrib/llvm/tools/lld/ELF/Driver.h stable/12/contrib/llvm/tools/lld/ELF/DriverUtils.cpp stable/12/contrib/llvm/tools/lld/ELF/EhFrame.cpp stable/12/contrib/llvm/tools/lld/ELF/EhFrame.h stable/12/contrib/llvm/tools/lld/ELF/ICF.cpp stable/12/contrib/llvm/tools/lld/ELF/ICF.h stable/12/contrib/llvm/tools/lld/ELF/InputFiles.cpp stable/12/contrib/llvm/tools/lld/ELF/InputFiles.h stable/12/contrib/llvm/tools/lld/ELF/InputSection.cpp stable/12/contrib/llvm/tools/lld/ELF/InputSection.h stable/12/contrib/llvm/tools/lld/ELF/LTO.cpp stable/12/contrib/llvm/tools/lld/ELF/LTO.h stable/12/contrib/llvm/tools/lld/ELF/LinkerScript.cpp stable/12/contrib/llvm/tools/lld/ELF/LinkerScript.h stable/12/contrib/llvm/tools/lld/ELF/MapFile.cpp stable/12/contrib/llvm/tools/lld/ELF/MapFile.h stable/12/contrib/llvm/tools/lld/ELF/MarkLive.cpp stable/12/contrib/llvm/tools/lld/ELF/MarkLive.h stable/12/contrib/llvm/tools/lld/ELF/Options.td stable/12/contrib/llvm/tools/lld/ELF/OutputSections.cpp stable/12/contrib/llvm/tools/lld/ELF/OutputSections.h stable/12/contrib/llvm/tools/lld/ELF/Relocations.cpp stable/12/contrib/llvm/tools/lld/ELF/Relocations.h stable/12/contrib/llvm/tools/lld/ELF/ScriptLexer.cpp stable/12/contrib/llvm/tools/lld/ELF/ScriptLexer.h stable/12/contrib/llvm/tools/lld/ELF/ScriptParser.cpp stable/12/contrib/llvm/tools/lld/ELF/ScriptParser.h stable/12/contrib/llvm/tools/lld/ELF/SymbolTable.cpp stable/12/contrib/llvm/tools/lld/ELF/SymbolTable.h stable/12/contrib/llvm/tools/lld/ELF/Symbols.cpp stable/12/contrib/llvm/tools/lld/ELF/Symbols.h stable/12/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp stable/12/contrib/llvm/tools/lld/ELF/SyntheticSections.h stable/12/contrib/llvm/tools/lld/ELF/Target.cpp stable/12/contrib/llvm/tools/lld/ELF/Target.h stable/12/contrib/llvm/tools/lld/ELF/Thunks.cpp stable/12/contrib/llvm/tools/lld/ELF/Thunks.h stable/12/contrib/llvm/tools/lld/ELF/Writer.cpp stable/12/contrib/llvm/tools/lld/ELF/Writer.h stable/12/contrib/llvm/tools/lld/LICENSE.TXT stable/12/contrib/llvm/tools/lld/docs/NewLLD.rst stable/12/contrib/llvm/tools/lld/docs/ReleaseNotes.rst stable/12/contrib/llvm/tools/lld/docs/WebAssembly.rst stable/12/contrib/llvm/tools/lld/docs/conf.py stable/12/contrib/llvm/tools/lld/docs/getting_started.rst stable/12/contrib/llvm/tools/lld/docs/index.rst stable/12/contrib/llvm/tools/lld/docs/ld.lld.1 stable/12/contrib/llvm/tools/lld/docs/missingkeyfunction.rst stable/12/contrib/llvm/tools/lld/docs/sphinx_intro.rst stable/12/contrib/llvm/tools/lld/include/lld/Common/Args.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Driver.h stable/12/contrib/llvm/tools/lld/include/lld/Common/ErrorHandler.h stable/12/contrib/llvm/tools/lld/include/lld/Common/LLVM.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Memory.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Reproduce.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Strings.h stable/12/contrib/llvm/tools/lld/include/lld/Common/TargetOptionsCommandFlags.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Threads.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Timer.h stable/12/contrib/llvm/tools/lld/include/lld/Common/Version.h stable/12/contrib/llvm/tools/lld/include/lld/Core/AbsoluteAtom.h stable/12/contrib/llvm/tools/lld/include/lld/Core/ArchiveLibraryFile.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Atom.h stable/12/contrib/llvm/tools/lld/include/lld/Core/DefinedAtom.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Error.h stable/12/contrib/llvm/tools/lld/include/lld/Core/File.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Instrumentation.h stable/12/contrib/llvm/tools/lld/include/lld/Core/LinkingContext.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Node.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Pass.h stable/12/contrib/llvm/tools/lld/include/lld/Core/PassManager.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Reader.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Reference.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Resolver.h stable/12/contrib/llvm/tools/lld/include/lld/Core/SharedLibraryAtom.h stable/12/contrib/llvm/tools/lld/include/lld/Core/SharedLibraryFile.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Simple.h stable/12/contrib/llvm/tools/lld/include/lld/Core/SymbolTable.h stable/12/contrib/llvm/tools/lld/include/lld/Core/UndefinedAtom.h stable/12/contrib/llvm/tools/lld/include/lld/Core/Writer.h stable/12/contrib/llvm/tools/lld/include/lld/ReaderWriter/MachOLinkingContext.h stable/12/contrib/llvm/tools/lld/include/lld/ReaderWriter/YamlContext.h stable/12/contrib/llvm/tools/lld/lib/Core/DefinedAtom.cpp stable/12/contrib/llvm/tools/lld/lib/Core/Error.cpp stable/12/contrib/llvm/tools/lld/lib/Core/File.cpp stable/12/contrib/llvm/tools/lld/lib/Core/LinkingContext.cpp stable/12/contrib/llvm/tools/lld/lib/Core/Reader.cpp stable/12/contrib/llvm/tools/lld/lib/Core/Resolver.cpp stable/12/contrib/llvm/tools/lld/lib/Core/SymbolTable.cpp stable/12/contrib/llvm/tools/lld/lib/Core/Writer.cpp stable/12/contrib/llvm/tools/lld/lib/Driver/DarwinLdDriver.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/Atoms.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/DebugInfo.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ExecutableAtoms.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/File.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/FlatNamespaceFile.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/GOTPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/LayoutPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/LayoutPass.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFile.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOPasses.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ObjCPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/SectCreateFile.h stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ShimPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/StubsPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/TLVPass.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/WriterMachO.cpp stable/12/contrib/llvm/tools/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp stable/12/contrib/llvm/tools/lld/tools/lld/CMakeLists.txt stable/12/contrib/llvm/tools/lld/tools/lld/lld.cpp stable/12/contrib/llvm/tools/lldb/FREEBSD-Xlist stable/12/contrib/llvm/tools/lldb/LICENSE.TXT stable/12/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBAttachInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBBlock.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointLocation.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointName.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBBroadcaster.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBCommandReturnObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBCommunication.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBCompileUnit.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBData.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBDeclaration.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBError.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBEvent.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBExecutionContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBExpressionOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpecList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBFrame.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBFunction.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBHostOS.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBInstruction.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBInstructionList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBLanguageRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBLaunchInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBLineEntry.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBListener.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBMemoryRegionInfoList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBModule.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBModuleSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBPlatform.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBProcessInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBQueue.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBQueueItem.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBSection.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBSourceManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBStringList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBStructuredData.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBSymbol.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBSymbolContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBSymbolContextList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBThreadCollection.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBThreadPlan.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTrace.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTraceOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBType.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeCategory.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeEnumMember.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeFilter.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeFormat.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeNameSpecifier.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeSummary.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBTypeSynthetic.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBUnixSignals.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBValueList.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBVariablesOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/API/SBWatchpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointIDList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocation.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationCollection.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocationList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointName.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolver.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileLine.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverFileRegex.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverName.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointResolverScripted.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSite.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointSiteList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Stoppoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/StoppointCallbackContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/StoppointLocation.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Watchpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Breakpoint/WatchpointOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Address.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolver.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverFileLine.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/AddressResolverName.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Architecture.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ClangForward.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Communication.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Debugger.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Disassembler.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/DumpDataExtractor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/DumpRegisterValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/EmulateInstruction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/FileLineResolver.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/FileSpecList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/FormatEntity.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Highlighter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/IOHandler.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/IOStreamMacros.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/LoadedModuleInfoList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Mangled.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/MappedHash.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Module.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ModuleChild.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ModuleList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ModuleSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Opcode.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/PluginInterface.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/PluginManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/RichManglingContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/STLUtils.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/SearchFilter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Section.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/SourceManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StreamAsynchronousIO.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StreamBuffer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StreamFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/StructuredDataImpl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeDenseSet.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeSTLVector.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ThreadSafeValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/UniqueCStringMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/UserSettingsController.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/Value.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectCast.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectChild.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResult.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultCast.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultChild.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectConstResultImpl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectDynamicValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectMemory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectRegister.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/ValueObjectVariable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Core/dwarf.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/CXXFunctionPointer.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DataVisualization.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/DumpValueObjectOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatCache.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatClasses.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormatManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersContainer.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/FormattersHelpers.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/LanguageCategory.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/StringPrinter.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategory.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeCategoryMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeFormat.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSummary.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSynthetic.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeValidator.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/ValueObjectPrinter.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorIterator.h stable/12/contrib/llvm/tools/lldb/include/lldb/DataFormatters/VectorType.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/DWARFExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/DiagnosticManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/Expression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionParser.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionSourceCode.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionTypeSystemHelper.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionVariable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/FunctionCaller.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/IRExecutionUnit.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/IRInterpreter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/IRMemoryMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/LLVMUserExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/Materializer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/REPL.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/UserExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Expression/UtilityFunction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Config.h.cmake stable/12/contrib/llvm/tools/lldb/include/lldb/Host/ConnectionFileDescriptor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Debug.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Editline.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/File.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/FileCache.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/FileSystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Host.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostGetOpt.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeProcess.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeProcessBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThread.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostNativeThreadForward.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostProcess.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/HostThread.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/LockFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/LockFileBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/MainLoopBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/MonitoringProcessLauncher.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/OptionParser.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Pipe.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/PipeBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/PosixApi.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/ProcessLauncher.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/ProcessRunLock.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/PseudoTerminal.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/SafeMachO.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/SocketAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/StringConvert.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/TaskPool.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Terminal.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/ThreadLauncher.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/Time.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/XML.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeBreakpointList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeRegisterContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeThreadProtocol.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeWatchpointList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/TCPSocket.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/common/UDPSocket.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/freebsd/HostInfoFreeBSD.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/netbsd/HostInfoNetBSD.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/openbsd/HostInfoOpenBSD.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/DomainSocket.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/Fcntl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostInfoPosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostProcessPosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/HostThreadPosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/LockFilePosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/PipePosix.h stable/12/contrib/llvm/tools/lldb/include/lldb/Host/posix/ProcessLauncherPosixFork.h stable/12/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemInitializerCommon.h stable/12/contrib/llvm/tools/lldb/include/lldb/Initialization/SystemLifetimeManager.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandAlias.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandCompletions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandHistory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectMultiword.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandObjectRegexCommand.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandOptionValidators.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandReturnObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionArgParser.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupArchitecture.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupBoolean.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupFormat.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupOutputFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupPlatform.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUInt64.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupUUID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupVariable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupWatchpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArch.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArgs.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArray.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueBoolean.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueChar.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueDictionary.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueEnumeration.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpecList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormat.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFormatEntity.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueLanguage.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValuePathMappings.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueProperties.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueRegex.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueSInt64.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUInt64.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueUUID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValues.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/Options.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/Property.h stable/12/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ArmUnwindInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Block.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTImporter.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangUtil.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompactUnwindInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompileUnit.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDecl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerDeclContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerType.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/DWARFCallFrameInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/DebugMacros.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/DeclVendor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Declaration.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/FuncUnwinders.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Function.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/LineEntry.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/LineTable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectContainer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Symbol.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolContextScope.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolFile.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/SymbolVendor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Symtab.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/TaggedASTType.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Type.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeMap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeSystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindPlan.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindTable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/Variable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/VariableList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Symbol/VerifyDecl.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/DynamicLoader.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ExecutionContextScope.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntimeStopInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/JITLoader.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/JITLoaderList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Language.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/LanguageRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Memory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/MemoryHistory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/MemoryRegionInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ModuleCache.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/OperatingSystem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/PathMappingList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Process.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ProcessStructReader.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Queue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/QueueItem.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/QueueList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/RegisterCheckpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/RegisterContext.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/RegisterNumber.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadHistory.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/SectionLoadList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackFrame.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackFrameRecognizer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StackID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/StructuredDataPlugin.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/SystemRuntime.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Target.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/TargetList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadCollection.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlan.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanBase.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallOnFunctionExit.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanCallUserExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanPython.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanRunToAddress.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanShouldStopHere.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepInstruction.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOut.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverBreakpoint.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepOverRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepThrough.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanStepUntil.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanTracer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/ThreadSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/UnixSignals.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/Unwind.h stable/12/contrib/llvm/tools/lldb/include/lldb/Target/UnwindAssembly.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/AnsiTerminal.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/ArchSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Args.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Baton.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Broadcaster.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/CleanUp.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/CompletionRequest.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Connection.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/ConstString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataBuffer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferHeap.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataEncoder.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/DataExtractor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Endian.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Environment.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Event.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/FileSpec.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Flags.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/IOObject.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Iterable.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/JSON.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/LLDBAssert.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Listener.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Log.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Logging.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/NameMatches.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Predicate.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/RegisterValue.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/RegularExpression.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Reproducer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Scalar.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/SelectHelper.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/SharedCluster.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/SharingPtr.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/State.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Status.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Stream.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamCallback.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamGDBRemote.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamString.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StreamTee.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractor.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractorGDBRemote.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringLexer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StringList.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/StructuredData.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/TildeExpressionResolver.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Timeout.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/Timer.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/TraceOptions.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/UUID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/UriParser.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/UserID.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/VASPrintf.h stable/12/contrib/llvm/tools/lldb/include/lldb/Utility/VMRange.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-defines.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-defines.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-enumerations.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-interfaces.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private-types.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-private.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-public.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-types.h stable/12/contrib/llvm/tools/lldb/include/lldb/lldb-versioning.h stable/12/contrib/llvm/tools/lldb/include/lldb/module.modulemap stable/12/contrib/llvm/tools/lldb/source/API/SBAddress.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBAttachInfo.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBlock.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpointLocation.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpointName.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.h stable/12/contrib/llvm/tools/lldb/source/API/SBBroadcaster.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBCommandReturnObject.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBCommunication.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBCompileUnit.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBData.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBDeclaration.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBError.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBEvent.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBExecutionContext.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBExpressionOptions.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBFileSpec.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBFileSpecList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBFrame.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBFunction.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBHostOS.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBInstruction.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBInstructionList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBLanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBLaunchInfo.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBLineEntry.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBListener.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfo.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBMemoryRegionInfoList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBModule.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBModuleSpec.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBProcess.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBProcessInfo.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBQueue.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBQueueItem.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSection.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSourceManager.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBStream.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBStringList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBStructuredData.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSymbol.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSymbolContext.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBSymbolContextList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTarget.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBThread.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBThreadCollection.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBThreadPlan.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTrace.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTraceOptions.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBType.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeCategory.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeEnumMember.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeFilter.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeFormat.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeNameSpecifier.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeSummary.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBTypeSynthetic.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBUnixSignals.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBValue.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBValueList.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBVariablesOptions.cpp stable/12/contrib/llvm/tools/lldb/source/API/SBWatchpoint.cpp stable/12/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp stable/12/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.h stable/12/contrib/llvm/tools/lldb/source/Breakpoint/Breakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointID.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointIDList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationCollection.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointName.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointOptions.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolver.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverAddress.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverFileRegex.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverName.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointResolverScripted.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSite.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointSiteList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/Stoppoint.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/StoppointCallbackContext.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/StoppointLocation.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/Watchpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointList.cpp stable/12/contrib/llvm/tools/lldb/source/Breakpoint/WatchpointOptions.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandCompletions.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectApropos.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectBugreport.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectCommands.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectHelp.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectLanguage.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectMemory.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectMultiword.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlugin.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectProcess.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectQuit.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectRegister.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectReproducer.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSettings.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectStats.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectStats.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectType.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectVersion.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectVersion.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpoint.h stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.cpp stable/12/contrib/llvm/tools/lldb/source/Commands/CommandObjectWatchpointCommand.h stable/12/contrib/llvm/tools/lldb/source/Core/Address.cpp stable/12/contrib/llvm/tools/lldb/source/Core/AddressRange.cpp stable/12/contrib/llvm/tools/lldb/source/Core/AddressResolver.cpp stable/12/contrib/llvm/tools/lldb/source/Core/AddressResolverFileLine.cpp stable/12/contrib/llvm/tools/lldb/source/Core/AddressResolverName.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Communication.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Debugger.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Disassembler.cpp stable/12/contrib/llvm/tools/lldb/source/Core/DumpDataExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Core/DumpRegisterValue.cpp stable/12/contrib/llvm/tools/lldb/source/Core/DynamicLoader.cpp stable/12/contrib/llvm/tools/lldb/source/Core/EmulateInstruction.cpp stable/12/contrib/llvm/tools/lldb/source/Core/FileLineResolver.cpp stable/12/contrib/llvm/tools/lldb/source/Core/FileSpecList.cpp stable/12/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Highlighter.cpp stable/12/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Mangled.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Module.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ModuleChild.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ModuleList.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Opcode.cpp stable/12/contrib/llvm/tools/lldb/source/Core/PluginManager.cpp stable/12/contrib/llvm/tools/lldb/source/Core/RichManglingContext.cpp stable/12/contrib/llvm/tools/lldb/source/Core/SearchFilter.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Section.cpp stable/12/contrib/llvm/tools/lldb/source/Core/SourceManager.cpp stable/12/contrib/llvm/tools/lldb/source/Core/StreamAsynchronousIO.cpp stable/12/contrib/llvm/tools/lldb/source/Core/StreamFile.cpp stable/12/contrib/llvm/tools/lldb/source/Core/UserSettingsController.cpp stable/12/contrib/llvm/tools/lldb/source/Core/Value.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObject.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectCast.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectChild.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResult.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultCast.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultChild.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectConstResultImpl.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectDynamicValue.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectList.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectRegister.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectSyntheticFilter.cpp stable/12/contrib/llvm/tools/lldb/source/Core/ValueObjectVariable.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/CXXFunctionPointer.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/DataVisualization.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/DumpValueObjectOptions.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormatCache.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormatClasses.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormatManager.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/FormattersHelpers.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/LanguageCategory.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/StringPrinter.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategory.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeCategoryMap.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeFormat.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeSummary.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeSynthetic.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/TypeValidator.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/ValueObjectPrinter.cpp stable/12/contrib/llvm/tools/lldb/source/DataFormatters/VectorType.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/DWARFExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/DiagnosticManager.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/Expression.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/ExpressionVariable.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/FunctionCaller.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRInterpreter.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/IRMemoryMap.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/LLVMUserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/Materializer.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/REPL.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/UserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Expression/UtilityFunction.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Editline.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/File.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/FileCache.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/FileSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/GetOptInc.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/HostNativeThreadBase.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/HostProcess.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/HostThread.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/LockFileBase.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/MonitoringProcessLauncher.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/NativeWatchpointList.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/OptionParser.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/PipeBase.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/ProcessRunLock.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/PseudoTerminal.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/StringConvert.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/TCPSocket.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/TaskPool.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/Terminal.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/ThreadLauncher.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/UDPSocket.cpp stable/12/contrib/llvm/tools/lldb/source/Host/common/XML.cpp stable/12/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/freebsd/HostInfoFreeBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Host/netbsd/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/netbsd/HostInfoNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp stable/12/contrib/llvm/tools/lldb/source/Host/openbsd/HostInfoOpenBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/DomainSocket.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/FileSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/HostInfoPosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/HostProcessPosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/HostThreadPosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/LockFilePosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/PipePosix.cpp stable/12/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp stable/12/contrib/llvm/tools/lldb/source/Initialization/SystemInitializer.cpp stable/12/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp stable/12/contrib/llvm/tools/lldb/source/Initialization/SystemLifetimeManager.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandAlias.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectRegexCommand.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandObjectScript.h stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandOptionValidators.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/CommandReturnObject.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionArgParser.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupArchitecture.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupBoolean.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFile.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFormat.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupOutputFile.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupString.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUInt64.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupUUID.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupVariable.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupWatchpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValue.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArch.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArgs.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueArray.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueBoolean.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueChar.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueDictionary.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueEnumeration.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpecLIst.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormat.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFormatEntity.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValuePathMappings.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueProperties.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueRegex.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueSInt64.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueString.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUInt64.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/OptionValueUUID.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/Options.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/Property.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/ScriptInterpreter.cpp stable/12/contrib/llvm/tools/lldb/source/Interpreter/embedded_interpreter.py stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/Arm/ArchitectureArm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/Mips/ArchitectureMips.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/Mips/ArchitectureMips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/PPC64/ArchitecturePPC64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Architecture/PPC64/ArchitecturePPC64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/DynamicLoaderHexagonDYLD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.h stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionHelper.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangHost.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulationStateARM.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulationStateARM.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Instruction/PPC64/EmulateInstructionPPC64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/JITLoader/GDB/JITLoaderGDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CxxStringTypes.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxOptional.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVariant.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcppTuple.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/MSVCUndecoratedNameParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CoreMedia.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/CoreMedia.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSArray.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSError.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSException.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSString.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSString.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptScriptGroup.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptScriptGroup.h stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.h stable/12/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h stable/12/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFBundle.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFBundle.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFString.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFString.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/CFUtils.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/DarwinProcessLauncher.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/LaunchFlavor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/MachException.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/MachException.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadDarwin.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadDarwin.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadListDarwin.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeThreadListDarwin.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXStopInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/POSIXStopInfo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIX.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/CrashReason.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/CrashReason.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessMessage.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessMessage.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIXLog.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/ProcessPOSIXLog.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ARMDefines.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ARMUtils.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/GDBRemoteSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryThread.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/HistoryUnwind.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/InstructionUtils.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxProcMaps.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/LinuxSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/MipsLinuxSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NetBSDSignals.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwinConstants.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextFreeBSD_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextHistory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_s390x.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMemory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextNetBSD_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextOpenBSD_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ThreadMemory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/ThreadMemory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindLLDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-arm-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-arm64-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-mips-freebsd-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-mips-linux-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64le-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-s390x-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpTypes.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/NtStructures.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_32.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.h stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h stable/12/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h stable/12/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAbbreviationDeclaration.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFAttribute.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDefines.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/HashedNameToDIE.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/NameToDIE.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/NameToDIE.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/DWARFLocationExpression.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbSymUid.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbSymUid.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbUtil.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBLocationToDWARFExpression.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.h stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.h stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.h stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp stable/12/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h stable/12/contrib/llvm/tools/lldb/source/Symbol/ArmUnwindInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Block.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangASTImporter.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCallbacks.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ClangUtil.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompactUnwindInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompileUnit.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompilerDecl.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompilerDeclContext.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/CompilerType.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/DebugMacros.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Declaration.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/FuncUnwinders.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Function.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/LineEntry.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/LineTable.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Symbol.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/SymbolContext.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/SymbolFile.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/SymbolVendor.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Type.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/TypeList.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/TypeMap.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/TypeSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/UnwindPlan.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/UnwindTable.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/VariableList.cpp stable/12/contrib/llvm/tools/lldb/source/Symbol/VerifyDecl.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ABI.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ExecutionContext.cpp stable/12/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/InstrumentationRuntimeStopInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Target/JITLoader.cpp stable/12/contrib/llvm/tools/lldb/source/Target/JITLoaderList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Language.cpp stable/12/contrib/llvm/tools/lldb/source/Target/LanguageRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Memory.cpp stable/12/contrib/llvm/tools/lldb/source/Target/MemoryHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ModuleCache.cpp stable/12/contrib/llvm/tools/lldb/source/Target/OperatingSystem.cpp stable/12/contrib/llvm/tools/lldb/source/Target/PathMappingList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Platform.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Process.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Queue.cpp stable/12/contrib/llvm/tools/lldb/source/Target/QueueItem.cpp stable/12/contrib/llvm/tools/lldb/source/Target/QueueList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/RegisterContext.cpp stable/12/contrib/llvm/tools/lldb/source/Target/RegisterNumber.cpp stable/12/contrib/llvm/tools/lldb/source/Target/SectionLoadHistory.cpp stable/12/contrib/llvm/tools/lldb/source/Target/SectionLoadList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StackFrameList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StackFrameRecognizer.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StackID.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp stable/12/contrib/llvm/tools/lldb/source/Target/StructuredDataPlugin.cpp stable/12/contrib/llvm/tools/lldb/source/Target/SystemRuntime.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Target.cpp stable/12/contrib/llvm/tools/lldb/source/Target/TargetList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/Thread.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadCollection.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadList.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlan.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanBase.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunction.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallFunctionUsingABI.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallOnFunctionExit.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanCallUserExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanPython.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanRunToAddress.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanShouldStopHere.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInRange.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInstruction.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOut.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepOverRange.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepThrough.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepUntil.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadPlanTracer.cpp stable/12/contrib/llvm/tools/lldb/source/Target/ThreadSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Target/UnixSignals.cpp stable/12/contrib/llvm/tools/lldb/source/Target/UnwindAssembly.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/ARM64_DWARF_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/ARM64_ehframe_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/ARM_DWARF_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/ARM_ehframe_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/ArchSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Args.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Baton.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Broadcaster.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/CompletionRequest.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Connection.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/ConstString.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataBufferHeap.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataEncoder.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/DataExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Environment.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Event.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/FileSpec.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/IOObject.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/JSON.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/LLDBAssert.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Listener.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Log.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Logging.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/NameMatches.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/PPC64LE_DWARF_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/PPC64LE_ehframe_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/PPC64_DWARF_Registers.h stable/12/contrib/llvm/tools/lldb/source/Utility/RegisterValue.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/RegularExpression.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Reproducer.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Scalar.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/SelectHelper.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/SharingPtr.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/State.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Status.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Stream.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StreamCallback.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StreamGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StreamString.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StringLexer.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StringList.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/StructuredData.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/TildeExpressionResolver.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/Timer.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/UUID.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/UriParser.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/UserID.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/UuidCompatibility.h stable/12/contrib/llvm/tools/lldb/source/Utility/VASprintf.cpp stable/12/contrib/llvm/tools/lldb/source/Utility/VMRange.cpp stable/12/contrib/llvm/tools/lldb/source/lldb.cpp stable/12/contrib/llvm/tools/lldb/tools/argdumper/argdumper.cpp stable/12/contrib/llvm/tools/lldb/tools/driver/Driver.cpp stable/12/contrib/llvm/tools/lldb/tools/driver/Driver.h stable/12/contrib/llvm/tools/lldb/tools/driver/Options.td stable/12/contrib/llvm/tools/lldb/tools/driver/Platform.cpp stable/12/contrib/llvm/tools/lldb/tools/driver/Platform.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgSet.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValConsume.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValFile.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValListOfN.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValNumber.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionLong.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValOptionShort.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValPrintValues.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValPrintValues.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValString.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgValThreadGrp.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmd.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdBreak.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdData.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdEnviro.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdExec.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdFile.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbInfo.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbSet.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbShow.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdGdbThread.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdMiscellanous.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdStack.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportInfo.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSupportList.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSymbol.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdSymbol.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTarget.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdThread.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdTrace.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCommands.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdData.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdData.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdFactory.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInterpreter.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdInvoker.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgr.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdMgrSetCmdDeleteCallback.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnConfig.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBBroadcaster.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfo.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugSessionInfoVarObj.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebugger.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBProxySBValue.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBUtilSBValue.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLog.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLogMediumFile.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIOutOfBandRecord.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIResultRecord.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValue.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueConst.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueList.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueResult.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnMIValueTuple.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnResources.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStderr.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdin.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnStreamStdout.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnThreadMgrStd.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDataTypes.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriver.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDateTimeStd.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilDebug.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilFileStd.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilMapIdToVariant.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonBase.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilSingletonHelper.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilThreadBaseStd.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilVariant.h stable/12/contrib/llvm/tools/lldb/tools/lldb-mi/Platform.h stable/12/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.h stable/12/contrib/llvm/tools/lldb/tools/lldb-server/Darwin/resources/lldb-server-entitlements.plist stable/12/contrib/llvm/tools/lldb/tools/lldb-server/Darwin/resources/lldb-server-macos-entitlements.plist stable/12/contrib/llvm/tools/lldb/tools/lldb-server/LLDBServerUtilities.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/LLDBServerUtilities.h stable/12/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/SystemInitializerLLGS.h stable/12/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/lldb-platform.cpp stable/12/contrib/llvm/tools/lldb/tools/lldb-server/lldb-server.cpp stable/12/contrib/llvm/tools/lli/RemoteJITUtils.h stable/12/contrib/llvm/tools/lli/lli.cpp stable/12/contrib/llvm/tools/llvm-ar/llvm-ar.cpp stable/12/contrib/llvm/tools/llvm-as/llvm-as.cpp stable/12/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp stable/12/contrib/llvm/tools/llvm-cov/CodeCoverage.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageExporter.h stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterJson.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterJson.h stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageExporterLcov.h stable/12/contrib/llvm/tools/llvm-cov/CoverageFilters.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageFilters.h stable/12/contrib/llvm/tools/llvm-cov/CoverageReport.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageReport.h stable/12/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp stable/12/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.h stable/12/contrib/llvm/tools/llvm-cov/CoverageViewOptions.h stable/12/contrib/llvm/tools/llvm-cov/RenderingSupport.h stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageView.cpp stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageView.h stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.h stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.cpp stable/12/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.h stable/12/contrib/llvm/tools/llvm-cov/TestingSupport.cpp stable/12/contrib/llvm/tools/llvm-cov/gcov.cpp stable/12/contrib/llvm/tools/llvm-cov/llvm-cov.cpp stable/12/contrib/llvm/tools/llvm-cxxdump/Error.cpp stable/12/contrib/llvm/tools/llvm-cxxdump/Error.h stable/12/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp stable/12/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.h stable/12/contrib/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp stable/12/contrib/llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp stable/12/contrib/llvm/tools/llvm-diff/DiffConsumer.cpp stable/12/contrib/llvm/tools/llvm-diff/DiffConsumer.h stable/12/contrib/llvm/tools/llvm-diff/DiffLog.cpp stable/12/contrib/llvm/tools/llvm-diff/DiffLog.h stable/12/contrib/llvm/tools/llvm-diff/DifferenceEngine.cpp stable/12/contrib/llvm/tools/llvm-diff/DifferenceEngine.h stable/12/contrib/llvm/tools/llvm-diff/llvm-diff.cpp stable/12/contrib/llvm/tools/llvm-dis/llvm-dis.cpp stable/12/contrib/llvm/tools/llvm-dwarfdump/Statistics.cpp stable/12/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp stable/12/contrib/llvm/tools/llvm-extract/llvm-extract.cpp stable/12/contrib/llvm/tools/llvm-link/llvm-link.cpp stable/12/contrib/llvm/tools/llvm-lto/llvm-lto.cpp stable/12/contrib/llvm/tools/llvm-lto2/llvm-lto2.cpp stable/12/contrib/llvm/tools/llvm-mc/Disassembler.cpp stable/12/contrib/llvm/tools/llvm-mc/Disassembler.h stable/12/contrib/llvm/tools/llvm-mc/llvm-mc.cpp stable/12/contrib/llvm/tools/llvm-mca/CodeRegion.cpp stable/12/contrib/llvm/tools/llvm-mca/CodeRegion.h stable/12/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.cpp stable/12/contrib/llvm/tools/llvm-mca/CodeRegionGenerator.h stable/12/contrib/llvm/tools/llvm-mca/PipelinePrinter.cpp stable/12/contrib/llvm/tools/llvm-mca/PipelinePrinter.h stable/12/contrib/llvm/tools/llvm-mca/Views/DispatchStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/DispatchStatistics.h stable/12/contrib/llvm/tools/llvm-mca/Views/InstructionInfoView.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/InstructionInfoView.h stable/12/contrib/llvm/tools/llvm-mca/Views/RegisterFileStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/RegisterFileStatistics.h stable/12/contrib/llvm/tools/llvm-mca/Views/ResourcePressureView.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/ResourcePressureView.h stable/12/contrib/llvm/tools/llvm-mca/Views/RetireControlUnitStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/RetireControlUnitStatistics.h stable/12/contrib/llvm/tools/llvm-mca/Views/SchedulerStatistics.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/SchedulerStatistics.h stable/12/contrib/llvm/tools/llvm-mca/Views/SummaryView.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/SummaryView.h stable/12/contrib/llvm/tools/llvm-mca/Views/TimelineView.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/TimelineView.h stable/12/contrib/llvm/tools/llvm-mca/Views/View.cpp stable/12/contrib/llvm/tools/llvm-mca/Views/View.h stable/12/contrib/llvm/tools/llvm-mca/llvm-mca.cpp stable/12/contrib/llvm/tools/llvm-modextract/llvm-modextract.cpp stable/12/contrib/llvm/tools/llvm-nm/llvm-nm.cpp stable/12/contrib/llvm/tools/llvm-objcopy/Buffer.cpp stable/12/contrib/llvm/tools/llvm-objcopy/Buffer.h stable/12/contrib/llvm/tools/llvm-objcopy/COFF/COFFObjcopy.cpp stable/12/contrib/llvm/tools/llvm-objcopy/COFF/COFFObjcopy.h stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Object.cpp stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Object.h stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Reader.cpp stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Reader.h stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Writer.cpp stable/12/contrib/llvm/tools/llvm-objcopy/COFF/Writer.h stable/12/contrib/llvm/tools/llvm-objcopy/CopyConfig.cpp stable/12/contrib/llvm/tools/llvm-objcopy/CopyConfig.h stable/12/contrib/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp stable/12/contrib/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.h stable/12/contrib/llvm/tools/llvm-objcopy/ELF/Object.cpp stable/12/contrib/llvm/tools/llvm-objcopy/ELF/Object.h stable/12/contrib/llvm/tools/llvm-objcopy/ObjcopyOpts.td stable/12/contrib/llvm/tools/llvm-objcopy/StripOpts.td stable/12/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.cpp stable/12/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.h stable/12/contrib/llvm/tools/llvm-objdump/COFFDump.cpp stable/12/contrib/llvm/tools/llvm-objdump/ELFDump.cpp stable/12/contrib/llvm/tools/llvm-objdump/MachODump.cpp stable/12/contrib/llvm/tools/llvm-objdump/WasmDump.cpp stable/12/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp stable/12/contrib/llvm/tools/llvm-objdump/llvm-objdump.h stable/12/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/ExplainOutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/FormatUtil.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/FormatUtil.h stable/12/contrib/llvm/tools/llvm-pdbutil/InputFile.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/InputFile.h stable/12/contrib/llvm/tools/llvm-pdbutil/LinePrinter.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/LinePrinter.h stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/OutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PdbYaml.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyBuiltinDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyBuiltinDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyClassDefinitionDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyClassLayoutGraphicalDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyClassLayoutGraphicalDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyCompilandDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyExternalSymbolDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyExternalSymbolDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyTypeDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyVariableDumper.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/PrettyVariableDumper.h stable/12/contrib/llvm/tools/llvm-pdbutil/StreamUtil.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/StreamUtil.h stable/12/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.h stable/12/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp stable/12/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.h stable/12/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp stable/12/contrib/llvm/tools/llvm-readobj/ARMEHABIPrinter.h stable/12/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp stable/12/contrib/llvm/tools/llvm-readobj/ARMWinEHPrinter.h stable/12/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/COFFImportDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h stable/12/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/Error.cpp stable/12/contrib/llvm/tools/llvm-readobj/Error.h stable/12/contrib/llvm/tools/llvm-readobj/MachODumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/ObjDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/ObjDumper.h stable/12/contrib/llvm/tools/llvm-readobj/StackMapPrinter.h stable/12/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/Win64EHDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/Win64EHDumper.h stable/12/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp stable/12/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.h stable/12/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp stable/12/contrib/llvm/tools/llvm-readobj/llvm-readobj.h stable/12/contrib/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp stable/12/contrib/llvm/tools/llvm-stress/llvm-stress.cpp stable/12/contrib/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp stable/12/contrib/llvm/tools/llvm-xray/func-id-helper.cpp stable/12/contrib/llvm/tools/llvm-xray/func-id-helper.h stable/12/contrib/llvm/tools/llvm-xray/llvm-xray.cpp stable/12/contrib/llvm/tools/llvm-xray/trie-node.h stable/12/contrib/llvm/tools/llvm-xray/xray-account.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-account.h stable/12/contrib/llvm/tools/llvm-xray/xray-color-helper.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-color-helper.h stable/12/contrib/llvm/tools/llvm-xray/xray-converter.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-converter.h stable/12/contrib/llvm/tools/llvm-xray/xray-extract.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-fdr-dump.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-graph-diff.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-graph-diff.h stable/12/contrib/llvm/tools/llvm-xray/xray-graph.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-graph.h stable/12/contrib/llvm/tools/llvm-xray/xray-registry.cpp stable/12/contrib/llvm/tools/llvm-xray/xray-registry.h stable/12/contrib/llvm/tools/llvm-xray/xray-stacks.cpp stable/12/contrib/llvm/tools/opt/AnalysisWrappers.cpp stable/12/contrib/llvm/tools/opt/BreakpointPrinter.cpp stable/12/contrib/llvm/tools/opt/BreakpointPrinter.h stable/12/contrib/llvm/tools/opt/Debugify.cpp stable/12/contrib/llvm/tools/opt/Debugify.h stable/12/contrib/llvm/tools/opt/GraphPrinters.cpp stable/12/contrib/llvm/tools/opt/NewPMDriver.cpp stable/12/contrib/llvm/tools/opt/NewPMDriver.h stable/12/contrib/llvm/tools/opt/PassPrinters.cpp stable/12/contrib/llvm/tools/opt/PassPrinters.h stable/12/contrib/llvm/tools/opt/PrintSCC.cpp stable/12/contrib/llvm/tools/opt/opt.cpp stable/12/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp stable/12/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp stable/12/contrib/llvm/utils/TableGen/AsmWriterInst.cpp stable/12/contrib/llvm/utils/TableGen/AsmWriterInst.h stable/12/contrib/llvm/utils/TableGen/Attributes.cpp stable/12/contrib/llvm/utils/TableGen/CTagsEmitter.cpp stable/12/contrib/llvm/utils/TableGen/CallingConvEmitter.cpp stable/12/contrib/llvm/utils/TableGen/CodeEmitterGen.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h stable/12/contrib/llvm/utils/TableGen/CodeGenHwModes.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenHwModes.h stable/12/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenInstruction.h stable/12/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h stable/12/contrib/llvm/utils/TableGen/CodeGenMapTable.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenRegisters.h stable/12/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenSchedule.h stable/12/contrib/llvm/utils/TableGen/CodeGenTarget.cpp stable/12/contrib/llvm/utils/TableGen/CodeGenTarget.h stable/12/contrib/llvm/utils/TableGen/DAGISelEmitter.cpp stable/12/contrib/llvm/utils/TableGen/DAGISelMatcher.cpp stable/12/contrib/llvm/utils/TableGen/DAGISelMatcher.h stable/12/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp stable/12/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp stable/12/contrib/llvm/utils/TableGen/DAGISelMatcherOpt.cpp stable/12/contrib/llvm/utils/TableGen/DFAPacketizerEmitter.cpp stable/12/contrib/llvm/utils/TableGen/DisassemblerEmitter.cpp stable/12/contrib/llvm/utils/TableGen/ExegesisEmitter.cpp stable/12/contrib/llvm/utils/TableGen/FastISelEmitter.cpp stable/12/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp stable/12/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp stable/12/contrib/llvm/utils/TableGen/InfoByHwMode.cpp stable/12/contrib/llvm/utils/TableGen/InfoByHwMode.h stable/12/contrib/llvm/utils/TableGen/InstrDocsEmitter.cpp stable/12/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp stable/12/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp stable/12/contrib/llvm/utils/TableGen/OptParserEmitter.cpp stable/12/contrib/llvm/utils/TableGen/PredicateExpander.cpp stable/12/contrib/llvm/utils/TableGen/PredicateExpander.h stable/12/contrib/llvm/utils/TableGen/PseudoLoweringEmitter.cpp stable/12/contrib/llvm/utils/TableGen/RISCVCompressInstEmitter.cpp stable/12/contrib/llvm/utils/TableGen/RegisterBankEmitter.cpp stable/12/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp stable/12/contrib/llvm/utils/TableGen/SDNodeProperties.cpp stable/12/contrib/llvm/utils/TableGen/SDNodeProperties.h stable/12/contrib/llvm/utils/TableGen/SearchableTableEmitter.cpp stable/12/contrib/llvm/utils/TableGen/SequenceToOffsetTable.h stable/12/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp stable/12/contrib/llvm/utils/TableGen/SubtargetFeatureInfo.cpp stable/12/contrib/llvm/utils/TableGen/SubtargetFeatureInfo.h stable/12/contrib/llvm/utils/TableGen/TableGen.cpp stable/12/contrib/llvm/utils/TableGen/TableGenBackends.h stable/12/contrib/llvm/utils/TableGen/Types.cpp stable/12/contrib/llvm/utils/TableGen/Types.h stable/12/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp stable/12/contrib/llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.h stable/12/contrib/llvm/utils/TableGen/X86DisassemblerShared.h stable/12/contrib/llvm/utils/TableGen/X86DisassemblerTables.cpp stable/12/contrib/llvm/utils/TableGen/X86DisassemblerTables.h stable/12/contrib/llvm/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp stable/12/contrib/llvm/utils/TableGen/X86FoldTablesEmitter.cpp stable/12/contrib/llvm/utils/TableGen/X86ModRMFilters.cpp stable/12/contrib/llvm/utils/TableGen/X86ModRMFilters.h stable/12/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp stable/12/contrib/llvm/utils/TableGen/X86RecognizableInstr.h stable/12/contrib/openmp/LICENSE.txt stable/12/contrib/openmp/runtime/src/dllexports stable/12/contrib/openmp/runtime/src/exports_so.txt stable/12/contrib/openmp/runtime/src/extractExternal.cpp stable/12/contrib/openmp/runtime/src/i18n/en_US.txt stable/12/contrib/openmp/runtime/src/kmp.h stable/12/contrib/openmp/runtime/src/kmp_affinity.cpp stable/12/contrib/openmp/runtime/src/kmp_affinity.h stable/12/contrib/openmp/runtime/src/kmp_alloc.cpp stable/12/contrib/openmp/runtime/src/kmp_atomic.cpp stable/12/contrib/openmp/runtime/src/kmp_atomic.h stable/12/contrib/openmp/runtime/src/kmp_barrier.cpp stable/12/contrib/openmp/runtime/src/kmp_cancel.cpp stable/12/contrib/openmp/runtime/src/kmp_config.h.cmake stable/12/contrib/openmp/runtime/src/kmp_csupport.cpp stable/12/contrib/openmp/runtime/src/kmp_debug.cpp stable/12/contrib/openmp/runtime/src/kmp_debug.h stable/12/contrib/openmp/runtime/src/kmp_debugger.cpp stable/12/contrib/openmp/runtime/src/kmp_debugger.h stable/12/contrib/openmp/runtime/src/kmp_dispatch.cpp stable/12/contrib/openmp/runtime/src/kmp_dispatch.h stable/12/contrib/openmp/runtime/src/kmp_dispatch_hier.h stable/12/contrib/openmp/runtime/src/kmp_environment.cpp stable/12/contrib/openmp/runtime/src/kmp_environment.h stable/12/contrib/openmp/runtime/src/kmp_error.cpp stable/12/contrib/openmp/runtime/src/kmp_error.h stable/12/contrib/openmp/runtime/src/kmp_ftn_cdecl.cpp stable/12/contrib/openmp/runtime/src/kmp_ftn_entry.h stable/12/contrib/openmp/runtime/src/kmp_ftn_extra.cpp stable/12/contrib/openmp/runtime/src/kmp_ftn_os.h stable/12/contrib/openmp/runtime/src/kmp_ftn_stdcall.cpp stable/12/contrib/openmp/runtime/src/kmp_global.cpp stable/12/contrib/openmp/runtime/src/kmp_gsupport.cpp stable/12/contrib/openmp/runtime/src/kmp_i18n.cpp stable/12/contrib/openmp/runtime/src/kmp_i18n.h stable/12/contrib/openmp/runtime/src/kmp_import.cpp stable/12/contrib/openmp/runtime/src/kmp_io.cpp stable/12/contrib/openmp/runtime/src/kmp_io.h stable/12/contrib/openmp/runtime/src/kmp_itt.cpp stable/12/contrib/openmp/runtime/src/kmp_itt.h stable/12/contrib/openmp/runtime/src/kmp_itt.inl stable/12/contrib/openmp/runtime/src/kmp_lock.cpp stable/12/contrib/openmp/runtime/src/kmp_lock.h stable/12/contrib/openmp/runtime/src/kmp_omp.h stable/12/contrib/openmp/runtime/src/kmp_os.h stable/12/contrib/openmp/runtime/src/kmp_platform.h stable/12/contrib/openmp/runtime/src/kmp_runtime.cpp stable/12/contrib/openmp/runtime/src/kmp_safe_c_api.h stable/12/contrib/openmp/runtime/src/kmp_sched.cpp stable/12/contrib/openmp/runtime/src/kmp_settings.cpp stable/12/contrib/openmp/runtime/src/kmp_settings.h stable/12/contrib/openmp/runtime/src/kmp_stats.cpp stable/12/contrib/openmp/runtime/src/kmp_stats.h stable/12/contrib/openmp/runtime/src/kmp_stats_timing.cpp stable/12/contrib/openmp/runtime/src/kmp_stats_timing.h stable/12/contrib/openmp/runtime/src/kmp_str.cpp stable/12/contrib/openmp/runtime/src/kmp_str.h stable/12/contrib/openmp/runtime/src/kmp_stub.cpp stable/12/contrib/openmp/runtime/src/kmp_stub.h stable/12/contrib/openmp/runtime/src/kmp_taskdeps.cpp stable/12/contrib/openmp/runtime/src/kmp_taskdeps.h stable/12/contrib/openmp/runtime/src/kmp_tasking.cpp stable/12/contrib/openmp/runtime/src/kmp_taskq.cpp stable/12/contrib/openmp/runtime/src/kmp_threadprivate.cpp stable/12/contrib/openmp/runtime/src/kmp_utility.cpp stable/12/contrib/openmp/runtime/src/kmp_version.cpp stable/12/contrib/openmp/runtime/src/kmp_version.h stable/12/contrib/openmp/runtime/src/kmp_wait_release.cpp stable/12/contrib/openmp/runtime/src/kmp_wait_release.h stable/12/contrib/openmp/runtime/src/kmp_wrapper_getpid.h stable/12/contrib/openmp/runtime/src/kmp_wrapper_malloc.h stable/12/contrib/openmp/runtime/src/libomp.rc.var stable/12/contrib/openmp/runtime/src/ompt-event-specific.h stable/12/contrib/openmp/runtime/src/ompt-general.cpp stable/12/contrib/openmp/runtime/src/ompt-internal.h stable/12/contrib/openmp/runtime/src/ompt-specific.cpp stable/12/contrib/openmp/runtime/src/ompt-specific.h stable/12/contrib/openmp/runtime/src/test-touch.c stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/disable_warnings.h stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify.h stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_config.h stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.h stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/ittnotify_types.h stable/12/contrib/openmp/runtime/src/thirdparty/ittnotify/legacy/ittnotify.h stable/12/contrib/openmp/runtime/src/tsan_annotations.cpp stable/12/contrib/openmp/runtime/src/tsan_annotations.h stable/12/contrib/openmp/runtime/src/z_Linux_asm.S stable/12/contrib/openmp/runtime/src/z_Linux_util.cpp stable/12/contrib/openmp/runtime/src/z_Windows_NT-586_asm.asm stable/12/contrib/openmp/runtime/src/z_Windows_NT-586_util.cpp stable/12/contrib/openmp/runtime/src/z_Windows_NT_util.cpp stable/12/etc/mtree/BSD.debug.dist stable/12/etc/mtree/BSD.usr.dist stable/12/lib/Makefile stable/12/lib/atf/libatf-c++/Makefile stable/12/lib/clang/freebsd_cc_version.h stable/12/lib/clang/headers/Makefile stable/12/lib/clang/include/clang/Basic/Version.inc stable/12/lib/clang/include/clang/Config/config.h stable/12/lib/clang/include/lld/Common/Version.inc stable/12/lib/clang/include/lldb/Host/Config.h stable/12/lib/clang/include/llvm/Config/abi-breaking.h stable/12/lib/clang/include/llvm/Config/config.h stable/12/lib/clang/include/llvm/Config/llvm-config.h stable/12/lib/clang/include/llvm/Support/VCSRevision.h stable/12/lib/clang/libclang/Makefile stable/12/lib/clang/liblldb/Makefile stable/12/lib/clang/libllvm/Makefile stable/12/lib/clang/libllvmminimal/Makefile stable/12/lib/clang/llvm.build.mk stable/12/lib/googletest/Makefile.inc stable/12/lib/libc++/Makefile stable/12/lib/libclang_rt/Makefile stable/12/lib/libclang_rt/Makefile.inc stable/12/lib/libclang_rt/fuzzer/Makefile stable/12/lib/libclang_rt/fuzzer_no_main/Makefile stable/12/lib/libclang_rt/include/Makefile stable/12/lib/libclang_rt/msan_cxx/Makefile stable/12/lib/libclang_rt/profile/Makefile stable/12/lib/libclang_rt/safestack/Makefile stable/12/lib/libclang_rt/ubsan_standalone/Makefile stable/12/lib/libcompiler_rt/Makefile stable/12/lib/libcompiler_rt/Makefile.inc stable/12/lib/libdevdctl/Makefile stable/12/lib/libgcc_s/Makefile stable/12/lib/libgcc_s/arm/Symbol.map stable/12/lib/libomp/Makefile stable/12/lib/libomp/kmp_config.h stable/12/lib/libomp/kmp_i18n_default.inc stable/12/lib/libomp/kmp_i18n_id.inc stable/12/lib/libomp/omp-tools.h stable/12/lib/libomp/omp.h stable/12/lib/libpmc/Makefile stable/12/libexec/atf/atf-check/Makefile stable/12/libexec/atf/atf-sh/Makefile stable/12/share/man/man5/src.conf.5 stable/12/share/mk/atf.test.mk stable/12/share/mk/bsd.sys.mk stable/12/share/mk/src.opts.mk stable/12/sys/conf/kmod.mk stable/12/sys/sys/param.h stable/12/tools/build/mk/OptionalObsoleteFiles.inc stable/12/usr.bin/clang/Makefile stable/12/usr.bin/clang/Makefile.inc stable/12/usr.bin/clang/clang-tblgen/Makefile stable/12/usr.bin/clang/clang.prog.mk stable/12/usr.bin/clang/lld/Makefile stable/12/usr.bin/clang/lldb/Makefile stable/12/usr.bin/clang/llvm-mca/Makefile stable/12/usr.bin/clang/llvm-objcopy/Makefile stable/12/usr.bin/clang/llvm-pdbutil/Makefile stable/12/usr.bin/clang/llvm.prog.mk Directory Properties: stable/12/ (props changed) Modified: stable/12/Makefile.inc1 ============================================================================== --- stable/12/Makefile.inc1 Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/Makefile.inc1 Tue Jan 7 18:08:09 2020 (r356460) @@ -2116,10 +2116,13 @@ _localedef= usr.bin/localedef _clang_tblgen= \ lib/clang/libllvmminimal \ usr.bin/clang/llvm-tblgen \ - usr.bin/clang/clang-tblgen + usr.bin/clang/clang-tblgen \ + usr.bin/clang/lldb-tblgen +# XXX: lldb-tblgen is not needed, if top-level MK_LLDB=no ${_bt}-usr.bin/clang/clang-tblgen: ${_bt}-lib/clang/libllvmminimal ${_bt}-usr.bin/clang/llvm-tblgen: ${_bt}-lib/clang/libllvmminimal +${_bt}-usr.bin/clang/lldb-tblgen: ${_bt}-lib/clang/libllvmminimal .endif # Default to building the GPL DTC, but build the BSDL one if users explicitly Modified: stable/12/ObsoleteFiles.inc ============================================================================== --- stable/12/ObsoleteFiles.inc Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/ObsoleteFiles.inc Tue Jan 7 18:08:09 2020 (r356460) @@ -38,6 +38,167 @@ # xargs -n1 | sort | uniq -d; # done +# 20200107: new clang import which bumps version from 8.0.1 to 9.0.0. +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/esan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/hwasan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/netbsd_syscall_hooks.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/scudo_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/tsan_interface.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/8.0.1/include/sanitizer +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_complex_builtins.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_device_functions.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_libdevice_declares.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/8.0.1/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/8.0.1/include/adxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/altivec.h +OLD_FILES+=usr/lib/clang/8.0.1/include/ammintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm64intr.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm_acle.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm_fp16.h +OLD_FILES+=usr/lib/clang/8.0.1/include/arm_neon.h +OLD_FILES+=usr/lib/clang/8.0.1/include/armintr.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512bitalgintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vbmi2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlbitalgintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlvbmi2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vlvnniintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vnniintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vpopcntdqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avx512vpopcntdqvlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/avxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/cetintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/cldemoteintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/clwbintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/clzerointrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/cpuid.h +OLD_FILES+=usr/lib/clang/8.0.1/include/emmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/gfniintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/htmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/immintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/invpcidintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/lwpintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/module.modulemap +OLD_FILES+=usr/lib/clang/8.0.1/include/movdirintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/msa.h +OLD_FILES+=usr/lib/clang/8.0.1/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/opencl-c.h +OLD_FILES+=usr/lib/clang/8.0.1/include/pconfigintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/ptwriteintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/s390intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/sgxintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/shaintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/smmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vadefs.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vaesintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vecintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/vpclmulqdqintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/waitpkgintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/wbnoinvdintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/x86intrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xopintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/8.0.1/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/8.0.1/include +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.msan-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.msan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-armhf.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.tsan-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/8.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_DIRS+=usr/lib/clang/8.0.1/lib/freebsd +OLD_DIRS+=usr/lib/clang/8.0.1/lib +OLD_DIRS+=usr/lib/clang/8.0.1 +# 20200107: libc++ 9.0.0 removed some experimental files +OLD_FILES+=usr/include/c++/v1/experimental/any +OLD_FILES+=usr/include/c++/v1/experimental/chrono +OLD_FILES+=usr/include/c++/v1/experimental/numeric +OLD_FILES+=usr/include/c++/v1/experimental/optional +OLD_FILES+=usr/include/c++/v1/experimental/ratio +OLD_FILES+=usr/include/c++/v1/experimental/string_view +OLD_FILES+=usr/include/c++/v1/experimental/system_error +OLD_FILES+=usr/include/c++/v1/experimental/tuple +OLD_FILES+=usr/lib/libc++fs.a +OLD_FILES+=usr/lib32/libc++fs.a # 20191003: Remove useless ZFS tests OLD_FILES+=usr/tests/sys/cddl/zfs/tests/cli_root/zpool_create/zpool_create_013_neg.ksh OLD_FILES+=usr/tests/sys/cddl/zfs/tests/cli_root/zpool_create/zpool_create_014_neg.ksh Modified: stable/12/UPDATING ============================================================================== --- stable/12/UPDATING Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/UPDATING Tue Jan 7 18:08:09 2020 (r356460) @@ -16,6 +16,12 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +20200107: + Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have + been upgraded to 9.0.0. Please see the 20141231 entry below for + information about prerequisites and upgrading, if you are not already + using clang 3.5.0 or higher. + 20191107: The nctgpio and wbwd drivers have been moved to the superio bus. If you have one of these drivers in a kernel configuration, then Copied: stable/12/contrib/compiler-rt/FREEBSD-Xlist (from r353358, head/contrib/compiler-rt/FREEBSD-Xlist) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/contrib/compiler-rt/FREEBSD-Xlist Tue Jan 7 18:08:09 2020 (r356460, copy of r353358, head/contrib/compiler-rt/FREEBSD-Xlist) @@ -0,0 +1,71 @@ +# $FreeBSD$ +.arcconfig +.gitignore +CMakeLists.txt +CODE_OWNERS.TXT +cmake/ +docs/ +include/CMakeLists.txt +lib/CMakeLists.txt +lib/asan/.clang-format +lib/asan/CMakeLists.txt +lib/asan/scripts/ +lib/asan/tests/ +lib/builtins/CMakeLists.txt +lib/builtins/Darwin-excludes/ +lib/builtins/macho_embedded/ +lib/cfi/CMakeLists.txt +lib/crt/CMakeLists.txt +lib/dfsan/.clang-format +lib/dfsan/CMakeLists.txt +lib/dfsan/scripts/ +lib/esan/CMakeLists.txt +lib/fuzzer/CMakeLists.txt +lib/fuzzer/afl/ +lib/fuzzer/build.sh +lib/fuzzer/dataflow/ +lib/fuzzer/scripts/ +lib/fuzzer/standalone/ +lib/fuzzer/tests/ +lib/gwp_asan/CMakeLists.txt +lib/gwp_asan/tests/ +lib/hwasan/.clang-format +lib/hwasan/CMakeLists.txt +lib/interception/.clang-format +lib/interception/CMakeLists.txt +lib/interception/tests/ +lib/lsan/.clang-format +lib/lsan/CMakeLists.txt +lib/msan/.clang-format +lib/msan/CMakeLists.txt +lib/msan/tests/ +lib/profile/CMakeLists.txt +lib/safestack/.clang-format +lib/safestack/CMakeLists.txt +lib/sanitizer_common/.clang-format +lib/sanitizer_common/.clang-tidy +lib/sanitizer_common/CMakeLists.txt +lib/sanitizer_common/scripts/ +lib/sanitizer_common/tests/ +lib/scudo/CMakeLists.txt +lib/scudo/standalone/CMakeLists.txt +lib/scudo/standalone/tests/ +lib/stats/CMakeLists.txt +lib/tsan/.clang-format +lib/tsan/CMakeLists.txt +lib/tsan/analyze_libtsan.sh +lib/tsan/check_analyze.sh +lib/tsan/check_cmake.sh +lib/tsan/dd/CMakeLists.txt +lib/tsan/go/build.bat +lib/tsan/go/buildgo.sh +lib/tsan/tests/ +lib/ubsan/CMakeLists.txt +lib/ubsan_minimal/CMakeLists.txt +lib/xray/CMakeLists.txt +lib/xray/tests/ +make/ +test/ +unittests/ +utils/ +www/ Modified: stable/12/contrib/compiler-rt/LICENSE.TXT ============================================================================== --- stable/12/contrib/compiler-rt/LICENSE.TXT Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/contrib/compiler-rt/LICENSE.TXT Tue Jan 7 18:08:09 2020 (r356460) @@ -1,7 +1,242 @@ ============================================================================== -compiler_rt License +The LLVM Project is under the Apache License v2.0 with LLVM Exceptions: ============================================================================== + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +---- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + +============================================================================== +Software from third parties included in the LLVM Project: +============================================================================== +The LLVM Project contains third party software which is under different license +terms. All such code will be identified clearly using at least one of two +mechanisms: +1) It will be in a separate directory tree with its own `LICENSE.txt` or + `LICENSE` file at the top containing the specific license and restrictions + which apply to that software, or +2) It will contain specific license and restriction terms at the top of every + file. + +============================================================================== +Legacy LLVM License (https://llvm.org/docs/DeveloperPolicy.html#legacy): +============================================================================== + The compiler_rt library is dual licensed under both the University of Illinois "BSD-Like" license and the MIT license. As a user of this code you may choose to use it under either license. As a contributor, you agree to allow your code @@ -74,18 +309,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -============================================================================== -Copyrights and Licenses for Third Party Software Distributed with LLVM: -============================================================================== -The LLVM software contains code written by third parties. Such software will -have its own individual LICENSE.TXT file in the directory in which it appears. -This file will describe the copyrights, license, and restrictions which apply -to that code. - -The disclaimer of warranty in the University of Illinois Open Source License -applies to all code in the LLVM Distribution, and nothing in any of the -other licenses gives permission to use the names of the LLVM Team or the -University of Illinois to endorse or promote products derived from this -Software. - Modified: stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h ============================================================================== --- stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/contrib/compiler-rt/include/sanitizer/allocator_interface.h Tue Jan 7 18:08:09 2020 (r356460) @@ -1,9 +1,8 @@ //===-- allocator_interface.h ---------------------------------------------===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // Modified: stable/12/contrib/compiler-rt/include/sanitizer/asan_interface.h ============================================================================== --- stable/12/contrib/compiler-rt/include/sanitizer/asan_interface.h Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/contrib/compiler-rt/include/sanitizer/asan_interface.h Tue Jan 7 18:08:09 2020 (r356460) @@ -1,13 +1,12 @@ //===-- sanitizer/asan_interface.h ------------------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// // -// This file is a part of AddressSanitizer. +// This file is a part of AddressSanitizer (ASan). // // Public interface header. //===----------------------------------------------------------------------===// @@ -19,28 +18,54 @@ #ifdef __cplusplus extern "C" { #endif - // Marks memory region [addr, addr+size) as unaddressable. - // This memory must be previously allocated by the user program. Accessing - // addresses in this region from instrumented code is forbidden until - // this region is unpoisoned. This function is not guaranteed to poison - // the whole region - it may poison only subregion of [addr, addr+size) due - // to ASan alignment restrictions. - // Method is NOT thread-safe in the sense that no two threads can - // (un)poison memory in the same memory region simultaneously. - void __asan_poison_memory_region(void const volatile *addr, size_t size); - // Marks memory region [addr, addr+size) as addressable. - // This memory must be previously allocated by the user program. Accessing - // addresses in this region is allowed until this region is poisoned again. - // This function may unpoison a superregion of [addr, addr+size) due to - // ASan alignment restrictions. - // Method is NOT thread-safe in the sense that no two threads can - // (un)poison memory in the same memory region simultaneously. - void __asan_unpoison_memory_region(void const volatile *addr, size_t size); +/// Marks a memory region ([addr, addr+size)) as unaddressable. +/// +/// This memory must be previously allocated by your program. Instrumented +/// code is forbidden from accessing addresses in this region until it is +/// unpoisoned. This function is not guaranteed to poison the entire region - +/// it could poison only a subregion of [addr, addr+size) due to ASan +/// alignment restrictions. +/// +/// \note This function is not thread-safe because no two threads can poison or +/// unpoison memory in the same memory region simultaneously. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. +void __asan_poison_memory_region(void const volatile *addr, size_t size); -// User code should use macros instead of functions. +/// Marks a memory region ([addr, addr+size)) as addressable. +/// +/// This memory must be previously allocated by your program. Accessing +/// addresses in this region is allowed until this region is poisoned again. +/// This function could unpoison a super-region of [addr, addr+size) due +/// to ASan alignment restrictions. +/// +/// \note This function is not thread-safe because no two threads can +/// poison or unpoison memory in the same memory region simultaneously. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. +void __asan_unpoison_memory_region(void const volatile *addr, size_t size); + +// Macros provided for convenience. #if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) +/// Marks a memory region as unaddressable. +/// +/// \note Macro provided for convenience; defined as a no-op if ASan is not +/// enabled. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. #define ASAN_POISON_MEMORY_REGION(addr, size) \ __asan_poison_memory_region((addr), (size)) + +/// Marks a memory region as addressable. +/// +/// \note Macro provided for convenience; defined as a no-op if ASan is not +/// enabled. +/// +/// \param addr Start of memory region. +/// \param size Size of memory region. #define ASAN_UNPOISON_MEMORY_REGION(addr, size) \ __asan_unpoison_memory_region((addr), (size)) #else @@ -50,103 +75,245 @@ extern "C" { ((void)(addr), (void)(size)) #endif - // Returns 1 if addr is poisoned (i.e. 1-byte read/write access to this - // address will result in error report from AddressSanitizer). - // Otherwise returns 0. - int __asan_address_is_poisoned(void const volatile *addr); +/// Checks if an address is poisoned. +/// +/// Returns 1 if addr is poisoned (that is, 1-byte read/write +/// access to this address would result in an error report from ASan). +/// Otherwise returns 0. +/// +/// \param addr Address to check. +/// +/// \retval 1 Address is poisoned. +/// \retval 0 Address is not poisoned. +int __asan_address_is_poisoned(void const volatile *addr); - // If at least one byte in [beg, beg+size) is poisoned, return the address - // of the first such byte. Otherwise return 0. - void *__asan_region_is_poisoned(void *beg, size_t size); +/// Checks if a region is poisoned. +/// +/// If at least one byte in [beg, beg+size) is poisoned, returns the +/// address of the first such byte. Otherwise returns 0. +/// +/// \param beg Start of memory region. +/// \param size Start of memory region. +/// \returns Address of first poisoned byte. +void *__asan_region_is_poisoned(void *beg, size_t size); - // Print the description of addr (useful when debugging in gdb). - void __asan_describe_address(void *addr); +/// Describes an address (useful for calling from the debugger). +/// +/// Prints the description of addr. +/// +/// \param addr Address to describe. +void __asan_describe_address(void *addr); - // Useful for calling from a debugger to get information about an ASan error. - // Returns 1 if an error has been (or is being) reported, otherwise returns 0. - int __asan_report_present(void); +/// Checks if an error has been or is being reported (useful for calling from +/// the debugger to get information about an ASan error). +/// +/// Returns 1 if an error has been (or is being) reported. Otherwise returns 0. +/// +/// \returns 1 if an error has been (or is being) reported. Otherwise returns +/// 0. +int __asan_report_present(void); - // Useful for calling from a debugger to get information about an ASan error. - // If an error has been (or is being) reported, the following functions return - // the pc, bp, sp, address, access type (0 = read, 1 = write), access size and - // bug description (e.g. "heap-use-after-free"). Otherwise they return 0. - void *__asan_get_report_pc(void); - void *__asan_get_report_bp(void); - void *__asan_get_report_sp(void); - void *__asan_get_report_address(void); - int __asan_get_report_access_type(void); - size_t __asan_get_report_access_size(void); - const char *__asan_get_report_description(void); +/// Gets the PC (program counter) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// Returns PC if an error has been (or is being) reported. +/// Otherwise returns 0. +/// +/// \returns PC value. +void *__asan_get_report_pc(void); - // Useful for calling from the debugger to get information about a pointer. - // Returns the category of the given pointer as a constant string. - // Possible return values are "global", "stack", "stack-fake", "heap", - // "heap-invalid", "shadow-low", "shadow-gap", "shadow-high", "unknown". - // If global or stack, tries to also return the variable name, address and - // size. If heap, tries to return the chunk address and size. 'name' should - // point to an allocated buffer of size 'name_size'. - const char *__asan_locate_address(void *addr, char *name, size_t name_size, - void **region_address, size_t *region_size); +/// Gets the BP (base pointer) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// Returns BP if an error has been (or is being) reported. +/// Otherwise returns 0. +/// +/// \returns BP value. +void *__asan_get_report_bp(void); - // Useful for calling from the debugger to get the allocation stack trace - // and thread ID for a heap address. Stores up to 'size' frames into 'trace', - // returns the number of stored frames or 0 on error. - size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size, - int *thread_id); +/// Gets the SP (stack pointer) register value of an ASan error (useful for +/// calling from the debugger). +/// +/// If an error has been (or is being) reported, returns SP. +/// Otherwise returns 0. +/// +/// \returns SP value. +void *__asan_get_report_sp(void); - // Useful for calling from the debugger to get the free stack trace - // and thread ID for a heap address. Stores up to 'size' frames into 'trace', - // returns the number of stored frames or 0 on error. - size_t __asan_get_free_stack(void *addr, void **trace, size_t size, - int *thread_id); +/// Gets the address of the report buffer of an ASan error (useful for calling +/// from the debugger). +/// +/// Returns the address of the report buffer if an error has been (or is being) +/// reported. Otherwise returns 0. +/// +/// \returns Address of report buffer. +void *__asan_get_report_address(void); - // Useful for calling from the debugger to get the current shadow memory - // mapping. - void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset); +/// Gets access type of an ASan error (useful for calling from the debugger). +/// +/// Returns access type (read or write) if an error has been (or is being) +/// reported. Otherwise returns 0. +/// +/// \returns Access type (0 = read, 1 = write). +int __asan_get_report_access_type(void); - // This is an internal function that is called to report an error. - // However it is still a part of the interface because users may want to - // set a breakpoint on this function in a debugger. - void __asan_report_error(void *pc, void *bp, void *sp, - void *addr, int is_write, size_t access_size); +/// Gets access size of an ASan error (useful for calling from the debugger). +/// +/// Returns access size if an error has been (or is being) reported. Otherwise +/// returns 0. +/// +/// \returns Access size in bytes. +size_t __asan_get_report_access_size(void); - // Deprecated. Call __sanitizer_set_death_callback instead. - void __asan_set_death_callback(void (*callback)(void)); +/// Gets the bug description of an ASan error (useful for calling from a +/// debugger). +/// +/// \returns Returns a bug description if an error has been (or is being) +/// reported - for example, "heap-use-after-free". Otherwise returns an empty +/// string. +const char *__asan_get_report_description(void); - void __asan_set_error_report_callback(void (*callback)(const char*)); +/// Gets information about a pointer (useful for calling from the debugger). +/// +/// Returns the category of the given pointer as a constant string. +/// Possible return values are global, stack, stack-fake, +/// heap, heap-invalid, shadow-low, shadow-gap, +/// shadow-high, and unknown. +/// +/// If the return value is global or stack, tries to also return +/// the variable name, address, and size. If the return value is heap, +/// tries to return the chunk address and size. name should point +/// to an allocated buffer of size name_size. +/// +/// \param addr Address to locate. +/// \param name Buffer to store the variable's name. +/// \param name_size Size in bytes of the variable's name buffer. +/// \param region_address [out] Address of the region. +/// \param region_size [out] Size of the region in bytes. +/// +/// \returns Returns the category of the given pointer as a constant string. +const char *__asan_locate_address(void *addr, char *name, size_t name_size, + void **region_address, size_t *region_size); - // User may provide function that would be called right when ASan detects - // an error. This can be used to notice cases when ASan detects an error, but - // the program crashes before ASan report is printed. - void __asan_on_error(void); +/// Gets the allocation stack trace and thread ID for a heap address (useful +/// for calling from the debugger). +/// +/// Stores up to size frames in trace. Returns +/// the number of stored frames or 0 on error. +/// +/// \param addr A heap address. +/// \param trace A buffer to store the stack trace. +/// \param size Size in bytes of the trace buffer. +/// \param thread_id [out] The thread ID of the address. +/// +/// \returns Returns the number of stored frames or 0 on error. +size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size, + int *thread_id); - // Prints accumulated stats to stderr. Used for debugging. - void __asan_print_accumulated_stats(void); +/// Gets the free stack trace and thread ID for a heap address (useful for +/// calling from the debugger). +/// +/// Stores up to size frames in trace. Returns +/// the number of stored frames or 0 on error. +/// +/// \param addr A heap address. +/// \param trace A buffer to store the stack trace. +/// \param size Size in bytes of the trace buffer. +/// \param thread_id [out] The thread ID of the address. +/// +/// \returns Returns the number of stored frames or 0 on error. +size_t __asan_get_free_stack(void *addr, void **trace, size_t size, + int *thread_id); - // This function may be optionally provided by user and should return - // a string containing ASan runtime options. See asan_flags.h for details. - const char* __asan_default_options(void); +/// Gets the current shadow memory mapping (useful for calling from the +/// debugger). +/// +/// \param shadow_scale [out] Shadow scale value. +/// \param shadow_offset [out] Offset value. +void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset); - // The following 2 functions facilitate garbage collection in presence of - // asan's fake stack. +/// This is an internal function that is called to report an error. However, +/// it is still a part of the interface because you might want to set a +/// breakpoint on this function in the debugger. +/// +/// \param pc pc value of the ASan error. +/// \param bp bp value of the ASan error. +/// \param sp sp value of the ASan error. +/// \param addr Address of the ASan error. +/// \param is_write True if the error is a write error; false otherwise. +/// \param access_size Size of the memory access of the ASan error. +void __asan_report_error(void *pc, void *bp, void *sp, + void *addr, int is_write, size_t access_size); - // Returns an opaque handler to be used later in __asan_addr_is_in_fake_stack. - // Returns NULL if the current thread does not have a fake stack. - void *__asan_get_current_fake_stack(void); +// Deprecated. Call __sanitizer_set_death_callback instead. +void __asan_set_death_callback(void (*callback)(void)); - // If fake_stack is non-NULL and addr belongs to a fake frame in - // fake_stack, returns the address on real stack that corresponds to - // the fake frame and sets beg/end to the boundaries of this fake frame. - // Otherwise returns NULL and does not touch beg/end. - // If beg/end are NULL, they are not touched. - // This function may be called from a thread other than the owner of - // fake_stack, but the owner thread need to be alive. - void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, - void **end); +/// Sets the callback function to be called during ASan error reporting. +/// +/// The callback provides a string pointer to the report. +/// +/// \param callback User-provided function. +void __asan_set_error_report_callback(void (*callback)(const char *)); - // Performs cleanup before a [[noreturn]] function. Must be called - // before things like _exit and execl to avoid false positives on stack. - void __asan_handle_no_return(void); +/// User-provided callback on ASan errors. +/// +/// You can provide a function that would be called immediately when ASan +/// detects an error. This is useful in cases when ASan detects an error but +/// your program crashes before the ASan report is printed. +void __asan_on_error(void); + +/// Prints accumulated statistics to stderr (useful for calling from the +/// debugger). +void __asan_print_accumulated_stats(void); + +/// User-provided default option settings. +/// +/// You can provide your own implementation of this function to return a string +/// containing ASan runtime options (for example, +/// verbosity=1:halt_on_error=0). +/// +/// \returns Default options string. +const char* __asan_default_options(void); + +// The following two functions facilitate garbage collection in presence of +// ASan's fake stack. + +/// Gets an opaque handler to the current thread's fake stack. +/// +/// Returns an opaque handler to be used by +/// __asan_addr_is_in_fake_stack(). Returns NULL if the current thread +/// does not have a fake stack. +/// +/// \returns An opaque handler to the fake stack or NULL. +void *__asan_get_current_fake_stack(void); + +/// Checks if an address belongs to a given fake stack. +/// +/// If fake_stack is non-NULL and addr belongs to a +/// fake frame in fake_stack, returns the address of the real +/// stack that corresponds to the fake frame and sets beg and +/// end to the boundaries of this fake frame. Otherwise returns +/// NULL and does not touch beg and end. +/// +/// If beg or end are NULL, they are not touched. +/// +/// \note This function can be called from a thread other than the owner of +/// fake_stack, but the owner thread needs to be alive. +/// +/// \param fake_stack An opaque handler to a fake stack. +/// \param addr Address to test. +/// \param beg [out] Beginning of fake frame. +/// \param end [out] End of fake frame. +/// \returns Stack address or NULL. +void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, + void **end); + +/// Performs shadow memory cleanup of the current thread's stack before a +/// function marked with the [[noreturn]] attribute is called. +/// +/// To avoid false positives on the stack, must be called before no-return +/// functions like _exit() and execl(). +void __asan_handle_no_return(void); #ifdef __cplusplus } // extern "C" Modified: stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h ============================================================================== --- stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Tue Jan 7 17:57:08 2020 (r356459) +++ stable/12/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Tue Jan 7 18:08:09 2020 (r356460) @@ -1,10 +1,9 @@ //===-- sanitizer/common_interface_defs.h -----------------------*- C++ -*-===// // -// The LLVM Compiler Infrastructure +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// //===----------------------------------------------------------------------===// // // Common part of the public sanitizer interface. @@ -18,189 +17,335 @@ // GCC does not understand __has_feature. #if !defined(__has_feature) -# define __has_feature(x) 0 +#define __has_feature(x) 0 #endif #ifdef __cplusplus extern "C" { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Tue Jan 7 18:42:55 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9AC751EF4F4; Tue, 7 Jan 2020 18:42:55 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sh8H3dZYz4SWW; Tue, 7 Jan 2020 18:42:55 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 77C623479; Tue, 7 Jan 2020 18:42:55 +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 007IgtlW054736; Tue, 7 Jan 2020 18:42:55 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007IgrB1054727; Tue, 7 Jan 2020 18:42:53 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001071842.007IgrB1054727@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Tue, 7 Jan 2020 18:42: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: r356461 - in stable/11/lib: libc/gen libutil X-SVN-Group: stable-11 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: in stable/11/lib: libc/gen libutil X-SVN-Commit-Revision: 356461 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 18:42:55 -0000 Author: ian Date: Tue Jan 7 18:42:53 2020 New Revision: 356461 URL: https://svnweb.freebsd.org/changeset/base/356461 Log: MFC r336746, r336779 r336746: Make pw_scan(3) more compatible with getpwent(3) et. al. when processing data from /etc/passwd rather than /etc/master.passwd. The libc getpwent(3) and related functions automatically read master.passwd when run by root, or passwd when run by a non-root user. When run by non- root, getpwent() copes with the missing data by setting the corresponding fields in the passwd struct to known values (zeroes for numbers, or a pointer to an empty string for literals). When libutil's pw_scan(3) was used to parse a line without the root-accessible data, it was leaving garbage in the corresponding fields. These changes rename the static pw_init() function used by getpwent() and friends to __pw_initpwd(), and move it into pw_scan.c so that common init code can be shared between libc and libutil. pw_scan(3) now calls __pw_initpwd() before __pw_scan(), just like the getpwent() family does, so that reading an arbitrary passwd file in either format and parsing it with pw_scan(3) returns the same results as getpwent(3) would. This also adds a new pw_initpwd(3) function to libutil, so that code which creates passwd structs from scratch in some manner that doesn't involve pw_scan() can initialize the struct to the values expected by lots of existing code, which doesn't expect to encounter NULL pointers or garbage values in some fields. r336779: Stop exporting __pw_scan and __pw_initpwd as freebsd-private libc functions for use in libutil, and instead compile the small amount of common code directly into libutil with a .PATH reachover. Modified: stable/11/lib/libc/gen/Symbol.map stable/11/lib/libc/gen/getpwent.c stable/11/lib/libc/gen/pw_scan.c stable/11/lib/libc/gen/pw_scan.h stable/11/lib/libutil/Makefile stable/11/lib/libutil/libutil.h stable/11/lib/libutil/pw_util.3 stable/11/lib/libutil/pw_util.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/gen/Symbol.map ============================================================================== --- stable/11/lib/libc/gen/Symbol.map Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libc/gen/Symbol.map Tue Jan 7 18:42:53 2020 (r356461) @@ -518,7 +518,6 @@ FBSDprivate_1.0 { __opendir2; __pause; _pause; - __pw_scan; /* Used by (at least) libutil */ __raise; _raise; __sleep; Modified: stable/11/lib/libc/gen/getpwent.c ============================================================================== --- stable/11/lib/libc/gen/getpwent.c Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libc/gen/getpwent.c Tue Jan 7 18:42:53 2020 (r356461) @@ -94,8 +94,6 @@ int __pw_match_entry(const char *, size_t, enum nss_lo const char *, uid_t); int __pw_parse_entry(char *, size_t, struct passwd *, int, int *errnop); -static void pwd_init(struct passwd *); - union key { const char *name; uid_t uid; @@ -525,7 +523,7 @@ getpwent_r(struct passwd *pwd, char *buffer, size_t bu }; int rv, ret_errno; - pwd_init(pwd); + __pw_initpwd(pwd); ret_errno = 0; *result = NULL; rv = _nsdispatch(result, dtab, NSDB_PASSWD, "getpwent_r", defaultsrc, @@ -564,7 +562,7 @@ getpwnam_r(const char *name, struct passwd *pwd, char }; int rv, ret_errno; - pwd_init(pwd); + __pw_initpwd(pwd); ret_errno = 0; *result = NULL; rv = _nsdispatch(result, dtab, NSDB_PASSWD, "getpwnam_r", defaultsrc, @@ -603,7 +601,7 @@ getpwuid_r(uid_t uid, struct passwd *pwd, char *buffer }; int rv, ret_errno; - pwd_init(pwd); + __pw_initpwd(pwd); ret_errno = 0; *result = NULL; rv = _nsdispatch(result, dtab, NSDB_PASSWD, "getpwuid_r", defaultsrc, @@ -615,23 +613,6 @@ getpwuid_r(uid_t uid, struct passwd *pwd, char *buffer } -static void -pwd_init(struct passwd *pwd) -{ - static char nul[] = ""; - - memset(pwd, 0, sizeof(*pwd)); - pwd->pw_uid = (uid_t)-1; /* Considered least likely to lead to */ - pwd->pw_gid = (gid_t)-1; /* a security issue. */ - pwd->pw_name = nul; - pwd->pw_passwd = nul; - pwd->pw_class = nul; - pwd->pw_gecos = nul; - pwd->pw_dir = nul; - pwd->pw_shell = nul; -} - - static struct passwd pwd; static char *pwd_storage; static size_t pwd_storage_size; @@ -1612,7 +1593,7 @@ compat_redispatch(struct compat_state *st, enum nss_lo for (i = 0; i < (int)(nitems(dtab) - 1); i++) dtab[i].mdata = (void *)lookup_how; more: - pwd_init(pwd); + __pw_initpwd(pwd); switch (lookup_how) { case nss_lt_all: rv = _nsdispatch(&discard, dtab, NSDB_PASSWD_COMPAT, Modified: stable/11/lib/libc/gen/pw_scan.c ============================================================================== --- stable/11/lib/libc/gen/pw_scan.c Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libc/gen/pw_scan.c Tue Jan 7 18:42:53 2020 (r356461) @@ -27,10 +27,10 @@ * SUCH DAMAGE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static char sccsid[] = "@(#)pw_scan.c 8.3 (Berkeley) 4/2/94"; +static char sccsid[] __unused = "@(#)pw_scan.c 8.3 (Berkeley) 4/2/94"; #endif /* LIBC_SCCS and not lint */ -#include __FBSDID("$FreeBSD$"); /* @@ -66,6 +66,22 @@ __FBSDID("$FreeBSD$"); * system lag behind. */ static int pw_big_ids_warning = 0; + +void +__pw_initpwd(struct passwd *pwd) +{ + static char nul[] = ""; + + memset(pwd, 0, sizeof(*pwd)); + pwd->pw_uid = (uid_t)-1; /* Considered least likely to lead to */ + pwd->pw_gid = (gid_t)-1; /* a security issue. */ + pwd->pw_name = nul; + pwd->pw_passwd = nul; + pwd->pw_class = nul; + pwd->pw_gecos = nul; + pwd->pw_dir = nul; + pwd->pw_shell = nul; +} int __pw_scan(char *bp, struct passwd *pw, int flags) Modified: stable/11/lib/libc/gen/pw_scan.h ============================================================================== --- stable/11/lib/libc/gen/pw_scan.h Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libc/gen/pw_scan.h Tue Jan 7 18:42:53 2020 (r356461) @@ -33,4 +33,5 @@ #define _PWSCAN_MASTER 0x01 #define _PWSCAN_WARN 0x02 +extern void __pw_initpwd(struct passwd *); extern int __pw_scan(char *, struct passwd *, int); Modified: stable/11/lib/libutil/Makefile ============================================================================== --- stable/11/lib/libutil/Makefile Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libutil/Makefile Tue Jan 7 18:42:53 2020 (r356461) @@ -6,6 +6,8 @@ SHLIBDIR?= /lib .include +.PATH: ${SRCTOP}/lib/libc/gen # for pw_scan.c + LIB= util SHLIB_MAJOR= 9 @@ -15,8 +17,8 @@ SRCS= _secure_path.c auth.c expand_number.c flopen.c f kinfo_getvmobject.c kld.c \ login_auth.c login_cap.c \ login_class.c login_crypt.c login_ok.c login_times.c login_tty.c \ - pidfile.c property.c pty.c pw_util.c quotafile.c realhostname.c \ - stub.c trimdomain.c uucplock.c + pidfile.c property.c pty.c pw_scan.c pw_util.c quotafile.c \ + realhostname.c stub.c trimdomain.c uucplock.c INCS= libutil.h login_cap.h CFLAGS+= -DLIBC_SCCS Modified: stable/11/lib/libutil/libutil.h ============================================================================== --- stable/11/lib/libutil/libutil.h Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libutil/libutil.h Tue Jan 7 18:42:53 2020 (r356461) @@ -152,6 +152,7 @@ int pw_edit(int _notsetuid); int pw_equal(const struct passwd *_pw1, const struct passwd *_pw2); void pw_fini(void); int pw_init(const char *_dir, const char *_master); +void pw_initpwd(struct passwd *_pw); char *pw_make(const struct passwd *_pw); char *pw_make_v7(const struct passwd *_pw); int pw_mkdb(const char *_user); Modified: stable/11/lib/libutil/pw_util.3 ============================================================================== --- stable/11/lib/libutil/pw_util.3 Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libutil/pw_util.3 Tue Jan 7 18:42:53 2020 (r356461) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 02, 2015 +.Dd July 26, 2018 .Dt PW_UTIL 3 .Os .Sh NAME @@ -59,6 +59,8 @@ .Fn pw_fini "void" .Ft int .Fn pw_init "const char *dir" const char *master" +.Ft void +.Fn pw_initpwd "struct passwd *pw" .Ft "char *" .Fn pw_make "const struct passwd *pw" .Ft "char *" @@ -179,7 +181,7 @@ if any. .Pp The .Fn pw_init -initialize the static variable representing the path a password file. +initializes the static variable representing the path to a password file. .Fa dir is the directory where the password file is located. If set to @@ -192,6 +194,18 @@ If set to .Dv NULL? it will default to .Pa master.passwd +.Pp +The +.Fn pw_initpwd +function initializes the +.Vt passwd +struct to canonical values. +The entire structure is zeroed, then +.Va pw_uid +and +.Va pw_gid +are set to -1, and all string pointers are set to point at +an internally-defined zero-length string. .Pp The .Fn pw_make Modified: stable/11/lib/libutil/pw_util.c ============================================================================== --- stable/11/lib/libutil/pw_util.c Tue Jan 7 18:08:09 2020 (r356460) +++ stable/11/lib/libutil/pw_util.c Tue Jan 7 18:42:53 2020 (r356461) @@ -654,8 +654,16 @@ pw_dup(const struct passwd *pw) #include "pw_scan.h" /* - * Wrapper around an internal libc function + * Wrapper around some internal libc functions. */ + +void +pw_initpwd(struct passwd *pw) +{ + + __pw_initpwd(pw); +} + struct passwd * pw_scan(const char *line, int flags) { @@ -664,6 +672,7 @@ pw_scan(const char *line, int flags) if ((bp = strdup(line)) == NULL) return (NULL); + __pw_initpwd(&pw); if (!__pw_scan(bp, &pw, flags)) { free(bp); return (NULL); From owner-svn-src-stable@freebsd.org Tue Jan 7 19:49:24 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B35D31F0EF7; Tue, 7 Jan 2020 19:49:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sjd050fHz4X8W; Tue, 7 Jan 2020 19:49:24 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A23444221; Tue, 7 Jan 2020 19:49:24 +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 007JnOpx091471; Tue, 7 Jan 2020 19:49:24 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007JnA7p091402; Tue, 7 Jan 2020 19:49:10 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001071949.007JnA7p091402@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 19:49:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356462 - in stable/12: . contrib/compiler-rt contrib/libc++ contrib/libunwind contrib/llvm contrib/llvm-project/libcxx/include contrib/openmp gnu/usr.bin/cc/include lib/clang lib/clang... X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: . contrib/compiler-rt contrib/libc++ contrib/libunwind contrib/llvm contrib/llvm-project/libcxx/include contrib/openmp gnu/usr.bin/cc/include lib/clang lib/clang/libclang lib/clang/libll... X-SVN-Commit-Revision: 356462 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 19:49:24 -0000 Author: dim Date: Tue Jan 7 19:49:10 2020 New Revision: 356462 URL: https://svnweb.freebsd.org/changeset/base/356462 Log: MFC r355940: Move all sources from the llvm project into contrib/llvm-project. This uses the new layout of the upstream repository, which was recently migrated to GitHub, and converted into a "monorepo". That is, most of the earlier separate sub-projects with their own branches and tags were consolidated into one top-level directory, and are now branched and tagged together. Updating the vendor area to match this layout is next. Added: - copied from r355940, head/contrib/llvm-project/ Directory Properties: stable/12/contrib/llvm-project/ (props changed) Deleted: stable/12/contrib/compiler-rt/ stable/12/contrib/libc++/ stable/12/contrib/libunwind/ stable/12/contrib/llvm/ stable/12/contrib/openmp/ Modified: stable/12/MAINTAINERS stable/12/contrib/llvm-project/libcxx/include/__errc stable/12/contrib/llvm-project/libcxx/include/errno.h stable/12/gnu/usr.bin/cc/include/Makefile stable/12/lib/clang/clang.build.mk stable/12/lib/clang/clang.pre.mk stable/12/lib/clang/libclang/Makefile stable/12/lib/clang/liblldb/Makefile stable/12/lib/clang/libllvm/Makefile stable/12/lib/clang/libllvmminimal/Makefile stable/12/lib/clang/lldb.pre.mk stable/12/lib/clang/llvm.build.mk stable/12/lib/clang/llvm.pre.mk stable/12/lib/libblocksruntime/Makefile stable/12/lib/libc++/Makefile stable/12/lib/libc++experimental/Makefile stable/12/lib/libc/arm/aeabi/Makefile.inc stable/12/lib/libclang_rt/Makefile.inc stable/12/lib/libcompiler_rt/Makefile.inc stable/12/lib/libgcc_eh/Makefile.inc stable/12/lib/libomp/Makefile stable/12/share/doc/llvm/Makefile stable/12/share/doc/llvm/clang/Makefile stable/12/share/mk/bsd.clang-analyze.mk stable/12/stand/i386/boot2/Makefile stable/12/stand/libsa/Makefile stable/12/sys/modules/aesni/Makefile stable/12/sys/modules/blake2/Makefile stable/12/usr.bin/clang/bugpoint/Makefile stable/12/usr.bin/clang/clang-format/Makefile stable/12/usr.bin/clang/clang-tblgen/Makefile stable/12/usr.bin/clang/clang/Makefile stable/12/usr.bin/clang/llc/Makefile stable/12/usr.bin/clang/lld/Makefile stable/12/usr.bin/clang/lldb-tblgen/Makefile stable/12/usr.bin/clang/lldb/Makefile stable/12/usr.bin/clang/lli/Makefile stable/12/usr.bin/clang/llvm-ar/Makefile stable/12/usr.bin/clang/llvm-as/Makefile stable/12/usr.bin/clang/llvm-bcanalyzer/Makefile stable/12/usr.bin/clang/llvm-cov/Makefile stable/12/usr.bin/clang/llvm-cxxdump/Makefile stable/12/usr.bin/clang/llvm-cxxfilt/Makefile stable/12/usr.bin/clang/llvm-diff/Makefile stable/12/usr.bin/clang/llvm-dis/Makefile stable/12/usr.bin/clang/llvm-dwarfdump/Makefile stable/12/usr.bin/clang/llvm-extract/Makefile stable/12/usr.bin/clang/llvm-link/Makefile stable/12/usr.bin/clang/llvm-lto/Makefile stable/12/usr.bin/clang/llvm-lto2/Makefile stable/12/usr.bin/clang/llvm-mc/Makefile stable/12/usr.bin/clang/llvm-mca/Makefile stable/12/usr.bin/clang/llvm-modextract/Makefile stable/12/usr.bin/clang/llvm-nm/Makefile stable/12/usr.bin/clang/llvm-objcopy/Makefile stable/12/usr.bin/clang/llvm-objdump/Makefile stable/12/usr.bin/clang/llvm-pdbutil/Makefile stable/12/usr.bin/clang/llvm-profdata/Makefile stable/12/usr.bin/clang/llvm-rtdyld/Makefile stable/12/usr.bin/clang/llvm-symbolizer/Makefile stable/12/usr.bin/clang/llvm-tblgen/Makefile stable/12/usr.bin/clang/llvm-xray/Makefile stable/12/usr.bin/clang/opt/Makefile Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/clang/ (props changed) stable/12/contrib/llvm-project/compiler-rt/ (props changed) stable/12/contrib/llvm-project/libcxx/ (props changed) stable/12/contrib/llvm-project/libunwind/ (props changed) stable/12/contrib/llvm-project/lld/ (props changed) stable/12/contrib/llvm-project/lldb/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) stable/12/contrib/llvm-project/openmp/ (props changed) Modified: stable/12/MAINTAINERS ============================================================================== --- stable/12/MAINTAINERS Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/MAINTAINERS Tue Jan 7 19:49:10 2020 (r356462) @@ -37,14 +37,13 @@ subsystem login notes ----------------------------- atf freebsd-testing,jmmv,ngie Pre-commit review requested. ath(4) adrian Pre-commit review requested, send to freebsd-wireless@freebsd.org -contrib/compiler-rt dim Pre-commit review preferred. -contrib/libc++ dim Pre-commit review preferred. -contrib/libcxxrt dim Pre-commit review preferred. -contrib/llvm dim Pre-commit review preferred. -contrib/llvm/tools/lldb emaste Pre-commit review preferred. -contrib/netbsd-tests freebsd-testing,ngie Pre-commit review requested. -contrib/pjdfstest freebsd-testing,asomers,ngie,pjd Pre-commit review requested. -dev/usb/wlan adrian Pre-commit review requested, send to freebsd-wireless@freebsd.org +contrib/libcxxrt dim,emaste Pre-commit review preferred. +contrib/llvm-project/compiler-rt dim Pre-commit review preferred. +contrib/llvm-project/libcxx dim Pre-commit review preferred. +contrib/llvm-project/libunwind dim,emaste,jhb Pre-commit review preferred. +contrib/llvm-project/lldb dim,emaste Pre-commit review preferred. +contrib/llvm-project/llvm dim Pre-commit review preferred. +contrib/llvm-project/openmp dim,emaste Pre-commit review preferred. *env(3) secteam Due to the problematic security history of this code, please have patches reviewed by secteam. etc/mail gshapiro Pre-commit review requested. Keep in sync with -STABLE. Modified: stable/12/contrib/llvm-project/libcxx/include/__errc ============================================================================== --- head/contrib/llvm-project/libcxx/include/__errc Fri Dec 20 19:53:05 2019 (r355940) +++ stable/12/contrib/llvm-project/libcxx/include/__errc Tue Jan 7 19:49:10 2020 (r356462) @@ -45,7 +45,6 @@ enum class errc identifier_removed, // EIDRM illegal_byte_sequence, // EILSEQ inappropriate_io_control_operation, // ENOTTY - integrity_check_failed, // EINTEGRITY interrupted, // EINTR invalid_argument, // EINVAL invalid_seek, // ESPIPE @@ -143,7 +142,6 @@ _LIBCPP_DECLARE_STRONG_ENUM(errc) identifier_removed = EIDRM, illegal_byte_sequence = EILSEQ, inappropriate_io_control_operation = ENOTTY, - integrity_check_failed = EINTEGRITY, interrupted = EINTR, invalid_argument = EINVAL, invalid_seek = ESPIPE, Modified: stable/12/contrib/llvm-project/libcxx/include/errno.h ============================================================================== --- head/contrib/llvm-project/libcxx/include/errno.h Fri Dec 20 19:53:05 2019 (r355940) +++ stable/12/contrib/llvm-project/libcxx/include/errno.h Tue Jan 7 19:49:10 2020 (r356462) @@ -32,79 +32,49 @@ Macros: #ifdef __cplusplus -#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) || !defined(EINTEGRITY) +#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) -#if defined(ELAST) +#ifdef ELAST static const int __elast1 = ELAST+1; static const int __elast2 = ELAST+2; -static const int __elast3 = ELAST+3; #else static const int __elast1 = 104; static const int __elast2 = 105; -static const int __elast3 = 106; #endif -#if !defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) -#define ENOTRECOVERABLE __elast1 -#define EOWNERDEAD __elast2 -#define EINTEGRITY __elast3 -#if defined(ELAST) -#undef ELAST -#define ELAST EINTEGRITY -#endif +#ifdef ENOTRECOVERABLE -#elif !defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && defined(EINTEGRITY) -#define ENOTRECOVERABLE __elast1 -#define EOWNERDEAD __elast2 -#if defined(ELAST) -#undef ELAST -#define ELAST EOWNERDEAD -#endif - -#elif !defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) #define EOWNERDEAD __elast1 -#define EINTEGRITY __elast2 -#if defined(ELAST) -#undef ELAST -#define ELAST EINTEGRITY -#endif -#elif !defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && defined(EINTEGRITY) -#define EOWNERDEAD __elast1 -#if defined(ELAST) +#ifdef ELAST #undef ELAST #define ELAST EOWNERDEAD #endif -#elif defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) -#define ENOTRECOVERABLE __elast1 -#define EINTEGRITY __elast2 -#if defined(ELAST) -#undef ELAST -#define ELAST EINTEGRITY -#endif +#elif defined(EOWNERDEAD) -#elif defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && defined(EINTEGRITY) #define ENOTRECOVERABLE __elast1 -#if defined(ELAST) +#ifdef ELAST #undef ELAST #define ELAST ENOTRECOVERABLE #endif -#elif defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) -#define EINTEGRITY __elast1 -#if defined(ELAST) +#else // defined(EOWNERDEAD) + +#define EOWNERDEAD __elast1 +#define ENOTRECOVERABLE __elast2 +#ifdef ELAST #undef ELAST -#define ELAST EINTEGRITY +#define ELAST ENOTRECOVERABLE #endif -#endif // !defined(OWNERDEAD) && !defined(NOTRECOVERABLE) && !defined(INTEGRITY) +#endif // defined(EOWNERDEAD) -#endif // !defined(OWNERDEAD) || !defined(NOTRECOVERABLE) || !defined(INTEGRITY) +#endif // !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) // supply errno values likely to be missing, particularly on Windows @@ -420,10 +390,6 @@ static const int __elast3 = 106; #ifndef EMLINK #define EMLINK 9979 -#endif - -#ifndef EINTEGRITY -#define EINTEGRITY 9980 #endif #endif // __cplusplus Modified: stable/12/gnu/usr.bin/cc/include/Makefile ============================================================================== --- stable/12/gnu/usr.bin/cc/include/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/gnu/usr.bin/cc/include/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -6,7 +6,7 @@ INCSDIR=${INCLUDEDIR}/gcc/${GCCVER} -.PATH: ${GCCDIR}/config/${GCC_CPU} ${SRCTOP}/contrib/llvm/tools/clang/lib/Headers +.PATH: ${GCCDIR}/config/${GCC_CPU} ${SRCTOP}/contrib/llvm-project/clang/lib/Headers .if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64" INCS= ammintrin.h emmintrin.h mmintrin.h mm3dnow.h pmmintrin.h \ Modified: stable/12/lib/clang/clang.build.mk ============================================================================== --- stable/12/lib/clang/clang.build.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/clang.build.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -2,16 +2,8 @@ .include -.ifndef LLVM_SRCS -.error Please define LLVM_SRCS before including this file -.endif - .ifndef CLANG_SRCS .error Please define CLANG_SRCS before including this file -.endif - -.ifndef SRCDIR -.error Please define SRCDIR before including this file .endif CFLAGS+= -I${CLANG_SRCS}/include Modified: stable/12/lib/clang/clang.pre.mk ============================================================================== --- stable/12/lib/clang/clang.pre.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/clang.pre.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -2,6 +2,6 @@ .include "llvm.pre.mk" -CLANG_SRCS= ${LLVM_SRCS}/tools/clang +CLANG_SRCS= ${LLVM_BASE}/clang CLANG_TBLGEN?= clang-tblgen Modified: stable/12/lib/clang/libclang/Makefile ============================================================================== --- stable/12/lib/clang/libclang/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/libclang/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -18,7 +18,7 @@ CFLAGS.Targets.cpp+= -include ../freebsd_cc_version.h CXXFLAGS.Module.cpp+= -fpermissive .endif -SRCDIR= tools/clang/lib +SRCDIR= clang/lib # Explanation of different SRCS variants below: # SRCS_MIN: always required, even for bootstrap Modified: stable/12/lib/clang/liblldb/Makefile ============================================================================== --- stable/12/lib/clang/liblldb/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/liblldb/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ .include "../lldb.pre.mk" LIB= lldb -SRCDIR= tools/lldb/source +SRCDIR= lldb/source CFLAGS+= -I${LLDB_SRCS}/include CFLAGS+= -I${LLDB_SRCS}/source Modified: stable/12/lib/clang/libllvm/Makefile ============================================================================== --- stable/12/lib/clang/libllvm/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/libllvm/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -24,7 +24,7 @@ CFLAGS+= -I${LLVM_SRCS}/lib/Target/${arch} . endif .endfor -SRCDIR= lib +SRCDIR= llvm/lib # Explanation of different SRCS variants below: # SRCS_MIN: always required, even for bootstrap Modified: stable/12/lib/clang/libllvmminimal/Makefile ============================================================================== --- stable/12/lib/clang/libllvmminimal/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/libllvmminimal/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -5,7 +5,7 @@ LIB= llvmminimal INTERNALLIB= -SRCDIR= lib +SRCDIR= llvm/lib SRCS+= Demangle/ItaniumDemangle.cpp SRCS+= Support/APFloat.cpp SRCS+= Support/APInt.cpp Modified: stable/12/lib/clang/lldb.pre.mk ============================================================================== --- stable/12/lib/clang/lldb.pre.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/lldb.pre.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -2,4 +2,4 @@ .include "clang.pre.mk" -LLDB_SRCS= ${LLVM_SRCS}/tools/lldb +LLDB_SRCS= ${LLVM_BASE}/lldb Modified: stable/12/lib/clang/llvm.build.mk ============================================================================== --- stable/12/lib/clang/llvm.build.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/llvm.build.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -2,6 +2,10 @@ .include +.ifndef LLVM_BASE +.error Please define LLVM_BASE before including this file +.endif + .ifndef LLVM_SRCS .error Please define LLVM_SRCS before including this file .endif @@ -10,7 +14,7 @@ .error Please define SRCDIR before including this file .endif -.PATH: ${LLVM_SRCS}/${SRCDIR} +.PATH: ${LLVM_BASE}/${SRCDIR} CFLAGS+= -I${SRCTOP}/lib/clang/include CFLAGS+= -I${LLVM_SRCS}/include Modified: stable/12/lib/clang/llvm.pre.mk ============================================================================== --- stable/12/lib/clang/llvm.pre.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/clang/llvm.pre.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -1,5 +1,7 @@ + # $FreeBSD$ -LLVM_SRCS= ${SRCTOP}/contrib/llvm +LLVM_BASE= ${SRCTOP}/contrib/llvm-project +LLVM_SRCS= ${LLVM_BASE}/llvm LLVM_TBLGEN?= llvm-tblgen Modified: stable/12/lib/libblocksruntime/Makefile ============================================================================== --- stable/12/lib/libblocksruntime/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libblocksruntime/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -6,7 +6,7 @@ SHLIB_MAJOR=0 CFLAGS+=-I${.CURDIR} WARNS?= 2 -.PATH: ${SRCTOP}/contrib/compiler-rt/lib/BlocksRuntime +.PATH: ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/BlocksRuntime INCS= Block.h Block_private.h SRCS= data.c runtime.c Modified: stable/12/lib/libc++/Makefile ============================================================================== --- stable/12/lib/libc++/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libc++/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -4,8 +4,8 @@ PACKAGE= clibs _LIBCXXRTDIR= ${SRCTOP}/contrib/libcxxrt -HDRDIR= ${SRCTOP}/contrib/libc++/include -SRCDIR= ${SRCTOP}/contrib/libc++/src +HDRDIR= ${SRCTOP}/contrib/llvm-project/libcxx/include +SRCDIR= ${SRCTOP}/contrib/llvm-project/libcxx/src CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR} .if ${MACHINE_CPUARCH} == "arm" STATIC_CXXFLAGS+= -mlong-calls Modified: stable/12/lib/libc++experimental/Makefile ============================================================================== --- stable/12/lib/libc++experimental/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libc++experimental/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ .include PACKAGE= clibs -SRCDIR= ${SRCTOP}/contrib/libc++ +SRCDIR= ${SRCTOP}/contrib/llvm-project/libcxx LIB= c++experimental NO_PIC= Modified: stable/12/lib/libc/arm/aeabi/Makefile.inc ============================================================================== --- stable/12/lib/libc/arm/aeabi/Makefile.inc Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libc/arm/aeabi/Makefile.inc Tue Jan 7 19:49:10 2020 (r356462) @@ -21,7 +21,7 @@ SRCS+= aeabi_vfp_double.S \ # libc. This causes issues when other parts of libc call these functions. # We work around this by including these functions in libc but mark them as # hidden so users of libc will not pick up these versions. -.PATH: ${SRCTOP}/contrib/compiler-rt/lib/builtins/arm +.PATH: ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/builtins/arm SRCS+= aeabi_memcmp.S \ aeabi_memcpy.S \ Modified: stable/12/lib/libclang_rt/Makefile.inc ============================================================================== --- stable/12/lib/libclang_rt/Makefile.inc Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libclang_rt/Makefile.inc Tue Jan 7 19:49:10 2020 (r356462) @@ -10,7 +10,7 @@ CRTARCH?= armhf .else CRTARCH?= ${MACHINE_CPUARCH:C/amd64/x86_64/} .endif -CRTSRC= ${SRCTOP}/contrib/compiler-rt +CRTSRC= ${SRCTOP}/contrib/llvm-project/compiler-rt .PATH: ${CRTSRC}/lib Modified: stable/12/lib/libcompiler_rt/Makefile.inc ============================================================================== --- stable/12/lib/libcompiler_rt/Makefile.inc Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libcompiler_rt/Makefile.inc Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ CRTARCH= ${MACHINE_CPUARCH:C/amd64/x86_64/} -CRTSRC= ${SRCTOP}/contrib/compiler-rt/lib/builtins +CRTSRC= ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/builtins .PATH: ${CRTSRC}/${CRTARCH} .PATH: ${CRTSRC} Modified: stable/12/lib/libgcc_eh/Makefile.inc ============================================================================== --- stable/12/lib/libgcc_eh/Makefile.inc Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libgcc_eh/Makefile.inc Tue Jan 7 19:49:10 2020 (r356462) @@ -1,8 +1,8 @@ # $FreeBSD$ -COMPILERRTDIR= ${SRCTOP}/contrib/compiler-rt -UNWINDINCDIR= ${SRCTOP}/contrib/libunwind/include -UNWINDSRCDIR= ${SRCTOP}/contrib/libunwind/src +COMPILERRTDIR= ${SRCTOP}/contrib/llvm-project/compiler-rt +UNWINDINCDIR= ${SRCTOP}/contrib/llvm-project/libunwind/include +UNWINDSRCDIR= ${SRCTOP}/contrib/llvm-project/libunwind/src STATIC_CFLAGS+=${PICFLAG} -fvisibility=hidden -DVISIBILITY_HIDDEN @@ -33,5 +33,5 @@ STATIC_CXXFLAGS+= -fvisibility=hidden -fPIC # Probably need to just move this earlier or use CXXFLAGS .if ${MK_DIRDEPS_BUILD} == "yes" # Avoid dependency on lib/libc++ -CFLAGS+= -isystem ${SRCTOP}/contrib/libc++/include -nostdinc++ +CFLAGS+= -isystem ${SRCTOP}/contrib/llvm-project/libcxx/include -nostdinc++ .endif Modified: stable/12/lib/libomp/Makefile ============================================================================== --- stable/12/lib/libomp/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/lib/libomp/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -4,7 +4,7 @@ SHLIB_NAME= libomp.so -OMPSRC= ${SRCTOP}/contrib/openmp/runtime/src +OMPSRC= ${SRCTOP}/contrib/llvm-project/openmp/runtime/src ITTSRC= ${OMPSRC}/thirdparty/ittnotify .PATH: ${OMPSRC} .PATH: ${ITTSRC} Modified: stable/12/share/doc/llvm/Makefile ============================================================================== --- stable/12/share/doc/llvm/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/share/doc/llvm/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ SUBDIR= clang -SRCDIR= ${SRCTOP}/contrib/llvm +SRCDIR= ${SRCTOP}/contrib/llvm-project/llvm .PATH: ${SRCDIR} ${SRCDIR}/lib/Support Modified: stable/12/share/doc/llvm/clang/Makefile ============================================================================== --- stable/12/share/doc/llvm/clang/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/share/doc/llvm/clang/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -1,6 +1,6 @@ # $FreeBSD$ -SRCDIR= ${SRCTOP}/contrib/llvm/tools/clang +SRCDIR= ${SRCTOP}/contrib/llvm-project/clang .PATH: ${SRCDIR} Modified: stable/12/share/mk/bsd.clang-analyze.mk ============================================================================== --- stable/12/share/mk/bsd.clang-analyze.mk Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/share/mk/bsd.clang-analyze.mk Tue Jan 7 19:49:10 2020 (r356462) @@ -14,7 +14,7 @@ # html - generate html in obj.plist/ directories. # plist - generate xml obj.plist files. # See also: -# contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Analyses.def +# contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/Analyses.def # # CLANG_ANALYZE_OUTPUT_DIR Sets which directory output set by # CLANG_ANALYZE_OUTPUT is placed into. Modified: stable/12/stand/i386/boot2/Makefile ============================================================================== --- stable/12/stand/i386/boot2/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/stand/i386/boot2/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -79,7 +79,7 @@ boot2.bin: boot2.out ${OBJCOPY} -S -O binary boot2.out ${.TARGET} # For __ashldi3 -.PATH: ${SRCTOP}/contrib/compiler-rt/lib/builtins +.PATH: ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/builtins CFLAGS.ashldi3.c= -Wno-missing-prototypes -Wno-missing-declarations CLEANFILES+= ashldi3.o Modified: stable/12/stand/libsa/Makefile ============================================================================== --- stable/12/stand/libsa/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/stand/libsa/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -53,7 +53,7 @@ CFLAGS.clang+= -mno-movt .endif CFLAGS.clang+= -mfpu=none -.PATH: ${SRCTOP}/contrib/compiler-rt/lib/builtins/arm/ +.PATH: ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/builtins/arm/ SRCS+= aeabi_idivmod.S aeabi_ldivmod.S aeabi_uidivmod.S aeabi_uldivmod.S SRCS+= aeabi_memcmp.S aeabi_memcpy.S aeabi_memmove.S aeabi_memset.S .endif @@ -63,7 +63,7 @@ SRCS+= aeabi_memcmp.S aeabi_memcpy.S aeabi_memmove.S a .endif # Compiler support functions -.PATH: ${SRCTOP}/contrib/compiler-rt/lib/builtins/ +.PATH: ${SRCTOP}/contrib/llvm-project/compiler-rt/lib/builtins/ # __clzsi2 and ctzsi2 for various builtin functions SRCS+= clzsi2.c ctzsi2.c # Divide and modulus functions called by the compiler Modified: stable/12/sys/modules/aesni/Makefile ============================================================================== --- stable/12/sys/modules/aesni/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/sys/modules/aesni/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -1,7 +1,7 @@ # $FreeBSD$ .PATH: ${SRCTOP}/sys/crypto/aesni -.PATH: ${SRCTOP}/contrib/llvm/tools/clang/lib/Headers +.PATH: ${SRCTOP}/contrib/llvm-project/clang/lib/Headers KMOD= aesni SRCS= aesni.c Modified: stable/12/sys/modules/blake2/Makefile ============================================================================== --- stable/12/sys/modules/blake2/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/sys/modules/blake2/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ .PATH: ${SRCTOP}/sys/contrib/libb2 .PATH: ${SRCTOP}/sys/crypto/blake2 .PATH: ${SRCTOP}/sys/opencrypto -.PATH: ${SRCTOP}/contrib/llvm/tools/clang/lib/Headers +.PATH: ${SRCTOP}/contrib/llvm-project/clang/lib/Headers KMOD = blake2 Modified: stable/12/usr.bin/clang/bugpoint/Makefile ============================================================================== --- stable/12/usr.bin/clang/bugpoint/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/bugpoint/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= bugpoint -SRCDIR= tools/bugpoint +SRCDIR= llvm/tools/bugpoint SRCS+= BugDriver.cpp SRCS+= CrashDebugger.cpp SRCS+= ExecutionDriver.cpp Modified: stable/12/usr.bin/clang/clang-format/Makefile ============================================================================== --- stable/12/usr.bin/clang/clang-format/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/clang-format/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= clang-format MAN= -SRCDIR= tools/clang/tools/clang-format +SRCDIR= clang/tools/clang-format SRCS+= ClangFormat.cpp .include "../clang.prog.mk" Modified: stable/12/usr.bin/clang/clang-tblgen/Makefile ============================================================================== --- stable/12/usr.bin/clang/clang-tblgen/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/clang-tblgen/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= clang-tblgen MAN= -SRCDIR= tools/clang/utils/TableGen +SRCDIR= clang/utils/TableGen SRCS+= ClangASTNodesEmitter.cpp SRCS+= ClangAttrEmitter.cpp SRCS+= ClangCommentCommandInfoEmitter.cpp Modified: stable/12/usr.bin/clang/clang/Makefile ============================================================================== --- stable/12/usr.bin/clang/clang/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/clang/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -4,7 +4,7 @@ PROG_CXX= clang -SRCDIR= tools/clang/tools/driver +SRCDIR= clang/tools/driver SRCS+= cc1_main.cpp SRCS+= cc1as_main.cpp SRCS+= cc1gen_reproducer_main.cpp Modified: stable/12/usr.bin/clang/llc/Makefile ============================================================================== --- stable/12/usr.bin/clang/llc/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llc/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llc -SRCDIR= tools/llc +SRCDIR= llvm/tools/llc SRCS+= llc.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/lld/Makefile ============================================================================== --- stable/12/usr.bin/clang/lld/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/lld/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,8 +2,9 @@ .include -LLVM_SRCS= ${SRCTOP}/contrib/llvm -LLD_SRCS= ${LLVM_SRCS}/tools/lld +LLVM_BASE= ${SRCTOP}/contrib/llvm-project +LLVM_SRCS= ${LLVM_BASE}/llvm +LLD_SRCS= ${LLVM_BASE}/lld PACKAGE= lld PROG_CXX= ld.lld @@ -24,7 +25,7 @@ CFLAGS+= -I${LLD_SRCS}/include CFLAGS+= -I${.OBJDIR} CFLAGS+= -I${OBJTOP}/lib/clang/libllvm -SRCDIR= tools/lld +SRCDIR= lld SRCS+= Common/Args.cpp SRCS+= Common/ErrorHandler.cpp SRCS+= Common/Filesystem.cpp Modified: stable/12/usr.bin/clang/lldb-tblgen/Makefile ============================================================================== --- stable/12/usr.bin/clang/lldb-tblgen/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/lldb-tblgen/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= lldb-tblgen MAN= -SRCDIR= tools/lldb/utils/TableGen +SRCDIR= lldb/utils/TableGen SRCS+= LLDBOptionDefEmitter.cpp SRCS+= LLDBTableGen.cpp Modified: stable/12/usr.bin/clang/lldb/Makefile ============================================================================== --- stable/12/usr.bin/clang/lldb/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/lldb/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -10,7 +10,7 @@ PROG_CXX= lldb CFLAGS+= -I${LLDB_SRCS}/include CFLAGS+= -I${.OBJDIR} -SRCDIR= tools/lldb/tools/driver +SRCDIR= lldb/tools/driver SRCS+= Driver.cpp .include "${SRCTOP}/lib/clang/clang.build.mk" Modified: stable/12/usr.bin/clang/lli/Makefile ============================================================================== --- stable/12/usr.bin/clang/lli/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/lli/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= lli -SRCDIR= tools/lli +SRCDIR= llvm/tools/lli SRCS+= lli.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-ar/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-ar/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-ar/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-ar -SRCDIR= tools/llvm-ar +SRCDIR= llvm/tools/llvm-ar SRCS+= llvm-ar.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-as/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-as/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-as/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-as -SRCDIR= tools/llvm-as +SRCDIR= llvm/tools/llvm-as SRCS+= llvm-as.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-bcanalyzer/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-bcanalyzer/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-bcanalyzer/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-bcanalyzer -SRCDIR= tools/llvm-bcanalyzer +SRCDIR= llvm/tools/llvm-bcanalyzer SRCS+= llvm-bcanalyzer.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-cov/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-cov/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-cov/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -8,7 +8,7 @@ LINKS= ${BINDIR}/llvm-cov ${BINDIR}/gcov MLINKS= llvm-cov.1 gcov.1 .endif -SRCDIR= tools/llvm-cov +SRCDIR= llvm/tools/llvm-cov SRCS+= CodeCoverage.cpp SRCS+= CoverageExporterJson.cpp SRCS+= CoverageExporterLcov.cpp Modified: stable/12/usr.bin/clang/llvm-cxxdump/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-cxxdump/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-cxxdump/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-cxxdump MAN= -SRCDIR= tools/llvm-cxxdump +SRCDIR= llvm/tools/llvm-cxxdump SRCS+= Error.cpp SRCS+= llvm-cxxdump.cpp Modified: stable/12/usr.bin/clang/llvm-cxxfilt/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-cxxfilt/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-cxxfilt/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-cxxfilt MAN= -SRCDIR= tools/llvm-cxxfilt +SRCDIR= llvm/tools/llvm-cxxfilt SRCS+= llvm-cxxfilt.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-diff/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-diff/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-diff/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-diff -SRCDIR= tools/llvm-diff +SRCDIR= llvm/tools/llvm-diff SRCS+= DiffConsumer.cpp SRCS+= DiffLog.cpp SRCS+= DifferenceEngine.cpp Modified: stable/12/usr.bin/clang/llvm-dis/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-dis/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-dis/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-dis -SRCDIR= tools/llvm-dis +SRCDIR= llvm/tools/llvm-dis SRCS+= llvm-dis.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-dwarfdump/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-dwarfdump/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-dwarfdump/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-dwarfdump -SRCDIR= tools/llvm-dwarfdump +SRCDIR= llvm/tools/llvm-dwarfdump SRCS+= Statistics.cpp SRCS+= llvm-dwarfdump.cpp Modified: stable/12/usr.bin/clang/llvm-extract/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-extract/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-extract/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-extract -SRCDIR= tools/llvm-extract +SRCDIR= llvm/tools/llvm-extract SRCS+= llvm-extract.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-link/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-link/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-link/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-link -SRCDIR= tools/llvm-link +SRCDIR= llvm/tools/llvm-link SRCS+= llvm-link.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-lto/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-lto/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-lto/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-lto MAN= -SRCDIR= tools/llvm-lto +SRCDIR= llvm/tools/llvm-lto SRCS= llvm-lto.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-lto2/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-lto2/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-lto2/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-lto2 MAN= -SRCDIR= tools/llvm-lto2 +SRCDIR= llvm/tools/llvm-lto2 SRCS= llvm-lto2.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-mc/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-mc/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-mc/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-mc MAN= -SRCDIR= tools/llvm-mc +SRCDIR= llvm/tools/llvm-mc SRCS+= Disassembler.cpp SRCS+= llvm-mc.cpp Modified: stable/12/usr.bin/clang/llvm-mca/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-mca/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-mca/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-mca -SRCDIR= tools/llvm-mca +SRCDIR= llvm/tools/llvm-mca SRCS+= CodeRegion.cpp SRCS+= CodeRegionGenerator.cpp SRCS+= PipelinePrinter.cpp @@ -18,7 +18,7 @@ SRCS+= Views/TimelineView.cpp SRCS+= Views/View.cpp SRCS+= llvm-mca.cpp -CFLAGS+= -I${LLVM_SRCS}/${SRCDIR} +CFLAGS+= -I${LLVM_BASE}/${SRCDIR} LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-modextract/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-modextract/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-modextract/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-modextract MAN= -SRCDIR= tools/llvm-modextract +SRCDIR= llvm/tools/llvm-modextract SRCS= llvm-modextract.cpp .include "../llvm.prog.mk" Modified: stable/12/usr.bin/clang/llvm-nm/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-nm/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-nm/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-nm -SRCDIR= tools/llvm-nm +SRCDIR= llvm/tools/llvm-nm SRCS+= llvm-nm.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-objcopy/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-objcopy/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-objcopy/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-objcopy MAN= -SRCDIR= tools/llvm-objcopy +SRCDIR= llvm/tools/llvm-objcopy SRCS+= Buffer.cpp SRCS+= COFF/COFFObjcopy.cpp SRCS+= COFF/Object.cpp @@ -21,15 +21,15 @@ SRCS+= llvm-objcopy.cpp .include "${SRCTOP}/lib/clang/llvm.pre.mk" CFLAGS+= -I${.OBJDIR} -CFLAGS+= -I${LLVM_SRCS}/${SRCDIR} +CFLAGS+= -I${LLVM_BASE}/${SRCDIR} .include "${SRCTOP}/lib/clang/llvm.build.mk" .for hdr in ObjcopyOpts StripOpts -${hdr}.inc: ${LLVM_SRCS}/${SRCDIR}/${hdr}.td +${hdr}.inc: ${LLVM_BASE}/${SRCDIR}/${hdr}.td ${LLVM_TBLGEN} -gen-opt-parser-defs \ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \ - ${LLVM_SRCS}/${SRCDIR}/${hdr}.td + ${LLVM_BASE}/${SRCDIR}/${hdr}.td TGHDRS+= ${hdr}.inc .endfor Modified: stable/12/usr.bin/clang/llvm-objdump/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-objdump/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-objdump/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-objdump -SRCDIR= tools/llvm-objdump +SRCDIR= llvm/tools/llvm-objdump SRCS+= COFFDump.cpp SRCS+= ELFDump.cpp SRCS+= MachODump.cpp Modified: stable/12/usr.bin/clang/llvm-pdbutil/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-pdbutil/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-pdbutil/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-pdbutil -SRCDIR= tools/llvm-pdbutil +SRCDIR= llvm/tools/llvm-pdbutil SRCS+= BytesOutputStyle.cpp SRCS+= DumpOutputStyle.cpp SRCS+= ExplainOutputStyle.cpp Modified: stable/12/usr.bin/clang/llvm-profdata/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-profdata/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-profdata/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-profdata -SRCDIR= tools/llvm-profdata +SRCDIR= llvm/tools/llvm-profdata SRCS+= llvm-profdata.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-rtdyld/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-rtdyld/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-rtdyld/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-rtdyld MAN= -SRCDIR= tools/llvm-rtdyld +SRCDIR= llvm/tools/llvm-rtdyld SRCS+= llvm-rtdyld.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-symbolizer/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-symbolizer/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-symbolizer/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-symbolizer -SRCDIR= tools/llvm-symbolizer +SRCDIR= llvm/tools/llvm-symbolizer SRCS+= llvm-symbolizer.cpp LIBADD+= z Modified: stable/12/usr.bin/clang/llvm-tblgen/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-tblgen/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-tblgen/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= llvm-tblgen -SRCDIR= utils/TableGen +SRCDIR= llvm/utils/TableGen SRCS+= AsmMatcherEmitter.cpp SRCS+= AsmWriterEmitter.cpp SRCS+= AsmWriterInst.cpp Modified: stable/12/usr.bin/clang/llvm-xray/Makefile ============================================================================== --- stable/12/usr.bin/clang/llvm-xray/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/llvm-xray/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -3,7 +3,7 @@ PROG_CXX= llvm-xray MAN= -SRCDIR= tools/llvm-xray +SRCDIR= llvm/tools/llvm-xray SRCS+= func-id-helper.cpp SRCS+= llvm-xray.cpp SRCS+= xray-account.cpp Modified: stable/12/usr.bin/clang/opt/Makefile ============================================================================== --- stable/12/usr.bin/clang/opt/Makefile Tue Jan 7 18:42:53 2020 (r356461) +++ stable/12/usr.bin/clang/opt/Makefile Tue Jan 7 19:49:10 2020 (r356462) @@ -2,7 +2,7 @@ PROG_CXX= opt -SRCDIR= tools/opt +SRCDIR= llvm/tools/opt SRCS+= AnalysisWrappers.cpp SRCS+= BreakpointPrinter.cpp SRCS+= Debugify.cpp From owner-svn-src-stable@freebsd.org Tue Jan 7 19:54:30 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 145F91F11C3; Tue, 7 Jan 2020 19:54:30 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sjks5crsz4XhP; Tue, 7 Jan 2020 19:54:29 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A21064402; Tue, 7 Jan 2020 19:54:29 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007JsTl4097053; Tue, 7 Jan 2020 19:54:29 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007JsTjx097052; Tue, 7 Jan 2020 19:54:29 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001071954.007JsTjx097052@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 19:54:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356464 - in stable/12/contrib/llvm-project: . clang clang/lib/Basic compiler-rt libcxx libunwind lld lldb llvm llvm/lib/Target/WebAssembly/InstPrinter openmp X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12/contrib/llvm-project: . clang clang/lib/Basic compiler-rt libcxx libunwind lld lldb llvm llvm/lib/Target/WebAssembly/InstPrinter openmp X-SVN-Commit-Revision: 356464 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 19:54:30 -0000 Author: dim Date: Tue Jan 7 19:54:29 2020 New Revision: 356464 URL: https://svnweb.freebsd.org/changeset/base/356464 Log: MFC r355948: Bootstrap mergeinfo for contrib/llvm-project Merge (record-only) the following paths to contrib/llvm-project: * ^/vendor/llvm-project/master * ^/vendor/llvm-project/release-8.x * ^/vendor/llvm-project/release-9.x MFC r355951: Merge empty dir updates from r355950 in vendor/llvm-project. MFC r355957: Merge diff elimination updates from r355953 into vendor/llvm-project. MFC r355959: Consolidate FREEBSD-Xlist files of different llvm sub-projects into one. Added: stable/12/contrib/llvm-project/FREEBSD-Xlist - copied unchanged from r355959, head/contrib/llvm-project/FREEBSD-Xlist Deleted: stable/12/contrib/llvm-project/clang/FREEBSD-Xlist stable/12/contrib/llvm-project/compiler-rt/FREEBSD-Xlist stable/12/contrib/llvm-project/libcxx/FREEBSD-Xlist stable/12/contrib/llvm-project/libcxx/FREEBSD-upgrade stable/12/contrib/llvm-project/libunwind/FREEBSD-Xlist stable/12/contrib/llvm-project/lld/FREEBSD-Xlist stable/12/contrib/llvm-project/lldb/FREEBSD-Xlist stable/12/contrib/llvm-project/llvm/FREEBSD-Xlist stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/InstPrinter/ stable/12/contrib/llvm-project/openmp/FREEBSD-Xlist Modified: stable/12/contrib/llvm-project/clang/lib/Basic/Version.cpp Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/clang/ (props changed) stable/12/contrib/llvm-project/compiler-rt/ (props changed) stable/12/contrib/llvm-project/libcxx/ (props changed) stable/12/contrib/llvm-project/libunwind/ (props changed) stable/12/contrib/llvm-project/lld/ (props changed) stable/12/contrib/llvm-project/lldb/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) stable/12/contrib/llvm-project/openmp/ (props changed) Copied: stable/12/contrib/llvm-project/FREEBSD-Xlist (from r355959, head/contrib/llvm-project/FREEBSD-Xlist) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/contrib/llvm-project/FREEBSD-Xlist Tue Jan 7 19:54:29 2020 (r356464, copy of r355959, head/contrib/llvm-project/FREEBSD-Xlist) @@ -0,0 +1,1000 @@ +# $FreeBSD$ +.arcconfig +.clang-format +.clang-tidy +.gitignore +README.md +clang/.arcconfig +clang/.clang-format +clang/.clang-tidy +clang/.gitignore +clang/CMakeLists.txt +clang/CODE_OWNERS.TXT +clang/INPUTS/ +clang/INSTALL.txt +clang/ModuleInfo.txt +clang/NOTES.txt +clang/README.txt +clang/bindings/ +clang/cmake/ +clang/docs/ +clang/examples/ +clang/include/CMakeLists.txt +clang/include/clang/AST/CMakeLists.txt +clang/include/clang/Basic/CMakeLists.txt +clang/include/clang/Basic/Version.inc.in +clang/include/clang/CMakeLists.txt +clang/include/clang/Config/ +clang/include/clang/Driver/CMakeLists.txt +clang/include/clang/Parse/CMakeLists.txt +clang/include/clang/Sema/CMakeLists.txt +clang/include/clang/Serialization/CMakeLists.txt +clang/include/clang/StaticAnalyzer/Checkers/CMakeLists.txt +clang/lib/ARCMigrate/CMakeLists.txt +clang/lib/AST/CMakeLists.txt +clang/lib/ASTMatchers/CMakeLists.txt +clang/lib/ASTMatchers/Dynamic/CMakeLists.txt +clang/lib/Analysis/CMakeLists.txt +clang/lib/Analysis/plugins/CMakeLists.txt +clang/lib/Analysis/plugins/CheckerDependencyHandling/CMakeLists.txt +clang/lib/Analysis/plugins/CheckerOptionHandling/CMakeLists.txt +clang/lib/Analysis/plugins/SampleAnalyzer/CMakeLists.txt +clang/lib/Basic/CMakeLists.txt +clang/lib/CMakeLists.txt +clang/lib/CodeGen/CMakeLists.txt +clang/lib/CodeGen/README.txt +clang/lib/CrossTU/CMakeLists.txt +clang/lib/DirectoryWatcher/CMakeLists.txt +clang/lib/Driver/CMakeLists.txt +clang/lib/Edit/CMakeLists.txt +clang/lib/Format/CMakeLists.txt +clang/lib/Frontend/CMakeLists.txt +clang/lib/Frontend/Rewrite/CMakeLists.txt +clang/lib/FrontendTool/CMakeLists.txt +clang/lib/Headers/CMakeLists.txt +clang/lib/Index/CMakeLists.txt +clang/lib/Lex/CMakeLists.txt +clang/lib/Parse/CMakeLists.txt +clang/lib/Rewrite/CMakeLists.txt +clang/lib/Sema/CMakeLists.txt +clang/lib/Serialization/CMakeLists.txt +clang/lib/StaticAnalyzer/CMakeLists.txt +clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt +clang/lib/StaticAnalyzer/Core/CMakeLists.txt +clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt +clang/lib/StaticAnalyzer/README.txt +clang/lib/Tooling/ASTDiff/CMakeLists.txt +clang/lib/Tooling/CMakeLists.txt +clang/lib/Tooling/Core/CMakeLists.txt +clang/lib/Tooling/DependencyScanning/CMakeLists.txt +clang/lib/Tooling/Inclusions/CMakeLists.txt +clang/lib/Tooling/Refactoring/CMakeLists.txt +clang/lib/Tooling/Syntax/CMakeLists.txt +clang/runtime/ +clang/test/ +clang/tools/CMakeLists.txt +clang/tools/arcmt-test/ +clang/tools/c-arcmt-test/ +clang/tools/c-index-test/ +clang/tools/clang-check/ +clang/tools/clang-diff/ +clang/tools/clang-extdef-mapping/ +clang/tools/clang-format/CMakeLists.txt +clang/tools/clang-format/clang-format-bbedit.applescript +clang/tools/clang-format/clang-format-diff.py +clang/tools/clang-format/clang-format-sublime.py +clang/tools/clang-format/clang-format-test.el +clang/tools/clang-format/clang-format.el +clang/tools/clang-format/clang-format.py +clang/tools/clang-format/fuzzer/ +clang/tools/clang-format/git-clang-format +clang/tools/clang-format-vs/ +clang/tools/clang-fuzzer/ +clang/tools/clang-import-test/ +clang/tools/clang-offload-bundler/ +clang/tools/clang-refactor/ +clang/tools/clang-rename/ +clang/tools/clang-scan-deps/ +clang/tools/clang-shlib/ +clang/tools/diag-build/ +clang/tools/diagtool/ +clang/tools/driver/CMakeLists.txt +clang/tools/driver/Info.plist.in +clang/tools/libclang/ +clang/tools/scan-build/ +clang/tools/scan-build-py/ +clang/tools/scan-view/ +clang/unittests/ +clang/utils/ABITest/ +clang/utils/CIndex/ +clang/utils/CaptureCmd +clang/utils/ClangDataFormat.py +clang/utils/ClangVisualizers/ +clang/utils/CmpDriver +clang/utils/FindSpecRefs +clang/utils/FuzzTest +clang/utils/TableGen/CMakeLists.txt +clang/utils/TestUtils/ +clang/utils/VtableTest/ +clang/utils/analyzer/ +clang/utils/bash-autocomplete.sh +clang/utils/builtin-defines.c +clang/utils/check_cfc/ +clang/utils/clangdiag.py +clang/utils/creduce-clang-crash.py +clang/utils/find-unused-diagnostics.sh +clang/utils/hmaptool/ +clang/utils/make-ast-dump-check.sh +clang/utils/modfuzz.py +clang/utils/perf-training/ +clang/utils/token-delta.py +clang/utils/valgrind/ +clang/www/ +clang-tools-extra/ +compiler-rt/.arcconfig +compiler-rt/.gitignore +compiler-rt/CMakeLists.txt +compiler-rt/CODE_OWNERS.TXT +compiler-rt/cmake/ +compiler-rt/docs/ +compiler-rt/include/CMakeLists.txt +compiler-rt/lib/CMakeLists.txt +compiler-rt/lib/asan/.clang-format +compiler-rt/lib/asan/CMakeLists.txt +compiler-rt/lib/asan/scripts/ +compiler-rt/lib/asan/tests/ +compiler-rt/lib/builtins/CMakeLists.txt +compiler-rt/lib/builtins/Darwin-excludes/ +compiler-rt/lib/builtins/macho_embedded/ +compiler-rt/lib/cfi/CMakeLists.txt +compiler-rt/lib/crt/CMakeLists.txt +compiler-rt/lib/dfsan/.clang-format +compiler-rt/lib/dfsan/CMakeLists.txt +compiler-rt/lib/dfsan/scripts/ +compiler-rt/lib/fuzzer/CMakeLists.txt +compiler-rt/lib/fuzzer/afl/ +compiler-rt/lib/fuzzer/build.sh +compiler-rt/lib/fuzzer/dataflow/ +compiler-rt/lib/fuzzer/scripts/ +compiler-rt/lib/fuzzer/standalone/ +compiler-rt/lib/fuzzer/tests/ +compiler-rt/lib/gwp_asan/CMakeLists.txt +compiler-rt/lib/gwp_asan/tests/ +compiler-rt/lib/hwasan/.clang-format +compiler-rt/lib/hwasan/CMakeLists.txt +compiler-rt/lib/interception/.clang-format +compiler-rt/lib/interception/CMakeLists.txt +compiler-rt/lib/interception/tests/ +compiler-rt/lib/lsan/.clang-format +compiler-rt/lib/lsan/CMakeLists.txt +compiler-rt/lib/msan/.clang-format +compiler-rt/lib/msan/CMakeLists.txt +compiler-rt/lib/msan/tests/ +compiler-rt/lib/profile/CMakeLists.txt +compiler-rt/lib/safestack/.clang-format +compiler-rt/lib/safestack/CMakeLists.txt +compiler-rt/lib/sanitizer_common/.clang-format +compiler-rt/lib/sanitizer_common/.clang-tidy +compiler-rt/lib/sanitizer_common/CMakeLists.txt +compiler-rt/lib/sanitizer_common/scripts/ +compiler-rt/lib/sanitizer_common/tests/ +compiler-rt/lib/scudo/CMakeLists.txt +compiler-rt/lib/scudo/standalone/CMakeLists.txt +compiler-rt/lib/scudo/standalone/tests/ +compiler-rt/lib/stats/CMakeLists.txt +compiler-rt/lib/tsan/.clang-format +compiler-rt/lib/tsan/CMakeLists.txt +compiler-rt/lib/tsan/analyze_libtsan.sh +compiler-rt/lib/tsan/check_analyze.sh +compiler-rt/lib/tsan/check_cmake.sh +compiler-rt/lib/tsan/dd/CMakeLists.txt +compiler-rt/lib/tsan/go/build.bat +compiler-rt/lib/tsan/go/buildgo.sh +compiler-rt/lib/tsan/tests/ +compiler-rt/lib/ubsan/CMakeLists.txt +compiler-rt/lib/ubsan_minimal/CMakeLists.txt +compiler-rt/lib/xray/CMakeLists.txt +compiler-rt/lib/xray/tests/ +compiler-rt/test/ +compiler-rt/unittests/ +compiler-rt/utils/ +compiler-rt/www/ +debuginfo-tests/ +libclc/ +libcxx/.arcconfig +libcxx/.clang-format +libcxx/.gitignore +libcxx/CMakeLists.txt +libcxx/NOTES.TXT +libcxx/TODO.TXT +libcxx/appveyor-reqs-install.cmd +libcxx/appveyor.yml +libcxx/benchmarks/ +libcxx/cmake/ +libcxx/docs/ +libcxx/fuzzing/ +libcxx/include/CMakeLists.txt +libcxx/include/__config_site.in +libcxx/include/support/ +libcxx/lib/ +libcxx/src/support/solaris/ +libcxx/src/support/win32/ +libcxx/test/ +libcxx/utils/ +libcxx/www/ +libcxxabi/ +libunwind/.arcconfig +libunwind/.clang-format +libunwind/CMakeLists.txt +libunwind/cmake/ +libunwind/docs/ +libunwind/src/CMakeLists.txt +libunwind/test/ +lld/MinGW/ +lld/cmake/ +lld/test/ +lld/unittests/ +lld/utils/ +lld/wasm/ +lldb/.arcconfig +lldb/.clang-format +lldb/.gitignore +lldb/CMakeLists.txt +lldb/CODE_OWNERS.txt +lldb/INSTALL.txt +lldb/cmake/ +lldb/docs/.htaccess +lldb/docs/CMakeLists.txt +lldb/docs/_static/ +lldb/docs/conf.py +lldb/docs/doxygen-mainpage.dox +lldb/docs/doxygen.cfg.in +lldb/docs/index.rst +lldb/docs/lldb-for-gdb-users.txt +lldb/docs/lldb-gdb-remote.txt +lldb/docs/lldb-platform-packets.txt +lldb/docs/resources/ +lldb/docs/status/ +lldb/docs/structured_data/ +lldb/docs/testsuite/ +lldb/docs/use/ +lldb/examples/ +lldb/include/lldb/Host/Config.h +lldb/include/lldb/Host/android/ +lldb/include/lldb/Host/linux/ +lldb/include/lldb/Host/macosx/ +lldb/include/lldb/Host/windows/ +lldb/lit/ +lldb/lldb.xcodeproj/ +lldb/lldb.xcworkspace/ +lldb/packages/ +lldb/resources/ +lldb/scripts/ +lldb/source/API/CMakeLists.txt +lldb/source/Breakpoint/CMakeLists.txt +lldb/source/CMakeLists.txt +lldb/source/Commands/CMakeLists.txt +lldb/source/Core/CMakeLists.txt +lldb/source/DataFormatters/CMakeLists.txt +lldb/source/Expression/CMakeLists.txt +lldb/source/Host/CMakeLists.txt +lldb/source/Host/android/ +lldb/source/Host/linux/ +lldb/source/Host/macosx/ +lldb/source/Host/windows/ +lldb/source/Initialization/CMakeLists.txt +lldb/source/Interpreter/CMakeLists.txt +lldb/source/Plugins/ABI/CMakeLists.txt +lldb/source/Plugins/ABI/MacOSX-arm/CMakeLists.txt +lldb/source/Plugins/ABI/MacOSX-arm64/CMakeLists.txt +lldb/source/Plugins/ABI/MacOSX-i386/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-arm/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-arm64/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-hexagon/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-i386/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-mips/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-mips64/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-ppc/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-ppc64/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-s390x/CMakeLists.txt +lldb/source/Plugins/ABI/SysV-x86_64/CMakeLists.txt +lldb/source/Plugins/ABI/Windows-x86_64/CMakeLists.txt +lldb/source/Plugins/Architecture/Arm/CMakeLists.txt +lldb/source/Plugins/Architecture/CMakeLists.txt +lldb/source/Plugins/Architecture/Mips/CMakeLists.txt +lldb/source/Plugins/Architecture/PPC64/CMakeLists.txt +lldb/source/Plugins/CMakeLists.txt +lldb/source/Plugins/Disassembler/CMakeLists.txt +lldb/source/Plugins/Disassembler/llvm/CMakeLists.txt +lldb/source/Plugins/DynamicLoader/CMakeLists.txt +lldb/source/Plugins/DynamicLoader/Darwin-Kernel/ +lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/CMakeLists.txt +lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/ +lldb/source/Plugins/DynamicLoader/POSIX-DYLD/CMakeLists.txt +lldb/source/Plugins/DynamicLoader/Static/CMakeLists.txt +lldb/source/Plugins/DynamicLoader/Windows-DYLD/CMakeLists.txt +lldb/source/Plugins/ExpressionParser/CMakeLists.txt +lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt +lldb/source/Plugins/Instruction/ARM/CMakeLists.txt +lldb/source/Plugins/Instruction/ARM64/CMakeLists.txt +lldb/source/Plugins/Instruction/CMakeLists.txt +lldb/source/Plugins/Instruction/MIPS/CMakeLists.txt +lldb/source/Plugins/Instruction/MIPS64/CMakeLists.txt +lldb/source/Plugins/Instruction/PPC64/CMakeLists.txt +lldb/source/Plugins/InstrumentationRuntime/ASan/CMakeLists.txt +lldb/source/Plugins/InstrumentationRuntime/CMakeLists.txt +lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/CMakeLists.txt +lldb/source/Plugins/InstrumentationRuntime/TSan/CMakeLists.txt +lldb/source/Plugins/InstrumentationRuntime/UBSan/CMakeLists.txt +lldb/source/Plugins/JITLoader/CMakeLists.txt +lldb/source/Plugins/JITLoader/GDB/CMakeLists.txt +lldb/source/Plugins/Language/CMakeLists.txt +lldb/source/Plugins/Language/CPlusPlus/CMakeLists.txt +lldb/source/Plugins/Language/ClangCommon/CMakeLists.txt +lldb/source/Plugins/Language/ObjC/CMakeLists.txt +lldb/source/Plugins/Language/ObjCPlusPlus/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/Go/ +lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/ObjC/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/RenderScript/CMakeLists.txt +lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/CMakeLists.txt +lldb/source/Plugins/MemoryHistory/CMakeLists.txt +lldb/source/Plugins/MemoryHistory/asan/CMakeLists.txt +lldb/source/Plugins/ObjectContainer/BSD-Archive/CMakeLists.txt +lldb/source/Plugins/ObjectContainer/CMakeLists.txt +lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ +lldb/source/Plugins/ObjectFile/Breakpad/CMakeLists.txt +lldb/source/Plugins/ObjectFile/CMakeLists.txt +lldb/source/Plugins/ObjectFile/ELF/CMakeLists.txt +lldb/source/Plugins/ObjectFile/JIT/CMakeLists.txt +lldb/source/Plugins/ObjectFile/Mach-O/ +lldb/source/Plugins/ObjectFile/PECOFF/ +lldb/source/Plugins/OperatingSystem/CMakeLists.txt +lldb/source/Plugins/OperatingSystem/Python/CMakeLists.txt +lldb/source/Plugins/Platform/Android/ +lldb/source/Plugins/Platform/CMakeLists.txt +lldb/source/Plugins/Platform/FreeBSD/CMakeLists.txt +lldb/source/Plugins/Platform/Linux/ +lldb/source/Plugins/Platform/MacOSX/ +lldb/source/Plugins/Platform/NetBSD/CMakeLists.txt +lldb/source/Plugins/Platform/OpenBSD/CMakeLists.txt +lldb/source/Plugins/Platform/POSIX/CMakeLists.txt +lldb/source/Plugins/Platform/Windows/ +lldb/source/Plugins/Platform/gdb-server/CMakeLists.txt +lldb/source/Plugins/Process/CMakeLists.txt +lldb/source/Plugins/Process/FreeBSD/CMakeLists.txt +lldb/source/Plugins/Process/Linux/ +lldb/source/Plugins/Process/MacOSX-Kernel/ +lldb/source/Plugins/Process/NetBSD/CMakeLists.txt +lldb/source/Plugins/Process/POSIX/CMakeLists.txt +lldb/source/Plugins/Process/Utility/CMakeLists.txt +lldb/source/Plugins/Process/Windows/ +lldb/source/Plugins/Process/elf-core/CMakeLists.txt +lldb/source/Plugins/Process/gdb-remote/CMakeLists.txt +lldb/source/Plugins/Process/mach-core/ +lldb/source/Plugins/Process/minidump/CMakeLists.txt +lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt +lldb/source/Plugins/ScriptInterpreter/None/CMakeLists.txt +lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt +lldb/source/Plugins/StructuredData/CMakeLists.txt +lldb/source/Plugins/StructuredData/DarwinLog/CMakeLists.txt +lldb/source/Plugins/SymbolFile/Breakpad/CMakeLists.txt +lldb/source/Plugins/SymbolFile/CMakeLists.txt +lldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt +lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt +lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt +lldb/source/Plugins/SymbolFile/Symtab/CMakeLists.txt +lldb/source/Plugins/SymbolVendor/CMakeLists.txt +lldb/source/Plugins/SymbolVendor/ELF/CMakeLists.txt +lldb/source/Plugins/SymbolVendor/MacOSX/ +lldb/source/Plugins/SystemRuntime/ +lldb/source/Plugins/UnwindAssembly/CMakeLists.txt +lldb/source/Plugins/UnwindAssembly/InstEmulation/CMakeLists.txt +lldb/source/Plugins/UnwindAssembly/x86/CMakeLists.txt +lldb/source/Symbol/CMakeLists.txt +lldb/source/Target/CMakeLists.txt +lldb/source/Utility/CMakeLists.txt +lldb/test/ +lldb/third_party/ +lldb/tools/CMakeLists.txt +lldb/tools/argdumper/CMakeLists.txt +lldb/tools/darwin-debug/ +lldb/tools/darwin-threads/ +lldb/tools/debugserver/ +lldb/tools/driver/CMakeLists.txt +lldb/tools/driver/lldb-Info.plist +lldb/tools/intel-features/ +lldb/tools/lldb-instr/CMakeLists.txt +lldb/tools/lldb-mi/CMakeLists.txt +lldb/tools/lldb-mi/lldb-Info.plist +lldb/tools/lldb-perf/ +lldb/tools/lldb-server/CMakeLists.txt +lldb/tools/lldb-test/ +lldb/tools/lldb-vscode/ +lldb/unittests/ +lldb/use_lldb_suite_root.py +lldb/utils/TableGen/CMakeLists.txt +lldb/utils/git-svn/ +lldb/utils/lit-cpuid/ +lldb/utils/lldb-dotest/ +lldb/utils/lui/ +lldb/utils/misc/ +lldb/utils/sync-source/ +lldb/utils/test/ +lldb/utils/vim-lldb/ +llgo/ +llvm/.arcconfig +llvm/.clang-format +llvm/.clang-tidy +llvm/.gitattributes +llvm/.gitignore +llvm/CMakeLists.txt +llvm/CODE_OWNERS.TXT +llvm/CREDITS.TXT +llvm/LLVMBuild.txt +llvm/README.txt +llvm/RELEASE_TESTERS.TXT +llvm/benchmarks/ +llvm/bindings/ +llvm/cmake/ +llvm/configure +llvm/docs/ +llvm/examples/ +llvm/include/llvm/CMakeLists.txt +llvm/include/llvm/Config/ +llvm/include/llvm/IR/CMakeLists.txt +llvm/include/llvm/Support/CMakeLists.txt +llvm/include/llvm/Support/LICENSE.TXT +llvm/lib/Analysis/CMakeLists.txt +llvm/lib/Analysis/LLVMBuild.txt +llvm/lib/Analysis/README.txt +llvm/lib/AsmParser/CMakeLists.txt +llvm/lib/AsmParser/LLVMBuild.txt +llvm/lib/BinaryFormat/CMakeLists.txt +llvm/lib/BinaryFormat/LLVMBuild.txt +llvm/lib/Bitcode/CMakeLists.txt +llvm/lib/Bitcode/LLVMBuild.txt +llvm/lib/Bitcode/Reader/CMakeLists.txt +llvm/lib/Bitcode/Reader/LLVMBuild.txt +llvm/lib/Bitcode/Writer/CMakeLists.txt +llvm/lib/Bitcode/Writer/LLVMBuild.txt +llvm/lib/Bitstream/CMakeLists.txt +llvm/lib/Bitstream/LLVMBuild.txt +llvm/lib/Bitstream/Reader/CMakeLists.txt +llvm/lib/Bitstream/Reader/LLVMBuild.txt +llvm/lib/CMakeLists.txt +llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt +llvm/lib/CodeGen/AsmPrinter/LLVMBuild.txt +llvm/lib/CodeGen/CMakeLists.txt +llvm/lib/CodeGen/GlobalISel/CMakeLists.txt +llvm/lib/CodeGen/GlobalISel/LLVMBuild.txt +llvm/lib/CodeGen/LLVMBuild.txt +llvm/lib/CodeGen/MIRParser/CMakeLists.txt +llvm/lib/CodeGen/MIRParser/LLVMBuild.txt +llvm/lib/CodeGen/README.txt +llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt +llvm/lib/CodeGen/SelectionDAG/LLVMBuild.txt +llvm/lib/DebugInfo/CMakeLists.txt +llvm/lib/DebugInfo/CodeView/CMakeLists.txt +llvm/lib/DebugInfo/CodeView/LLVMBuild.txt +llvm/lib/DebugInfo/DWARF/CMakeLists.txt +llvm/lib/DebugInfo/DWARF/LLVMBuild.txt +llvm/lib/DebugInfo/GSYM/CMakeLists.txt +llvm/lib/DebugInfo/GSYM/LLVMBuild.txt +llvm/lib/DebugInfo/LLVMBuild.txt +llvm/lib/DebugInfo/MSF/CMakeLists.txt +llvm/lib/DebugInfo/MSF/LLVMBuild.txt +llvm/lib/DebugInfo/PDB/CMakeLists.txt +llvm/lib/DebugInfo/PDB/LLVMBuild.txt +llvm/lib/DebugInfo/Symbolize/CMakeLists.txt +llvm/lib/DebugInfo/Symbolize/LLVMBuild.txt +llvm/lib/Demangle/CMakeLists.txt +llvm/lib/Demangle/LLVMBuild.txt +llvm/lib/ExecutionEngine/CMakeLists.txt +llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt +llvm/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt +llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt +llvm/lib/ExecutionEngine/Interpreter/LLVMBuild.txt +llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt +llvm/lib/ExecutionEngine/JITLink/LLVMBuild.txt +llvm/lib/ExecutionEngine/LLVMBuild.txt +llvm/lib/ExecutionEngine/MCJIT/CMakeLists.txt +llvm/lib/ExecutionEngine/MCJIT/LLVMBuild.txt +llvm/lib/ExecutionEngine/OProfileJIT/CMakeLists.txt +llvm/lib/ExecutionEngine/OProfileJIT/LLVMBuild.txt +llvm/lib/ExecutionEngine/Orc/CMakeLists.txt +llvm/lib/ExecutionEngine/Orc/LLVMBuild.txt +llvm/lib/ExecutionEngine/PerfJITEvents/CMakeLists.txt +llvm/lib/ExecutionEngine/PerfJITEvents/LLVMBuild.txt +llvm/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt +llvm/lib/ExecutionEngine/RuntimeDyld/LLVMBuild.txt +llvm/lib/FuzzMutate/CMakeLists.txt +llvm/lib/FuzzMutate/LLVMBuild.txt +llvm/lib/Fuzzer/ +llvm/lib/IR/CMakeLists.txt +llvm/lib/IR/LLVMBuild.txt +llvm/lib/IRReader/CMakeLists.txt +llvm/lib/IRReader/LLVMBuild.txt +llvm/lib/LLVMBuild.txt +llvm/lib/LTO/CMakeLists.txt +llvm/lib/LTO/LLVMBuild.txt +llvm/lib/LineEditor/CMakeLists.txt +llvm/lib/LineEditor/LLVMBuild.txt +llvm/lib/Linker/CMakeLists.txt +llvm/lib/Linker/LLVMBuild.txt +llvm/lib/MC/CMakeLists.txt +llvm/lib/MC/LLVMBuild.txt +llvm/lib/MC/MCDisassembler/CMakeLists.txt +llvm/lib/MC/MCDisassembler/LLVMBuild.txt +llvm/lib/MC/MCParser/CMakeLists.txt +llvm/lib/MC/MCParser/LLVMBuild.txt +llvm/lib/MCA/CMakeLists.txt +llvm/lib/MCA/LLVMBuild.txt +llvm/lib/Object/CMakeLists.txt +llvm/lib/Object/LLVMBuild.txt +llvm/lib/ObjectYAML/CMakeLists.txt +llvm/lib/ObjectYAML/LLVMBuild.txt +llvm/lib/Option/CMakeLists.txt +llvm/lib/Option/LLVMBuild.txt +llvm/lib/Passes/CMakeLists.txt +llvm/lib/Passes/LLVMBuild.txt +llvm/lib/ProfileData/CMakeLists.txt +llvm/lib/ProfileData/Coverage/CMakeLists.txt +llvm/lib/ProfileData/Coverage/LLVMBuild.txt +llvm/lib/ProfileData/LLVMBuild.txt +llvm/lib/Remarks/CMakeLists.txt +llvm/lib/Remarks/LLVMBuild.txt +llvm/lib/Support/CMakeLists.txt +llvm/lib/Support/LLVMBuild.txt +llvm/lib/TableGen/CMakeLists.txt +llvm/lib/TableGen/LLVMBuild.txt +llvm/lib/Target/AArch64/AsmParser/CMakeLists.txt +llvm/lib/Target/AArch64/AsmParser/LLVMBuild.txt +llvm/lib/Target/AArch64/CMakeLists.txt +llvm/lib/Target/AArch64/Disassembler/CMakeLists.txt +llvm/lib/Target/AArch64/Disassembler/LLVMBuild.txt +llvm/lib/Target/AArch64/LLVMBuild.txt +llvm/lib/Target/AArch64/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/AArch64/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/AArch64/TargetInfo/CMakeLists.txt +llvm/lib/Target/AArch64/TargetInfo/LLVMBuild.txt +llvm/lib/Target/AArch64/Utils/CMakeLists.txt +llvm/lib/Target/AArch64/Utils/LLVMBuild.txt +llvm/lib/Target/AMDGPU/AsmParser/CMakeLists.txt +llvm/lib/Target/AMDGPU/AsmParser/LLVMBuild.txt +llvm/lib/Target/AMDGPU/CMakeLists.txt +llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt +llvm/lib/Target/AMDGPU/Disassembler/LLVMBuild.txt +llvm/lib/Target/AMDGPU/LLVMBuild.txt +llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/AMDGPU/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/AMDGPU/TargetInfo/CMakeLists.txt +llvm/lib/Target/AMDGPU/TargetInfo/LLVMBuild.txt +llvm/lib/Target/AMDGPU/Utils/CMakeLists.txt +llvm/lib/Target/AMDGPU/Utils/LLVMBuild.txt +llvm/lib/Target/ARC/CMakeLists.txt +llvm/lib/Target/ARC/Disassembler/CMakeLists.txt +llvm/lib/Target/ARC/Disassembler/LLVMBuild.txt +llvm/lib/Target/ARC/LLVMBuild.txt +llvm/lib/Target/ARC/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/ARC/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/ARC/TargetInfo/CMakeLists.txt +llvm/lib/Target/ARC/TargetInfo/LLVMBuild.txt +llvm/lib/Target/ARM/AsmParser/CMakeLists.txt +llvm/lib/Target/ARM/AsmParser/LLVMBuild.txt +llvm/lib/Target/ARM/CMakeLists.txt +llvm/lib/Target/ARM/Disassembler/CMakeLists.txt +llvm/lib/Target/ARM/Disassembler/LLVMBuild.txt +llvm/lib/Target/ARM/LLVMBuild.txt +llvm/lib/Target/ARM/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/ARM/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/ARM/README-Thumb.txt +llvm/lib/Target/ARM/README-Thumb2.txt +llvm/lib/Target/ARM/README.txt +llvm/lib/Target/ARM/TargetInfo/CMakeLists.txt +llvm/lib/Target/ARM/TargetInfo/LLVMBuild.txt +llvm/lib/Target/ARM/Utils/CMakeLists.txt +llvm/lib/Target/ARM/Utils/LLVMBuild.txt +llvm/lib/Target/AVR/AsmParser/CMakeLists.txt +llvm/lib/Target/AVR/AsmParser/LLVMBuild.txt +llvm/lib/Target/AVR/CMakeLists.txt +llvm/lib/Target/AVR/Disassembler/CMakeLists.txt +llvm/lib/Target/AVR/Disassembler/LLVMBuild.txt +llvm/lib/Target/AVR/LLVMBuild.txt +llvm/lib/Target/AVR/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/AVR/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/AVR/TargetInfo/CMakeLists.txt +llvm/lib/Target/AVR/TargetInfo/LLVMBuild.txt +llvm/lib/Target/BPF/AsmParser/CMakeLists.txt +llvm/lib/Target/BPF/AsmParser/LLVMBuild.txt +llvm/lib/Target/BPF/CMakeLists.txt +llvm/lib/Target/BPF/Disassembler/CMakeLists.txt +llvm/lib/Target/BPF/Disassembler/LLVMBuild.txt +llvm/lib/Target/BPF/LLVMBuild.txt +llvm/lib/Target/BPF/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/BPF/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/BPF/TargetInfo/CMakeLists.txt +llvm/lib/Target/BPF/TargetInfo/LLVMBuild.txt +llvm/lib/Target/CMakeLists.txt +llvm/lib/Target/Hexagon/AsmParser/CMakeLists.txt +llvm/lib/Target/Hexagon/AsmParser/LLVMBuild.txt +llvm/lib/Target/Hexagon/CMakeLists.txt +llvm/lib/Target/Hexagon/Disassembler/CMakeLists.txt +llvm/lib/Target/Hexagon/Disassembler/LLVMBuild.txt +llvm/lib/Target/Hexagon/LLVMBuild.txt +llvm/lib/Target/Hexagon/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/Hexagon/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/Hexagon/TargetInfo/CMakeLists.txt +llvm/lib/Target/Hexagon/TargetInfo/LLVMBuild.txt +llvm/lib/Target/LLVMBuild.txt +llvm/lib/Target/Lanai/AsmParser/CMakeLists.txt +llvm/lib/Target/Lanai/AsmParser/LLVMBuild.txt +llvm/lib/Target/Lanai/CMakeLists.txt +llvm/lib/Target/Lanai/Disassembler/CMakeLists.txt +llvm/lib/Target/Lanai/Disassembler/LLVMBuild.txt +llvm/lib/Target/Lanai/LLVMBuild.txt +llvm/lib/Target/Lanai/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/Lanai/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/Lanai/TargetInfo/CMakeLists.txt +llvm/lib/Target/Lanai/TargetInfo/LLVMBuild.txt +llvm/lib/Target/MSP430/AsmParser/CMakeLists.txt +llvm/lib/Target/MSP430/AsmParser/LLVMBuild.txt +llvm/lib/Target/MSP430/CMakeLists.txt +llvm/lib/Target/MSP430/Disassembler/CMakeLists.txt +llvm/lib/Target/MSP430/Disassembler/LLVMBuild.txt +llvm/lib/Target/MSP430/LLVMBuild.txt +llvm/lib/Target/MSP430/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/MSP430/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/MSP430/README.txt +llvm/lib/Target/MSP430/TargetInfo/CMakeLists.txt +llvm/lib/Target/MSP430/TargetInfo/LLVMBuild.txt +llvm/lib/Target/Mips/AsmParser/CMakeLists.txt +llvm/lib/Target/Mips/AsmParser/LLVMBuild.txt +llvm/lib/Target/Mips/CMakeLists.txt +llvm/lib/Target/Mips/Disassembler/CMakeLists.txt +llvm/lib/Target/Mips/Disassembler/LLVMBuild.txt +llvm/lib/Target/Mips/LLVMBuild.txt +llvm/lib/Target/Mips/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/Mips/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/Mips/TargetInfo/CMakeLists.txt +llvm/lib/Target/Mips/TargetInfo/LLVMBuild.txt +llvm/lib/Target/NVPTX/CMakeLists.txt +llvm/lib/Target/NVPTX/LLVMBuild.txt +llvm/lib/Target/NVPTX/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/NVPTX/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/NVPTX/TargetInfo/CMakeLists.txt +llvm/lib/Target/NVPTX/TargetInfo/LLVMBuild.txt +llvm/lib/Target/PowerPC/AsmParser/CMakeLists.txt +llvm/lib/Target/PowerPC/AsmParser/LLVMBuild.txt +llvm/lib/Target/PowerPC/CMakeLists.txt +llvm/lib/Target/PowerPC/Disassembler/CMakeLists.txt +llvm/lib/Target/PowerPC/Disassembler/LLVMBuild.txt +llvm/lib/Target/PowerPC/LLVMBuild.txt +llvm/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/PowerPC/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/PowerPC/README.txt +llvm/lib/Target/PowerPC/README_ALTIVEC.txt +llvm/lib/Target/PowerPC/TargetInfo/CMakeLists.txt +llvm/lib/Target/PowerPC/TargetInfo/LLVMBuild.txt +llvm/lib/Target/README.txt +llvm/lib/Target/RISCV/AsmParser/CMakeLists.txt +llvm/lib/Target/RISCV/AsmParser/LLVMBuild.txt +llvm/lib/Target/RISCV/CMakeLists.txt +llvm/lib/Target/RISCV/Disassembler/CMakeLists.txt +llvm/lib/Target/RISCV/Disassembler/LLVMBuild.txt +llvm/lib/Target/RISCV/LLVMBuild.txt +llvm/lib/Target/RISCV/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/RISCV/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/RISCV/TargetInfo/CMakeLists.txt +llvm/lib/Target/RISCV/TargetInfo/LLVMBuild.txt +llvm/lib/Target/RISCV/Utils/CMakeLists.txt +llvm/lib/Target/RISCV/Utils/LLVMBuild.txt +llvm/lib/Target/Sparc/AsmParser/CMakeLists.txt +llvm/lib/Target/Sparc/AsmParser/LLVMBuild.txt +llvm/lib/Target/Sparc/CMakeLists.txt +llvm/lib/Target/Sparc/Disassembler/CMakeLists.txt +llvm/lib/Target/Sparc/Disassembler/LLVMBuild.txt +llvm/lib/Target/Sparc/LLVMBuild.txt +llvm/lib/Target/Sparc/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/Sparc/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/Sparc/README.txt +llvm/lib/Target/Sparc/TargetInfo/CMakeLists.txt +llvm/lib/Target/Sparc/TargetInfo/LLVMBuild.txt +llvm/lib/Target/SystemZ/AsmParser/CMakeLists.txt +llvm/lib/Target/SystemZ/AsmParser/LLVMBuild.txt +llvm/lib/Target/SystemZ/CMakeLists.txt +llvm/lib/Target/SystemZ/Disassembler/CMakeLists.txt +llvm/lib/Target/SystemZ/Disassembler/LLVMBuild.txt +llvm/lib/Target/SystemZ/LLVMBuild.txt +llvm/lib/Target/SystemZ/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/SystemZ/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/SystemZ/TargetInfo/CMakeLists.txt +llvm/lib/Target/SystemZ/TargetInfo/LLVMBuild.txt +llvm/lib/Target/WebAssembly/AsmParser/CMakeLists.txt +llvm/lib/Target/WebAssembly/AsmParser/LLVMBuild.txt +llvm/lib/Target/WebAssembly/CMakeLists.txt +llvm/lib/Target/WebAssembly/Disassembler/CMakeLists.txt +llvm/lib/Target/WebAssembly/Disassembler/LLVMBuild.txt +llvm/lib/Target/WebAssembly/LLVMBuild.txt +llvm/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/WebAssembly/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/WebAssembly/TargetInfo/CMakeLists.txt +llvm/lib/Target/WebAssembly/TargetInfo/LLVMBuild.txt +llvm/lib/Target/X86/AsmParser/CMakeLists.txt +llvm/lib/Target/X86/AsmParser/LLVMBuild.txt +llvm/lib/Target/X86/CMakeLists.txt +llvm/lib/Target/X86/Disassembler/CMakeLists.txt +llvm/lib/Target/X86/Disassembler/LLVMBuild.txt +llvm/lib/Target/X86/LLVMBuild.txt +llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/X86/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/X86/README-FPStack.txt +llvm/lib/Target/X86/README-SSE.txt +llvm/lib/Target/X86/README-X86-64.txt +llvm/lib/Target/X86/README.txt +llvm/lib/Target/X86/TargetInfo/CMakeLists.txt +llvm/lib/Target/X86/TargetInfo/LLVMBuild.txt +llvm/lib/Target/X86/Utils/CMakeLists.txt +llvm/lib/Target/X86/Utils/LLVMBuild.txt +llvm/lib/Target/XCore/CMakeLists.txt +llvm/lib/Target/XCore/Disassembler/CMakeLists.txt +llvm/lib/Target/XCore/Disassembler/LLVMBuild.txt +llvm/lib/Target/XCore/LLVMBuild.txt +llvm/lib/Target/XCore/MCTargetDesc/CMakeLists.txt +llvm/lib/Target/XCore/MCTargetDesc/LLVMBuild.txt +llvm/lib/Target/XCore/README.txt +llvm/lib/Target/XCore/TargetInfo/CMakeLists.txt +llvm/lib/Target/XCore/TargetInfo/LLVMBuild.txt +llvm/lib/Testing/CMakeLists.txt +llvm/lib/Testing/LLVMBuild.txt +llvm/lib/Testing/Support/CMakeLists.txt +llvm/lib/Testing/Support/LLVMBuild.txt +llvm/lib/TextAPI/CMakeLists.txt +llvm/lib/TextAPI/LLVMBuild.txt +llvm/lib/ToolDrivers/CMakeLists.txt +llvm/lib/ToolDrivers/LLVMBuild.txt +llvm/lib/ToolDrivers/llvm-dlltool/CMakeLists.txt +llvm/lib/ToolDrivers/llvm-dlltool/LLVMBuild.txt +llvm/lib/ToolDrivers/llvm-lib/CMakeLists.txt +llvm/lib/ToolDrivers/llvm-lib/LLVMBuild.txt +llvm/lib/Transforms/AggressiveInstCombine/CMakeLists.txt +llvm/lib/Transforms/AggressiveInstCombine/LLVMBuild.txt +llvm/lib/Transforms/CMakeLists.txt +llvm/lib/Transforms/Coroutines/CMakeLists.txt +llvm/lib/Transforms/Coroutines/LLVMBuild.txt +llvm/lib/Transforms/Hello/ +llvm/lib/Transforms/IPO/CMakeLists.txt +llvm/lib/Transforms/IPO/LLVMBuild.txt +llvm/lib/Transforms/InstCombine/CMakeLists.txt +llvm/lib/Transforms/InstCombine/LLVMBuild.txt +llvm/lib/Transforms/Instrumentation/CMakeLists.txt +llvm/lib/Transforms/Instrumentation/LLVMBuild.txt +llvm/lib/Transforms/LLVMBuild.txt +llvm/lib/Transforms/ObjCARC/CMakeLists.txt +llvm/lib/Transforms/ObjCARC/LLVMBuild.txt +llvm/lib/Transforms/Scalar/CMakeLists.txt +llvm/lib/Transforms/Scalar/LLVMBuild.txt +llvm/lib/Transforms/Utils/CMakeLists.txt +llvm/lib/Transforms/Utils/LLVMBuild.txt +llvm/lib/Transforms/Vectorize/CMakeLists.txt +llvm/lib/Transforms/Vectorize/LLVMBuild.txt +llvm/lib/WindowsManifest/CMakeLists.txt +llvm/lib/WindowsManifest/LLVMBuild.txt +llvm/lib/XRay/CMakeLists.txt +llvm/lib/XRay/LLVMBuild.txt +llvm/llvm.spec.in +llvm/projects/ +llvm/resources/ +llvm/runtimes/ +llvm/test/ +llvm/tools/CMakeLists.txt +llvm/tools/LLVMBuild.txt +llvm/tools/bugpoint/CMakeLists.txt +llvm/tools/bugpoint/LLVMBuild.txt +llvm/tools/bugpoint-passes/ +llvm/tools/dsymutil/ +llvm/tools/gold/ +llvm/tools/llc/CMakeLists.txt +llvm/tools/llc/LLVMBuild.txt +llvm/tools/lli/CMakeLists.txt +llvm/tools/lli/ChildTarget/CMakeLists.txt +llvm/tools/lli/ChildTarget/LLVMBuild.txt +llvm/tools/lli/LLVMBuild.txt +llvm/tools/llvm-ar/CMakeLists.txt +llvm/tools/llvm-ar/LLVMBuild.txt +llvm/tools/llvm-as/CMakeLists.txt +llvm/tools/llvm-as/LLVMBuild.txt +llvm/tools/llvm-as-fuzzer/ +llvm/tools/llvm-bcanalyzer/CMakeLists.txt +llvm/tools/llvm-bcanalyzer/LLVMBuild.txt +llvm/tools/llvm-c-test/ +llvm/tools/llvm-cat/ +llvm/tools/llvm-cfi-verify/ +llvm/tools/llvm-config/ +llvm/tools/llvm-cov/CMakeLists.txt +llvm/tools/llvm-cov/LLVMBuild.txt +llvm/tools/llvm-cvtres/ +llvm/tools/llvm-cxxdump/CMakeLists.txt +llvm/tools/llvm-cxxdump/LLVMBuild.txt +llvm/tools/llvm-cxxfilt/CMakeLists.txt +llvm/tools/llvm-cxxmap/CMakeLists.txt +llvm/tools/llvm-cxxmap/LLVMBuild.txt +llvm/tools/llvm-diff/CMakeLists.txt +llvm/tools/llvm-diff/LLVMBuild.txt +llvm/tools/llvm-dis/CMakeLists.txt +llvm/tools/llvm-dis/LLVMBuild.txt +llvm/tools/llvm-dwarfdump/CMakeLists.txt +llvm/tools/llvm-dwarfdump/LLVMBuild.txt +llvm/tools/llvm-dwarfdump/fuzzer/ +llvm/tools/llvm-dwp/ +llvm/tools/llvm-elfabi/ +llvm/tools/llvm-exegesis/ +llvm/tools/llvm-extract/CMakeLists.txt +llvm/tools/llvm-extract/LLVMBuild.txt +llvm/tools/llvm-go/ +llvm/tools/llvm-isel-fuzzer/ +llvm/tools/llvm-itanium-demangle-fuzzer/ +llvm/tools/llvm-jitlink/ +llvm/tools/llvm-jitlistener/ +llvm/tools/llvm-link/CMakeLists.txt +llvm/tools/llvm-link/LLVMBuild.txt +llvm/tools/llvm-lipo/ +llvm/tools/llvm-lto/CMakeLists.txt +llvm/tools/llvm-lto/LLVMBuild.txt +llvm/tools/llvm-lto2/CMakeLists.txt +llvm/tools/llvm-lto2/LLVMBuild.txt +llvm/tools/llvm-mc/CMakeLists.txt +llvm/tools/llvm-mc/LLVMBuild.txt +llvm/tools/llvm-mc-assemble-fuzzer/ +llvm/tools/llvm-mc-disassemble-fuzzer/ +llvm/tools/llvm-mca/CMakeLists.txt +llvm/tools/llvm-mca/LLVMBuild.txt +llvm/tools/llvm-microsoft-demangle-fuzzer/ +llvm/tools/llvm-modextract/CMakeLists.txt +llvm/tools/llvm-modextract/LLVMBuild.txt +llvm/tools/llvm-mt/ +llvm/tools/llvm-nm/CMakeLists.txt +llvm/tools/llvm-nm/LLVMBuild.txt +llvm/tools/llvm-objcopy/CMakeLists.txt +llvm/tools/llvm-objcopy/LLVMBuild.txt +llvm/tools/llvm-objdump/CMakeLists.txt +llvm/tools/llvm-objdump/LLVMBuild.txt +llvm/tools/llvm-opt-fuzzer/ +llvm/tools/llvm-opt-report/ +llvm/tools/llvm-pdbutil/CMakeLists.txt +llvm/tools/llvm-pdbutil/LLVMBuild.txt +llvm/tools/llvm-profdata/CMakeLists.txt +llvm/tools/llvm-profdata/LLVMBuild.txt +llvm/tools/llvm-rc/ +llvm/tools/llvm-readobj/CMakeLists.txt +llvm/tools/llvm-readobj/LLVMBuild.txt +llvm/tools/llvm-rtdyld/CMakeLists.txt +llvm/tools/llvm-rtdyld/LLVMBuild.txt +llvm/tools/llvm-shlib/ +llvm/tools/llvm-size/ +llvm/tools/llvm-special-case-list-fuzzer/ +llvm/tools/llvm-split/ +llvm/tools/llvm-stress/CMakeLists.txt +llvm/tools/llvm-stress/LLVMBuild.txt +llvm/tools/llvm-strings/ +llvm/tools/llvm-symbolizer/CMakeLists.txt +llvm/tools/llvm-undname/ +llvm/tools/llvm-xray/CMakeLists.txt +llvm/tools/llvm-yaml-numeric-parser-fuzzer/ +llvm/tools/lto/ +llvm/tools/msbuild/ +llvm/tools/obj2yaml/ +llvm/tools/opt/CMakeLists.txt +llvm/tools/opt/LLVMBuild.txt +llvm/tools/opt-viewer/ +llvm/tools/remarks-shlib/ +llvm/tools/sancov/ +llvm/tools/sanstats/ +llvm/tools/verify-uselistorder/ +llvm/tools/xcode-toolchain/ +llvm/tools/yaml2obj/ +llvm/unittests/ +llvm/utils/DSAclean.py +llvm/utils/DSAextract.py +llvm/utils/FileCheck/ +llvm/utils/GenLibDeps.pl +llvm/utils/GetRepositoryPath +llvm/utils/GetSourceVersion +llvm/utils/KillTheDoctor/ +llvm/utils/LLVMBuild.txt +llvm/utils/LLVMVisualizers/ +llvm/utils/Misc/ +llvm/utils/PerfectShuffle/ +llvm/utils/Reviewing/ +llvm/utils/TableGen/CMakeLists.txt +llvm/utils/TableGen/LLVMBuild.txt +llvm/utils/TableGen/tdtags +llvm/utils/Target/ +llvm/utils/UpdateCMakeLists.pl +llvm/utils/UpdateTestChecks/ +llvm/utils/abtest.py +llvm/utils/benchmark/ +llvm/utils/bisect +llvm/utils/bisect-skip-count +llvm/utils/bugpoint/ +llvm/utils/bugpoint_gisel_reducer.py +llvm/utils/check-each-file +llvm/utils/chunk-print-before-all.py +llvm/utils/clang-parse-diagnostics-file +llvm/utils/codegen-diff +llvm/utils/collect_and_build_with_pgo.py +llvm/utils/count/ +llvm/utils/countloc.sh +llvm/utils/create_ladder_graph.py +llvm/utils/crosstool/ +llvm/utils/demangle_tree.py +llvm/utils/docker/ +llvm/utils/emacs/ +llvm/utils/extract_symbols.py +llvm/utils/extract_vplan.py +llvm/utils/findmisopt +llvm/utils/findoptdiff +llvm/utils/findsym.pl +llvm/utils/fpcmp/ +llvm/utils/gdb-scripts/ +llvm/utils/getsrcs.sh +llvm/utils/git-svn/ +llvm/utils/gn/ +llvm/utils/indirect_calls.py +llvm/utils/jedit/ +llvm/utils/kate/ +llvm/utils/lint/ +llvm/utils/lit/ +llvm/utils/lldbDataFormatters.py +llvm/utils/llvm-build/ +llvm/utils/llvm-compilers-check +llvm/utils/llvm-gisel-cov.py +llvm/utils/llvm-lit/ +llvm/utils/llvm-native-gxx +llvm/utils/llvm.grm +llvm/utils/llvmdo +llvm/utils/llvmgrep +llvm/utils/not/ +llvm/utils/prepare-code-coverage-artifact.py +llvm/utils/release/ +llvm/utils/sanitizers/ +llvm/utils/schedcover.py +llvm/utils/shuffle_fuzz.py +llvm/utils/shuffle_select_fuzz_tester.py +llvm/utils/sort_includes.py +llvm/utils/testgen/ +llvm/utils/textmate/ +llvm/utils/unicode-case-fold.py +llvm/utils/unittest/ +llvm/utils/update_analyze_test_checks.py +llvm/utils/update_cc_test_checks.py +llvm/utils/update_llc_test_checks.py +llvm/utils/update_mca_test_checks.py +llvm/utils/update_mir_test_checks.py +llvm/utils/update_test_checks.py +llvm/utils/valgrind/ +llvm/utils/vim/ +llvm/utils/vscode/ +llvm/utils/wciia.py +llvm/utils/yaml-bench/ +openmp/.arcconfig +openmp/.gitignore +openmp/CMakeLists.txt +openmp/README.rst +openmp/cmake/ +openmp/libomptarget/ +openmp/runtime/.clang-format +openmp/runtime/CMakeLists.txt +openmp/runtime/README.txt +openmp/runtime/cmake/ +openmp/runtime/doc/ +openmp/runtime/src/CMakeLists.txt +openmp/runtime/test/ +openmp/runtime/tools/ +openmp/www/ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Tue Jan 7 20:02:05 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4874B1F1426; Tue, 7 Jan 2020 20:02:05 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sjvd1v0vz4Y53; Tue, 7 Jan 2020 20:02:05 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3BA7445B0; Tue, 7 Jan 2020 20:02:05 +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 007K25HX001083; Tue, 7 Jan 2020 20:02:05 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007K1xv8001046; Tue, 7 Jan 2020 20:01:59 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001072001.007K1xv8001046@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 20:01:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356465 - in stable/12: . contrib/llvm-project/clang/include/clang/CodeGen contrib/llvm-project/clang/lib/Basic/Targets contrib/llvm-project/clang/lib/CodeGen contrib/llvm-project/clang... X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: . contrib/llvm-project/clang/include/clang/CodeGen contrib/llvm-project/clang/lib/Basic/Targets contrib/llvm-project/clang/lib/CodeGen contrib/llvm-project/clang/lib/Driver/ToolChains co... X-SVN-Commit-Revision: 356465 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:02:05 -0000 Author: dim Date: Tue Jan 7 20:01:59 2020 New Revision: 356465 URL: https://svnweb.freebsd.org/changeset/base/356465 Log: MFC r356004: Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 9.0.1 final release c1a0a213378a458fbea1a5c77b315c7dce08fd05. Release notes for llvm, clang, lld and libc++ 9.0.1 will become available here: https://releases.llvm.org/9.0.1/docs/ReleaseNotes.html https://releases.llvm.org/9.0.1/tools/clang/docs/ReleaseNotes.html https://releases.llvm.org/9.0.1/tools/lld/docs/ReleaseNotes.html https://releases.llvm.org/9.0.1/projects/libcxx/docs/ReleaseNotes.html PR: 240629 Added: stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp - copied unchanged from r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h - copied unchanged from r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h Modified: stable/12/ObsoleteFiles.inc stable/12/UPDATING stable/12/contrib/llvm-project/clang/include/clang/CodeGen/CGFunctionInfo.h stable/12/contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/CGExpr.cpp stable/12/contrib/llvm-project/clang/lib/CodeGen/MicrosoftCXXABI.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.cpp stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp stable/12/contrib/llvm-project/clang/lib/Sema/SemaType.cpp stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingUtil.c stable/12/contrib/llvm-project/lld/COFF/Driver.cpp stable/12/contrib/llvm-project/lld/ELF/Symbols.h stable/12/contrib/llvm-project/lld/docs/ReleaseNotes.rst stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp stable/12/contrib/llvm-project/lldb/source/Symbol/Symtab.cpp stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineFunction.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/StackProtector.h stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/GVN.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineFunction.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/MachineInstr.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp stable/12/contrib/llvm-project/llvm/lib/CodeGen/StackProtector.cpp stable/12/contrib/llvm-project/llvm/lib/Object/ELFObjectFile.cpp stable/12/contrib/llvm-project/llvm/lib/Support/ARMTargetParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp stable/12/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARM.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMPredicates.td stable/12/contrib/llvm-project/llvm/lib/Target/ARM/ARMSubtarget.h stable/12/contrib/llvm-project/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp stable/12/contrib/llvm-project/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/P9InstrResources.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstr64Bit.td stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCInstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVRegisterInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FrameLowering.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86MachineFunctionInfo.h stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86RegisterInfo.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/GVN.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp stable/12/contrib/llvm-project/llvm/lib/Transforms/Scalar/SROA.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/ObjcopyOpts.td stable/12/contrib/llvm-project/llvm/tools/llvm-objcopy/StripOpts.td stable/12/contrib/llvm-project/llvm/tools/opt/opt.cpp stable/12/etc/mtree/BSD.debug.dist stable/12/etc/mtree/BSD.usr.dist stable/12/lib/clang/freebsd_cc_version.h stable/12/lib/clang/headers/Makefile stable/12/lib/clang/include/VCSVersion.inc stable/12/lib/clang/include/clang/Basic/Version.inc stable/12/lib/clang/include/clang/Config/config.h stable/12/lib/clang/include/lld/Common/Version.inc stable/12/lib/clang/include/llvm/Config/config.h stable/12/lib/clang/include/llvm/Config/llvm-config.h stable/12/lib/clang/include/llvm/Support/VCSRevision.h stable/12/lib/libclang_rt/Makefile.inc stable/12/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/clang/ (props changed) stable/12/contrib/llvm-project/compiler-rt/ (props changed) stable/12/contrib/llvm-project/lld/ (props changed) stable/12/contrib/llvm-project/lldb/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) Modified: stable/12/ObsoleteFiles.inc ============================================================================== --- stable/12/ObsoleteFiles.inc Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/ObsoleteFiles.inc Tue Jan 7 20:01:59 2020 (r356465) @@ -38,6 +38,242 @@ # xargs -n1 | sort | uniq -d; # done +# 20200107: new clang import which bumps version from 9.0.0 to 9.0.1. +OLD_FILES+=usr/lib/clang/9.0.0/include/cuda_wrappers/algorithm +OLD_FILES+=usr/lib/clang/9.0.0/include/cuda_wrappers/complex +OLD_FILES+=usr/lib/clang/9.0.0/include/cuda_wrappers/new +OLD_DIRS+=usr/lib/clang/9.0.0/include/cuda_wrappers +OLD_FILES+=usr/lib/clang/9.0.0/include/openmp_wrappers/__clang_openmp_math.h +OLD_FILES+=usr/lib/clang/9.0.0/include/openmp_wrappers/__clang_openmp_math_declares.h +OLD_FILES+=usr/lib/clang/9.0.0/include/openmp_wrappers/cmath +OLD_FILES+=usr/lib/clang/9.0.0/include/openmp_wrappers/math.h +OLD_DIRS+=usr/lib/clang/9.0.0/include/openmp_wrappers +OLD_FILES+=usr/lib/clang/9.0.0/include/ppc_wrappers/emmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ppc_wrappers/mm_malloc.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ppc_wrappers/mmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ppc_wrappers/xmmintrin.h +OLD_DIRS+=usr/lib/clang/9.0.0/include/ppc_wrappers +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/hwasan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/netbsd_syscall_hooks.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/scudo_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/tsan_interface.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/9.0.0/include/sanitizer +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_complex_builtins.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_device_functions.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_libdevice_declares.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/9.0.0/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/9.0.0/include/adxintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/altivec.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ammintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/arm64intr.h +OLD_FILES+=usr/lib/clang/9.0.0/include/arm_acle.h +OLD_FILES+=usr/lib/clang/9.0.0/include/arm_fp16.h +OLD_FILES+=usr/lib/clang/9.0.0/include/arm_neon.h +OLD_FILES+=usr/lib/clang/9.0.0/include/armintr.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512bf16intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512bitalgintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vbmi2intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlbf16intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlbitalgintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlvbmi2intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlvnniintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vlvp2intersectintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vnniintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vp2intersectintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vpopcntdqintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avx512vpopcntdqvlintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/avxintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/cetintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/cldemoteintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/clwbintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/clzerointrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/cpuid.h +OLD_FILES+=usr/lib/clang/9.0.0/include/emmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/enqcmdintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/gfniintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/htmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/immintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/invpcidintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/lwpintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/9.0.0/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/9.0.0/include/mmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/module.modulemap +OLD_FILES+=usr/lib/clang/9.0.0/include/movdirintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/msa.h +OLD_FILES+=usr/lib/clang/9.0.0/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/opencl-c-base.h +OLD_FILES+=usr/lib/clang/9.0.0/include/opencl-c.h +OLD_FILES+=usr/lib/clang/9.0.0/include/pconfigintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/ptwriteintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/s390intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/sgxintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/shaintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/smmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/vadefs.h +OLD_FILES+=usr/lib/clang/9.0.0/include/vaesintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/vecintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/vpclmulqdqintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/waitpkgintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/wbnoinvdintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/x86intrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xopintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/9.0.0/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/9.0.0/include +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-aarch64.so +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-arm.so +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-armhf.so +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-preinit-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-preinit-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-preinit-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan_cxx-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan_cxx-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi_diag-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi_diag-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi_diag-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi_diag-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.cfi_diag-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.dd-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.dd-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.fuzzer-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.fuzzer-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.msan-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.msan-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.msan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.msan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-powerpc.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-powerpc64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.safestack-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats_client-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats_client-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats_client-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.tsan-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.tsan-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_minimal-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-basic-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-basic-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-basic-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-basic-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-fdr-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-fdr-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-fdr-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-fdr-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-profiling-aarch64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-profiling-arm.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-profiling-armhf.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-profiling-x86_64.a +OLD_FILES+=usr/lib/clang/9.0.0/lib/freebsd/libclang_rt.xray-x86_64.a +OLD_DIRS+=usr/lib/clang/9.0.0/lib/freebsd +OLD_DIRS+=usr/lib/clang/9.0.0/lib +OLD_DIRS+=usr/lib/clang/9.0.0 # 20200107: new clang import which bumps version from 8.0.1 to 9.0.0. OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/8.0.1/include/sanitizer/asan_interface.h Modified: stable/12/UPDATING ============================================================================== --- stable/12/UPDATING Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/UPDATING Tue Jan 7 20:01:59 2020 (r356465) @@ -18,7 +18,7 @@ from older version of current across the gcc/clang cut 20200107: Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have - been upgraded to 9.0.0. Please see the 20141231 entry below for + been upgraded to 9.0.1. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. Modified: stable/12/contrib/llvm-project/clang/include/clang/CodeGen/CGFunctionInfo.h ============================================================================== --- stable/12/contrib/llvm-project/clang/include/clang/CodeGen/CGFunctionInfo.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/include/clang/CodeGen/CGFunctionInfo.h Tue Jan 7 20:01:59 2020 (r356465) @@ -109,14 +109,12 @@ class ABIArgInfo { (private) UnpaddedCoerceAndExpandType = T; } - ABIArgInfo(Kind K) - : TheKind(K), PaddingInReg(false), InReg(false) { - } - public: - ABIArgInfo() + ABIArgInfo(Kind K = Direct) : TypeData(nullptr), PaddingType(nullptr), DirectOffset(0), - TheKind(Direct), PaddingInReg(false), InReg(false) {} + TheKind(K), PaddingInReg(false), InAllocaSRet(false), + IndirectByVal(false), IndirectRealign(false), SRetAfterThis(false), + InReg(false), CanBeFlattened(false), SignExt(false) {} static ABIArgInfo getDirect(llvm::Type *T = nullptr, unsigned Offset = 0, llvm::Type *Padding = nullptr, Modified: stable/12/contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/Basic/Targets/ARM.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -427,10 +427,11 @@ bool ARMTargetInfo::handleTargetFeatures(std::vectorgetType()); + auto *PTy = llvm::PointerType::get( + VarTy, getContext().getTargetAddressSpace(VD->getType())); + if (PTy != Addr.getType()) + Addr = Builder.CreatePointerBitCastOrAddrSpaceCast(Addr, PTy); } else { // Should we be using the alignment of the constant pointer we emitted? CharUnits Alignment = Modified: stable/12/contrib/llvm-project/clang/lib/CodeGen/MicrosoftCXXABI.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/CodeGen/MicrosoftCXXABI.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/CodeGen/MicrosoftCXXABI.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -617,6 +617,9 @@ class MicrosoftCXXABI : public CGCXXABI { (private) llvm::Function *EmitVirtualMemPtrThunk(const CXXMethodDecl *MD, const MethodVFTableLocation &ML); + llvm::Constant *EmitMemberDataPointer(const CXXRecordDecl *RD, + CharUnits offset); + public: llvm::Type *ConvertMemberPointerType(const MemberPointerType *MPT) override; @@ -2700,7 +2703,11 @@ MicrosoftCXXABI::EmitFullMemberPointer(llvm::Constant llvm::Constant * MicrosoftCXXABI::EmitMemberDataPointer(const MemberPointerType *MPT, CharUnits offset) { - const CXXRecordDecl *RD = MPT->getMostRecentCXXRecordDecl(); + return EmitMemberDataPointer(MPT->getMostRecentCXXRecordDecl(), offset); +} + +llvm::Constant *MicrosoftCXXABI::EmitMemberDataPointer(const CXXRecordDecl *RD, + CharUnits offset) { if (RD->getMSInheritanceModel() == MSInheritanceAttr::Keyword_virtual_inheritance) offset -= getContext().getOffsetOfBaseWithVBPtr(RD); @@ -2724,8 +2731,17 @@ llvm::Constant *MicrosoftCXXABI::EmitMemberPointer(con if (const CXXMethodDecl *MD = dyn_cast(MPD)) { C = EmitMemberFunctionPointer(MD); } else { + // For a pointer to data member, start off with the offset of the field in + // the class in which it was declared, and convert from there if necessary. + // For indirect field decls, get the outermost anonymous field and use the + // parent class. CharUnits FieldOffset = Ctx.toCharUnitsFromBits(Ctx.getFieldOffset(MPD)); - C = EmitMemberDataPointer(DstTy, FieldOffset); + const FieldDecl *FD = dyn_cast(MPD); + if (!FD) + FD = cast(*cast(MPD)->chain_begin()); + const CXXRecordDecl *RD = cast(FD->getParent()); + RD = RD->getMostRecentNonInjectedDecl(); + C = EmitMemberDataPointer(RD, FieldOffset); } if (!MemberPointerPath.empty()) { Modified: stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/ARM.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -460,7 +460,7 @@ fp16_fml_fallthrough: // now just be explicit and disable all known dependent features // as well. for (std::string Feature : { - "vfp2", "vfp2sp", + "vfp2", "vfp2sp", "vfp2d16", "vfp2d16sp", "vfp3", "vfp3sp", "vfp3d16", "vfp3d16sp", "vfp4", "vfp4sp", "vfp4d16", "vfp4d16sp", "fp-armv8", "fp-armv8sp", "fp-armv8d16", "fp-armv8d16sp", Modified: stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/Driver/ToolChains/Linux.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -658,11 +658,11 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &D if (!DriverArgs.hasArg(options::OPT_nostdlibinc)) addSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/local/include"); - if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { - SmallString<128> P(D.ResourceDir); - llvm::sys::path::append(P, "include"); - addSystemInclude(DriverArgs, CC1Args, P); - } + SmallString<128> ResourceDirInclude(D.ResourceDir); + llvm::sys::path::append(ResourceDirInclude, "include"); + if (!DriverArgs.hasArg(options::OPT_nobuiltininc) && + (!getTriple().isMusl() || DriverArgs.hasArg(options::OPT_nostdlibinc))) + addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude); if (DriverArgs.hasArg(options::OPT_nostdlibinc)) return; @@ -860,6 +860,9 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &D addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/include"); addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include"); + + if (!DriverArgs.hasArg(options::OPT_nobuiltininc) && getTriple().isMusl()) + addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude); } static std::string DetectLibcxxIncludePath(llvm::vfs::FileSystem &vfs, Modified: stable/12/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -3475,7 +3475,12 @@ bool Sema::MergeFunctionDecl(FunctionDecl *New, NamedD } } - if (OldQTypeForComparison == NewQType) + // If the function types are compatible, merge the declarations. Ignore the + // exception specifier because it was already checked above in + // CheckEquivalentExceptionSpec, and we don't want follow-on diagnostics + // about incompatible types under -fms-compatibility. + if (Context.hasSameFunctionTypeIgnoringExceptionSpec(OldQTypeForComparison, + NewQType)) return MergeCompatibleFunctionDecls(New, Old, S, MergeTypeWithOld); // If the types are imprecise (due to dependent constructs in friends or Modified: stable/12/contrib/llvm-project/clang/lib/Sema/SemaType.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Sema/SemaType.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/clang/lib/Sema/SemaType.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -6325,7 +6325,8 @@ namespace { Pointer, BlockPointer, Reference, - MemberPointer + MemberPointer, + MacroQualified, }; QualType Original; @@ -6356,6 +6357,9 @@ namespace { } else if (isa(Ty)) { T = cast(Ty)->getEquivalentType(); Stack.push_back(Attributed); + } else if (isa(Ty)) { + T = cast(Ty)->getUnderlyingType(); + Stack.push_back(MacroQualified); } else { const Type *DTy = Ty->getUnqualifiedDesugaredType(); if (Ty == DTy) { @@ -6411,6 +6415,9 @@ namespace { QualType New = wrap(C, cast(Old)->getInnerType(), I); return C.getParenType(New); } + + case MacroQualified: + return wrap(C, cast(Old)->getUnderlyingType(), I); case Pointer: { QualType New = wrap(C, cast(Old)->getPointeeType(), I); Modified: stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingUtil.c ============================================================================== --- stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingUtil.c Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingUtil.c Tue Jan 7 20:01:59 2020 (r356465) @@ -189,8 +189,9 @@ COMPILER_RT_VISIBILITY FILE *lprofOpenFileEx(const cha f = fdopen(fd, "r+b"); #elif defined(_WIN32) // FIXME: Use the wide variants to handle Unicode filenames. - HANDLE h = CreateFileA(ProfileName, GENERIC_READ | GENERIC_WRITE, 0, 0, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); + HANDLE h = CreateFileA(ProfileName, GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_ALWAYS, + FILE_ATTRIBUTE_NORMAL, 0); if (h == INVALID_HANDLE_VALUE) return NULL; @@ -199,6 +200,10 @@ COMPILER_RT_VISIBILITY FILE *lprofOpenFileEx(const cha CloseHandle(h); return NULL; } + + if (lprofLockFd(fd) != 0) + PROF_WARN("Data may be corrupted during profile merging : %s\n", + "Fail to obtain file lock due to system limit."); f = _fdopen(fd, "r+b"); if (f == 0) { Modified: stable/12/contrib/llvm-project/lld/COFF/Driver.cpp ============================================================================== --- stable/12/contrib/llvm-project/lld/COFF/Driver.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/lld/COFF/Driver.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -1138,7 +1138,7 @@ void LinkerDriver::link(ArrayRef argsArr } } - if (!args.hasArg(OPT_INPUT)) { + if (!args.hasArg(OPT_INPUT, OPT_wholearchive_file)) { if (args.hasArg(OPT_deffile)) config->noEntry = true; else @@ -1626,7 +1626,7 @@ void LinkerDriver::link(ArrayRef argsArr } // Handle generation of import library from a def file. - if (!args.hasArg(OPT_INPUT)) { + if (!args.hasArg(OPT_INPUT, OPT_wholearchive_file)) { fixupExports(); createImportLibrary(/*asLib=*/true); return; @@ -1672,8 +1672,8 @@ void LinkerDriver::link(ArrayRef argsArr // Set default image name if neither /out or /def set it. if (config->outputFile.empty()) { - config->outputFile = - getOutputPath((*args.filtered(OPT_INPUT).begin())->getValue()); + config->outputFile = getOutputPath( + (*args.filtered(OPT_INPUT, OPT_wholearchive_file).begin())->getValue()); } // Fail early if an output file is not writable. Modified: stable/12/contrib/llvm-project/lld/ELF/Symbols.h ============================================================================== --- stable/12/contrib/llvm-project/lld/ELF/Symbols.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/lld/ELF/Symbols.h Tue Jan 7 20:01:59 2020 (r356465) @@ -108,27 +108,27 @@ class Symbol { (public) // Symbol visibility. This is the computed minimum visibility of all // observed non-DSO symbols. - unsigned visibility : 2; + uint8_t visibility : 2; // True if the symbol was used for linking and thus need to be added to the // output file's symbol table. This is true for all symbols except for // unreferenced DSO symbols, lazy (archive) symbols, and bitcode symbols that // are unreferenced except by other bitcode objects. - unsigned isUsedInRegularObj : 1; + uint8_t isUsedInRegularObj : 1; // If this flag is true and the symbol has protected or default visibility, it // will appear in .dynsym. This flag is set by interposable DSO symbols in // executables, by most symbols in DSOs and executables built with // --export-dynamic, and by dynamic lists. - unsigned exportDynamic : 1; + uint8_t exportDynamic : 1; // False if LTO shouldn't inline whatever this symbol points to. If a symbol // is overwritten after LTO, LTO shouldn't inline the symbol because it // doesn't know the final contents of the symbol. - unsigned canInline : 1; + uint8_t canInline : 1; // True if this symbol is specified by --trace-symbol option. - unsigned traced : 1; + uint8_t traced : 1; inline void replace(const Symbol &New); @@ -236,28 +236,28 @@ class Symbol { (public) public: // True the symbol should point to its PLT entry. // For SharedSymbol only. - unsigned needsPltAddr : 1; + uint8_t needsPltAddr : 1; // True if this symbol is in the Iplt sub-section of the Plt and the Igot // sub-section of the .got.plt or .got. - unsigned isInIplt : 1; + uint8_t isInIplt : 1; // True if this symbol needs a GOT entry and its GOT entry is actually in // Igot. This will be true only for certain non-preemptible ifuncs. - unsigned gotInIgot : 1; + uint8_t gotInIgot : 1; // True if this symbol is preemptible at load time. - unsigned isPreemptible : 1; + uint8_t isPreemptible : 1; // True if an undefined or shared symbol is used from a live section. - unsigned used : 1; + uint8_t used : 1; // True if a call to this symbol needs to be followed by a restore of the // PPC64 toc pointer. - unsigned needsTocRestore : 1; + uint8_t needsTocRestore : 1; // True if this symbol is defined by a linker script. - unsigned scriptDefined : 1; + uint8_t scriptDefined : 1; // The partition whose dynamic symbol table contains this symbol's definition. uint8_t partition = 1; Modified: stable/12/contrib/llvm-project/lld/docs/ReleaseNotes.rst ============================================================================== --- stable/12/contrib/llvm-project/lld/docs/ReleaseNotes.rst Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/lld/docs/ReleaseNotes.rst Tue Jan 7 20:01:59 2020 (r356465) @@ -153,7 +153,7 @@ COFF Improvements * Having more than two ``/natvis:`` now works correctly; it used to not work for larger binaries before. - (`r327895 `_) + (`r359515 `_) * Undefined symbols are now printed only in demangled form. Pass ``/demangle:no`` to see raw symbol names instead. Copied: stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp (from r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp Tue Jan 7 20:01:59 2020 (r356465, copy of r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp) @@ -0,0 +1,88 @@ +#include "PythonReadline.h" + +#ifdef LLDB_USE_LIBEDIT_READLINE_COMPAT_MODULE + +#include + +#include + +// Simple implementation of the Python readline module using libedit. +// In the event that libedit is excluded from the build, this turns +// back into a null implementation that blocks the module from pulling +// in the GNU readline shared lib, which causes linkage confusion when +// both readline and libedit's readline compatibility symbols collide. +// +// Currently it only installs a PyOS_ReadlineFunctionPointer, without +// implementing any of the readline module methods. This is meant to +// work around LLVM pr18841 to avoid seg faults in the stock Python +// readline.so linked against GNU readline. +// +// Bug on the cpython side: https://bugs.python.org/issue38634 + +PyDoc_STRVAR(moduleDocumentation, + "Simple readline module implementation based on libedit."); + +#if PY_MAJOR_VERSION >= 3 +static struct PyModuleDef readline_module = { + PyModuleDef_HEAD_INIT, // m_base + "lldb_editline", // m_name + moduleDocumentation, // m_doc + -1, // m_size + nullptr, // m_methods + nullptr, // m_reload + nullptr, // m_traverse + nullptr, // m_clear + nullptr, // m_free +}; +#else +static struct PyMethodDef moduleMethods[] = {{nullptr, nullptr, 0, nullptr}}; +#endif + +static char * +#if PY_MAJOR_VERSION >= 3 +simple_readline(FILE *stdin, FILE *stdout, const char *prompt) +#else +simple_readline(FILE *stdin, FILE *stdout, char *prompt) +#endif +{ + rl_instream = stdin; + rl_outstream = stdout; + char *line = readline(prompt); + if (!line) { +#if PY_MAJOR_VERSION >= 3 + char *ret = (char *)PyMem_RawMalloc(1); +#else + char *ret = (char *)PyMem_Malloc(1); +#endif + if (ret != NULL) + *ret = '\0'; + return ret; + } + if (*line) + add_history(line); + int n = strlen(line); +#if PY_MAJOR_VERSION >= 3 + char *ret = (char *)PyMem_RawMalloc(n + 2); +#else + char *ret = (char *)PyMem_Malloc(n + 2); +#endif + if (ret) { + strncpy(ret, line, n); + free(line); + ret[n] = '\n'; + ret[n + 1] = '\0'; + } + return ret; +} + +PyMODINIT_FUNC initlldb_readline(void) { + PyOS_ReadlineFunctionPointer = simple_readline; + +#if PY_MAJOR_VERSION >= 3 + return PyModule_Create(&readline_module); +#else + Py_InitModule4("readline", moduleMethods, moduleDocumentation, + static_cast(NULL), PYTHON_API_VERSION); +#endif +} +#endif Copied: stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h (from r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h Tue Jan 7 20:01:59 2020 (r356465, copy of r356004, head/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h) @@ -0,0 +1,26 @@ +//===-- PythonReadline.h ----------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONREADLINE_H +#define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONREADLINE_H + +#if !defined(LLDB_DISABLE_LIBEDIT) && defined(__linux__) +// NOTE: Since Python may define some pre-processor definitions which affect the +// standard headers on some systems, you must include Python.h before any +// standard headers are included. +#include "Python.h" + +// no need to hack into Python's readline module if libedit isn't used. +// +#define LLDB_USE_LIBEDIT_READLINE_COMPAT_MODULE 1 + +extern "C" PyMODINIT_FUNC initlldb_readline(void); + +#endif + +#endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONREADLINE_H Modified: stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp ============================================================================== --- stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -17,6 +17,7 @@ #include "PythonDataObjects.h" #include "PythonExceptionState.h" +#include "PythonReadline.h" #include "ScriptInterpreterPythonImpl.h" #include "lldb/API/SBFrame.h" @@ -206,6 +207,22 @@ struct InitializePythonRAII { (public) m_stdin_tty_state.Save(STDIN_FILENO, false); InitializePythonHome(); + +#ifdef LLDB_USE_LIBEDIT_READLINE_COMPAT_MODULE + // Python's readline is incompatible with libedit being linked into lldb. + // Provide a patched version local to the embedded interpreter. + bool ReadlinePatched = false; + for (auto *p = PyImport_Inittab; p->name != NULL; p++) { + if (strcmp(p->name, "readline") == 0) { + p->initfunc = initlldb_readline; + break; + } + } + if (!ReadlinePatched) { + PyImport_AppendInittab("readline", initlldb_readline); + ReadlinePatched = true; + } +#endif // Register _lldb as a built-in module. PyImport_AppendInittab("_lldb", LLDBSwigPyInit); Modified: stable/12/contrib/llvm-project/lldb/source/Symbol/Symtab.cpp ============================================================================== --- stable/12/contrib/llvm-project/lldb/source/Symbol/Symtab.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/lldb/source/Symbol/Symtab.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -896,14 +896,8 @@ void Symtab::InitAddressIndexes() { for (size_t i = 0; i < num_entries; i++) { FileRangeToIndexMap::Entry *entry = m_file_addr_to_index.GetMutableEntryAtIndex(i); - if (entry->GetByteSize() > 0) - continue; - addr_t curr_base_addr = entry->GetRangeBase(); - // Symbols with non-zero size will show after zero-sized symbols on the - // same address. So do not set size of a non-last zero-sized symbol. - if (i == num_entries - 1 || - m_file_addr_to_index.GetMutableEntryAtIndex(i + 1) - ->GetRangeBase() != curr_base_addr) { + if (entry->GetByteSize() == 0) { + addr_t curr_base_addr = entry->GetRangeBase(); const RangeVector::Entry *containing_section = section_ranges.FindEntryThatContains(curr_base_addr); Modified: stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineFunction.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineFunction.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineFunction.h Tue Jan 7 20:01:59 2020 (r356465) @@ -792,6 +792,10 @@ class MachineFunction { (public) MCSymbol *PreInstrSymbol = nullptr, MCSymbol *PostInstrSymbol = nullptr); + MachineInstr::ExtraInfo *createMIExtraInfoWithMarker( + ArrayRef MMOs, MCSymbol *PreInstrSymbol, + MCSymbol *PostInstrSymbol, MDNode *HeapAllocMarker); + /// Allocate a string and populate it with the given external symbol name. const char *createExternalSymbolName(StringRef Name); Modified: stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h Tue Jan 7 20:01:59 2020 (r356465) @@ -137,19 +137,23 @@ class MachineInstr (private) /// This has to be defined eagerly due to the implementation constraints of /// `PointerSumType` where it is used. class ExtraInfo final - : TrailingObjects { + : TrailingObjects { public: static ExtraInfo *create(BumpPtrAllocator &Allocator, ArrayRef MMOs, MCSymbol *PreInstrSymbol = nullptr, - MCSymbol *PostInstrSymbol = nullptr) { + MCSymbol *PostInstrSymbol = nullptr, + MDNode *HeapAllocMarker = nullptr) { bool HasPreInstrSymbol = PreInstrSymbol != nullptr; bool HasPostInstrSymbol = PostInstrSymbol != nullptr; + bool HasHeapAllocMarker = HeapAllocMarker != nullptr; auto *Result = new (Allocator.Allocate( - totalSizeToAlloc( - MMOs.size(), HasPreInstrSymbol + HasPostInstrSymbol), + totalSizeToAlloc( + MMOs.size(), HasPreInstrSymbol + HasPostInstrSymbol, + HasHeapAllocMarker), alignof(ExtraInfo))) - ExtraInfo(MMOs.size(), HasPreInstrSymbol, HasPostInstrSymbol); + ExtraInfo(MMOs.size(), HasPreInstrSymbol, HasPostInstrSymbol, + HasHeapAllocMarker); // Copy the actual data into the trailing objects. std::copy(MMOs.begin(), MMOs.end(), @@ -160,6 +164,8 @@ class MachineInstr (private) if (HasPostInstrSymbol) Result->getTrailingObjects()[HasPreInstrSymbol] = PostInstrSymbol; + if (HasHeapAllocMarker) + Result->getTrailingObjects()[0] = HeapAllocMarker; return Result; } @@ -178,6 +184,10 @@ class MachineInstr (private) : nullptr; } + MDNode *getHeapAllocMarker() const { + return HasHeapAllocMarker ? getTrailingObjects()[0] : nullptr; + } + private: friend TrailingObjects; @@ -189,6 +199,7 @@ class MachineInstr (private) const int NumMMOs; const bool HasPreInstrSymbol; const bool HasPostInstrSymbol; + const bool HasHeapAllocMarker; // Implement the `TrailingObjects` internal API. size_t numTrailingObjects(OverloadToken) const { @@ -197,12 +208,17 @@ class MachineInstr (private) size_t numTrailingObjects(OverloadToken) const { return HasPreInstrSymbol + HasPostInstrSymbol; } + size_t numTrailingObjects(OverloadToken) const { + return HasHeapAllocMarker; + } // Just a boring constructor to allow us to initialize the sizes. Always use // the `create` routine above. - ExtraInfo(int NumMMOs, bool HasPreInstrSymbol, bool HasPostInstrSymbol) + ExtraInfo(int NumMMOs, bool HasPreInstrSymbol, bool HasPostInstrSymbol, + bool HasHeapAllocMarker) : NumMMOs(NumMMOs), HasPreInstrSymbol(HasPreInstrSymbol), - HasPostInstrSymbol(HasPostInstrSymbol) {} + HasPostInstrSymbol(HasPostInstrSymbol), + HasHeapAllocMarker(HasHeapAllocMarker) {} }; /// Enumeration of the kinds of inline extra info available. It is important @@ -577,6 +593,16 @@ class MachineInstr (private) return nullptr; } + /// Helper to extract a heap alloc marker if one has been added. + MDNode *getHeapAllocMarker() const { + if (!Info) + return nullptr; + if (ExtraInfo *EI = Info.get()) + return EI->getHeapAllocMarker(); + + return nullptr; + } + /// API for querying MachineInstr properties. They are the same as MCInstrDesc /// queries but they are bundle aware. @@ -1578,6 +1604,12 @@ class MachineInstr (private) /// replace ours with it. void cloneInstrSymbols(MachineFunction &MF, const MachineInstr &MI); + /// Set a marker on instructions that denotes where we should create and emit + /// heap alloc site labels. This waits until after instruction selection and + /// optimizations to create the label, so it should still work if the + /// instruction is removed or duplicated. + void setHeapAllocMarker(MachineFunction &MF, MDNode *MD); + /// Return the MIFlags which represent both MachineInstrs. This /// should be used when merging two MachineInstrs into one. This routine does /// not modify the MIFlags of this MachineInstr. @@ -1632,6 +1664,12 @@ class MachineInstr (private) const TargetRegisterClass *getRegClassConstraintEffectForVRegImpl( unsigned OpIdx, unsigned Reg, const TargetRegisterClass *CurRC, const TargetInstrInfo *TII, const TargetRegisterInfo *TRI) const; + + /// Stores extra instruction information inline or allocates as ExtraInfo + /// based on the number of pointers. + void setExtraInfo(MachineFunction &MF, ArrayRef MMOs, + MCSymbol *PreInstrSymbol, MCSymbol *PostInstrSymbol, + MDNode *HeapAllocMarker); }; /// Special DenseMapInfo traits to compare MachineInstr* by *value* of the Modified: stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/StackProtector.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/StackProtector.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/include/llvm/CodeGen/StackProtector.h Tue Jan 7 20:01:59 2020 (r356465) @@ -89,7 +89,8 @@ class StackProtector : public FunctionPass { (private) bool InStruct = false) const; /// Check whether a stack allocation has its address taken. - bool HasAddressTaken(const Instruction *AI); + bool HasAddressTaken(const Instruction *AI, + SmallPtrSetImpl &VisitedPHIs); /// RequiresStackProtector - Check whether or not this function needs a /// stack protector based upon the stack protector level. Modified: stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h Tue Jan 7 20:01:59 2020 (r356465) @@ -16,6 +16,8 @@ #include "llvm/Demangle/DemangleConfig.h" #include "llvm/Demangle/StringView.h" #include +#include +#include namespace llvm { namespace itanium_demangle { Modified: stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/GVN.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/GVN.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/GVN.h Tue Jan 7 20:01:59 2020 (r356465) @@ -120,6 +120,8 @@ class GVN : public PassInfoMixin { (public) uint32_t lookupOrAddCall(CallInst *C); uint32_t phiTranslateImpl(const BasicBlock *BB, const BasicBlock *PhiBlock, uint32_t Num, GVN &Gvn); + bool areCallValsEqual(uint32_t Num, uint32_t NewNum, const BasicBlock *Pred, + const BasicBlock *PhiBlock, GVN &Gvn); std::pair assignExpNewValueNum(Expression &exp); bool areAllValsInBB(uint32_t num, const BasicBlock *BB, GVN &Gvn); Modified: stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -1127,15 +1127,9 @@ void CodeViewDebug::emitDebugInfoForFunction(const Fun } for (auto HeapAllocSite : FI.HeapAllocSites) { - MCSymbol *BeginLabel = std::get<0>(HeapAllocSite); - MCSymbol *EndLabel = std::get<1>(HeapAllocSite); - - // The labels might not be defined if the instruction was replaced - // somewhere in the codegen pipeline. - if (!BeginLabel->isDefined() || !EndLabel->isDefined()) - continue; - - DIType *DITy = std::get<2>(HeapAllocSite); + const MCSymbol *BeginLabel = std::get<0>(HeapAllocSite); + const MCSymbol *EndLabel = std::get<1>(HeapAllocSite); + const DIType *DITy = std::get<2>(HeapAllocSite); MCSymbol *HeapAllocEnd = beginSymbolRecord(SymbolKind::S_HEAPALLOCSITE); OS.AddComment("Call site offset"); OS.EmitCOFFSecRel32(BeginLabel, /*Offset=*/0); @@ -1454,6 +1448,16 @@ void CodeViewDebug::beginFunctionImpl(const MachineFun DebugLoc FnStartDL = PrologEndLoc.getFnDebugLoc(); maybeRecordLocation(FnStartDL, MF); } + + // Find heap alloc sites and emit labels around them. + for (const auto &MBB : *MF) { + for (const auto &MI : MBB) { + if (MI.getHeapAllocMarker()) { + requestLabelBeforeInsn(&MI); + requestLabelAfterInsn(&MI); + } + } + } } static bool shouldEmitUdt(const DIType *T) { @@ -2888,8 +2892,18 @@ void CodeViewDebug::endFunctionImpl(const MachineFunct return; } + // Find heap alloc sites and add to list. + for (const auto &MBB : *MF) { + for (const auto &MI : MBB) { + if (MDNode *MD = MI.getHeapAllocMarker()) { + CurFn->HeapAllocSites.push_back(std::make_tuple(getLabelBeforeInsn(&MI), + getLabelAfterInsn(&MI), + dyn_cast(MD))); + } + } + } + CurFn->Annotations = MF->getCodeViewAnnotations(); - CurFn->HeapAllocSites = MF->getCodeViewHeapAllocSites(); CurFn->End = Asm->getFunctionEnd(); Modified: stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h Tue Jan 7 20:01:59 2020 (r356465) @@ -148,7 +148,8 @@ class LLVM_LIBRARY_VISIBILITY CodeViewDebug : public D SmallVector ChildBlocks; std::vector> Annotations; - std::vector> HeapAllocSites; + std::vector> + HeapAllocSites; const MCSymbol *Begin = nullptr; const MCSymbol *End = nullptr; Modified: stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp Tue Jan 7 19:54:29 2020 (r356464) +++ stable/12/contrib/llvm-project/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp Tue Jan 7 20:01:59 2020 (r356465) @@ -588,8 +588,8 @@ void IRTranslator::emitSwitchCase(SwitchCG::CaseBlock Register CondRHS = getOrCreateVReg(*CB.CmpRHS); Cond = MIB.buildICmp(CB.PredInfo.Pred, i1Ty, CondLHS, CondRHS).getReg(0); } else { - assert(CB.PredInfo.Pred == CmpInst::ICMP_ULE && - "Can only handle ULE ranges"); + assert(CB.PredInfo.Pred == CmpInst::ICMP_SLE && + "Can only handle SLE ranges"); const APInt& Low = cast(CB.CmpLHS)->getValue(); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Tue Jan 7 20:06:28 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BF4E41F1666; Tue, 7 Jan 2020 20:06:28 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sk0h4hLWz4YMc; Tue, 7 Jan 2020 20:06:28 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 97B7D45DC; Tue, 7 Jan 2020 20:06:28 +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 007K6SvO003662; Tue, 7 Jan 2020 20:06:28 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007K6RhN003655; Tue, 7 Jan 2020 20:06:27 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001072006.007K6RhN003655@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 20:06:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356466 - in stable/12/contrib/llvm-project/libcxx/include: . ext X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12/contrib/llvm-project/libcxx/include: . ext X-SVN-Commit-Revision: 356466 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:06:28 -0000 Author: dim Date: Tue Jan 7 20:06:26 2020 New Revision: 356466 URL: https://svnweb.freebsd.org/changeset/base/356466 Log: MFC r356005: Merge commit f97936fab from llvm git (by Eric Fiselier): [libc++] Cleanup and enable multiple warnings. Too many warnings are being disabled too quickly. Warnings are important to keeping libc++ correct. This patch re-enables two warnings: -Wconstant-evaluated and -Wdeprecated-copy. In future, all warnings disabled for the test suite should require an attached bug. The bug should state the plan for re-enabling that warning, or a strong case why it should remain disabled. This should fix a number of new g++ 9 warnings. Requested by: rlibby Modified: stable/12/contrib/llvm-project/libcxx/include/__bit_reference stable/12/contrib/llvm-project/libcxx/include/__hash_table stable/12/contrib/llvm-project/libcxx/include/__tree stable/12/contrib/llvm-project/libcxx/include/ext/hash_map stable/12/contrib/llvm-project/libcxx/include/random stable/12/contrib/llvm-project/libcxx/include/valarray Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/libcxx/ (props changed) Modified: stable/12/contrib/llvm-project/libcxx/include/__bit_reference ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/__bit_reference Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/__bit_reference Tue Jan 7 20:06:26 2020 (r356466) @@ -1108,8 +1108,12 @@ class __bit_iterator (public) #endif {} + // avoid re-declaring a copy constructor for the non-const version. + using __type_for_copy_to_const = + _If<_IsConst, __bit_iterator<_Cp, false>, struct __private_nat>; + _LIBCPP_INLINE_VISIBILITY - __bit_iterator(const __bit_iterator<_Cp, false>& __it) _NOEXCEPT + __bit_iterator(const __type_for_copy_to_const& __it) _NOEXCEPT : __seg_(__it.__seg_), __ctz_(__it.__ctz_) {} _LIBCPP_INLINE_VISIBILITY reference operator*() const _NOEXCEPT Modified: stable/12/contrib/llvm-project/libcxx/include/__hash_table ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/__hash_table Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/__hash_table Tue Jan 7 20:06:26 2020 (r356466) @@ -825,10 +825,12 @@ class __hash_node_destructor (private) allocator_type& __na_; - __hash_node_destructor& operator=(const __hash_node_destructor&); - public: bool __value_constructed; + + __hash_node_destructor(__hash_node_destructor const&) = default; + __hash_node_destructor& operator=(const __hash_node_destructor&) = delete; + _LIBCPP_INLINE_VISIBILITY explicit __hash_node_destructor(allocator_type& __na, Modified: stable/12/contrib/llvm-project/libcxx/include/__tree ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/__tree Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/__tree Tue Jan 7 20:06:26 2020 (r356466) @@ -775,10 +775,13 @@ class __tree_node_destructor (private) typedef __tree_node_types _NodeTypes; allocator_type& __na_; - __tree_node_destructor& operator=(const __tree_node_destructor&); public: bool __value_constructed; + + + __tree_node_destructor(const __tree_node_destructor &) = default; + __tree_node_destructor& operator=(const __tree_node_destructor&) = delete; _LIBCPP_INLINE_VISIBILITY explicit __tree_node_destructor(allocator_type& __na, bool __val = false) _NOEXCEPT Modified: stable/12/contrib/llvm-project/libcxx/include/ext/hash_map ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/ext/hash_map Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/ext/hash_map Tue Jan 7 20:06:26 2020 (r356466) @@ -315,11 +315,12 @@ class __hash_map_node_destructor (private) allocator_type& __na_; - __hash_map_node_destructor& operator=(const __hash_map_node_destructor&); - public: bool __first_constructed; bool __second_constructed; + + __hash_map_node_destructor(__hash_map_node_destructor const&) = default; + __hash_map_node_destructor& operator=(const __hash_map_node_destructor&) = delete; _LIBCPP_INLINE_VISIBILITY explicit __hash_map_node_destructor(allocator_type& __na) Modified: stable/12/contrib/llvm-project/libcxx/include/random ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/random Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/random Tue Jan 7 20:06:26 2020 (r356466) @@ -6105,6 +6105,7 @@ class _LIBCPP_TEMPLATE_VIS piecewise_constant_distribu template param_type(size_t __nw, result_type __xmin, result_type __xmax, _UnaryOperation __fw); + param_type(param_type const&) = default; param_type & operator=(const param_type& __rhs); _LIBCPP_INLINE_VISIBILITY @@ -6428,6 +6429,7 @@ class _LIBCPP_TEMPLATE_VIS piecewise_linear_distributi template param_type(size_t __nw, result_type __xmin, result_type __xmax, _UnaryOperation __fw); + param_type(param_type const&) = default; param_type & operator=(const param_type& __rhs); _LIBCPP_INLINE_VISIBILITY Modified: stable/12/contrib/llvm-project/libcxx/include/valarray ============================================================================== --- stable/12/contrib/llvm-project/libcxx/include/valarray Tue Jan 7 20:01:59 2020 (r356465) +++ stable/12/contrib/llvm-project/libcxx/include/valarray Tue Jan 7 20:06:26 2020 (r356466) @@ -1256,6 +1256,8 @@ class _LIBCPP_TEMPLATE_VIS slice_array (public) _LIBCPP_INLINE_VISIBILITY operator>>=(const _Expr& __v) const; + slice_array(slice_array const&) = default; + _LIBCPP_INLINE_VISIBILITY const slice_array& operator=(const slice_array& __sa) const; @@ -1505,11 +1507,6 @@ class _LIBCPP_TYPE_VIS gslice (public) #endif // _LIBCPP_CXX03_LANG -// gslice(const gslice&) = default; -// gslice(gslice&&) = default; -// gslice& operator=(const gslice&) = default; -// gslice& operator=(gslice&&) = default; - _LIBCPP_INLINE_VISIBILITY size_t start() const {return __1d_.size() ? __1d_[0] : 0;} @@ -1645,10 +1642,7 @@ class _LIBCPP_TEMPLATE_VIS gslice_array (public) _LIBCPP_INLINE_VISIBILITY void operator=(const value_type& __x) const; -// gslice_array(const gslice_array&) = default; -// gslice_array(gslice_array&&) = default; -// gslice_array& operator=(const gslice_array&) = default; -// gslice_array& operator=(gslice_array&&) = default; + gslice_array(const gslice_array&) = default; private: gslice_array(const gslice& __gs, const valarray& __v) @@ -1977,17 +1971,14 @@ class _LIBCPP_TEMPLATE_VIS mask_array (public) _LIBCPP_INLINE_VISIBILITY operator>>=(const _Expr& __v) const; + mask_array(const mask_array&) = default; + _LIBCPP_INLINE_VISIBILITY const mask_array& operator=(const mask_array& __ma) const; _LIBCPP_INLINE_VISIBILITY void operator=(const value_type& __x) const; -// mask_array(const mask_array&) = default; -// mask_array(mask_array&&) = default; -// mask_array& operator=(const mask_array&) = default; -// mask_array& operator=(mask_array&&) = default; - private: _LIBCPP_INLINE_VISIBILITY mask_array(const valarray& __vb, const valarray& __v) @@ -2336,16 +2327,13 @@ class _LIBCPP_TEMPLATE_VIS indirect_array (public) _LIBCPP_INLINE_VISIBILITY operator>>=(const _Expr& __v) const; + indirect_array(const indirect_array&) = default; + _LIBCPP_INLINE_VISIBILITY const indirect_array& operator=(const indirect_array& __ia) const; _LIBCPP_INLINE_VISIBILITY void operator=(const value_type& __x) const; - -// indirect_array(const indirect_array&) = default; -// indirect_array(indirect_array&&) = default; -// indirect_array& operator=(const indirect_array&) = default; -// indirect_array& operator=(indirect_array&&) = default; private: _LIBCPP_INLINE_VISIBILITY From owner-svn-src-stable@freebsd.org Tue Jan 7 20:09:04 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7D4701F1749; Tue, 7 Jan 2020 20:09:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sk3h2pTkz4YVL; Tue, 7 Jan 2020 20:09:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5732945DE; Tue, 7 Jan 2020 20:09:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007K94wk003855; Tue, 7 Jan 2020 20:09:04 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007K93jh003849; Tue, 7 Jan 2020 20:09:03 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001072009.007K93jh003849@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 20:09:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356467 - in stable/12: contrib/llvm-project/clang/lib/AST contrib/llvm-project/clang/lib/Basic/Targets contrib/llvm-project/compiler-rt/lib/builtins contrib/llvm-project/llvm/lib/Targe... X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12: contrib/llvm-project/clang/lib/AST contrib/llvm-project/clang/lib/Basic/Targets contrib/llvm-project/compiler-rt/lib/builtins contrib/llvm-project/llvm/lib/Target/PowerPC lib/libcompiler... X-SVN-Commit-Revision: 356467 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:09:04 -0000 Author: dim Date: Tue Jan 7 20:09:02 2020 New Revision: 356467 URL: https://svnweb.freebsd.org/changeset/base/356467 Log: MFC r356100: Merge commit d3aeac8e2 from llvm git (by Justin Hibbits) [PowerPC] Only use PLT annotations if using PIC relocation model Summary: The default static (non-PIC, non-PIE) model for 32-bit powerpc does not use @PLT annotations and relocations in GCC. LLVM shouldn't use @PLT annotations either, because it breaks secure-PLT linking with (some versions of?) GNU LD. Update the available-externally.ll test to reflect that default mode should be the same as the static relocation, by using the same check prefix. Reviewed by: sfertile Differential Revision: https://reviews.llvm.org/D70570 Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D22913 MFC r356104 (by jhibbits): [PowerPC] enable atomic.c in compiler_rt and do not check and forces lock/lock_free decisions in compiled time Summary: Enables atomic.c in compiler_rt and forces clang to not emit a call for runtime decision about lock/lock_free. At compiling time, if clang can't decide if atomic operation can be lock free, it emits calls to external functions like `__atomic_is_lock_free`, `__c11_atomic_is_lock_free` and `__atomic_always_lock_free`, postponing decision to a runtime check. According to LLVM code documentation, the mechanism exists due to differences between x86_64 processors that can't be decided at runtime. On PowerPC and PowerPCSPE (32 bits), we already know in advance it can't be lock free, so we force the decision at compile time and avoid having to implement it in an external library. This patch was made after 32 bit users testing the PowePC32 bit ISO reported llvm could not be compiled with in-base llvm due to `__atomic_load8` not implemented. Submitted by: alfredo.junior_eldorado.org.br Reviewed by: jhibbits, dim Differential Revision: https://reviews.freebsd.org/D22549 MFC r356112 (by jhibbits): [PowerPC64] Starting from FreeBSD 13.0, default to ELFv2 ABI This changes the LLVM default powerpc64 ABI to ELFv2, if target OS is FreeBSD >= 13.0 This will also be sent upstream. Submitted by: alfredo.junior_eldorado.org.br Reviewed by: dim, luporl Relnotes: YES Differential Revision: https://reviews.freebsd.org/D20383 Modified: stable/12/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp stable/12/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h stable/12/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp stable/12/lib/libcompiler_rt/Makefile.inc Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/clang/ (props changed) stable/12/contrib/llvm-project/compiler-rt/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) Modified: stable/12/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/contrib/llvm-project/clang/lib/AST/ExprConstant.cpp Tue Jan 7 20:09:02 2020 (r356467) @@ -9896,6 +9896,13 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const Call } } + // Avoid emiting call for runtime decision on PowerPC 32-bit + // The lock free possibilities on this platform are covered by the lines + // above and we know in advance other cases require lock + if (Info.Ctx.getTargetInfo().getTriple().getArch() == llvm::Triple::ppc) { + return Success(0, E); + } + return BuiltinOp == Builtin::BI__atomic_always_lock_free ? Success(0, E) : Error(E); } Modified: stable/12/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h ============================================================================== --- stable/12/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/contrib/llvm-project/clang/lib/Basic/Targets/PPC.h Tue Jan 7 20:09:02 2020 (r356467) @@ -375,12 +375,29 @@ class LLVM_LIBRARY_VISIBILITY PPC64TargetInfo : public IntMaxType = SignedLong; Int64Type = SignedLong; + if (Triple.getEnvironment() != llvm::Triple::UnknownEnvironment) { + switch (Triple.getEnvironment()){ + case llvm::Triple::ELFv1: + ABI = "elfv1"; + break; + default: + ABI = "elfv2"; + break; + } + } else { + if ((Triple.getOS() == llvm::Triple::FreeBSD) && + (Triple.getOSMajorVersion() < 13)) { + ABI = "elfv1"; + } else { + ABI = "elfv2"; + } + } + + if ((Triple.getArch() == llvm::Triple::ppc64le)) { resetDataLayout("e-m:e-i64:64-n32:64"); - ABI = "elfv2"; } else { resetDataLayout("E-m:e-i64:64-n32:64"); - ABI = Triple.getEnvironment() == llvm::Triple::ELFv2 ? "elfv2" : "elfv1"; } if (Triple.getOS() == llvm::Triple::AIX) Modified: stable/12/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c ============================================================================== --- stable/12/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/contrib/llvm-project/compiler-rt/lib/builtins/atomic.c Tue Jan 7 20:09:02 2020 (r356467) @@ -51,8 +51,8 @@ static const long SPINLOCK_MASK = SPINLOCK_COUNT - 1; //////////////////////////////////////////////////////////////////////////////// #ifdef __FreeBSD__ #include -#include #include +#include #include typedef struct _usem Lock; __inline static void unlock(Lock *l) { @@ -117,13 +117,20 @@ static __inline Lock *lock_for_pointer(void *ptr) { return locks + (hash & SPINLOCK_MASK); } -/// Macros for determining whether a size is lock free. Clang can not yet -/// codegen __atomic_is_lock_free(16), so for now we assume 16-byte values are -/// not lock free. +/// Macros for determining whether a size is lock free. #define IS_LOCK_FREE_1 __c11_atomic_is_lock_free(1) #define IS_LOCK_FREE_2 __c11_atomic_is_lock_free(2) #define IS_LOCK_FREE_4 __c11_atomic_is_lock_free(4) + +/// 32 bit PowerPC doesn't support 8-byte lock_free atomics +#if !defined(__powerpc64__) && defined(__powerpc__) +#define IS_LOCK_FREE_8 0 +#else #define IS_LOCK_FREE_8 __c11_atomic_is_lock_free(8) +#endif + +/// Clang can not yet codegen __atomic_is_lock_free(16), so for now we assume +/// 16-byte values are not lock free. #define IS_LOCK_FREE_16 0 /// Macro that calls the compiler-generated lock-free versions of functions Modified: stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp Tue Jan 7 20:09:02 2020 (r356467) @@ -4952,7 +4952,12 @@ PrepareCall(SelectionDAG &DAG, SDValue &Callee, SDValu if (auto *G = dyn_cast(Callee)) GV = G->getGlobal(); bool Local = TM.shouldAssumeDSOLocal(*Mod, GV); - bool UsePlt = !Local && Subtarget.isTargetELF() && !isPPC64; + // The PLT is only used in 32-bit ELF PIC mode. Attempting to use the PLT in + // a static relocation model causes some versions of GNU LD (2.17.50, at + // least) to force BSS-PLT, instead of secure-PLT, even if all objects are + // built with secure-PLT. + bool UsePlt = !Local && Subtarget.isTargetELF() && !isPPC64 && + Subtarget.getTargetMachine().getRelocationModel() == Reloc::PIC_; // If the callee is a GlobalAddress/ExternalSymbol node (quite common, // every direct call is) turn it into a TargetGlobalAddress / Modified: stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp Tue Jan 7 20:09:02 2020 (r356467) @@ -209,6 +209,20 @@ static PPCTargetMachine::PPCABI computeTargetABI(const if (TT.isMacOSX()) return PPCTargetMachine::PPC_ABI_UNKNOWN; + if (TT.isOSFreeBSD()) { + switch (TT.getArch()) { + case Triple::ppc64le: + case Triple::ppc64: + if (TT.getOSMajorVersion() >= 13) + return PPCTargetMachine::PPC_ABI_ELFv2; + else + return PPCTargetMachine::PPC_ABI_ELFv1; + case Triple::ppc: + default: + return PPCTargetMachine::PPC_ABI_UNKNOWN; + } + } + switch (TT.getArch()) { case Triple::ppc64le: return PPCTargetMachine::PPC_ABI_ELFv2; Modified: stable/12/lib/libcompiler_rt/Makefile.inc ============================================================================== --- stable/12/lib/libcompiler_rt/Makefile.inc Tue Jan 7 20:06:26 2020 (r356466) +++ stable/12/lib/libcompiler_rt/Makefile.inc Tue Jan 7 20:09:02 2020 (r356467) @@ -205,6 +205,14 @@ CFLAGS+= -DEMIT_SYNC_ATOMICS SRCF+= stdatomic .endif + +.if "${COMPILER_TYPE}" == "clang" && \ + (${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpcspe") +SRCS+= atomic.c +CFLAGS.atomic.c+= -Wno-atomic-alignment +.endif + + .for file in ${SRCF} .if ${MACHINE_ARCH:Marmv[67]*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") \ && exists(${CRTSRC}/${CRTARCH}/${file}vfp.S) From owner-svn-src-stable@freebsd.org Tue Jan 7 20:09:58 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EF3FE1F17E5; Tue, 7 Jan 2020 20:09:58 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sk4k67RCz4Ycb; Tue, 7 Jan 2020 20:09:58 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CDA1F45DF; Tue, 7 Jan 2020 20:09:58 +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 007K9wJL003959; Tue, 7 Jan 2020 20:09:58 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007K9wnD003957; Tue, 7 Jan 2020 20:09:58 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001072009.007K9wnD003957@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 20:09:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356468 - stable/12/contrib/llvm-project/llvm/lib/Target/X86 X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: stable/12/contrib/llvm-project/llvm/lib/Target/X86 X-SVN-Commit-Revision: 356468 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:09:59 -0000 Author: dim Date: Tue Jan 7 20:09:58 2020 New Revision: 356468 URL: https://svnweb.freebsd.org/changeset/base/356468 Log: MFC r356256: Merge commit 468a0cb5f from llvm git (by Craig Topper): [X86] Add X87 FCMOV support to X86FlagsCopyLowering. Fixes PR44396 Merge commit 86f48999f from llvm git (by Craig Topper): [X86] Fix typo in getCMovOpcode. The 64-bit HasMemoryOperand line was using CMOV32rm instead of CMOV64rm. Not sure how to test this. We have no test coverage that passes true for HasMemoryOperand. This fixes 'Assertion failed: (MI.findRegisterDefOperand(X86::EFLAGS) && "Expected a def of EFLAGS for this instruction!"), function runOnMachineFunction' when compiling the misc/gpsim port for i386. Reported by: yuri Upstream PR: https://bugs.llvm.org/show_bug.cgi?id=44396 Modified: stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.cpp Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) Modified: stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp Tue Jan 7 20:09:02 2020 (r356467) +++ stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp Tue Jan 7 20:09:58 2020 (r356468) @@ -115,6 +115,10 @@ class X86FlagsCopyLoweringPass : public MachineFunctio MachineBasicBlock::iterator TestPos, DebugLoc TestLoc, MachineInstr &CMovI, MachineOperand &FlagUse, CondRegArray &CondRegs); + void rewriteFCMov(MachineBasicBlock &TestMBB, + MachineBasicBlock::iterator TestPos, DebugLoc TestLoc, + MachineInstr &CMovI, MachineOperand &FlagUse, + CondRegArray &CondRegs); void rewriteCondJmp(MachineBasicBlock &TestMBB, MachineBasicBlock::iterator TestPos, DebugLoc TestLoc, MachineInstr &JmpI, CondRegArray &CondRegs); @@ -334,6 +338,28 @@ static MachineBasicBlock &splitBlock(MachineBasicBlock return NewMBB; } +static X86::CondCode getCondFromFCMOV(unsigned Opcode) { + switch (Opcode) { + default: return X86::COND_INVALID; + case X86::CMOVBE_Fp32: case X86::CMOVBE_Fp64: case X86::CMOVBE_Fp80: + return X86::COND_BE; + case X86::CMOVB_Fp32: case X86::CMOVB_Fp64: case X86::CMOVB_Fp80: + return X86::COND_B; + case X86::CMOVE_Fp32: case X86::CMOVE_Fp64: case X86::CMOVE_Fp80: + return X86::COND_E; + case X86::CMOVNBE_Fp32: case X86::CMOVNBE_Fp64: case X86::CMOVNBE_Fp80: + return X86::COND_A; + case X86::CMOVNB_Fp32: case X86::CMOVNB_Fp64: case X86::CMOVNB_Fp80: + return X86::COND_AE; + case X86::CMOVNE_Fp32: case X86::CMOVNE_Fp64: case X86::CMOVNE_Fp80: + return X86::COND_NE; + case X86::CMOVNP_Fp32: case X86::CMOVNP_Fp64: case X86::CMOVNP_Fp80: + return X86::COND_NP; + case X86::CMOVP_Fp32: case X86::CMOVP_Fp64: case X86::CMOVP_Fp80: + return X86::COND_P; + } +} + bool X86FlagsCopyLoweringPass::runOnMachineFunction(MachineFunction &MF) { LLVM_DEBUG(dbgs() << "********** " << getPassName() << " : " << MF.getName() << " **********\n"); @@ -593,6 +619,8 @@ bool X86FlagsCopyLoweringPass::runOnMachineFunction(Ma // Otherwise we can just rewrite in-place. if (X86::getCondFromCMov(MI) != X86::COND_INVALID) { rewriteCMov(*TestMBB, TestPos, TestLoc, MI, *FlagUse, CondRegs); + } else if (getCondFromFCMOV(MI.getOpcode()) != X86::COND_INVALID) { + rewriteFCMov(*TestMBB, TestPos, TestLoc, MI, *FlagUse, CondRegs); } else if (X86::getCondFromSETCC(MI) != X86::COND_INVALID) { rewriteSetCC(*TestMBB, TestPos, TestLoc, MI, *FlagUse, CondRegs); } else if (MI.getOpcode() == TargetOpcode::COPY) { @@ -849,6 +877,51 @@ void X86FlagsCopyLoweringPass::rewriteCMov(MachineBasi .setImm(Inverted ? X86::COND_E : X86::COND_NE); FlagUse.setIsKill(true); LLVM_DEBUG(dbgs() << " fixed cmov: "; CMovI.dump()); +} + +void X86FlagsCopyLoweringPass::rewriteFCMov(MachineBasicBlock &TestMBB, + MachineBasicBlock::iterator TestPos, + DebugLoc TestLoc, + MachineInstr &CMovI, + MachineOperand &FlagUse, + CondRegArray &CondRegs) { + // First get the register containing this specific condition. + X86::CondCode Cond = getCondFromFCMOV(CMovI.getOpcode()); + unsigned CondReg; + bool Inverted; + std::tie(CondReg, Inverted) = + getCondOrInverseInReg(TestMBB, TestPos, TestLoc, Cond, CondRegs); + + MachineBasicBlock &MBB = *CMovI.getParent(); + + // Insert a direct test of the saved register. + insertTest(MBB, CMovI.getIterator(), CMovI.getDebugLoc(), CondReg); + + auto getFCMOVOpcode = [](unsigned Opcode, bool Inverted) { + switch (Opcode) { + default: llvm_unreachable("Unexpected opcode!"); + case X86::CMOVBE_Fp32: case X86::CMOVNBE_Fp32: + case X86::CMOVB_Fp32: case X86::CMOVNB_Fp32: + case X86::CMOVE_Fp32: case X86::CMOVNE_Fp32: + case X86::CMOVP_Fp32: case X86::CMOVNP_Fp32: + return Inverted ? X86::CMOVE_Fp32 : X86::CMOVNE_Fp32; + case X86::CMOVBE_Fp64: case X86::CMOVNBE_Fp64: + case X86::CMOVB_Fp64: case X86::CMOVNB_Fp64: + case X86::CMOVE_Fp64: case X86::CMOVNE_Fp64: + case X86::CMOVP_Fp64: case X86::CMOVNP_Fp64: + return Inverted ? X86::CMOVE_Fp64 : X86::CMOVNE_Fp64; + case X86::CMOVBE_Fp80: case X86::CMOVNBE_Fp80: + case X86::CMOVB_Fp80: case X86::CMOVNB_Fp80: + case X86::CMOVE_Fp80: case X86::CMOVNE_Fp80: + case X86::CMOVP_Fp80: case X86::CMOVNP_Fp80: + return Inverted ? X86::CMOVE_Fp80 : X86::CMOVNE_Fp80; + } + }; + + // Rewrite the CMov to use the !ZF flag from the test. + CMovI.setDesc(TII->get(getFCMOVOpcode(CMovI.getOpcode(), Inverted))); + FlagUse.setIsKill(true); + LLVM_DEBUG(dbgs() << " fixed fcmov: "; CMovI.dump()); } void X86FlagsCopyLoweringPass::rewriteCondJmp( Modified: stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.cpp Tue Jan 7 20:09:02 2020 (r356467) +++ stable/12/contrib/llvm-project/llvm/lib/Target/X86/X86InstrInfo.cpp Tue Jan 7 20:09:58 2020 (r356468) @@ -2198,7 +2198,7 @@ unsigned X86::getCMovOpcode(unsigned RegBytes, bool Ha default: llvm_unreachable("Illegal register size!"); case 2: return HasMemoryOperand ? X86::CMOV16rm : X86::CMOV16rr; case 4: return HasMemoryOperand ? X86::CMOV32rm : X86::CMOV32rr; - case 8: return HasMemoryOperand ? X86::CMOV32rm : X86::CMOV64rr; + case 8: return HasMemoryOperand ? X86::CMOV64rm : X86::CMOV64rr; } } From owner-svn-src-stable@freebsd.org Tue Jan 7 20:13:32 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C349E1F1AFE; Tue, 7 Jan 2020 20:13:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47sk8r4sBbz4Z6L; Tue, 7 Jan 2020 20:13:32 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A1E0747A5; Tue, 7 Jan 2020 20:13:32 +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 007KDWZj009888; Tue, 7 Jan 2020 20:13:32 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007KDViQ009883; Tue, 7 Jan 2020 20:13:31 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001072013.007KDViQ009883@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 7 Jan 2020 20:13:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356469 - in stable/12/contrib/llvm-project: lld/ELF/Arch llvm/lib/Target/RISCV llvm/lib/Target/RISCV/MCTargetDesc X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12/contrib/llvm-project: lld/ELF/Arch llvm/lib/Target/RISCV llvm/lib/Target/RISCV/MCTargetDesc X-SVN-Commit-Revision: 356469 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:13:32 -0000 Author: dim Date: Tue Jan 7 20:13:31 2020 New Revision: 356469 URL: https://svnweb.freebsd.org/changeset/base/356469 Log: MFC r356329: Merge commit 41449c58c from llvm git (by Roger Ferrer Ibanez): [RISCV] Fix evaluation of %pcrel_lo The following testcase function: .Lpcrel_label1: auipc a0, %pcrel_hi(other_function) addi a1, a0, %pcrel_lo(.Lpcrel_label1) .p2align 2 # Causes a new fragment to be emitted .type other_function,@function other_function: ret exposes an odd behaviour in which only the %pcrel_hi relocation is evaluated but not the %pcrel_lo. $ llvm-mc -triple riscv64 -filetype obj t.s | llvm-objdump -d -r - : file format ELF64-riscv Disassembly of section .text: 0000000000000000 function: 0: 17 05 00 00 auipc a0, 0 4: 93 05 05 00 mv a1, a0 0000000000000004: R_RISCV_PCREL_LO12_I other_function+4 0000000000000008 other_function: 8: 67 80 00 00 ret The reason seems to be that in RISCVAsmBackend::shouldForceRelocation we only consider the fragment but in RISCVMCExpr::evaluatePCRelLo we consider the section. This usually works but there are cases where the section may still be the same but the fragment may be another one. In that case we end forcing a %pcrel_lo relocation without any %pcrel_hi. This patch makes RISCVAsmBackend::shouldForceRelocation use the section, if any, to determine if the relocation must be forced or not. Differential Revision: https://reviews.llvm.org/D60657 This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld. Requested by: jhb MFC r356330: Merge commit da7b129b1 from llvm git (by James Clarke): [RISCV] Don't force Local Exec TLS for non-PIC Summary: Forcing Local Exec TLS requires the use of copy relocations. Copy relocations need special handling in the runtime linker when being used against TLS symbols, which is present in glibc, but not in FreeBSD nor musl, and so cannot be relied upon. Moreover, copy relocations are a hack that embed the size of an object in the ABI when it otherwise wouldn't be, and break protected symbols (which are expected to be DSO local), whilst also wasting space, thus they should be avoided whenever possible. As discussed in D70398, RISC-V should move away from forcing Local Exec, and instead use Initial Exec like other targets, with possible linker relaxation to follow. The RISC-V GCC maintainers also intend to adopt this more-conventional behaviour (see https://github.com/riscv/riscv-elf-psabi-doc/issues/122). Reviewers: asb, MaskRay Reviewed By: MaskRay Subscribers: emaste, krytarowski, hiraditya, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, llvm-commits, bsdjhb Tags: #llvm Differential Revision: https://reviews.llvm.org/D70649 This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld. Requested by: jhb MFC r356331: Merge commit c6b09bff5 from llvm git (by Luís Marques): [RISCV] Fix wrong CFI directives Summary: Removes CFI CFA directives that could incorrectly propagate beyond the basic block they were inteded for. Specifically it removes the epilogue CFI directives. See the branch_and_tail_call test for an example of the issue. Should fix the stack unwinding issues caused by the incorrect directives. Reviewers: asb, lenary, shiva0217 Reviewed By: lenary Tags: #llvm Differential Revision: https://reviews.llvm.org/D69723 This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld. Requested by: jhb MFC r356332: Merge commit d7be3eab5 from llvm git (by Luís Marques): [RISCV] Handle fcopysign(f32, f64) and fcopysign(f64, f32) Summary: Adds tablegen patterns to explicitly handle fcopysign where the magnitude and sign arguments have different types, due to the sign value casts being removed the by DAGCombiner. Support for RV32IF follows in a separate commit. Adds tests for all relevant scenarios except RV32IF. Reviewers: lenary Reviewed By: lenary Tags: #llvm Differential Revision: https://reviews.llvm.org/D70678 This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld. Requested by: jhb MFC r356333: Merge commit 189b7393d from llvm git (by John Baldwin): [lld][RISCV] Use an e_flags of 0 if there are only binary input files. Summary: If none of the input files are ELF object files (for example, when generating an object file from a single binary input file via "-b binary"), use a fallback value for the ELF header flags instead of crashing with an assertion failure. Reviewers: MaskRay, ruiu, espindola Reviewed By: MaskRay, ruiu Subscribers: kevans, grimar, emaste, arichardson, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, llvm-commits, jrtc27 Tags: #llvm Differential Revision: https://reviews.llvm.org/D71101 This is a prerequisite for building and linking hard- and soft-float riscv worlds with clang and lld. Requested by: jhb Modified: stable/12/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoD.td Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/lld/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) Modified: stable/12/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp ============================================================================== --- stable/12/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp Tue Jan 7 20:09:58 2020 (r356468) +++ stable/12/contrib/llvm-project/lld/ELF/Arch/RISCV.cpp Tue Jan 7 20:13:31 2020 (r356469) @@ -105,7 +105,10 @@ static uint32_t getEFlags(InputFile *f) { } uint32_t RISCV::calcEFlags() const { - assert(!objectFiles.empty()); + // If there are only binary input files (from -b binary), use a + // value of 0 for the ELF header flags. + if (objectFiles.empty()) + return 0; uint32_t target = getEFlags(objectFiles.front()); Modified: stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp Tue Jan 7 20:09:58 2020 (r356468) +++ stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp Tue Jan 7 20:13:31 2020 (r356469) @@ -64,10 +64,14 @@ bool RISCVAsmBackend::shouldForceRelocation(const MCAs case RISCV::fixup_riscv_tls_gd_hi20: ShouldForce = true; break; - case RISCV::fixup_riscv_pcrel_hi20: - ShouldForce = T->getValue()->findAssociatedFragment() != - Fixup.getValue()->findAssociatedFragment(); + case RISCV::fixup_riscv_pcrel_hi20: { + MCFragment *TFragment = T->getValue()->findAssociatedFragment(); + MCFragment *FixupFragment = Fixup.getValue()->findAssociatedFragment(); + assert(FixupFragment && "We should have a fragment for this fixup"); + ShouldForce = + !TFragment || TFragment->getParent() != FixupFragment->getParent(); break; + } } break; } Modified: stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp Tue Jan 7 20:09:58 2020 (r356468) +++ stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp Tue Jan 7 20:13:31 2020 (r356469) @@ -205,7 +205,6 @@ void RISCVFrameLowering::emitEpilogue(MachineFunction MachineFrameInfo &MFI = MF.getFrameInfo(); auto *RVFI = MF.getInfo(); DebugLoc DL = MBBI->getDebugLoc(); - const RISCVInstrInfo *TII = STI.getInstrInfo(); unsigned FPReg = getFPReg(STI); unsigned SPReg = getSPReg(STI); @@ -226,47 +225,8 @@ void RISCVFrameLowering::emitEpilogue(MachineFunction MachineInstr::FrameDestroy); } - if (hasFP(MF)) { - // To find the instruction restoring FP from stack. - for (auto &I = LastFrameDestroy; I != MBBI; ++I) { - if (I->mayLoad() && I->getOperand(0).isReg()) { - unsigned DestReg = I->getOperand(0).getReg(); - if (DestReg == FPReg) { - // If there is frame pointer, after restoring $fp registers, we - // need adjust CFA to ($sp - FPOffset). - // Emit ".cfi_def_cfa $sp, -FPOffset" - unsigned CFIIndex = MF.addFrameInst(MCCFIInstruction::createDefCfa( - nullptr, RI->getDwarfRegNum(SPReg, true), -FPOffset)); - BuildMI(MBB, std::next(I), DL, - TII->get(TargetOpcode::CFI_INSTRUCTION)) - .addCFIIndex(CFIIndex); - break; - } - } - } - } - - // Add CFI directives for callee-saved registers. - const std::vector &CSI = MFI.getCalleeSavedInfo(); - // Iterate over list of callee-saved registers and emit .cfi_restore - // directives. - for (const auto &Entry : CSI) { - unsigned Reg = Entry.getReg(); - unsigned CFIIndex = MF.addFrameInst(MCCFIInstruction::createRestore( - nullptr, RI->getDwarfRegNum(Reg, true))); - BuildMI(MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) - .addCFIIndex(CFIIndex); - } - // Deallocate stack adjustReg(MBB, MBBI, DL, SPReg, SPReg, StackSize, MachineInstr::FrameDestroy); - - // After restoring $sp, we need to adjust CFA to $(sp + 0) - // Emit ".cfi_def_cfa_offset 0" - unsigned CFIIndex = - MF.addFrameInst(MCCFIInstruction::createDefCfaOffset(nullptr, 0)); - BuildMI(MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) - .addCFIIndex(CFIIndex); } int RISCVFrameLowering::getFrameIndexReference(const MachineFunction &MF, Modified: stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp Tue Jan 7 20:09:58 2020 (r356468) +++ stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp Tue Jan 7 20:13:31 2020 (r356469) @@ -570,10 +570,7 @@ SDValue RISCVTargetLowering::lowerGlobalTLSAddress(SDV int64_t Offset = N->getOffset(); MVT XLenVT = Subtarget.getXLenVT(); - // Non-PIC TLS lowering should always use the LocalExec model. - TLSModel::Model Model = isPositionIndependent() - ? getTargetMachine().getTLSModel(N->getGlobal()) - : TLSModel::LocalExec; + TLSModel::Model Model = getTargetMachine().getTLSModel(N->getGlobal()); SDValue Addr; switch (Model) { Modified: stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoD.td ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoD.td Tue Jan 7 20:09:58 2020 (r356468) +++ stable/12/contrib/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoD.td Tue Jan 7 20:13:31 2020 (r356469) @@ -231,6 +231,9 @@ def : Pat<(fabs FPR64:$rs1), (FSGNJX_D $rs1, $rs1)>; def : PatFpr64Fpr64; def : Pat<(fcopysign FPR64:$rs1, (fneg FPR64:$rs2)), (FSGNJN_D $rs1, $rs2)>; +def : Pat<(fcopysign FPR64:$rs1, FPR32:$rs2), (FSGNJ_D $rs1, (FCVT_D_S $rs2))>; +def : Pat<(fcopysign FPR32:$rs1, FPR64:$rs2), (FSGNJ_S $rs1, (FCVT_S_D $rs2, + 0b111))>; // fmadd: rs1 * rs2 + rs3 def : Pat<(fma FPR64:$rs1, FPR64:$rs2, FPR64:$rs3), From owner-svn-src-stable@freebsd.org Tue Jan 7 20:35:48 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 94CA11F238E; Tue, 7 Jan 2020 20:35:48 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47skfX4CbSz4bW2; Tue, 7 Jan 2020 20:35:48 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8A0584B7F; Tue, 7 Jan 2020 20:35:48 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 007KZmme022257; Tue, 7 Jan 2020 20:35:48 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 007KZhAm022234; Tue, 7 Jan 2020 20:35:43 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202001072035.007KZhAm022234@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Tue, 7 Jan 2020 20:35:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356471 - in stable/12: sys/contrib/dev/acpica sys/contrib/dev/acpica/common sys/contrib/dev/acpica/compiler sys/contrib/dev/acpica/components/debugger sys/contrib/dev/acpica/components... X-SVN-Group: stable-12 X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: in stable/12: sys/contrib/dev/acpica sys/contrib/dev/acpica/common sys/contrib/dev/acpica/compiler sys/contrib/dev/acpica/components/debugger sys/contrib/dev/acpica/components/disassembler sys/contrib... X-SVN-Commit-Revision: 356471 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2020 20:35:48 -0000 Author: jkim Date: Tue Jan 7 20:35:43 2020 New Revision: 356471 URL: https://svnweb.freebsd.org/changeset/base/356471 Log: MFC: r351081, r353764, r355739 Merge ACPICA 20190816, 20191018, and 20191213. Added: stable/12/sys/contrib/dev/acpica/compiler/dtcompilerparser.l - copied unchanged from r353764, head/sys/contrib/dev/acpica/compiler/dtcompilerparser.l stable/12/sys/contrib/dev/acpica/compiler/dtcompilerparser.y - copied unchanged from r353764, head/sys/contrib/dev/acpica/compiler/dtcompilerparser.y Modified: stable/12/sys/contrib/dev/acpica/acpica_prep.sh stable/12/sys/contrib/dev/acpica/changes.txt stable/12/sys/contrib/dev/acpica/common/acgetline.c stable/12/sys/contrib/dev/acpica/common/adisasm.c stable/12/sys/contrib/dev/acpica/common/adwalk.c stable/12/sys/contrib/dev/acpica/common/dmrestag.c stable/12/sys/contrib/dev/acpica/common/dmtables.c stable/12/sys/contrib/dev/acpica/common/dmtbdump1.c stable/12/sys/contrib/dev/acpica/common/dmtbdump2.c stable/12/sys/contrib/dev/acpica/common/dmtbdump3.c stable/12/sys/contrib/dev/acpica/compiler/aslanalyze.c stable/12/sys/contrib/dev/acpica/compiler/aslbtypes.c stable/12/sys/contrib/dev/acpica/compiler/aslcache.c stable/12/sys/contrib/dev/acpica/compiler/aslcodegen.c stable/12/sys/contrib/dev/acpica/compiler/aslcompile.c stable/12/sys/contrib/dev/acpica/compiler/aslcompiler.h stable/12/sys/contrib/dev/acpica/compiler/asldebug.c stable/12/sys/contrib/dev/acpica/compiler/asldefine.h stable/12/sys/contrib/dev/acpica/compiler/aslerror.c stable/12/sys/contrib/dev/acpica/compiler/aslfiles.c stable/12/sys/contrib/dev/acpica/compiler/aslglobal.h stable/12/sys/contrib/dev/acpica/compiler/aslhelp.c stable/12/sys/contrib/dev/acpica/compiler/aslkeywords.y stable/12/sys/contrib/dev/acpica/compiler/asllength.c stable/12/sys/contrib/dev/acpica/compiler/asllistsup.c stable/12/sys/contrib/dev/acpica/compiler/aslload.c stable/12/sys/contrib/dev/acpica/compiler/aslmain.c stable/12/sys/contrib/dev/acpica/compiler/aslmessages.c stable/12/sys/contrib/dev/acpica/compiler/aslmessages.h stable/12/sys/contrib/dev/acpica/compiler/aslmethod.c stable/12/sys/contrib/dev/acpica/compiler/aslnamesp.c stable/12/sys/contrib/dev/acpica/compiler/asloptions.c stable/12/sys/contrib/dev/acpica/compiler/aslparseop.c stable/12/sys/contrib/dev/acpica/compiler/aslprepkg.c stable/12/sys/contrib/dev/acpica/compiler/aslresource.c stable/12/sys/contrib/dev/acpica/compiler/aslrestype2.c stable/12/sys/contrib/dev/acpica/compiler/aslrestype2s.c stable/12/sys/contrib/dev/acpica/compiler/aslstartup.c stable/12/sys/contrib/dev/acpica/compiler/asltransform.c stable/12/sys/contrib/dev/acpica/compiler/asltypes.h stable/12/sys/contrib/dev/acpica/compiler/aslutils.c stable/12/sys/contrib/dev/acpica/compiler/aslxref.c stable/12/sys/contrib/dev/acpica/compiler/aslxrefout.c stable/12/sys/contrib/dev/acpica/compiler/cvdisasm.c stable/12/sys/contrib/dev/acpica/compiler/cvparser.c stable/12/sys/contrib/dev/acpica/compiler/dtcompile.c stable/12/sys/contrib/dev/acpica/compiler/dtcompiler.h stable/12/sys/contrib/dev/acpica/compiler/dtfield.c stable/12/sys/contrib/dev/acpica/compiler/dtio.c stable/12/sys/contrib/dev/acpica/compiler/dtparser.l stable/12/sys/contrib/dev/acpica/compiler/dttable2.c stable/12/sys/contrib/dev/acpica/compiler/dttemplate.c stable/12/sys/contrib/dev/acpica/compiler/prmacros.c stable/12/sys/contrib/dev/acpica/compiler/prscan.c stable/12/sys/contrib/dev/acpica/components/debugger/dbconvert.c stable/12/sys/contrib/dev/acpica/components/debugger/dbdisply.c stable/12/sys/contrib/dev/acpica/components/debugger/dbfileio.c stable/12/sys/contrib/dev/acpica/components/debugger/dbhistry.c stable/12/sys/contrib/dev/acpica/components/debugger/dbinput.c stable/12/sys/contrib/dev/acpica/components/debugger/dbmethod.c stable/12/sys/contrib/dev/acpica/components/debugger/dbnames.c stable/12/sys/contrib/dev/acpica/components/debugger/dbobject.c stable/12/sys/contrib/dev/acpica/components/debugger/dbstats.c stable/12/sys/contrib/dev/acpica/components/disassembler/dmdeferred.c stable/12/sys/contrib/dev/acpica/components/disassembler/dmresrc.c stable/12/sys/contrib/dev/acpica/components/disassembler/dmwalk.c stable/12/sys/contrib/dev/acpica/components/dispatcher/dscontrol.c stable/12/sys/contrib/dev/acpica/components/dispatcher/dsfield.c stable/12/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c stable/12/sys/contrib/dev/acpica/components/dispatcher/dswload.c stable/12/sys/contrib/dev/acpica/components/events/evgpe.c stable/12/sys/contrib/dev/acpica/components/events/evgpeblk.c stable/12/sys/contrib/dev/acpica/components/events/evgpeinit.c stable/12/sys/contrib/dev/acpica/components/events/evmisc.c stable/12/sys/contrib/dev/acpica/components/events/evregion.c stable/12/sys/contrib/dev/acpica/components/events/evrgnini.c stable/12/sys/contrib/dev/acpica/components/events/evxfgpe.c stable/12/sys/contrib/dev/acpica/components/executer/exdump.c stable/12/sys/contrib/dev/acpica/components/executer/exfield.c stable/12/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c stable/12/sys/contrib/dev/acpica/components/namespace/nsaccess.c stable/12/sys/contrib/dev/acpica/components/namespace/nsalloc.c stable/12/sys/contrib/dev/acpica/components/namespace/nsconvert.c stable/12/sys/contrib/dev/acpica/components/namespace/nsdump.c stable/12/sys/contrib/dev/acpica/components/namespace/nsrepair2.c stable/12/sys/contrib/dev/acpica/components/namespace/nsxfname.c stable/12/sys/contrib/dev/acpica/components/parser/psobject.c stable/12/sys/contrib/dev/acpica/components/resources/rscreate.c stable/12/sys/contrib/dev/acpica/components/tables/tbdata.c stable/12/sys/contrib/dev/acpica/components/tables/tbxfload.c stable/12/sys/contrib/dev/acpica/components/utilities/utbuffer.c stable/12/sys/contrib/dev/acpica/components/utilities/utdebug.c stable/12/sys/contrib/dev/acpica/components/utilities/uterror.c stable/12/sys/contrib/dev/acpica/components/utilities/utosi.c stable/12/sys/contrib/dev/acpica/components/utilities/utownerid.c stable/12/sys/contrib/dev/acpica/components/utilities/uttrack.c stable/12/sys/contrib/dev/acpica/include/acconfig.h stable/12/sys/contrib/dev/acpica/include/acdebug.h stable/12/sys/contrib/dev/acpica/include/aclocal.h stable/12/sys/contrib/dev/acpica/include/acobject.h stable/12/sys/contrib/dev/acpica/include/acpiosxf.h stable/12/sys/contrib/dev/acpica/include/acpixf.h stable/12/sys/contrib/dev/acpica/include/acstruct.h stable/12/sys/contrib/dev/acpica/include/actypes.h stable/12/sys/contrib/dev/acpica/include/acutils.h stable/12/sys/contrib/dev/acpica/include/platform/acenv.h stable/12/sys/contrib/dev/acpica/include/platform/acfreebsd.h stable/12/usr.sbin/acpi/iasl/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/contrib/dev/acpica/acpica_prep.sh ============================================================================== --- stable/12/sys/contrib/dev/acpica/acpica_prep.sh Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/acpica_prep.sh Tue Jan 7 20:35:43 2020 (r356471) @@ -18,12 +18,13 @@ fulldirs="common compiler components include os_specif # files to remove stripdirs="generate libraries parsers preprocessor tests tools" -stripfiles="Makefile README accygwin.h acdragonfly.h acdragonflyex.h \ - acefi.h acefiex.h achaiku.h acintel.h aclinux.h aclinuxex.h \ - acmacosx.h acmsvc.h acmsvcex.h acnetbsd.h acos2.h acqnx.h \ - acwin.h acwin64.h acwinex.h new_table.txt osbsdtbl.c osefitbl.c \ - osefixf.c osfreebsdtbl.c oslinuxtbl.c osunixdir.c osunixmap.c \ - oswindir.c oswintbl.c oswinxf.c readme.txt utclib.c utprint.c" +stripfiles="Makefile README aslcompiler.y accygwin.h acdragonfly.h \ + acdragonflyex.h acefi.h acefiex.h achaiku.h acintel.h aclinux.h \ + aclinuxex.h acmacosx.h acmsvc.h acmsvcex.h acnetbsd.h acos2.h \ + acqnx.h acwin.h acwin64.h acwinex.h new_table.txt osbsdtbl.c \ + osefitbl.c osefixf.c osfreebsdtbl.c oslinuxtbl.c osunixdir.c \ + osunixmap.c oswindir.c oswintbl.c oswinxf.c readme.txt utclib.c \ + utprint.c" # include files to canonify src_headers="acapps.h acbuffer.h acclib.h accommon.h acconfig.h \ Modified: stable/12/sys/contrib/dev/acpica/changes.txt ============================================================================== --- stable/12/sys/contrib/dev/acpica/changes.txt Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/changes.txt Tue Jan 7 20:35:43 2020 (r356471) @@ -1,4 +1,138 @@ ---------------------------------------- +13 December 2019. Summary of changes for version 20191213: + + +1) ACPICA kernel-resident subsystem: + +Return a Buffer object for all fields created via the CreateField operator. Previously, an Integer would be returned if the size of the field was less than or equal to the current size of an Integer. Although this goes against the ACPI specification, it provides compatibility with other ACPI implementations. Also updated the ASLTS test suite to reflect this new behavior. + +2) iASL Compiler/Disassembler and ACPICA tools: + +iASL: Implemented detection of (and throw an error for) duplicate values for Case statements within a single Switch statement. Duplicate Integers, Strings, and Buffers are supported. + +iASL: Fix error logging issue during multiple file compilation -- Switch to the correct input file during error node creation. + +iASL: For duplicate named object creation, now emit an error instead of a warning - since this will cause a runtime error. + +AcpiSrc: Add unix line-ending support for non-Windows builds. + +iASL: Add an error condition for an attempt to create a NameString with > 255 NameSegs (the max allowable via the AML definition). + + +---------------------------------------- +18 October 2019. Summary of changes for version 20191018: + + +1) ACPICA kernel-resident subsystem: + +Debugger: added a new command: ?Fields [address space ID]?. This command +dumps the contents of all field units that are defined within the +namespace with a particular address space ID. + +Modified the external interface AcpiLoadTable() to return a table index. +This table index can be used for unloading a table for debugging. + ACPI_STATUS + AcpiLoadTable ( + ACPI_TABLE_HEADER *Table, + UINT32 *TableIndex)) + +Implemented a new external interface: AcpiUnloadTable() This new function +takes a table index as an argument and unloads the table. Useful for +debugging only. + ACPI_STATUS + AcpiUnloadTable ( + UINT32 TableIndex)) + +Ported the AcpiNames utility to use the new table initialization +sequence. The utility was broken before this change. Also, it was +required to include most of the AML interpreter into the utility in order +to process table initialization (module-level code execution.) + +Update for results from running Clang V8.0.1. This fixes all "dead +assignment" warnings. There are still several "Dereference of NULL +pointer" warnings, but these have been found to be false positive +warnings. + + +2) iASL Compiler/Disassembler and ACPICA tools: + +iASL: numerous table compiler changes to ensure that the usage of +yacc/bison syntax is POSIX-compliant. + +iASL/disassembler: several simple bug fixes in the data table +disassembler. + +Acpiexec: expanded the initialization file (the -fi option) to initialize +strings, buffers, packages, and field units. + + +---------------------------------------- +16 August 2019. Summary of changes for version 20190816: + +This release is available at https://acpica.org/downloads + + +1) ACPICA kernel-resident subsystem: + +Modified the OwnerId mechanism to allow for more Owner Ids. The previous +limit was 256 Ids, now it is 4096 Ids. This prevents OWNER_ID_LIMIT +exceptions on machines with a large number of initialization threads, +many CPU cores and nested initialization control methods. + +Introduced acpi_dispatch_gpe() as a wrapper around AcpiEvDetectGpe() for +checking if the given GPE (as represented by a GPE device handle and a +GPE number) is currently active and dispatching it (if that's the case) +outside of interrupt context. + +Table load: exit the interpreter before initializing objects within the +new table This prevents re-acquiring the interpreter lock when loading +tables + +Added the "Windows 2019" string to the _OSI support (version 1903). Jung- +uk Kim + +Macros: removed pointer math on a null pointer. Causes warnings on some +compilers and/or tools. Changed ACPI_TO_POINTER to use ACPI_CAST_PTR +instead of using arithmetic. + +Fully deployed the ACPI_PRINTF_LIKE macro. This macro was not being used +across all "printf-like" internal functions. Also, cleanup all calls to +such functions (both in 32-bit mode and 64-bit mode) now that they are +analyzed by the gcc compiler via ACPI_PRINTF_LIKE. + + +2) iASL Compiler/Disassembler and ACPICA tools: + +iASL: implemented a new data table compiler flex/bison front-end. This +change is internal and is not intended to result in changes to the +compiled code. This new compiler front-end can be invoked using the -tp +option for now, until the old mechanism is removed. + +ASLTS: Implemented a new data table compiler test suite. This test suite +generates all table templates and compile/disassemble/re-compile/binary- +compare each file. + +iASL: return -1 if AML files were not generated due to compiler errors + +iASL: added a warning on use of the now-legacy ASL Processor () keyword. + +iASL: added an error on _UID object declaration that returns a String +within a Processor () declaration. A _UID for a processor must be an +Integer. + +iASL: added a null terminator to name strings that consist only of +multiple parent prefixes (^) + +iASL: added support to compile both ASL and data table files in a single +command. + +Updated the tool generation project files that were recently migrated to +MSVC 2017 to eliminate all new warnings. The new project files appear in +the directory \acpica\generate\msvc2017. This change effectively +deprecates the older project files in \acpica\generate\msvc9. + + +---------------------------------------- 03 July 2019. Summary of changes for version 20190703: Modified: stable/12/sys/contrib/dev/acpica/common/acgetline.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/acgetline.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/acgetline.c Tue Jan 7 20:35:43 2020 (r356471) @@ -532,7 +532,7 @@ AcpiOsGetLine ( * Ignore the various keys like insert/delete/home/end, etc. * But we must eat the final character of the ESC sequence. */ - InputChar = getchar (); + (void) getchar (); continue; default: Modified: stable/12/sys/contrib/dev/acpica/common/adisasm.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/adisasm.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/adisasm.c Tue Jan 7 20:35:43 2020 (r356471) @@ -746,7 +746,6 @@ AdDoExternalFileList ( { ExternalFileList = ExternalFileList->Next; GlobalStatus = AE_TYPE; - Status = AE_OK; continue; } Modified: stable/12/sys/contrib/dev/acpica/common/adwalk.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/adwalk.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/adwalk.c Tue Jan 7 20:35:43 2020 (r356471) @@ -480,6 +480,7 @@ AcpiDmDumpDescending ( { ACPI_OP_WALK_INFO *Info = Context; char *Path; + ACPI_STATUS Status; if (!Op) @@ -522,10 +523,18 @@ AcpiDmDumpDescending ( if (Op->Common.Value.String) { - AcpiNsExternalizeName (ACPI_UINT32_MAX, Op->Common.Value.String, + Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, Op->Common.Value.String, NULL, &Path); - AcpiOsPrintf ("%s %p", Path, Op->Common.Node); - ACPI_FREE (Path); + if (ACPI_SUCCESS (Status)) + { + AcpiOsPrintf ("%s %p", Path, Op->Common.Node); + ACPI_FREE (Path); + } + else + { + AcpiOsPrintf ("Could not externalize pathname for node [%4.4s]", + Op->Common.Node->Name.Ascii); + } } else { @@ -592,7 +601,9 @@ AcpiDmFindOrphanDescending ( return (AE_OK); } +#ifdef ACPI_UNDER_DEVELOPMENT OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode); +#endif switch (Op->Common.AmlOpcode) { @@ -830,9 +841,9 @@ AcpiDmLoadDescendingOp ( * 2) Not the root node * 3) Not a node created by Scope */ - - if (!PreDefined && Node != AcpiGbl_RootNode && - Op->Common.AmlOpcode != AML_SCOPE_OP) + if (!PreDefined && + (Node != AcpiGbl_RootNode) && + (Op->Common.AmlOpcode != AML_SCOPE_OP)) { Node->OwnerId = WalkState->OwnerId; } @@ -1091,7 +1102,7 @@ AcpiDmCommonDescendingOp ( /* Switch/Case conversion */ Status = AcpiDmProcessSwitch (Op); - return (AE_OK); + return (Status); } Modified: stable/12/sys/contrib/dev/acpica/common/dmrestag.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/dmrestag.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/dmrestag.c Tue Jan 7 20:35:43 2020 (r356471) @@ -833,8 +833,12 @@ AcpiGetTagPathname ( /* Internalize the namepath to AML format */ - AcpiNsInternalizeName (Pathname, &InternalPath); + Status = AcpiNsInternalizeName (Pathname, &InternalPath); ACPI_FREE (Pathname); + if (ACPI_FAILURE (Status)) + { + return (NULL); + } /* Update the Op with the symbol */ Modified: stable/12/sys/contrib/dev/acpica/common/dmtables.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/dmtables.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/dmtables.c Tue Jan 7 20:35:43 2020 (r356471) @@ -327,7 +327,7 @@ AdCreateTableHeader ( * makes it easier to rename the disassembled ASL file if needed. */ AcpiOsPrintf ( - "DefinitionBlock (\"\", \"%4.4s\", %hu, \"%.6s\", \"%.8s\", 0x%8.8X)\n", + "DefinitionBlock (\"\", \"%4.4s\", %u, \"%.6s\", \"%.8s\", 0x%8.8X)\n", Table->Signature, Table->Revision, Table->OemId, Table->OemTableId, Table->OemRevision); } @@ -443,8 +443,8 @@ AdGetLocalTables ( /* Get the DSDT via table override */ ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_DSDT); - AcpiOsTableOverride (&TableHeader, &NewTable); - if (!NewTable) + Status = AcpiOsTableOverride (&TableHeader, &NewTable); + if (ACPI_FAILURE (Status) || !NewTable) { fprintf (stderr, "Could not obtain DSDT\n"); return (AE_NO_ACPI_TABLES); @@ -508,6 +508,8 @@ AdParseTable ( AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)); ASL_CV_INIT_FILETREE(Table, AmlStart, AmlLength); + AcpiUtSetIntegerWidth (Table->Revision); + /* Create the root object */ AcpiGbl_ParseOpRoot = AcpiPsCreateScopeOp (AmlStart); @@ -543,7 +545,6 @@ AdParseTable ( } WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE; - WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE; Status = AcpiPsParseAml (WalkState); if (ACPI_FAILURE (Status)) @@ -601,7 +602,7 @@ AdParseTable ( fprintf (stderr, "Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)\n"); - Status = AcpiDmParseDeferredOps (AcpiGbl_ParseOpRoot); + (void) AcpiDmParseDeferredOps (AcpiGbl_ParseOpRoot); fprintf (stderr, "\n"); /* Process Resource Templates */ Modified: stable/12/sys/contrib/dev/acpica/common/dmtbdump1.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/dmtbdump1.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/dmtbdump1.c Tue Jan 7 20:35:43 2020 (r356471) @@ -474,7 +474,6 @@ AcpiDmDumpCsrt ( { return; } - SubSubOffset += InfoLength; } /* Point to next sub-subtable */ @@ -1401,7 +1400,6 @@ AcpiDmDumpHmat ( while (Offset < Table->Length) { AcpiOsPrintf ("\n"); - SubtableOffset = 0; /* Dump HMAT structure header */ @@ -1484,6 +1482,11 @@ AcpiDmDumpHmat ( Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset), 4, AcpiDmTableInfoHmat1a); + if (ACPI_FAILURE (Status)) + { + return; + } + SubtableOffset += 4; } @@ -1500,6 +1503,11 @@ AcpiDmDumpHmat ( Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset), 4, AcpiDmTableInfoHmat1b); + if (ACPI_FAILURE (Status)) + { + return; + } + SubtableOffset += 4; } @@ -1519,6 +1527,11 @@ AcpiDmDumpHmat ( Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset), 2, AcpiDmTableInfoHmat1c); + if (ACPI_FAILURE(Status)) + { + return; + } + SubtableOffset += 2; } } @@ -1542,6 +1555,11 @@ AcpiDmDumpHmat ( Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset), 2, AcpiDmTableInfoHmat2a); + if (ACPI_FAILURE (Status)) + { + return; + } + SubtableOffset += 2; } break; Modified: stable/12/sys/contrib/dev/acpica/common/dmtbdump2.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/dmtbdump2.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/dmtbdump2.c Tue Jan 7 20:35:43 2020 (r356471) @@ -187,6 +187,7 @@ AcpiDmDumpIort ( ACPI_DMTABLE_INFO *InfoTable; char *String; UINT32 i; + UINT32 MappingByteLength; /* Main table */ @@ -314,6 +315,11 @@ AcpiDmDumpIort ( Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), 4, AcpiDmTableInfoIort0a); + if (ACPI_FAILURE (Status)) + { + return; + } + NodeOffset += 4; } } @@ -325,8 +331,10 @@ AcpiDmDumpIort ( if (IortNode->Length > NodeOffset) { + MappingByteLength = + IortNode->MappingCount * sizeof (ACPI_IORT_ID_MAPPING); Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, - Table, IortNode->Length - NodeOffset, + Table, IortNode->Length - NodeOffset - MappingByteLength, AcpiDmTableInfoIort1a); if (ACPI_FAILURE (Status)) { @@ -410,7 +418,6 @@ NextSubtable: /* Point to next node subtable */ Offset += IortNode->Length; - IortNode = ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, IortNode->Length); } } @@ -871,7 +878,7 @@ AcpiDmDumpMcfg ( if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Table->Length) { AcpiOsPrintf ("Warning: there are %u invalid trailing bytes\n", - sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length)); + (UINT32) sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length)); return; } @@ -1211,7 +1218,6 @@ AcpiDmDumpNfit ( /* Has a variable number of 32-bit values at the end */ InfoTable = AcpiDmTableInfoNfit2; - Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable); FieldOffset = sizeof (ACPI_NFIT_INTERLEAVE); break; @@ -1236,7 +1242,6 @@ AcpiDmDumpNfit ( /* Has a variable number of 64-bit addresses at the end */ InfoTable = AcpiDmTableInfoNfit6; - Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable); FieldOffset = sizeof (ACPI_NFIT_FLUSH_ADDRESS) - sizeof (UINT64); break; @@ -1273,6 +1278,7 @@ AcpiDmDumpNfit ( { case ACPI_NFIT_TYPE_INTERLEAVE: + Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable); for (i = 0; i < Interleave->LineCount; i++) { Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset, @@ -1308,6 +1314,7 @@ AcpiDmDumpNfit ( case ACPI_NFIT_TYPE_FLUSH_ADDRESS: + Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable); for (i = 0; i < Hint->HintCount; i++) { Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset, @@ -1806,6 +1813,11 @@ AcpiDmDumpPptt ( Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset, ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Subtable, SubtableOffset), 4, AcpiDmTableInfoPptt0a); + if (ACPI_FAILURE (Status)) + { + return; + } + SubtableOffset += 4; } break; @@ -2063,6 +2075,10 @@ AcpiDmDumpSdev ( Status = AcpiDmDumpTable (Table->Length, 0, ACPI_ADD_PTR (UINT8, Pcie, VendorDataOffset), VendorDataLength, AcpiDmTableInfoSdev1b); + if (ACPI_FAILURE (Status)) + { + return; + } } break; Modified: stable/12/sys/contrib/dev/acpica/common/dmtbdump3.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/common/dmtbdump3.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/common/dmtbdump3.c Tue Jan 7 20:35:43 2020 (r356471) @@ -410,7 +410,7 @@ AcpiDmDumpStao ( Namepath = ACPI_ADD_PTR (char, Table, Offset); StringLength = strlen (Namepath) + 1; - AcpiDmLineHeader (Offset, StringLength, "Namestring"); + AcpiDmLineHeader (Offset, StringLength, "Namepath"); AcpiOsPrintf ("\"%s\"\n", Namepath); /* Point to next namepath */ @@ -526,7 +526,7 @@ AcpiDmDumpTpm2Rev3 ( { case ACPI_TPM23_ACPI_START_METHOD: - Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, + (void) AcpiDmDumpTable (Table->Length, Offset, Subtable, Table->Length - Offset, AcpiDmTableInfoTpm23a); break; @@ -591,7 +591,7 @@ AcpiDmDumpTpm2 ( Offset += sizeof (ACPI_TPM2_TRAILER); AcpiOsPrintf ("\n"); - Status = AcpiDmDumpTable (Table->Length, Offset, ArmSubtable, + (void) AcpiDmDumpTable (Table->Length, Offset, ArmSubtable, Table->Length - Offset, AcpiDmTableInfoTpm211); break; Modified: stable/12/sys/contrib/dev/acpica/compiler/aslanalyze.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslanalyze.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslanalyze.c Tue Jan 7 20:35:43 2020 (r356471) @@ -569,7 +569,7 @@ ApCheckForGpeNameConflict ( /* Need a null-terminated string version of NameSeg */ - ACPI_MOVE_32_TO_32 (Name, &Op->Asl.NameSeg); + ACPI_MOVE_32_TO_32 (Name, Op->Asl.NameSeg); Name[ACPI_NAMESEG_SIZE] = 0; /* Modified: stable/12/sys/contrib/dev/acpica/compiler/aslbtypes.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslbtypes.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslbtypes.c Tue Jan 7 20:35:43 2020 (r356471) @@ -474,7 +474,6 @@ AnFormatBtype ( strcat (Buffer, "|"); } - First = FALSE; strcat (Buffer, "Resource"); } } Modified: stable/12/sys/contrib/dev/acpica/compiler/aslcache.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslcache.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslcache.c Tue Jan 7 20:35:43 2020 (r356471) @@ -421,7 +421,7 @@ UtDeleteLocalCaches ( DbgPrint (ASL_DEBUG_OUTPUT, "%u ParseOps, Buffer size: %u ops (%u bytes), %u Buffers\n", AslGbl_ParseOpCount, ASL_PARSEOP_CACHE_SIZE, - (sizeof (ACPI_PARSE_OBJECT) * ASL_PARSEOP_CACHE_SIZE), BufferCount); + ((UINT32) sizeof (ACPI_PARSE_OBJECT) * ASL_PARSEOP_CACHE_SIZE), BufferCount); /* Reset cache globals */ @@ -445,7 +445,7 @@ UtDeleteLocalCaches ( DbgPrint (ASL_DEBUG_OUTPUT, "%u Fields, Buffer size: %u fields (%u bytes), %u Buffers\n", AslGbl_FieldCount, ASL_FIELD_CACHE_SIZE, - (sizeof (DT_FIELD) * ASL_FIELD_CACHE_SIZE), BufferCount); + ((UINT32) sizeof (DT_FIELD) * ASL_FIELD_CACHE_SIZE), BufferCount); /* Reset cache globals */ @@ -468,7 +468,7 @@ UtDeleteLocalCaches ( DbgPrint (ASL_DEBUG_OUTPUT, "%u Subtables, Buffer size: %u subtables (%u bytes), %u Buffers\n", AslGbl_SubtableCount, ASL_SUBTABLE_CACHE_SIZE, - (sizeof (DT_SUBTABLE) * ASL_SUBTABLE_CACHE_SIZE), BufferCount); + ((UINT32) sizeof (DT_SUBTABLE) * ASL_SUBTABLE_CACHE_SIZE), BufferCount); /* Reset cache globals */ Modified: stable/12/sys/contrib/dev/acpica/compiler/aslcodegen.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslcodegen.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslcodegen.c Tue Jan 7 20:35:43 2020 (r356471) @@ -618,8 +618,8 @@ CgWriteTableHeader ( Op->Asl.AmlSubtreeLength += strlen (AslGbl_ParseTreeRoot->Asl.Filename) + 3; - CvDbgPrint (" Length: %lu\n", - strlen (AslGbl_ParseTreeRoot->Asl.Filename) + 3); + CvDbgPrint (" Length: %u\n", + (UINT32) strlen (AslGbl_ParseTreeRoot->Asl.Filename) + 3); if (Op->Asl.CommentList) { Modified: stable/12/sys/contrib/dev/acpica/compiler/aslcompile.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslcompile.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslcompile.c Tue Jan 7 20:35:43 2020 (r356471) @@ -220,6 +220,7 @@ CmDoCompile ( PrDoPreprocess (); AslGbl_CurrentLineNumber = 1; AslGbl_LogicalLineNumber = 1; + AslGbl_CurrentLineOffset = 0; if (AslGbl_PreprocessOnly) { @@ -282,25 +283,6 @@ CmDoCompile ( LsDumpParseTree (); - OpcGetIntegerWidth (AslGbl_ParseTreeRoot->Asl.Child); - UtEndEvent (Event); - - /* Pre-process parse tree for any operator transforms */ - - Event = UtBeginEvent ("Parse tree transforms"); - DbgPrint (ASL_DEBUG_OUTPUT, "\nParse tree transforms\n\n"); - TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE, - TrAmlTransformWalkBegin, TrAmlTransformWalkEnd, NULL); - UtEndEvent (Event); - - /* Generate AML opcodes corresponding to the parse tokens */ - - Event = UtBeginEvent ("Generate AML opcodes"); - DbgPrint (ASL_DEBUG_OUTPUT, "Generating AML opcodes\n\n"); - TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, NULL, - OpcAmlOpcodeWalk, NULL); - UtEndEvent (Event); - UtEndEvent (FullCompile); return (AE_OK); @@ -331,6 +313,25 @@ CmDoAslMiddleAndBackEnd ( ACPI_STATUS Status; + OpcGetIntegerWidth (AslGbl_ParseTreeRoot->Asl.Child); + + /* Pre-process parse tree for any operator transforms */ + + Event = UtBeginEvent ("Parse tree transforms"); + DbgPrint (ASL_DEBUG_OUTPUT, "\nParse tree transforms\n\n"); + TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_TWICE, + TrAmlTransformWalkBegin, TrAmlTransformWalkEnd, NULL); + UtEndEvent (Event); + + /* Generate AML opcodes corresponding to the parse tokens */ + + Event = UtBeginEvent ("Generate AML opcodes"); + DbgPrint (ASL_DEBUG_OUTPUT, "Generating AML opcodes\n\n"); + TrWalkParseTree (AslGbl_ParseTreeRoot, ASL_WALK_VISIT_UPWARD, + NULL, OpcAmlOpcodeWalk, NULL); + UtEndEvent (Event); + + /* Interpret and generate all compile-time constants */ Event = UtBeginEvent ("Constant folding via AML interpreter"); @@ -853,10 +854,11 @@ CmDumpAllEvents ( * ******************************************************************************/ -void +int CmCleanupAndExit ( void) { + int Status = 0; BOOLEAN DeleteAmlFile = FALSE; ASL_GLOBAL_FILE_NODE *CurrentFileNode = AslGbl_FilesList; @@ -915,20 +917,38 @@ CmCleanupAndExit ( UtDisplaySummary (ASL_FILE_STDOUT); /* - * We will delete the AML file if there are errors and the - * force AML output option has not been used. + * Delete the AML file if there are errors and the force AML output option + * (-f) has not been used. + * + * Return -1 as a status of the compiler if no AML files are generated. If + * the AML file is generated in the presence of errors, return 0. In the + * latter case, the errors were ignored by the user so the compilation is + * considered successful. */ - if (AslGbl_ParserErrorDetected || AslGbl_PreprocessOnly || ((AslGbl_ExceptionCount[ASL_ERROR] > 0) && + if (AslGbl_ParserErrorDetected || AslGbl_PreprocessOnly || + ((AslGbl_ExceptionCount[ASL_ERROR] > 0) && (!AslGbl_IgnoreErrors) && AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle)) { DeleteAmlFile = TRUE; + Status = -1; } /* Close all open files */ while (CurrentFileNode) { + /* + * Set the program return status based on file errors. If there are any + * errors and during compilation, the command is not considered + * successful. + */ + if (Status != -1 && !AslGbl_IgnoreErrors && + CurrentFileNode->ParserErrorDetected) + { + Status = -1; + } + switch (FlSwitchFileSet (CurrentFileNode->Files[ASL_FILE_INPUT].Filename)) { case SWITCH_TO_SAME_FILE: @@ -952,6 +972,8 @@ CmCleanupAndExit ( { UtDeleteLocalCaches (); } + + return (Status); } Modified: stable/12/sys/contrib/dev/acpica/compiler/aslcompiler.h ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslcompiler.h Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslcompiler.h Tue Jan 7 20:35:43 2020 (r356471) @@ -266,7 +266,7 @@ void CmDoOutputFiles ( void); -void +int CmCleanupAndExit ( void); @@ -1052,6 +1052,7 @@ void FlCloseFile ( UINT32 FileId); +ACPI_PRINTF_LIKE (2) void FlPrintFile ( UINT32 FileId, @@ -1195,6 +1196,7 @@ OtXrefWalkPart1 ( /* * aslutils - common compiler utilities */ +ACPI_PRINTF_LIKE(2) void DbgPrint ( UINT32 Type, @@ -1288,6 +1290,10 @@ UtInternalizeName ( char *ExternalName, char **ConvertedName); +BOOLEAN +UtNameContainsAllPrefix ( + ACPI_PARSE_OBJECT *Op); + void UtAttachNamepathToOwner ( ACPI_PARSE_OBJECT *Op, @@ -1303,7 +1309,16 @@ UINT64 UtDoConstant ( char *String); +char * +AcpiUtStrdup ( + char *String); +char * +AcpiUtStrcat ( + char *String1, + char *String2); + + /* * asluuid - UUID support */ @@ -1604,6 +1619,7 @@ DtCreateTemplates ( /* * ASL/ASL+ converter debug */ +ACPI_PRINTF_LIKE (1) void CvDbgPrint ( char *Fmt, Modified: stable/12/sys/contrib/dev/acpica/compiler/asldebug.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/asldebug.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/asldebug.c Tue Jan 7 20:35:43 2020 (r356471) @@ -239,7 +239,7 @@ UtDumpIntegerOp ( case 8: /* Dword */ DbgPrint (ASL_TREE_OUTPUT, - "%*.*X", IntegerLength, IntegerLength, Op->Asl.Value.Integer); + "%*.*X", IntegerLength, IntegerLength, (UINT32) Op->Asl.Value.Integer); break; case 16: /* Qword and Integer */ Modified: stable/12/sys/contrib/dev/acpica/compiler/asldefine.h ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/asldefine.h Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/asldefine.h Tue Jan 7 20:35:43 2020 (r356471) @@ -222,11 +222,11 @@ /* Misc */ -#define ASL_EXTERNAL_METHOD 255 -#define ASL_ABORT TRUE -#define ASL_NO_ABORT FALSE -#define ASL_EOF ACPI_UINT32_MAX -#define ASL_IGNORE_LINE (ACPI_UINT32_MAX -1) +#define ASL_EXTERNAL_METHOD_UNKNOWN_PARAMS 255 +#define ASL_ABORT TRUE +#define ASL_NO_ABORT FALSE +#define ASL_EOF ACPI_UINT32_MAX +#define ASL_IGNORE_LINE (ACPI_UINT32_MAX -1) /* Listings */ @@ -290,7 +290,7 @@ #define ASL_PARSE_TREE_DEBUG2 \ " %08X %04X %04X %01X %04X %04X %05X %05X "\ - "%08X %08X %08X %08X %08X %08X %04X %02d %5d %5d %5d %5d" + "%8p %8p %8p %8p %08X %08X %04X %02d %5d %5d %5d %5d" /* * Macros for ASL/ASL+ converter Modified: stable/12/sys/contrib/dev/acpica/compiler/aslerror.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslerror.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslerror.c Tue Jan 7 20:35:43 2020 (r356471) @@ -335,7 +335,7 @@ AeAddToErrorLog ( * PARAMETERS: OutputFile - Output file * Enode - Error node to print * PrematureEOF - True = PrematureEOF has been reached - * Total - Total legth of line + * Total - Total length of line * * RETURN: None * @@ -445,7 +445,7 @@ AeDecodeErrorMessageId ( * PARAMETERS: OutputFile - Output file * Enode - Error node to print * PrematureEOF - True = PrematureEOF has been reached - * Total - amount of characters printed so far + * Total - Number of characters printed so far * * * RETURN: Status @@ -527,6 +527,7 @@ AePrintErrorSourceLine ( fprintf (OutputFile, "\n"); return AE_OK; } + /* * Seek to the offset in the combined source file, * read the source line, and write it to the output. @@ -550,8 +551,9 @@ AePrintErrorSourceLine ( AslGbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename); return AE_IO_ERROR; } - /* Read/write the source line, up to the maximum line length */ + /* Read/write the source line, up to the maximum line length */ + while (RActual && SourceByte && (SourceByte != '\n')) { if (*Total < 256) @@ -732,7 +734,7 @@ AePrintException ( * * RETURN: None * - * DESCRIPTION: Print the contents of an error nodes. This function is tailored + * DESCRIPTION: Print the contents of an error node. This function is tailored * to print error nodes that are SubErrors within ASL_ERROR_MSG * ******************************************************************************/ @@ -795,8 +797,8 @@ AePrintErrorLog ( * LogicalLineNumber - Cumulative line number * LogicalByteOffset - Byte offset in source file * Column - Column in current line - * Filename - source filename - * ExtraMessage - additional error message + * Filename - Source filename + * ExtraMessage - Additional error message * SourceLine - Line of error source code * SubError - SubError of this InputEnode * @@ -863,10 +865,17 @@ static void AslInitEnode ( Enode->FilenameLength = 6; } - FileNode = FlGetCurrentFileNode (); + /* + * Attempt to get the file node of the filename listed in the parse + * node. If the name doesn't exist in the global file node, it is + * because the file is included by #include or ASL include. In this + * case, get the current file node. The source output of the current + * file will contain the contents of the file listed in the parse node. + */ + FileNode = FlGetFileNode (ASL_FILE_INPUT, Filename); if (!FileNode) { - return; + FileNode = FlGetCurrentFileNode (); } Enode->SourceFilename = @@ -884,8 +893,8 @@ static void AslInitEnode ( * LineNumber - Actual file line number * Column - Column in current line * SourceLine - Actual source code line - * Filename - source filename - * ExtraMessage - additional error message + * Filename - Source filename + * ExtraMessage - Additional error message * * RETURN: None * @@ -918,8 +927,8 @@ AslCommonError2 ( * LogicalLineNumber - Cumulative line number * LogicalByteOffset - Byte offset in source file * Column - Column in current line - * Filename - source filename - * ExtraMessage - additional error message + * Filename - Source filename + * ExtraMessage - Additional error message * * RETURN: None * @@ -961,8 +970,8 @@ AslCommonError ( * LogicalLineNumber - Cumulative line number * LogicalByteOffset - Byte offset in source file * Column - Column in current line - * Filename - source filename - * Message - additional error message + * Filename - Source filename + * Message - Additional error message * SourceLine - Actual line of source code * SubError - Sub-error associated with this error * @@ -1025,7 +1034,7 @@ AslLogNewError ( * PARAMETERS: Level - Seriousness (Warning/error, etc.) * MessageId - Index into global message buffer * - * RETURN: UINT8 - modified level + * RETURN: UINT8 - Modified level * * DESCRIPTION: Get the modified level of exception codes that are reported as * errors from the -ww option. @@ -1369,7 +1378,7 @@ AslIsExceptionDisabled ( * MainMsg - Message pertaining to the MainOp * SubMsgId - Index into global message buffer * SubOp - Additional parse node for better message - * SubMsg - Message pertainint to SubOp + * SubMsg - Message pertaining to SubOp * * * RETURN: None @@ -1421,7 +1430,7 @@ AslDualParseOpError ( * PARAMETERS: Level - Seriousness (Warning/error, etc.) * MessageId - Index into global message buffer * Op - Parse node where error happened - * ExtraMessage - additional error message + * ExtraMessage - Additional error message * * RETURN: None * @@ -1459,7 +1468,7 @@ AslError ( * * PARAMETERS: Op - Parse node where error happened * Status - The ACPICA Exception - * ExtraMessage - additional error message + * ExtraMessage - Additional error message * Abort - TRUE -> Abort compilation * * RETURN: None Modified: stable/12/sys/contrib/dev/acpica/compiler/aslfiles.c ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslfiles.c Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslfiles.c Tue Jan 7 20:35:43 2020 (r356471) @@ -207,12 +207,6 @@ FlInitOneFile ( NewFileNode = ACPI_CAST_PTR (ASL_GLOBAL_FILE_NODE, UtLocalCacheCalloc (sizeof (ASL_GLOBAL_FILE_NODE))); - if (!NewFileNode) - { - AslError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION, NULL, NULL); - return (AE_NO_MEMORY); - } - NewFileNode->ParserErrorDetected = FALSE; NewFileNode->Next = AslGbl_FilesList; @@ -420,8 +414,22 @@ ASL_GLOBAL_FILE_NODE * FlGetCurrentFileNode ( void) { - return (FlGetFileNode ( - ASL_FILE_INPUT,AslGbl_Files[ASL_FILE_INPUT].Filename)); + ASL_GLOBAL_FILE_NODE *FileNode = + FlGetFileNode (ASL_FILE_INPUT,AslGbl_Files[ASL_FILE_INPUT].Filename); + + + if (!FileNode) + { + /* + * If the current file node does not exist after initializing the file + * node structures, something went wrong and this is an unrecoverable + * condition. + */ + FlFileError (ASL_FILE_INPUT, ASL_MSG_COMPILER_INTERNAL); + AslAbort (); + } + + return (FileNode); } Modified: stable/12/sys/contrib/dev/acpica/compiler/aslglobal.h ============================================================================== --- stable/12/sys/contrib/dev/acpica/compiler/aslglobal.h Tue Jan 7 20:24:21 2020 (r356470) +++ stable/12/sys/contrib/dev/acpica/compiler/aslglobal.h Tue Jan 7 20:35:43 2020 (r356471) @@ -244,7 +244,6 @@ extern const char *AslGbl_SpecialNam #endif - /* *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Wed Jan 8 15:41:05 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 792841F2866; Wed, 8 Jan 2020 15:41:05 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tD412dhPz3Dsj; Wed, 8 Jan 2020 15:41:05 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 55AB41A2F3; Wed, 8 Jan 2020 15:41:05 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008Ff5Sb008707; Wed, 8 Jan 2020 15:41:05 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008Ff460008705; Wed, 8 Jan 2020 15:41:05 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081541.008Ff460008705@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 15:41:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356489 - in stable/12/sys: netinet netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12/sys: netinet netinet6 X-SVN-Commit-Revision: 356489 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 15:41:05 -0000 Author: bz Date: Wed Jan 8 15:41:04 2020 New Revision: 356489 URL: https://svnweb.freebsd.org/changeset/base/356489 Log: MFC r353635 (by hselasky): Fix panic in network stack due to use after free when receiving partial fragmented packets before a network interface is detached. When sending IPv4 or IPv6 fragmented packets and a fragment is lost before the network device is freed, the mbuf making up the fragment will remain in the temporary hashed fragment list and cause a panic when it times out due to accessing a freed network interface structure. 1) Make sure the m_pkthdr.rcvif always points to a valid network interface. Else the rcvif field should be set to NULL. 2) Use the rcvif of the last received fragment as m_pkthdr.rcvif for the fully defragged packet, instead of the first received fragment. Modified: stable/12/sys/netinet/ip_reass.c stable/12/sys/netinet6/frag6.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_reass.c ============================================================================== --- stable/12/sys/netinet/ip_reass.c Wed Jan 8 14:01:15 2020 (r356488) +++ stable/12/sys/netinet/ip_reass.c Wed Jan 8 15:41:04 2020 (r356489) @@ -46,7 +46,10 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include +#include #include #include #include @@ -180,6 +183,7 @@ ip_reass(struct mbuf *m) struct ip *ip; struct mbuf *p, *q, *nq, *t; struct ipq *fp; + struct ifnet *srcifp; struct ipqhead *head; int i, hlen, next, tmpmax; u_int8_t ecn, ecn0; @@ -240,6 +244,11 @@ ip_reass(struct mbuf *m) } /* + * Store receive network interface pointer for later. + */ + srcifp = m->m_pkthdr.rcvif; + + /* * Attempt reassembly; if it succeeds, proceed. * ip_reass() will return a different mbuf. */ @@ -489,8 +498,11 @@ ip_reass(struct mbuf *m) m->m_len += (ip->ip_hl << 2); m->m_data -= (ip->ip_hl << 2); /* some debugging cruft by sklower, below, will go away soon */ - if (m->m_flags & M_PKTHDR) /* XXX this should be done elsewhere */ + if (m->m_flags & M_PKTHDR) { /* XXX this should be done elsewhere */ m_fixhdr(m); + /* set valid receive interface pointer */ + m->m_pkthdr.rcvif = srcifp; + } IPSTAT_INC(ips_reassembled); IPQ_UNLOCK(hash); @@ -606,6 +618,43 @@ ipreass_drain(void) } } +/* + * Drain off all datagram fragments belonging to + * the given network interface. + */ +static void +ipreass_cleanup(void *arg __unused, struct ifnet *ifp) +{ + struct ipq *fp, *temp; + struct mbuf *m; + int i; + + KASSERT(ifp != NULL, ("%s: ifp is NULL", __func__)); + + /* + * Skip processing if IPv4 reassembly is not initialised or + * torn down by ipreass_destroy(). + */ + if (V_ipq_zone == NULL) + return; + + CURVNET_SET_QUIET(ifp->if_vnet); + for (i = 0; i < IPREASS_NHASH; i++) { + IPQ_LOCK(i); + /* Scan fragment list. */ + TAILQ_FOREACH_SAFE(fp, &V_ipq[i].head, ipq_list, temp) { + for (m = fp->ipq_frags; m != NULL; m = m->m_nextpkt) { + /* clear no longer valid rcvif pointer */ + if (m->m_pkthdr.rcvif == ifp) + m->m_pkthdr.rcvif = NULL; + } + } + IPQ_UNLOCK(i); + } + CURVNET_RESTORE(); +} +EVENTHANDLER_DEFINE(ifnet_departure_event, ipreass_cleanup, NULL, 0); + #ifdef VIMAGE /* * Destroy IP reassembly structures. @@ -616,6 +665,7 @@ ipreass_destroy(void) ipreass_drain(); uma_zdestroy(V_ipq_zone); + V_ipq_zone = NULL; for (int i = 0; i < IPREASS_NHASH; i++) mtx_destroy(&V_ipq[i].lock); } Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 14:01:15 2020 (r356488) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 15:41:04 2020 (r356489) @@ -234,7 +234,7 @@ frag6_freef(struct ip6q *q6, uint32_t bucket) * Return ICMP time exceeded error for the 1st fragment. * Just free other fragments. */ - if (af6->ip6af_off == 0) { + if (af6->ip6af_off == 0 && m->m_pkthdr.rcvif != NULL) { /* Adjust pointer. */ ip6 = mtod(m, struct ip6_hdr *); @@ -260,6 +260,43 @@ frag6_freef(struct ip6q *q6, uint32_t bucket) } /* + * Drain off all datagram fragments belonging to + * the given network interface. + */ +static void +frag6_cleanup(void *arg __unused, struct ifnet *ifp) +{ + struct ip6q *q6, *q6n, *head; + struct ip6asfrag *af6; + struct mbuf *m; + int i; + + KASSERT(ifp != NULL, ("%s: ifp is NULL", __func__)); + + CURVNET_SET_QUIET(ifp->if_vnet); + for (i = 0; i < IP6REASS_NHASH; i++) { + IP6QB_LOCK(i); + head = IP6QB_HEAD(i); + /* Scan fragment list. */ + for (q6 = head->ip6q_next; q6 != head; q6 = q6n) { + q6n = q6->ip6q_next; + + for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; + af6 = af6->ip6af_down) { + m = IP6_REASS_MBUF(af6); + + /* clear no longer valid rcvif pointer */ + if (m->m_pkthdr.rcvif == ifp) + m->m_pkthdr.rcvif = NULL; + } + } + IP6QB_UNLOCK(i); + } + CURVNET_RESTORE(); +} +EVENTHANDLER_DEFINE(ifnet_departure_event, frag6_cleanup, NULL, 0); + +/* * Like in RFC2460, in RFC8200, fragment and reassembly rules do not agree with * each other, in terms of next header field handling in fragment header. * While the sender will use the same value for all of the fragmented packets, @@ -295,6 +332,7 @@ int frag6_input(struct mbuf **mp, int *offp, int proto) { struct ifnet *dstifp; + struct ifnet *srcifp; struct in6_ifaddr *ia6; struct ip6_hdr *ip6; struct ip6_frag *ip6f; @@ -326,6 +364,11 @@ frag6_input(struct mbuf **mp, int *offp, int proto) return (IPPROTO_DONE); #endif + /* + * Store receive network interface pointer for later. + */ + srcifp = m->m_pkthdr.rcvif; + dstifp = NULL; /* Find the destination interface of the packet. */ ia6 = in6ifa_ifwithaddr(&ip6->ip6_dst, 0 /* XXX */); @@ -523,6 +566,9 @@ frag6_input(struct mbuf **mp, int *offp, int proto) frag6_deq(af6, bucket); free(af6, M_FRAG6); + /* Set a valid receive interface pointer. */ + merr->m_pkthdr.rcvif = srcifp; + /* Adjust pointer. */ ip6err = mtod(merr, struct ip6_hdr *); @@ -709,6 +755,8 @@ insert: for (t = m; t; t = t->m_next) plen += t->m_len; m->m_pkthdr.len = plen; + /* Set a valid receive interface pointer. */ + m->m_pkthdr.rcvif = srcifp; } #ifdef RSS From owner-svn-src-stable@freebsd.org Wed Jan 8 15:50:46 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2B84E1F2C8C; Wed, 8 Jan 2020 15:50:46 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tDHB0KrLz3FMs; Wed, 8 Jan 2020 15:50:46 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 06B601A49D; Wed, 8 Jan 2020 15:50:46 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008Foj33013201; Wed, 8 Jan 2020 15:50:45 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008Foj4e013200; Wed, 8 Jan 2020 15:50:45 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081550.008Foj4e013200@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 15:50:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356490 - stable/12/sys/netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/netinet6 X-SVN-Commit-Revision: 356490 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 15:50:46 -0000 Author: bz Date: Wed Jan 8 15:50:45 2020 New Revision: 356490 URL: https://svnweb.freebsd.org/changeset/base/356490 Log: MFC r344301 (by thj): When dropping a fragment queue, account for the number of fragments in the queue. This improves accounting between the number of fragments received and the number of fragments dropped. Modified: stable/12/sys/netinet6/frag6.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 15:41:04 2020 (r356489) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 15:50:45 2020 (r356490) @@ -672,7 +672,7 @@ insert: af6 = af6->ip6af_down) { if (af6->ip6af_off != plen) { if (q6->ip6q_nfrag > V_ip6_maxfragsperpacket) { - IP6STAT_INC(ip6s_fragdropped); + IP6STAT_ADD(ip6s_fragdropped, q6->ip6q_nfrag); frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); @@ -682,7 +682,7 @@ insert: } if (af6->ip6af_up->ip6af_mff) { if (q6->ip6q_nfrag > V_ip6_maxfragsperpacket) { - IP6STAT_INC(ip6s_fragdropped); + IP6STAT_ADD(ip6s_fragdropped, q6->ip6q_nfrag); frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); @@ -826,7 +826,8 @@ frag6_slowtimo(void) --q6->ip6q_ttl; q6 = q6->ip6q_next; if (q6->ip6q_prev->ip6q_ttl == 0) { - IP6STAT_INC(ip6s_fragtimeout); + IP6STAT_ADD(ip6s_fragtimeout, + q6->ip6q_prev->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ frag6_freef(q6->ip6q_prev, bucket); } @@ -844,7 +845,8 @@ frag6_slowtimo(void) (V_ip6_maxfragpackets > 0 && V_ip6qb[bucket].count > V_ip6_maxfragbucketsize)) && head->ip6q_prev != head) { - IP6STAT_INC(ip6s_fragoverflow); + IP6STAT_ADD(ip6s_fragoverflow, + q6->ip6q_prev->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ frag6_freef(head->ip6q_prev, bucket); } @@ -861,7 +863,8 @@ frag6_slowtimo(void) IP6QB_LOCK(bucket); head = IP6QB_HEAD(bucket); if (head->ip6q_prev != head) { - IP6STAT_INC(ip6s_fragoverflow); + IP6STAT_ADD(ip6s_fragoverflow, + q6->ip6q_prev->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ frag6_freef(head->ip6q_prev, bucket); } From owner-svn-src-stable@freebsd.org Wed Jan 8 16:14:23 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1AB921F3526; Wed, 8 Jan 2020 16:14:23 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tDpR0dD9z3Gv8; Wed, 8 Jan 2020 16:14:23 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EB2AD1A9F1; Wed, 8 Jan 2020 16:14:22 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008GEMlh031097; Wed, 8 Jan 2020 16:14:22 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008GELrv031088; Wed, 8 Jan 2020 16:14:21 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081614.008GELrv031088@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 16:14:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356491 - in stable/12: etc/mtree sys/netinet6 tests/sys tests/sys/netinet6 tests/sys/netinet6/frag6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12: etc/mtree sys/netinet6 tests/sys tests/sys/netinet6 tests/sys/netinet6/frag6 X-SVN-Commit-Revision: 356491 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 16:14:23 -0000 Author: bz Date: Wed Jan 8 16:14:20 2020 New Revision: 356491 URL: https://svnweb.freebsd.org/changeset/base/356491 Log: MFC r350748,353792-353794,353963,353965-353966,354016-354017, 354019-354020,354037,354040,354042,354045-354046,354053,354081, 354084: 2nd half of the major frag6 rework and adding test cases. Cleanup structures, fix vnet teardown leak, add sysctls, whitespace cahnges, replace KAME hand-rolled queues with queue(9) TAILQs, comments, small improvements, do not leak packet queue entry in error case, fix counter leak in error case and optimise code, handling of overlapping fragments to conform to RFC 8200, prevent overwriting initial fragoff=0 packet meta-data. Submitted by: jtl (initally, partially) Sponsored by: Netflix (initially) Added: stable/12/tests/sys/netinet6/ - copied from r353794, head/tests/sys/netinet6/ stable/12/tests/sys/netinet6/frag6/frag6_20.py - copied unchanged from r354053, head/tests/sys/netinet6/frag6/frag6_20.py stable/12/tests/sys/netinet6/frag6/frag6_20.sh - copied unchanged from r354053, head/tests/sys/netinet6/frag6/frag6_20.sh Modified: stable/12/etc/mtree/BSD.tests.dist stable/12/sys/netinet6/frag6.c stable/12/sys/netinet6/ip6_input.c stable/12/sys/netinet6/ip6_var.h stable/12/tests/sys/Makefile stable/12/tests/sys/netinet6/frag6/Makefile stable/12/tests/sys/netinet6/frag6/frag6_01.sh stable/12/tests/sys/netinet6/frag6/frag6_02.sh stable/12/tests/sys/netinet6/frag6/frag6_03.py stable/12/tests/sys/netinet6/frag6/frag6_03.sh stable/12/tests/sys/netinet6/frag6/frag6_04.sh stable/12/tests/sys/netinet6/frag6/frag6_05.py stable/12/tests/sys/netinet6/frag6/frag6_05.sh stable/12/tests/sys/netinet6/frag6/frag6_06.sh stable/12/tests/sys/netinet6/frag6/frag6_07.py stable/12/tests/sys/netinet6/frag6/frag6_07.sh stable/12/tests/sys/netinet6/frag6/frag6_08.py stable/12/tests/sys/netinet6/frag6/frag6_08.sh stable/12/tests/sys/netinet6/frag6/frag6_09.sh stable/12/tests/sys/netinet6/frag6/frag6_10.py stable/12/tests/sys/netinet6/frag6/frag6_10.sh stable/12/tests/sys/netinet6/frag6/frag6_11.sh stable/12/tests/sys/netinet6/frag6/frag6_12.sh stable/12/tests/sys/netinet6/frag6/frag6_13.py stable/12/tests/sys/netinet6/frag6/frag6_13.sh stable/12/tests/sys/netinet6/frag6/frag6_14.py stable/12/tests/sys/netinet6/frag6/frag6_14.sh stable/12/tests/sys/netinet6/frag6/frag6_15.sh stable/12/tests/sys/netinet6/frag6/frag6_16.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/etc/mtree/BSD.tests.dist ============================================================================== --- stable/12/etc/mtree/BSD.tests.dist Wed Jan 8 15:50:45 2020 (r356490) +++ stable/12/etc/mtree/BSD.tests.dist Wed Jan 8 16:14:20 2020 (r356491) @@ -784,6 +784,10 @@ .. netinet .. + netinet6 + frag6 + .. + .. netipsec tunnel .. Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 15:50:45 2020 (r356490) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 16:14:20 2020 (r356491) @@ -3,6 +3,7 @@ * * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. * All rights reserved. + * Copyright (c) 2019 Netflix, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -45,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -67,28 +69,52 @@ __FBSDID("$FreeBSD$"); #include #endif +/* + * A "big picture" of how IPv6 fragment queues are all linked together. + * + * struct ip6qbucket ip6qb[...]; hashed buckets + * |||||||| + * | + * +--- TAILQ(struct ip6q, packets) *q6; tailq entries holding + * |||||||| fragmented packets + * | (1 per original packet) + * | + * +--- TAILQ(struct ip6asfrag, ip6q_frags) *af6; tailq entries of IPv6 + * | *ip6af;fragment packets + * | for one original packet + * + *mbuf + */ + /* Reassembly headers are stored in hash buckets. */ #define IP6REASS_NHASH_LOG2 10 #define IP6REASS_NHASH (1 << IP6REASS_NHASH_LOG2) #define IP6REASS_HMASK (IP6REASS_NHASH - 1) -static void frag6_enq(struct ip6asfrag *, struct ip6asfrag *, - uint32_t bucket __unused); -static void frag6_deq(struct ip6asfrag *, uint32_t bucket __unused); -static void frag6_insque_head(struct ip6q *, struct ip6q *, - uint32_t bucket); -static void frag6_remque(struct ip6q *, uint32_t bucket); -static void frag6_freef(struct ip6q *, uint32_t bucket); - +TAILQ_HEAD(ip6qhead, ip6q); struct ip6qbucket { - struct ip6q ip6q; + struct ip6qhead packets; struct mtx lock; int count; }; +struct ip6asfrag { + TAILQ_ENTRY(ip6asfrag) ip6af_tq; + struct mbuf *ip6af_m; + int ip6af_offset; /* Offset in ip6af_m to next header. */ + int ip6af_frglen; /* Fragmentable part length. */ + int ip6af_off; /* Fragment offset. */ + bool ip6af_mff; /* More fragment bit in frag off. */ +}; + static MALLOC_DEFINE(M_FRAG6, "frag6", "IPv6 fragment reassembly header"); -/* System wide (global) maximum and count of packets in reassembly queues. */ +#ifdef VIMAGE +/* A flag to indicate if IPv6 fragmentation is initialized. */ +VNET_DEFINE_STATIC(bool, frag6_on); +#define V_frag6_on VNET(frag6_on) +#endif + +/* System wide (global) maximum and count of packets in reassembly queues. */ static int ip6_maxfrags; static volatile u_int frag6_nfrags = 0; @@ -114,7 +140,7 @@ VNET_DEFINE_STATIC(uint32_t, ip6qb_hashseed); #define IP6QB_TRYLOCK(_b) mtx_trylock(&V_ip6qb[(_b)].lock) #define IP6QB_LOCK_ASSERT(_b) mtx_assert(&V_ip6qb[(_b)].lock, MA_OWNED) #define IP6QB_UNLOCK(_b) mtx_unlock(&V_ip6qb[(_b)].lock) -#define IP6QB_HEAD(_b) (&V_ip6qb[(_b)].ip6q) +#define IP6QB_HEAD(_b) (&V_ip6qb[(_b)].packets) /* * By default, limit the number of IP6 fragments across all reassembly @@ -138,6 +164,10 @@ VNET_DEFINE_STATIC(uint32_t, ip6qb_hashseed); */ SYSCTL_DECL(_net_inet6_ip6); +SYSCTL_UINT(_net_inet6_ip6, OID_AUTO, frag6_nfrags, + CTLFLAG_RD, __DEVOLATILE(u_int *, &frag6_nfrags), 0, + "Global number of IPv6 fragments across all reassembly queues."); + static void frag6_set_bucketsize(void) { @@ -172,6 +202,10 @@ SYSCTL_PROC(_net_inet6_ip6, IPV6CTL_MAXFRAGPACKETS, ma "Default maximum number of outstanding fragmented IPv6 packets. " "A value of 0 means no fragmented packets will be accepted, while a " "a value of -1 means no limit"); +SYSCTL_UINT(_net_inet6_ip6, OID_AUTO, frag6_nfragpackets, + CTLFLAG_VNET | CTLFLAG_RD, + __DEVOLATILE(u_int *, &VNET_NAME(frag6_nfragpackets)), 0, + "Per-VNET number of IPv6 fragments across all reassembly queues."); SYSCTL_INT(_net_inet6_ip6, IPV6CTL_MAXFRAGSPERPACKET, maxfragsperpacket, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_maxfragsperpacket), 0, "Maximum allowed number of fragments per packet"); @@ -193,7 +227,7 @@ ip6_deletefraghdr(struct mbuf *m, int offset, int wait if (m->m_len >= offset + sizeof(struct ip6_frag)) { /* This is the only possible case with !PULLDOWN_TEST. */ - ip6 = mtod(m, struct ip6_hdr *); + ip6 = mtod(m, struct ip6_hdr *); bcopy(ip6, (char *)ip6 + sizeof(struct ip6_frag), offset); m->m_data += sizeof(struct ip6_frag); @@ -218,17 +252,15 @@ static void frag6_freef(struct ip6q *q6, uint32_t bucket) { struct ip6_hdr *ip6; - struct ip6asfrag *af6, *down6; + struct ip6asfrag *af6; struct mbuf *m; IP6QB_LOCK_ASSERT(bucket); - for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; - af6 = down6) { + while ((af6 = TAILQ_FIRST(&q6->ip6q_frags)) != NULL) { - m = IP6_REASS_MBUF(af6); - down6 = af6->ip6af_down; - frag6_deq(af6, bucket); + m = af6->ip6af_m; + TAILQ_REMOVE(&q6->ip6q_frags, af6, ip6af_tq); /* * Return ICMP time exceeded error for the 1st fragment. @@ -250,7 +282,9 @@ frag6_freef(struct ip6q *q6, uint32_t bucket) free(af6, M_FRAG6); } - frag6_remque(q6, bucket); + + TAILQ_REMOVE(IP6QB_HEAD(bucket), q6, ip6q_tq); + V_ip6qb[bucket].count--; atomic_subtract_int(&frag6_nfrags, q6->ip6q_nfrag); #ifdef MAC mac_ip6q_destroy(q6); @@ -266,31 +300,36 @@ frag6_freef(struct ip6q *q6, uint32_t bucket) static void frag6_cleanup(void *arg __unused, struct ifnet *ifp) { - struct ip6q *q6, *q6n, *head; + struct ip6qhead *head; + struct ip6q *q6; struct ip6asfrag *af6; - struct mbuf *m; - int i; + uint32_t bucket; KASSERT(ifp != NULL, ("%s: ifp is NULL", __func__)); +#ifdef VIMAGE + /* + * Skip processing if IPv6 reassembly is not initialised or + * torn down by frag6_destroy(). + */ + if (!V_frag6_on) + return; +#endif + CURVNET_SET_QUIET(ifp->if_vnet); - for (i = 0; i < IP6REASS_NHASH; i++) { - IP6QB_LOCK(i); - head = IP6QB_HEAD(i); + for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { + IP6QB_LOCK(bucket); + head = IP6QB_HEAD(bucket); /* Scan fragment list. */ - for (q6 = head->ip6q_next; q6 != head; q6 = q6n) { - q6n = q6->ip6q_next; + TAILQ_FOREACH(q6, head, ip6q_tq) { + TAILQ_FOREACH(af6, &q6->ip6q_frags, ip6af_tq) { - for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; - af6 = af6->ip6af_down) { - m = IP6_REASS_MBUF(af6); - - /* clear no longer valid rcvif pointer */ - if (m->m_pkthdr.rcvif == ifp) - m->m_pkthdr.rcvif = NULL; + /* Clear no longer valid rcvif pointer. */ + if (af6->ip6af_m->m_pkthdr.rcvif == ifp) + af6->ip6af_m->m_pkthdr.rcvif = NULL; } } - IP6QB_UNLOCK(i); + IP6QB_UNLOCK(bucket); } CURVNET_RESTORE(); } @@ -331,14 +370,14 @@ EVENTHANDLER_DEFINE(ifnet_departure_event, frag6_clean int frag6_input(struct mbuf **mp, int *offp, int proto) { - struct ifnet *dstifp; - struct ifnet *srcifp; - struct in6_ifaddr *ia6; + struct mbuf *m, *t; struct ip6_hdr *ip6; struct ip6_frag *ip6f; - struct ip6q *head, *q6; - struct ip6asfrag *af6, *af6dwn, *ip6af; - struct mbuf *m, *t; + struct ip6qhead *head; + struct ip6q *q6; + struct ip6asfrag *af6, *ip6af, *af6tmp; + struct in6_ifaddr *ia6; + struct ifnet *dstifp, *srcifp; uint32_t hashkey[(sizeof(struct in6_addr) * 2 + sizeof(ip6f->ip6f_ident)) / sizeof(uint32_t)]; uint32_t bucket, *hashkeyp; @@ -364,11 +403,6 @@ frag6_input(struct mbuf **mp, int *offp, int proto) return (IPPROTO_DONE); #endif - /* - * Store receive network interface pointer for later. - */ - srcifp = m->m_pkthdr.rcvif; - dstifp = NULL; /* Find the destination interface of the packet. */ ia6 = in6ifa_ifwithaddr(&ip6->ip6_dst, 0 /* XXX */); @@ -429,6 +463,31 @@ frag6_input(struct mbuf **mp, int *offp, int proto) return (IPPROTO_DONE); } + /* + * Enforce upper bound on number of fragments for the entire system. + * If maxfrag is 0, never accept fragments. + * If maxfrag is -1, accept all fragments without limitation. + */ + if (ip6_maxfrags < 0) + ; + else if (atomic_load_int(&frag6_nfrags) >= (u_int)ip6_maxfrags) + goto dropfrag2; + + /* + * Validate that a full header chain to the ULP is present in the + * packet containing the first fragment as per RFC RFC7112 and + * RFC 8200 pages 18,19: + * The first fragment packet is composed of: + * (3) Extension headers, if any, and the Upper-Layer header. These + * headers must be in the first fragment. ... + */ + fragoff = ntohs(ip6f->ip6f_offlg & IP6F_OFF_MASK); + /* XXX TODO. thj has D16851 open for this. */ + /* Send ICMPv6 4,3 in case of violation. */ + + /* Store receive network interface pointer for later. */ + srcifp = m->m_pkthdr.rcvif; + /* Generate a hash value for fragment bucket selection. */ hashkeyp = hashkey; memcpy(hashkeyp, &ip6->ip6_src, sizeof(struct in6_addr)); @@ -438,20 +497,10 @@ frag6_input(struct mbuf **mp, int *offp, int proto) *hashkeyp = ip6f->ip6f_ident; bucket = jenkins_hash32(hashkey, nitems(hashkey), V_ip6qb_hashseed); bucket &= IP6REASS_HMASK; - head = IP6QB_HEAD(bucket); IP6QB_LOCK(bucket); + head = IP6QB_HEAD(bucket); - /* - * Enforce upper bound on number of fragments for the entire system. - * If maxfrag is 0, never accept fragments. - * If maxfrag is -1, accept all fragments without limitation. - */ - if (ip6_maxfrags < 0) - ; - else if (atomic_load_int(&frag6_nfrags) >= (u_int)ip6_maxfrags) - goto dropfrag; - - for (q6 = head->ip6q_next; q6 != head; q6 = q6->ip6q_next) + TAILQ_FOREACH(q6, head, ip6q_tq) if (ip6f->ip6f_ident == q6->ip6q_ident && IN6_ARE_ADDR_EQUAL(&ip6->ip6_src, &q6->ip6q_src) && IN6_ARE_ADDR_EQUAL(&ip6->ip6_dst, &q6->ip6q_dst) @@ -462,7 +511,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) break; only_frag = false; - if (q6 == head) { + if (q6 == NULL) { /* A first fragment to arrive creates a reassembly queue. */ only_frag = true; @@ -480,7 +529,6 @@ frag6_input(struct mbuf **mp, int *offp, int proto) atomic_load_int(&V_frag6_nfragpackets) >= (u_int)V_ip6_maxfragpackets) goto dropfrag; - atomic_add_int(&V_frag6_nfragpackets, 1); /* Allocate IPv6 fragement packet queue entry. */ q6 = (struct ip6q *)malloc(sizeof(struct ip6q), M_FRAG6, @@ -494,13 +542,10 @@ frag6_input(struct mbuf **mp, int *offp, int proto) } mac_ip6q_create(m, q6); #endif - frag6_insque_head(q6, head, bucket); + atomic_add_int(&V_frag6_nfragpackets, 1); /* ip6q_nxt will be filled afterwards, from 1st fragment. */ - q6->ip6q_down = q6->ip6q_up = (struct ip6asfrag *)q6; -#ifdef notyet - q6->ip6q_nxtp = (u_char *)nxtp; -#endif + TAILQ_INIT(&q6->ip6q_frags); q6->ip6q_ident = ip6f->ip6f_ident; q6->ip6q_ttl = IPV6_FRAGTTL; q6->ip6q_src = ip6->ip6_src; @@ -509,18 +554,24 @@ frag6_input(struct mbuf **mp, int *offp, int proto) (ntohl(ip6->ip6_flow) >> 20) & IPTOS_ECN_MASK; q6->ip6q_unfrglen = -1; /* The 1st fragment has not arrived. */ - q6->ip6q_nfrag = 0; + /* Add the fragemented packet to the bucket. */ + TAILQ_INSERT_HEAD(head, q6, ip6q_tq); + V_ip6qb[bucket].count++; } /* * If it is the 1st fragment, record the length of the * unfragmentable part and the next header of the fragment header. + * Assume the first 1st fragement to arrive will be correct. + * We do not have any duplicate checks here yet so another packet + * with fragoff == 0 could come and overwrite the ip6q_unfrglen + * and worse, the next header, at any time. */ - fragoff = ntohs(ip6f->ip6f_offlg & IP6F_OFF_MASK); - if (fragoff == 0) { + if (fragoff == 0 && q6->ip6q_unfrglen == -1) { q6->ip6q_unfrglen = offset - sizeof(struct ip6_hdr) - sizeof(struct ip6_frag); q6->ip6q_nxt = ip6f->ip6f_nxt; + /* XXX ECN? */ } /* @@ -531,44 +582,63 @@ frag6_input(struct mbuf **mp, int *offp, int proto) if (q6->ip6q_unfrglen >= 0) { /* The 1st fragment has already arrived. */ if (q6->ip6q_unfrglen + fragoff + frgpartlen > IPV6_MAXPACKET) { + if (only_frag) { + TAILQ_REMOVE(head, q6, ip6q_tq); + V_ip6qb[bucket].count--; + atomic_subtract_int(&V_frag6_nfragpackets, 1); +#ifdef MAC + mac_ip6q_destroy(q6); +#endif + free(q6, M_FRAG6); + } + IP6QB_UNLOCK(bucket); icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset - sizeof(struct ip6_frag) + offsetof(struct ip6_frag, ip6f_offlg)); - IP6QB_UNLOCK(bucket); return (IPPROTO_DONE); } } else if (fragoff + frgpartlen > IPV6_MAXPACKET) { + if (only_frag) { + TAILQ_REMOVE(head, q6, ip6q_tq); + V_ip6qb[bucket].count--; + atomic_subtract_int(&V_frag6_nfragpackets, 1); +#ifdef MAC + mac_ip6q_destroy(q6); +#endif + free(q6, M_FRAG6); + } + IP6QB_UNLOCK(bucket); icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset - sizeof(struct ip6_frag) + offsetof(struct ip6_frag, ip6f_offlg)); - IP6QB_UNLOCK(bucket); return (IPPROTO_DONE); } + /* * If it is the first fragment, do the above check for each * fragment already stored in the reassembly queue. */ - if (fragoff == 0) { - for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; - af6 = af6dwn) { - af6dwn = af6->ip6af_down; + if (fragoff == 0 && !only_frag) { + TAILQ_FOREACH_SAFE(af6, &q6->ip6q_frags, ip6af_tq, af6tmp) { - if (q6->ip6q_unfrglen + af6->ip6af_off + af6->ip6af_frglen > - IPV6_MAXPACKET) { + if (q6->ip6q_unfrglen + af6->ip6af_off + + af6->ip6af_frglen > IPV6_MAXPACKET) { struct ip6_hdr *ip6err; struct mbuf *merr; int erroff; - merr = IP6_REASS_MBUF(af6); + merr = af6->ip6af_m; erroff = af6->ip6af_offset; /* Dequeue the fragment. */ - frag6_deq(af6, bucket); + TAILQ_REMOVE(&q6->ip6q_frags, af6, ip6af_tq); + q6->ip6q_nfrag--; + atomic_subtract_int(&frag6_nfrags, 1); free(af6, M_FRAG6); /* Set a valid receive interface pointer. */ merr->m_pkthdr.rcvif = srcifp; - + /* Adjust pointer. */ ip6err = mtod(merr, struct ip6_hdr *); @@ -592,15 +662,19 @@ frag6_input(struct mbuf **mp, int *offp, int proto) M_NOWAIT | M_ZERO); if (ip6af == NULL) goto dropfrag; - ip6af->ip6af_mff = ip6f->ip6f_offlg & IP6F_MORE_FRAG; + ip6af->ip6af_mff = (ip6f->ip6f_offlg & IP6F_MORE_FRAG) ? true : false; ip6af->ip6af_off = fragoff; ip6af->ip6af_frglen = frgpartlen; ip6af->ip6af_offset = offset; - IP6_REASS_MBUF(ip6af) = m; + ip6af->ip6af_m = m; if (only_frag) { - af6 = (struct ip6asfrag *)q6; - goto insert; + /* + * Do a manual insert rather than a hard-to-understand cast + * to a different type relying on data structure order to work. + */ + TAILQ_INSERT_HEAD(&q6->ip6q_frags, ip6af, ip6af_tq); + goto postinsert; } /* Do duplicate, condition, and boundry checks. */ @@ -625,8 +699,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) } /* Find a fragmented part which begins after this one does. */ - for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; - af6 = af6->ip6af_down) + TAILQ_FOREACH(af6, &q6->ip6q_frags, ip6af_tq) if (af6->ip6af_off > ip6af->ip6af_off) break; @@ -638,25 +711,33 @@ frag6_input(struct mbuf **mp, int *offp, int proto) * drop the existing fragment and leave the fragmentation queue * unchanged, as allowed by the RFC. (RFC 8200, 4.5) */ - if (af6->ip6af_up != (struct ip6asfrag *)q6) { - if (af6->ip6af_up->ip6af_off + af6->ip6af_up->ip6af_frglen - + if (af6 != NULL) + af6tmp = TAILQ_PREV(af6, ip6fraghead, ip6af_tq); + else + af6tmp = TAILQ_LAST(&q6->ip6q_frags, ip6fraghead); + if (af6tmp != NULL) { + if (af6tmp->ip6af_off + af6tmp->ip6af_frglen - ip6af->ip6af_off > 0) { + if (af6tmp->ip6af_off != ip6af->ip6af_off || + af6tmp->ip6af_frglen != ip6af->ip6af_frglen) + frag6_freef(q6, bucket); free(ip6af, M_FRAG6); goto dropfrag; } } - if (af6 != (struct ip6asfrag *)q6) { + if (af6 != NULL) { if (ip6af->ip6af_off + ip6af->ip6af_frglen - af6->ip6af_off > 0) { + if (af6->ip6af_off != ip6af->ip6af_off || + af6->ip6af_frglen != ip6af->ip6af_frglen) + frag6_freef(q6, bucket); free(ip6af, M_FRAG6); goto dropfrag; } } -insert: #ifdef MAC - if (!only_frag) - mac_ip6q_update(m, q6); + mac_ip6q_update(m, q6); #endif /* @@ -664,12 +745,16 @@ insert: * If not complete, check fragment limit. Move to front of packet * queue, as we are the most recently active fragmented packet. */ - frag6_enq(ip6af, af6->ip6af_up, bucket); + if (af6 != NULL) + TAILQ_INSERT_BEFORE(af6, ip6af, ip6af_tq); + else + TAILQ_INSERT_TAIL(&q6->ip6q_frags, ip6af, ip6af_tq); +postinsert: atomic_add_int(&frag6_nfrags, 1); q6->ip6q_nfrag++; + plen = 0; - for (af6 = q6->ip6q_down; af6 != (struct ip6asfrag *)q6; - af6 = af6->ip6af_down) { + TAILQ_FOREACH(af6, &q6->ip6q_frags, ip6af_tq) { if (af6->ip6af_off != plen) { if (q6->ip6q_nfrag > V_ip6_maxfragsperpacket) { IP6STAT_ADD(ip6s_fragdropped, q6->ip6q_nfrag); @@ -680,7 +765,8 @@ insert: } plen += af6->ip6af_frglen; } - if (af6->ip6af_up->ip6af_mff) { + af6 = TAILQ_LAST(&q6->ip6q_frags, ip6fraghead); + if (af6->ip6af_mff) { if (q6->ip6q_nfrag > V_ip6_maxfragsperpacket) { IP6STAT_ADD(ip6s_fragdropped, q6->ip6q_nfrag); frag6_freef(q6, bucket); @@ -690,25 +776,21 @@ insert: } /* Reassembly is complete; concatenate fragments. */ - ip6af = q6->ip6q_down; - t = m = IP6_REASS_MBUF(ip6af); - af6 = ip6af->ip6af_down; - frag6_deq(ip6af, bucket); - while (af6 != (struct ip6asfrag *)q6) { + ip6af = TAILQ_FIRST(&q6->ip6q_frags); + t = m = ip6af->ip6af_m; + TAILQ_REMOVE(&q6->ip6q_frags, ip6af, ip6af_tq); + while ((af6 = TAILQ_FIRST(&q6->ip6q_frags)) != NULL) { m->m_pkthdr.csum_flags &= - IP6_REASS_MBUF(af6)->m_pkthdr.csum_flags; + af6->ip6af_m->m_pkthdr.csum_flags; m->m_pkthdr.csum_data += - IP6_REASS_MBUF(af6)->m_pkthdr.csum_data; + af6->ip6af_m->m_pkthdr.csum_data; - af6dwn = af6->ip6af_down; - frag6_deq(af6, bucket); - while (t->m_next) - t = t->m_next; - m_adj(IP6_REASS_MBUF(af6), af6->ip6af_offset); - m_demote_pkthdr(IP6_REASS_MBUF(af6)); - m_cat(t, IP6_REASS_MBUF(af6)); + TAILQ_REMOVE(&q6->ip6q_frags, af6, ip6af_tq); + t = m_last(t); + m_adj(af6->ip6af_m, af6->ip6af_offset); + m_demote_pkthdr(af6->ip6af_m); + m_cat(t, af6->ip6af_m); free(af6, M_FRAG6); - af6 = af6dwn; } while (m->m_pkthdr.csum_data & 0xffff0000) @@ -724,9 +806,11 @@ insert: ip6->ip6_flow |= htonl(IPTOS_ECN_CE << 20); nxt = q6->ip6q_nxt; + TAILQ_REMOVE(head, q6, ip6q_tq); + V_ip6qb[bucket].count--; + atomic_subtract_int(&frag6_nfrags, q6->ip6q_nfrag); + if (ip6_deletefraghdr(m, offset, M_NOWAIT) != 0) { - frag6_remque(q6, bucket); - atomic_subtract_int(&frag6_nfrags, q6->ip6q_nfrag); #ifdef MAC mac_ip6q_destroy(q6); #endif @@ -740,8 +824,6 @@ insert: m_copyback(m, ip6_get_prevhdr(m, offset), sizeof(uint8_t), (caddr_t)&nxt); - frag6_remque(q6, bucket); - atomic_subtract_int(&frag6_nfrags, q6->ip6q_nfrag); #ifdef MAC mac_ip6q_reassemble(q6, m); mac_ip6q_destroy(q6); @@ -790,6 +872,7 @@ insert: dropfrag: IP6QB_UNLOCK(bucket); +dropfrag2: in6_ifstat_inc(dstifp, ifs6_reass_fail); IP6STAT_INC(ip6s_fragdropped); m_freem(m); @@ -804,7 +887,8 @@ void frag6_slowtimo(void) { VNET_ITERATOR_DECL(vnet_iter); - struct ip6q *head, *q6; + struct ip6qhead *head; + struct ip6q *q6, *q6tmp; uint32_t bucket; VNET_LIST_RLOCK_NOSLEEP(); @@ -813,25 +897,13 @@ frag6_slowtimo(void) for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { IP6QB_LOCK(bucket); head = IP6QB_HEAD(bucket); - q6 = head->ip6q_next; - if (q6 == NULL) { - /* - * XXXJTL: This should never happen. This - * should turn into an assertion. - */ - IP6QB_UNLOCK(bucket); - continue; - } - while (q6 != head) { - --q6->ip6q_ttl; - q6 = q6->ip6q_next; - if (q6->ip6q_prev->ip6q_ttl == 0) { + TAILQ_FOREACH_SAFE(q6, head, ip6q_tq, q6tmp) + if (--q6->ip6q_ttl == 0) { IP6STAT_ADD(ip6s_fragtimeout, - q6->ip6q_prev->ip6q_nfrag); + q6->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ - frag6_freef(q6->ip6q_prev, bucket); + frag6_freef(q6, bucket); } - } /* * If we are over the maximum number of fragments * (due to the limit being lowered), drain off @@ -844,11 +916,10 @@ frag6_slowtimo(void) while ((V_ip6_maxfragpackets == 0 || (V_ip6_maxfragpackets > 0 && V_ip6qb[bucket].count > V_ip6_maxfragbucketsize)) && - head->ip6q_prev != head) { - IP6STAT_ADD(ip6s_fragoverflow, - q6->ip6q_prev->ip6q_nfrag); + (q6 = TAILQ_LAST(head, ip6qhead)) != NULL) { + IP6STAT_ADD(ip6s_fragoverflow, q6->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ - frag6_freef(head->ip6q_prev, bucket); + frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); } @@ -861,12 +932,11 @@ frag6_slowtimo(void) atomic_load_int(&V_frag6_nfragpackets) > (u_int)V_ip6_maxfragpackets) { IP6QB_LOCK(bucket); - head = IP6QB_HEAD(bucket); - if (head->ip6q_prev != head) { - IP6STAT_ADD(ip6s_fragoverflow, - q6->ip6q_prev->ip6q_nfrag); + q6 = TAILQ_LAST(IP6QB_HEAD(bucket), ip6qhead); + if (q6 != NULL) { + IP6STAT_ADD(ip6s_fragoverflow, q6->ip6q_nfrag); /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ - frag6_freef(head->ip6q_prev, bucket); + frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); bucket = (bucket + 1) % IP6REASS_NHASH; @@ -901,19 +971,20 @@ frag6_change(void *tag) void frag6_init(void) { - struct ip6q *q6; uint32_t bucket; V_ip6_maxfragpackets = IP6_MAXFRAGPACKETS; frag6_set_bucketsize(); for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { - q6 = IP6QB_HEAD(bucket); - q6->ip6q_next = q6->ip6q_prev = q6; - mtx_init(&V_ip6qb[bucket].lock, "ip6qlock", NULL, MTX_DEF); + TAILQ_INIT(IP6QB_HEAD(bucket)); + mtx_init(&V_ip6qb[bucket].lock, "ip6qb", NULL, MTX_DEF); V_ip6qb[bucket].count = 0; } V_ip6qb_hashseed = arc4random(); V_ip6_maxfragsperpacket = 64; +#ifdef VIMAGE + V_frag6_on = true; +#endif if (!IS_DEFAULT_VNET(curvnet)) return; @@ -925,85 +996,53 @@ frag6_init(void) /* * Drain off all datagram fragments. */ +static void +frag6_drain_one(void) +{ + struct ip6q *q6; + uint32_t bucket; + + for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { + IP6QB_LOCK(bucket); + while ((q6 = TAILQ_FIRST(IP6QB_HEAD(bucket))) != NULL) { + IP6STAT_INC(ip6s_fragdropped); + /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ + frag6_freef(q6, bucket); + } + IP6QB_UNLOCK(bucket); + } +} + void frag6_drain(void) { VNET_ITERATOR_DECL(vnet_iter); - struct ip6q *head; - uint32_t bucket; VNET_LIST_RLOCK_NOSLEEP(); VNET_FOREACH(vnet_iter) { CURVNET_SET(vnet_iter); - for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { - if (IP6QB_TRYLOCK(bucket) == 0) - continue; - head = IP6QB_HEAD(bucket); - while (head->ip6q_next != head) { - IP6STAT_INC(ip6s_fragdropped); - /* XXX in6_ifstat_inc(ifp, ifs6_reass_fail) */ - frag6_freef(head->ip6q_next, bucket); - } - IP6QB_UNLOCK(bucket); - } + frag6_drain_one(); CURVNET_RESTORE(); } VNET_LIST_RUNLOCK_NOSLEEP(); } +#ifdef VIMAGE /* - * Put an ip fragment on a reassembly chain. - * Like insque, but pointers in middle of structure. + * Clear up IPv6 reassembly structures. */ -static void -frag6_enq(struct ip6asfrag *af6, struct ip6asfrag *up6, - uint32_t bucket __unused) +void +frag6_destroy(void) { + uint32_t bucket; - IP6QB_LOCK_ASSERT(bucket); - - af6->ip6af_up = up6; - af6->ip6af_down = up6->ip6af_down; - up6->ip6af_down->ip6af_up = af6; - up6->ip6af_down = af6; + frag6_drain_one(); + V_frag6_on = false; + for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { + KASSERT(V_ip6qb[bucket].count == 0, + ("%s: V_ip6qb[%d] (%p) count not 0 (%d)", __func__, + bucket, &V_ip6qb[bucket], V_ip6qb[bucket].count)); + mtx_destroy(&V_ip6qb[bucket].lock); + } } - -/* - * To frag6_enq as remque is to insque. - */ -static void -frag6_deq(struct ip6asfrag *af6, uint32_t bucket __unused) -{ - - IP6QB_LOCK_ASSERT(bucket); - - af6->ip6af_up->ip6af_down = af6->ip6af_down; - af6->ip6af_down->ip6af_up = af6->ip6af_up; -} - -static void -frag6_insque_head(struct ip6q *new, struct ip6q *old, uint32_t bucket) -{ - - IP6QB_LOCK_ASSERT(bucket); - KASSERT(IP6QB_HEAD(bucket) == old, - ("%s: attempt to insert at head of wrong bucket" - " (bucket=%u, old=%p)", __func__, bucket, old)); - - new->ip6q_prev = old; - new->ip6q_next = old->ip6q_next; - old->ip6q_next->ip6q_prev= new; - old->ip6q_next = new; - V_ip6qb[bucket].count++; -} - -static void -frag6_remque(struct ip6q *p6, uint32_t bucket) -{ - - IP6QB_LOCK_ASSERT(bucket); - - p6->ip6q_prev->ip6q_next = p6->ip6q_next; - p6->ip6q_next->ip6q_prev = p6->ip6q_prev; - V_ip6qb[bucket].count--; -} +#endif Modified: stable/12/sys/netinet6/ip6_input.c ============================================================================== --- stable/12/sys/netinet6/ip6_input.c Wed Jan 8 15:50:45 2020 (r356490) +++ stable/12/sys/netinet6/ip6_input.c Wed Jan 8 16:14:20 2020 (r356491) @@ -394,6 +394,7 @@ ip6_destroy(void *unused __unused) } IFNET_RUNLOCK(); + frag6_destroy(); nd6_destroy(); in6_ifattach_destroy(); Modified: stable/12/sys/netinet6/ip6_var.h ============================================================================== --- stable/12/sys/netinet6/ip6_var.h Wed Jan 8 15:50:45 2020 (r356490) +++ stable/12/sys/netinet6/ip6_var.h Wed Jan 8 16:14:20 2020 (r356491) @@ -68,40 +68,28 @@ #include +#ifdef _KERNEL +struct ip6asfrag; /* frag6.c */ +TAILQ_HEAD(ip6fraghead, ip6asfrag); + /* * IP6 reassembly queue structure. Each fragment * being reassembled is attached to one of these structures. */ struct ip6q { - struct ip6asfrag *ip6q_down; - struct ip6asfrag *ip6q_up; + struct ip6fraghead ip6q_frags; u_int32_t ip6q_ident; u_int8_t ip6q_nxt; u_int8_t ip6q_ecn; u_int8_t ip6q_ttl; struct in6_addr ip6q_src, ip6q_dst; - struct ip6q *ip6q_next; - struct ip6q *ip6q_prev; + TAILQ_ENTRY(ip6q) ip6q_tq; int ip6q_unfrglen; /* len of unfragmentable part */ -#ifdef notyet - u_char *ip6q_nxtp; -#endif int ip6q_nfrag; /* # of fragments */ struct label *ip6q_label; }; +#endif /* _KERNEL */ -struct ip6asfrag { - struct ip6asfrag *ip6af_down; - struct ip6asfrag *ip6af_up; - struct mbuf *ip6af_m; - int ip6af_offset; /* offset in ip6af_m to next header */ - int ip6af_frglen; /* fragmentable part length */ - int ip6af_off; /* fragment offset */ - u_int16_t ip6af_mff; /* more fragment bit in frag off */ -}; - -#define IP6_REASS_MBUF(ip6af) (*(struct mbuf **)&((ip6af)->ip6af_m)) - /* * IP6 reinjecting structure. */ @@ -398,6 +386,7 @@ int ip6_fragment(struct ifnet *, struct mbuf *, int, u int route6_input(struct mbuf **, int *, int); void frag6_init(void); +void frag6_destroy(void); int frag6_input(struct mbuf **, int *, int); void frag6_slowtimo(void); void frag6_drain(void); Modified: stable/12/tests/sys/Makefile ============================================================================== --- stable/12/tests/sys/Makefile Wed Jan 8 15:50:45 2020 (r356490) +++ stable/12/tests/sys/Makefile Wed Jan 8 16:14:20 2020 (r356491) @@ -19,6 +19,7 @@ TESTS_SUBDIRS+= kqueue TESTS_SUBDIRS+= mac TESTS_SUBDIRS+= mqueue TESTS_SUBDIRS+= netinet +TESTS_SUBDIRS+= netinet6 TESTS_SUBDIRS+= netipsec TESTS_SUBDIRS+= netmap TESTS_SUBDIRS+= netpfil Modified: stable/12/tests/sys/netinet6/frag6/Makefile ============================================================================== --- head/tests/sys/netinet6/frag6/Makefile Mon Oct 21 09:33:45 2019 (r353794) +++ stable/12/tests/sys/netinet6/frag6/Makefile Wed Jan 8 16:14:20 2020 (r356491) @@ -27,7 +27,8 @@ ATF_TESTS_SH= \ frag6_16 \ frag6_17 \ frag6_18 \ - frag6_19 + frag6_19 \ + frag6_20 ${PACKAGE}FILES+= frag6.subr ${PACKAGE}FILES+= sniffer.py @@ -50,6 +51,7 @@ ${PACKAGE}FILES+= frag6_16.py ${PACKAGE}FILES+= frag6_17.py ${PACKAGE}FILES+= frag6_18.py ${PACKAGE}FILES+= frag6_19.py +${PACKAGE}FILES+= frag6_20.py ${PACKAGE}FILESMODE_frag6.subr= 0444 ${PACKAGE}FILESMODE_sniffer.py= 0555 @@ -72,5 +74,6 @@ ${PACKAGE}FILESMODE_frag6_16.py= 0555 ${PACKAGE}FILESMODE_frag6_17.py= 0555 ${PACKAGE}FILESMODE_frag6_18.py= 0555 ${PACKAGE}FILESMODE_frag6_19.py= 0555 +${PACKAGE}FILESMODE_frag6_20.py= 0555 .include Modified: stable/12/tests/sys/netinet6/frag6/frag6_01.sh ============================================================================== --- head/tests/sys/netinet6/frag6/frag6_01.sh Mon Oct 21 09:33:45 2019 (r353794) +++ stable/12/tests/sys/netinet6/frag6/frag6_01.sh Wed Jan 8 16:14:20 2020 (r356491) @@ -52,6 +52,16 @@ frag6_01_check_stats() { # The Python script has to wait for this already to get the ICMPv6 # hence we do not sleep here anymore. + nf=`jexec ${jname} sysctl -n net.inet6.ip6.frag6_nfragpackets` + case ${nf} in + 0) break ;; + *) atf_fail "VNET frag6_nfragpackets not 0 but: ${nf}" ;; + esac + nf=`sysctl -n net.inet6.ip6.frag6_nfrags` + case ${nf} in + 0) break ;; + *) atf_fail "Global frag6_nfrags not 0 but: ${nf}" ;; + esac # # Check selection of global UDP stats. Modified: stable/12/tests/sys/netinet6/frag6/frag6_02.sh ============================================================================== --- head/tests/sys/netinet6/frag6/frag6_02.sh Mon Oct 21 09:33:45 2019 (r353794) +++ stable/12/tests/sys/netinet6/frag6/frag6_02.sh Wed Jan 8 16:14:20 2020 (r356491) @@ -52,6 +52,16 @@ frag6_02_check_stats() { # The Python script has to wait for this already to get the ICMPv6 # hence we do not sleep here anymore. + nf=`jexec ${jname} sysctl -n net.inet6.ip6.frag6_nfragpackets` + case ${nf} in + 0) break ;; + *) atf_fail "VNET frag6_nfragpackets not 0 but: ${nf}" ;; + esac + nf=`sysctl -n net.inet6.ip6.frag6_nfrags` + case ${nf} in + 0) break ;; + *) atf_fail "Global frag6_nfrags not 0 but: ${nf}" ;; + esac # # Check selection of global UDP stats. Modified: stable/12/tests/sys/netinet6/frag6/frag6_03.py ============================================================================== --- head/tests/sys/netinet6/frag6/frag6_03.py Mon Oct 21 09:33:45 2019 (r353794) +++ stable/12/tests/sys/netinet6/frag6/frag6_03.py Wed Jan 8 16:14:20 2020 (r356491) @@ -82,20 +82,21 @@ def main(): ######################################################################## # - # (1) Atomic fragment. + # Atomic fragment. # # A: Nothing listening on UDP port. # R: ICMPv6 dst unreach, unreach port. # ip6f01 = sp.Ether() / \ sp.IPv6(src=args.src[0], dst=args.to[0]) / \ - sp.IPv6ExtHdrFragment(offset=0, m=0, id=1) / \ + sp.IPv6ExtHdrFragment(offset=0, m=0, id=3) / \ sp.UDP(dport=3456, sport=6543) if args.debug : ip6f01.display() sp.sendp(ip6f01, iface=args.sendif[0], verbose=False) sleep(0.10) + sniffer.setEnd() sniffer.join() if not sniffer.foundCorrectPacket: sys.exit(1) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Wed Jan 8 16:15:44 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A5A191F36C6; Wed, 8 Jan 2020 16:15:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tDr03yZ3z3H8p; Wed, 8 Jan 2020 16:15:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 833471A9F2; Wed, 8 Jan 2020 16:15:44 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008GFiKp031223; Wed, 8 Jan 2020 16:15:44 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008GFigA031221; Wed, 8 Jan 2020 16:15:44 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081615.008GFigA031221@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 16:15:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356492 - in stable/12/sys: netinet netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12/sys: netinet netinet6 X-SVN-Commit-Revision: 356492 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 16:15:44 -0000 Author: bz Date: Wed Jan 8 16:15:43 2020 New Revision: 356492 URL: https://svnweb.freebsd.org/changeset/base/356492 Log: MFC r354092: Properly set VNET when nuking recvif from fragment queues. In theory the eventhandler invoke should be in the same VNET as the the current interface. We however cannot guarantee that for all cases in the future. So before checking if the fragmentation handling for this VNET is active, switch the VNET to the VNET of the interface to always get the one we want. Modified: stable/12/sys/netinet/ip_reass.c stable/12/sys/netinet6/frag6.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_reass.c ============================================================================== --- stable/12/sys/netinet/ip_reass.c Wed Jan 8 16:14:20 2020 (r356491) +++ stable/12/sys/netinet/ip_reass.c Wed Jan 8 16:15:43 2020 (r356492) @@ -631,14 +631,17 @@ ipreass_cleanup(void *arg __unused, struct ifnet *ifp) KASSERT(ifp != NULL, ("%s: ifp is NULL", __func__)); + CURVNET_SET_QUIET(ifp->if_vnet); + /* * Skip processing if IPv4 reassembly is not initialised or * torn down by ipreass_destroy(). */ - if (V_ipq_zone == NULL) + if (V_ipq_zone == NULL) { + CURVNET_RESTORE(); return; + } - CURVNET_SET_QUIET(ifp->if_vnet); for (i = 0; i < IPREASS_NHASH; i++) { IPQ_LOCK(i); /* Scan fragment list. */ Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 16:14:20 2020 (r356491) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 16:15:43 2020 (r356492) @@ -307,16 +307,18 @@ frag6_cleanup(void *arg __unused, struct ifnet *ifp) KASSERT(ifp != NULL, ("%s: ifp is NULL", __func__)); + CURVNET_SET_QUIET(ifp->if_vnet); #ifdef VIMAGE /* * Skip processing if IPv6 reassembly is not initialised or * torn down by frag6_destroy(). */ - if (!V_frag6_on) + if (!V_frag6_on) { + CURVNET_RESTORE(); return; + } #endif - CURVNET_SET_QUIET(ifp->if_vnet); for (bucket = 0; bucket < IP6REASS_NHASH; bucket++) { IP6QB_LOCK(bucket); head = IP6QB_HEAD(bucket); From owner-svn-src-stable@freebsd.org Wed Jan 8 16:32:18 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ED7681F3CC1; Wed, 8 Jan 2020 16:32:18 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tFC66m3Qz3JDD; Wed, 8 Jan 2020 16:32:18 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CA4F11ADA8; Wed, 8 Jan 2020 16:32:18 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008GWIZp043080; Wed, 8 Jan 2020 16:32:18 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008GWHe5043070; Wed, 8 Jan 2020 16:32:17 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081632.008GWHe5043070@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 16:32:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356493 - in stable/12/tests/sys/netinet6: . frag6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12/tests/sys/netinet6: . frag6 X-SVN-Commit-Revision: 356493 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 16:32:19 -0000 Author: bz Date: Wed Jan 8 16:32:16 2020 New Revision: 356493 URL: https://svnweb.freebsd.org/changeset/base/356493 Log: MFC r354357-354358,354390,354395: frag6 tests: set end to catch timeout as error ipv6 tests: Add very simplistic extension header tests ipv6 tests: cleanup ipv6 tests: test case for scapy bpf parsing bug PR: 239380 Added: stable/12/tests/sys/netinet6/exthdr.py - copied unchanged from r354358, head/tests/sys/netinet6/exthdr.py stable/12/tests/sys/netinet6/exthdr.sh - copied, changed from r354358, head/tests/sys/netinet6/exthdr.sh stable/12/tests/sys/netinet6/scapyi386.py - copied unchanged from r354395, head/tests/sys/netinet6/scapyi386.py stable/12/tests/sys/netinet6/scapyi386.sh - copied unchanged from r354395, head/tests/sys/netinet6/scapyi386.sh Modified: stable/12/tests/sys/netinet6/Makefile stable/12/tests/sys/netinet6/frag6/frag6.subr stable/12/tests/sys/netinet6/frag6/frag6_02.py stable/12/tests/sys/netinet6/frag6/frag6_04.py Directory Properties: stable/12/ (props changed) Modified: stable/12/tests/sys/netinet6/Makefile ============================================================================== --- stable/12/tests/sys/netinet6/Makefile Wed Jan 8 16:15:43 2020 (r356492) +++ stable/12/tests/sys/netinet6/Makefile Wed Jan 8 16:32:16 2020 (r356493) @@ -1,6 +1,19 @@ # $FreeBSD$ +PACKAGE= tests + TESTSDIR= ${TESTSBASE}/sys/netinet6 +FILESDIR= ${TESTSDIR} + +ATF_TESTS_SH= \ + exthdr \ + scapyi386 + +${PACKAGE}FILES+= exthdr.py +${PACKAGE}FILES+= scapyi386.py + +${PACKAGE}FILESMODE_exthdr.py= 0555 +${PACKAGE}FILESMODE_scapyi386.py=0555 TESTS_SUBDIRS+= frag6 Copied: stable/12/tests/sys/netinet6/exthdr.py (from r354358, head/tests/sys/netinet6/exthdr.py) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/tests/sys/netinet6/exthdr.py Wed Jan 8 16:32:16 2020 (r356493, copy of r354358, head/tests/sys/netinet6/exthdr.py) @@ -0,0 +1,273 @@ +#!/usr/bin/env python +#- +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2019 Netflix, Inc. +# +# 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$ +# + +import argparse +import scapy.all as sp +import socket +import sys +import frag6.sniffer as Sniffer +from time import sleep + +def check_icmp6_error_dst_unreach_noport(args, packet): + ip6 = packet.getlayer(sp.IPv6) + if not ip6: + return False + oip6 = sp.IPv6(src=args.src[0], dst=args.to[0]) + if ip6.dst != oip6.src: + return False + icmp6 = packet.getlayer(sp.ICMPv6DestUnreach) + if not icmp6: + return False + # ICMP6_DST_UNREACH_NOPORT 4 + if icmp6.code != 4: + return False + # Should we check the payload as well? + # We are running in a very isolated environment and nothing else + # should trigger an ICMPv6 Dest Unreach / Port Unreach so leave it. + #icmp6.display() + return True + +def check_icmp6_error_paramprob_header(args, packet): + ip6 = packet.getlayer(sp.IPv6) + if not ip6: + return False + oip6 = sp.IPv6(src=args.src[0], dst=args.to[0]) + if ip6.dst != oip6.src: + return False + icmp6 = packet.getlayer(sp.ICMPv6ParamProblem) + if not icmp6: + return False + # ICMP6_PARAMPROB_HEADER 0 + if icmp6.code != 0: + return False + # Should we check the payload as well? + # We are running in a very isolated environment and nothing else + # should trigger an ICMPv6 Param Prob so leave it. + #icmp6.display() + return True + +def check_tcp_rst(args, packet): + ip6 = packet.getlayer(sp.IPv6) + if not ip6: + return False + oip6 = sp.IPv6(src=args.src[0], dst=args.to[0]) + if ip6.dst != oip6.src: + return False + tcp = packet.getlayer(sp.TCP) + if not tcp: + return False + # Is TCP RST? + if tcp.flags & 0x04: + #tcp.display() + return True + return False + +def addExt(ext, h): + if h is None: + return ext + if ext is None: + ext = h + else: + ext = ext / h + return ext + +def getExtHdrs(args): + ext = None + + # XXX-TODO Try to put them in an order which could make sense + # in real life packets and according to the RFCs. + if args.hbh: + hbh = sp.IPv6ExtHdrHopByHop(options = \ + sp.PadN(optdata="\x00\x00\x00\x00\x00\x00")) + ext = addExt(ext, hbh) + + if args.rh: + rh = sp.IPv6ExtHdrRouting(type = 0) + ext = addExt(ext, rh) + + if args.frag6: + frag6 = sp.IPv6ExtHdrFragment(offset=0, m=0, id=0x1234) + ext = addExt(ext, frag6) + + if args.esp: + # XXX TODO + esp = None + ext = addExt(ext, esp) + + if args.ah: + # XXX TODO + ah = None + ext = addExt(ext, ah) + + if args.dest: + dest = sp.IPv6ExtHdrDestOpt(options = \ + sp.PadN(optdata="\x00\x00\x00\x00\x00\x00")) + ext = addExt(ext, dest) + + if args.mobi: + # XXX TODO + mobi = None + ext = addExt(ext, mobi) + + if args.hip: + # XXX TODO + hip = None + ext = addExt(ext, hip) + + if args.shim6: + # XXX TODO + shim6 = None + ext = addExt(ext, shim6) + + if args.proto253: + # XXX TODO + tft = None + ext = addExt(ext, tft) + + if args.proto254: + # XXX TODO + tff = None + ext = addExt(ext, tff) + + if args.hbhbad: + hbhbad = sp.IPv6ExtHdrHopByHop(options = \ + sp.PadN(optdata="\x00\x00\x00\x00\x00\x00")) + ext = addExt(ext, hbhbad) + + return ext + +def main(): + parser = argparse.ArgumentParser("exthdr.py", + description="IPv6 extension header test tool") + parser.add_argument('--sendif', nargs=1, + required=True, + help='The interface through which the packet will be sent') + parser.add_argument('--recvif', nargs=1, + required=True, + help='The interface on which to check for the packet') + parser.add_argument('--src', nargs=1, + required=True, + help='The source IP address') + parser.add_argument('--to', nargs=1, + required=True, + help='The destination IP address') + parser.add_argument('--debug', + required=False, action='store_true', + help='Enable test debugging') + # Extension Headers + # See https://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml + parser.add_argument('--hbh', + required=False, action='store_true', + help='Add IPv6 Hop-by-Hop Option') + parser.add_argument('--hbhbad', + required=False, action='store_true', + help='Add IPv6 Hop-by-Hop Option at an invalid position') + parser.add_argument('--rh', + required=False, action='store_true', + help='Add Routing Header for IPv6') + parser.add_argument('--frag6', + required=False, action='store_true', + help='Add Fragment Header for IPv6') + parser.add_argument('--esp', + required=False, action='store_true', + help='Add Encapsulating Security Payload') + parser.add_argument('--ah', + required=False, action='store_true', + help='Add Authentication Header') + parser.add_argument('--dest', + required=False, action='store_true', + help='Add Destination Options for IPv6') + parser.add_argument('--mobi', + required=False, action='store_true', + help='Add Mobility Header') + parser.add_argument('--hip', + required=False, action='store_true', + help='Add Host Identity Protocol') + parser.add_argument('--shim6', + required=False, action='store_true', + help='Add Shim6 Protocol') + parser.add_argument('--proto253', + required=False, action='store_true', + help='Use for experimentation and testing (253)') + parser.add_argument('--proto254', + required=False, action='store_true', + help='Use for experimentation and testing (254)') + + args = parser.parse_args() + + if args.hbhbad: + ok = 0 + else: + ok = 1 + + ######################################################################## + # + # Send IPv6 packets with one or more extension headers (combinations + # mmight not always make sense depending what user tells us). + # We are trying to cover the basic loop and passing mbufs on + # and making sure m_pullup() works. + # Try for at least UDP and TCP upper layer payloads. + # + # Expectations: no panics + # We are not testing for any other outcome here. + # + data = "6" * 88 + udp = sp.UDP(dport=3456, sport=6543) / data + tcp = sp.TCP(dport=4567, sport=7654) + ip6 = sp.Ether() / sp.IPv6(src=args.src[0], dst=args.to[0]) + for ulp in [ udp, tcp ]: + ext = getExtHdrs(args) + if ext is not None: + pkt = ip6 / ext / ulp + else: + pkt = ip6 / ulp + if args.debug : + pkt.display() + if not ok: + sc = check_icmp6_error_paramprob_header; + elif ulp == udp: + sc = check_icmp6_error_dst_unreach_noport; + elif ulp == tcp: + sc = check_tcp_rst; + else: + sys.exit(2) + # Start sniffing on recvif + sniffer = Sniffer.Sniffer(args, sc) + sp.sendp(pkt, iface=args.sendif[0], verbose=False) + sleep(0.10) + sniffer.setEnd() + sniffer.join() + if not sniffer.foundCorrectPacket: + sys.exit(not ok) + + sys.exit(0) + +if __name__ == '__main__': + main() Copied and modified: stable/12/tests/sys/netinet6/exthdr.sh (from r354358, head/tests/sys/netinet6/exthdr.sh) ============================================================================== --- head/tests/sys/netinet6/exthdr.sh Tue Nov 5 10:59:33 2019 (r354358, copy source) +++ stable/12/tests/sys/netinet6/exthdr.sh Wed Jan 8 16:32:16 2020 (r356493) @@ -31,7 +31,7 @@ atf_test_case "exthdr" "cleanup" exthdr_head() { - atf_set descr 'Test IPv6 fragmentation code' + atf_set descr 'Test IPv6 extension header code paths' atf_set require.user root atf_set require.progs scapy } @@ -54,12 +54,12 @@ exthdr_body() { ip6b="2001:db8:6666:0000:${yl}:${id}:2:${xl}" epair=$(vnet_mkepair) - ifconfig ${epair}a mtu 131071 up + ifconfig ${epair}a up ifconfig ${epair}a inet6 ${ip6a}/64 jname="v6t-${id}-${yl}-${xl}" vnet_mkjail ${jname} ${epair}b - jexec ${jname} ifconfig ${epair}b mtu 131071 up + jexec ${jname} ifconfig ${epair}b up jexec ${jname} ifconfig ${epair}b inet6 ${ip6b}/64 # Let IPv6 ND do its thing. @@ -70,7 +70,7 @@ exthdr_body() { # Clear statistics. jexec ${jname} netstat -z -s > /dev/null - # Run fragment tests. + # Run extension header tests. pyname=$(atf_get ident) pyname=${pyname%*_[0-9]} Modified: stable/12/tests/sys/netinet6/frag6/frag6.subr ============================================================================== --- stable/12/tests/sys/netinet6/frag6/frag6.subr Wed Jan 8 16:15:43 2020 (r356492) +++ stable/12/tests/sys/netinet6/frag6/frag6.subr Wed Jan 8 16:32:16 2020 (r356493) @@ -54,12 +54,12 @@ frag6_body() ip6b="2001:db8:6666:6666:${yl}:${id}:2:${xl}" epair=$(vnet_mkepair) - ifconfig ${epair}a mtu 131071 up + ifconfig ${epair}a up ifconfig ${epair}a inet6 ${ip6a}/64 jname="v6t-${id}-${yl}-${xl}" vnet_mkjail ${jname} ${epair}b - jexec ${jname} ifconfig ${epair}b mtu 131071 up + jexec ${jname} ifconfig ${epair}b up jexec ${jname} ifconfig ${epair}b inet6 ${ip6b}/64 # Let IPv6 ND do its thing. Modified: stable/12/tests/sys/netinet6/frag6/frag6_02.py ============================================================================== --- stable/12/tests/sys/netinet6/frag6/frag6_02.py Wed Jan 8 16:15:43 2020 (r356492) +++ stable/12/tests/sys/netinet6/frag6/frag6_02.py Wed Jan 8 16:32:16 2020 (r356493) @@ -98,6 +98,7 @@ def main(): sp.sendp(ip6f01, iface=args.sendif[0], verbose=False) sleep(0.10) + sniffer.setEnd() sniffer.join() if not sniffer.foundCorrectPacket: sys.exit(1) Modified: stable/12/tests/sys/netinet6/frag6/frag6_04.py ============================================================================== --- stable/12/tests/sys/netinet6/frag6/frag6_04.py Wed Jan 8 16:15:43 2020 (r356492) +++ stable/12/tests/sys/netinet6/frag6/frag6_04.py Wed Jan 8 16:32:16 2020 (r356493) @@ -95,6 +95,7 @@ def main(): sp.sendp(ip6f01, iface=args.sendif[0], verbose=False) sleep(0.10) + sniffer.setEnd() sniffer.join() if not sniffer.foundCorrectPacket: sys.exit(1) Copied: stable/12/tests/sys/netinet6/scapyi386.py (from r354395, head/tests/sys/netinet6/scapyi386.py) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/tests/sys/netinet6/scapyi386.py Wed Jan 8 16:32:16 2020 (r356493, copy of r354395, head/tests/sys/netinet6/scapyi386.py) @@ -0,0 +1,85 @@ +#!/usr/bin/env python +#- +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2019 Netflix, Inc. +# +# 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$ +# + +import argparse +import scapy.all as sp +import socket +import sys + +def main(): + parser = argparse.ArgumentParser("scapyi386.py", + description="IPv6 Ethernet Dest MAC test") + parser.add_argument('--sendif', nargs=1, + required=True, + help='The interface through which the packet will be sent') + parser.add_argument('--recvif', nargs=1, + required=True, + help='The interface on which to check for the packet') + parser.add_argument('--src', nargs=1, + required=True, + help='The source IP address') + parser.add_argument('--to', nargs=1, + required=True, + help='The destination IP address') + parser.add_argument('--debug', + required=False, action='store_true', + help='Enable test debugging') + + args = parser.parse_args() + + ######################################################################## + # + # A test case to check that IPv6 packets are sent with a proper + # (resolved) Ethernet Destination MAC address instead of the BCAST one. + # This was needed as test cases did not work properly on i386 due to a + # scapy BPF parsing bug. (See PR 239380 and duplicates). + # + bcmac = sp.Ether(dst="ff:ff:ff:ff:ff:ff").dst + data = "6" * 88 + pkt = sp.Ether() / \ + sp.IPv6(src=args.src[0], dst=args.to[0]) / \ + sp.UDP(dport=3456, sport=6543) / \ + data + sp.sendp(pkt, iface=args.sendif[0], verbose=False) + + eth = pkt.getlayer(sp.Ether) + if eth is None: + print("No Ether in packet") + pkt.display() + sys.exit(1) + if eth.dst == bcmac: + print("Broadcast dMAC on packet") + eth.display() + sys.exit(1) + + sys.exit(0) + +if __name__ == '__main__': + main() Copied: stable/12/tests/sys/netinet6/scapyi386.sh (from r354395, head/tests/sys/netinet6/scapyi386.sh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/tests/sys/netinet6/scapyi386.sh Wed Jan 8 16:32:16 2020 (r356493, copy of r354395, head/tests/sys/netinet6/scapyi386.sh) @@ -0,0 +1,94 @@ +# $FreeBSD$ +#- +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2019 Netflix, Inc. +# +# 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. +# + +. $(atf_get_srcdir)/../common/vnet.subr + +atf_test_case "scapyi386" "cleanup" +scapyi386_head() { + + atf_set descr 'Test for correct Ethernet Destination MAC address' + atf_set require.user root + atf_set require.progs scapy +} + +scapyi386_body() { + + if [ "$(atf_config_get ci false)" = "true" ] && \ + [ "$(uname -p)" = "i386" ]; then + atf_skip "https://bugs.freebsd.org/239380" + fi + + ids=65533 + id=`printf "%x" ${ids}` + if [ $$ -gt 65535 ]; then + xl=`printf "%x" $(($$ - 65535))` + yl="1" + else + xl=`printf "%x" $$` + yl="" + fi + + vnet_init + + ip6a="2001:db8:6666:0000:${yl}:${id}:1:${xl}" + ip6b="2001:db8:6666:0000:${yl}:${id}:2:${xl}" + + epair=$(vnet_mkepair) + ifconfig ${epair}a up + ifconfig ${epair}a inet6 ${ip6a}/64 + + jname="v6t-${id}-${yl}-${xl}" + vnet_mkjail ${jname} ${epair}b + jexec ${jname} ifconfig ${epair}b up + jexec ${jname} ifconfig ${epair}b inet6 ${ip6b}/64 + + # Let IPv6 ND do its thing. + #ping6 -q -c 1 ff02::1%${epair}a + #ping6 -q -c 1 ${ip6b} + sleep 3 + + pyname=$(atf_get ident) + pyname=${pyname%*_[0-9]} + + atf_check -s exit:0 $(atf_get_srcdir)/${pyname}.py \ + --sendif ${epair}a --recvif ${epair}a \ + --src ${ip6a} --to ${ip6b} +} + +scapyi386_cleanup() { + + vnet_cleanup +} + +atf_init_test_cases() +{ + + atf_add_test_case "scapyi386" +} + +# end From owner-svn-src-stable@freebsd.org Wed Jan 8 17:02:59 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 16EC61F48BC; Wed, 8 Jan 2020 17:02:59 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tFtV6xDNz3L8P; Wed, 8 Jan 2020 17:02:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D0ED91B393; Wed, 8 Jan 2020 17:02:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008H2wtG062041; Wed, 8 Jan 2020 17:02:58 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008H2w6U062040; Wed, 8 Jan 2020 17:02:58 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081702.008H2w6U062040@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 17:02:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356495 - stable/12/share/mk X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/share/mk X-SVN-Commit-Revision: 356495 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:02:59 -0000 Author: bz Date: Wed Jan 8 17:02:58 2020 New Revision: 356495 URL: https://svnweb.freebsd.org/changeset/base/356495 Log: MFC r354747: Allow per-file lex and yacc options. In order to allow software with multiple (different) options for lex and yacc add extra per-file options to the calls. This is especially useful when one .l file needs -Pprefix. Modified: stable/12/share/mk/bsd.dep.mk Directory Properties: stable/12/ (props changed) Modified: stable/12/share/mk/bsd.dep.mk ============================================================================== --- stable/12/share/mk/bsd.dep.mk Wed Jan 8 16:57:08 2020 (r356494) +++ stable/12/share/mk/bsd.dep.mk Wed Jan 8 17:02:58 2020 (r356495) @@ -108,7 +108,7 @@ OBJS_DEPEND_GUESS.${_S:${OBJS_SRCS_FILTER:ts:}}.o+= ${ .for _LSRC in ${SRCS:M*.l:N*/*} .for _LC in ${_LSRC:R}.c ${_LC}: ${_LSRC} - ${LEX} ${LFLAGS} -o${.TARGET} ${.ALLSRC} + ${LEX} ${LFLAGS} ${LFLAGS.${_LSRC}} -o${.TARGET} ${.ALLSRC} OBJS_DEPEND_GUESS.${_LC:R}.o+= ${_LC} SRCS:= ${SRCS:S/${_LSRC}/${_LC}/} CLEANFILES+= ${_LC} @@ -124,7 +124,7 @@ CLEANFILES+= ${_YC} .ORDER: ${_YC} y.tab.h y.tab.h: .NOMETA ${_YC} y.tab.h: ${_YSRC} - ${YACC} ${YFLAGS} ${.ALLSRC} + ${YACC} ${YFLAGS} ${YFLAGS.${_YSRC}} ${.ALLSRC} cp y.tab.c ${_YC} CLEANFILES+= y.tab.c y.tab.h .elif !empty(YFLAGS:M-d) @@ -132,13 +132,13 @@ CLEANFILES+= y.tab.c y.tab.h .ORDER: ${_YC} ${_YH} ${_YH}: .NOMETA ${_YC} ${_YH}: ${_YSRC} - ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} + ${YACC} ${YFLAGS} ${YFLAGS.${_YSRC}} -o ${_YC} ${.ALLSRC} SRCS+= ${_YH} CLEANFILES+= ${_YH} .endfor .else ${_YC}: ${_YSRC} - ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} + ${YACC} ${YFLAGS} ${YFLAGS.${_YSRC}} -o ${_YC} ${.ALLSRC} .endif OBJS_DEPEND_GUESS.${_YC:R}.o+= ${_YC} .endfor From owner-svn-src-stable@freebsd.org Wed Jan 8 17:04:40 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ADDDC1F493C; Wed, 8 Jan 2020 17:04:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tFwS4DyRz3LGt; Wed, 8 Jan 2020 17:04:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 880A91B394; Wed, 8 Jan 2020 17:04:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008H4ejc062181; Wed, 8 Jan 2020 17:04:40 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008H4eNt062180; Wed, 8 Jan 2020 17:04:40 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081704.008H4eNt062180@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 17:04:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356496 - stable/12/sys/net80211 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/net80211 X-SVN-Commit-Revision: 356496 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:04:40 -0000 Author: bz Date: Wed Jan 8 17:04:40 2020 New Revision: 356496 URL: https://svnweb.freebsd.org/changeset/base/356496 Log: MFC r348861: Enhance the comment ieee80211_add_channel() to avoid a misunderstanding that the function does not work additive when repeatedly called for diffferent bands. Modified: stable/12/sys/net80211/ieee80211.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/net80211/ieee80211.c ============================================================================== --- stable/12/sys/net80211/ieee80211.c Wed Jan 8 17:02:58 2020 (r356495) +++ stable/12/sys/net80211/ieee80211.c Wed Jan 8 17:04:40 2020 (r356496) @@ -1386,6 +1386,8 @@ getflags(const uint8_t bands[], uint32_t flags[], int /* * Add one 20 MHz channel into specified channel list. + * You MUST NOT mix bands when calling this. It will not add 5ghz + * channels if you have any B/G/N band bit set. */ /* XXX VHT */ int From owner-svn-src-stable@freebsd.org Wed Jan 8 17:05:58 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6A1761F4A17; Wed, 8 Jan 2020 17:05:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tFxy2DN5z3LSM; Wed, 8 Jan 2020 17:05:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4775C1B3AD; Wed, 8 Jan 2020 17:05:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008H5wEB062303; Wed, 8 Jan 2020 17:05:58 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008H5wco062302; Wed, 8 Jan 2020 17:05:58 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001081705.008H5wco062302@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 17:05:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356497 - stable/12/lib/libc/resolv X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/lib/libc/resolv X-SVN-Commit-Revision: 356497 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:05:58 -0000 Author: bz Date: Wed Jan 8 17:05:57 2020 New Revision: 356497 URL: https://svnweb.freebsd.org/changeset/base/356497 Log: MFC r348671: Rather than using the legacy IP struct fields in the union for the port number, properly access them by their IPv6 names. This will make it easier to slice up and compile out address families in the future. No functional change intended. Modified: stable/12/lib/libc/resolv/res_findzonecut.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libc/resolv/res_findzonecut.c ============================================================================== --- stable/12/lib/libc/resolv/res_findzonecut.c Wed Jan 8 17:04:40 2020 (r356496) +++ stable/12/lib/libc/resolv/res_findzonecut.c Wed Jan 8 17:05:57 2020 (r356497) @@ -629,7 +629,7 @@ save_a(res_state statp, ns_msg *msg, ns_sect sect, arr->addr.sin6.sin6_len = sizeof(arr->addr.sin6); #endif memcpy(&arr->addr.sin6.sin6_addr, ns_rr_rdata(rr), 16); - arr->addr.sin.sin_port = htons(NAMESERVER_PORT); + arr->addr.sin6.sin6_port = htons(NAMESERVER_PORT); nsrr->flags |= RR_NS_HAVE_V6; break; default: From owner-svn-src-stable@freebsd.org Wed Jan 8 17:23:53 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ACD751F513F; Wed, 8 Jan 2020 17:23:53 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tGLd46Lsz3MZr; Wed, 8 Jan 2020 17:23:53 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 883111B7AF; Wed, 8 Jan 2020 17:23: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 008HNrPY074017; Wed, 8 Jan 2020 17:23:53 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008HNrQZ074015; Wed, 8 Jan 2020 17:23:53 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001081723.008HNrQZ074015@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 8 Jan 2020 17:23:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356498 - in stable/12/lib: . libclang_rt X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in stable/12/lib: . libclang_rt X-SVN-Commit-Revision: 356498 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:23:53 -0000 Author: dim Date: Wed Jan 8 17:23:52 2020 New Revision: 356498 URL: https://svnweb.freebsd.org/changeset/base/356498 Log: MFC r355034: libclang_rt: enable on powerpc* Summary: Enable on powerpc64 and in lib/libclang_rt/Makefile change MACHINE_CPUARCH to MACHINE_ARCH because on powerpc64 MACHINE_ARCH==MACHINE_CPUARCH so the 32-bit library overwrites 64-bit library during installworld. This patch doesn't enable any other libclang_rt libraries because they need to be separately ported. I have verified that games/julius (which fails on powerpc64 elfv2 without this change because of no libclang_rt profiling library) builds. Test Plan: Ship it, test on powerpc and powerpcspe Submitted by: pkubaj Reviewed by: dim, jhibbits Differential Revision: https://reviews.freebsd.org/D22425 Modified: stable/12/lib/Makefile stable/12/lib/libclang_rt/Makefile.inc Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/Makefile ============================================================================== --- stable/12/lib/Makefile Wed Jan 8 17:05:57 2020 (r356497) +++ stable/12/lib/Makefile Wed Jan 8 17:23:52 2020 (r356498) @@ -158,7 +158,8 @@ SUBDIR.${MK_LDNS}+= libldns # built for certain architectures. .if ${MK_CLANG} != "no" && ${COMPILER_TYPE} == "clang" && \ (${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \ - ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386") + ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386" || \ + ${MACHINE_CPUARCH} == "powerpc") _libclang_rt= libclang_rt .endif Modified: stable/12/lib/libclang_rt/Makefile.inc ============================================================================== --- stable/12/lib/libclang_rt/Makefile.inc Wed Jan 8 17:05:57 2020 (r356497) +++ stable/12/lib/libclang_rt/Makefile.inc Wed Jan 8 17:23:52 2020 (r356498) @@ -8,7 +8,7 @@ (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") CRTARCH?= armhf .else -CRTARCH?= ${MACHINE_CPUARCH:C/amd64/x86_64/} +CRTARCH?= ${MACHINE_ARCH:C/amd64/x86_64/} .endif CRTSRC= ${SRCTOP}/contrib/llvm-project/compiler-rt From owner-svn-src-stable@freebsd.org Wed Jan 8 17:30:15 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 855F61F528B; Wed, 8 Jan 2020 17:30:15 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tGTz30PVz3MvL; Wed, 8 Jan 2020 17:30:15 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 61FAF1B7D0; Wed, 8 Jan 2020 17:30:15 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008HUFMj074454; Wed, 8 Jan 2020 17:30:15 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008HUFPb074451; Wed, 8 Jan 2020 17:30:15 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <202001081730.008HUFPb074451@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Wed, 8 Jan 2020 17:30:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356500 - stable/12/usr.sbin/bhyve X-SVN-Group: stable-12 X-SVN-Commit-Author: jkim X-SVN-Commit-Paths: stable/12/usr.sbin/bhyve X-SVN-Commit-Revision: 356500 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 17:30:15 -0000 Author: jkim Date: Wed Jan 8 17:30:14 2020 New Revision: 356500 URL: https://svnweb.freebsd.org/changeset/base/356500 Log: MFC: r354056 Catch up with ACPICA 20191018. Modified: stable/12/usr.sbin/bhyve/acpi.c stable/12/usr.sbin/bhyve/pci_emul.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/bhyve/acpi.c ============================================================================== --- stable/12/usr.sbin/bhyve/acpi.c Wed Jan 8 17:25:59 2020 (r356499) +++ stable/12/usr.sbin/bhyve/acpi.c Wed Jan 8 17:30:14 2020 (r356500) @@ -309,11 +309,11 @@ basl_fwrite_madt(FILE *fp) /* Local APIC NMI is connected to LINT 1 on all CPUs */ EFPRINTF(fp, "[0001]\t\tSubtable Type : 04\n"); EFPRINTF(fp, "[0001]\t\tLength : 06\n"); - EFPRINTF(fp, "[0001]\t\tProcessorId : FF\n"); + EFPRINTF(fp, "[0001]\t\tProcessor ID : FF\n"); EFPRINTF(fp, "[0002]\t\tFlags (decoded below) : 0005\n"); EFPRINTF(fp, "\t\t\tPolarity : 1\n"); EFPRINTF(fp, "\t\t\tTrigger Mode : 1\n"); - EFPRINTF(fp, "[0001]\t\tInterrupt : 01\n"); + EFPRINTF(fp, "[0001]\t\tInterrupt Input LINT : 01\n"); EFPRINTF(fp, "\n"); EFFLUSH(fp); @@ -560,7 +560,7 @@ basl_fwrite_hpet(FILE *fp) EFPRINTF(fp, "[0004]\t\tAsl Compiler Revision : 00000000\n"); EFPRINTF(fp, "\n"); - EFPRINTF(fp, "[0004]\t\tTimer Block ID : %08X\n", hpet_capabilities); + EFPRINTF(fp, "[0004]\t\tHardware Block ID : %08X\n", hpet_capabilities); EFPRINTF(fp, "[0012]\t\tTimer Block Register : [Generic Address Structure]\n"); EFPRINTF(fp, "[0001]\t\tSpace ID : 00 [SystemMemory]\n"); @@ -571,7 +571,7 @@ basl_fwrite_hpet(FILE *fp) EFPRINTF(fp, "[0008]\t\tAddress : 00000000FED00000\n"); EFPRINTF(fp, "\n"); - EFPRINTF(fp, "[0001]\t\tHPET Number : 00\n"); + EFPRINTF(fp, "[0001]\t\tSequence Number : 00\n"); EFPRINTF(fp, "[0002]\t\tMinimum Clock Ticks : 0000\n"); EFPRINTF(fp, "[0004]\t\tFlags (decoded below) : 00000001\n"); EFPRINTF(fp, "\t\t\t4K Page Protect : 1\n"); @@ -607,9 +607,9 @@ basl_fwrite_mcfg(FILE *fp) EFPRINTF(fp, "\n"); EFPRINTF(fp, "[0008]\t\tBase Address : %016lX\n", pci_ecfg_base()); - EFPRINTF(fp, "[0002]\t\tSegment Group: 0000\n"); - EFPRINTF(fp, "[0001]\t\tStart Bus: 00\n"); - EFPRINTF(fp, "[0001]\t\tEnd Bus: FF\n"); + EFPRINTF(fp, "[0002]\t\tSegment Group Number : 0000\n"); + EFPRINTF(fp, "[0001]\t\tStart Bus Number : 00\n"); + EFPRINTF(fp, "[0001]\t\tEnd Bus Number : FF\n"); EFPRINTF(fp, "[0004]\t\tReserved : 0\n"); EFFLUSH(fp); return (0); Modified: stable/12/usr.sbin/bhyve/pci_emul.c ============================================================================== --- stable/12/usr.sbin/bhyve/pci_emul.c Wed Jan 8 17:25:59 2020 (r356499) +++ stable/12/usr.sbin/bhyve/pci_emul.c Wed Jan 8 17:30:14 2020 (r356500) @@ -1268,7 +1268,6 @@ pci_bus_write_dsdt(int bus) dsdt_line(" Device (PC%02X)", bus); dsdt_line(" {"); dsdt_line(" Name (_HID, EisaId (\"PNP0A03\"))"); - dsdt_line(" Name (_ADR, Zero)"); dsdt_line(" Method (_BBN, 0, NotSerialized)"); dsdt_line(" {"); From owner-svn-src-stable@freebsd.org Wed Jan 8 21:22:45 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 082BF1FB73B; Wed, 8 Jan 2020 21:22:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tMfD6TD2z49vp; Wed, 8 Jan 2020 21:22:44 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D97791E4FA; Wed, 8 Jan 2020 21:22:44 +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 008LMibY019583; Wed, 8 Jan 2020 21:22:44 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008LMiB3019582; Wed, 8 Jan 2020 21:22:44 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001082122.008LMiB3019582@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 8 Jan 2020 21:22:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356518 - stable/12 X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: stable/12 X-SVN-Commit-Revision: 356518 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 21:22:45 -0000 Author: dim Date: Wed Jan 8 21:22:44 2020 New Revision: 356518 URL: https://svnweb.freebsd.org/changeset/base/356518 Log: MFC r354859: WITH_SYSTEM_LINKER: Fix rebuilding lld every time. This is due to LLD_REVISION_STRING being renamed to LLD_REVISION in r351442 and the value being moved to another location in r351965. `make test-system-linker` can be used to see the values being used here. Reported by: ler Modified: stable/12/Makefile.inc1 Directory Properties: stable/12/ (props changed) Modified: stable/12/Makefile.inc1 ============================================================================== --- stable/12/Makefile.inc1 Wed Jan 8 21:07:55 2020 (r356517) +++ stable/12/Makefile.inc1 Wed Jan 8 21:22:44 2020 (r356518) @@ -279,9 +279,9 @@ WANT_LINKER_TYPE= .if !defined(WANT_LINKER_FREEBSD_VERSION) && !make(showconfig) && \ !make(test-system-compiler) .if ${WANT_LINKER_TYPE} == "lld" -WANT_LINKER_FREEBSD_VERSION_FILE= lib/clang/include/lld/Common/Version.inc +WANT_LINKER_FREEBSD_VERSION_FILE= lib/clang/include/VCSVersion.inc WANT_LINKER_FREEBSD_VERSION!= \ - awk '$$2 == "LLD_REVISION_STRING" {gsub(/"/, "", $$3); print $$3}' \ + awk '$$2 == "LLD_REVISION" {gsub(/"/, "", $$3); print $$3}' \ ${SRCDIR}/${WANT_LINKER_FREEBSD_VERSION_FILE} || echo unknown WANT_LINKER_VERSION_FILE= lib/clang/include/lld/Common/Version.inc WANT_LINKER_VERSION!= \ From owner-svn-src-stable@freebsd.org Wed Jan 8 22:59:32 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 854C01FDE54; Wed, 8 Jan 2020 22:59:32 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tPnw2yrXz4H1C; Wed, 8 Jan 2020 22:59:32 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5CB9A1F599; Wed, 8 Jan 2020 22:59:32 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008MxWTK073888; Wed, 8 Jan 2020 22:59:32 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008MxVXD073886; Wed, 8 Jan 2020 22:59:31 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001082259.008MxVXD073886@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 22:59:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356524 - in stable/12/sys: netinet netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12/sys: netinet netinet6 X-SVN-Commit-Revision: 356524 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 22:59:32 -0000 Author: bz Date: Wed Jan 8 22:59:31 2020 New Revision: 356524 URL: https://svnweb.freebsd.org/changeset/base/356524 Log: MFC r346535 (by hselasky): Fix build for mips and powerpc after r346530. Need to include sys/kernel.h to define SYSINIT() which is used by sys/eventhandler.h . This is now hit by r356489 which is unrelated to the original cause but the fix was never MFCed and hence manifests with different code now. Modified: stable/12/sys/netinet/ip_reass.c stable/12/sys/netinet6/frag6.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_reass.c ============================================================================== --- stable/12/sys/netinet/ip_reass.c Wed Jan 8 22:55:22 2020 (r356523) +++ stable/12/sys/netinet/ip_reass.c Wed Jan 8 22:59:31 2020 (r356524) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 22:55:22 2020 (r356523) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 22:59:31 2020 (r356524) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include From owner-svn-src-stable@freebsd.org Wed Jan 8 23:39:24 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 357011FED7B; Wed, 8 Jan 2020 23:39:24 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tQgw0jfKz4KBC; Wed, 8 Jan 2020 23:39:24 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 13C6A1FCDB; Wed, 8 Jan 2020 23:39:24 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 008NdN8L097563; Wed, 8 Jan 2020 23:39:23 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 008NdNX4097562; Wed, 8 Jan 2020 23:39:23 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001082339.008NdNX4097562@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Wed, 8 Jan 2020 23:39:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356529 - stable/12/sys/netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/netinet6 X-SVN-Commit-Revision: 356529 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2020 23:39:24 -0000 Author: bz Date: Wed Jan 8 23:39:23 2020 New Revision: 356529 URL: https://svnweb.freebsd.org/changeset/base/356529 Log: Remove duplicate kernel.h include which came back with 356524 due to out-of-order MFCs. Modified: stable/12/sys/netinet6/frag6.c Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Wed Jan 8 23:34:50 2020 (r356528) +++ stable/12/sys/netinet6/frag6.c Wed Jan 8 23:39:23 2020 (r356529) @@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include From owner-svn-src-stable@freebsd.org Thu Jan 9 00:36:29 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 36DAF22195E; Thu, 9 Jan 2020 00:36:29 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tRxn0gVFz4Mq9; Thu, 9 Jan 2020 00:36:29 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 12364207FF; Thu, 9 Jan 2020 00:36:29 +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 0090aSfk032811; Thu, 9 Jan 2020 00:36:28 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0090aStL032810; Thu, 9 Jan 2020 00:36:28 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001090036.0090aStL032810@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 9 Jan 2020 00:36:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356530 - stable/12/sbin/nvmecontrol X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sbin/nvmecontrol X-SVN-Commit-Revision: 356530 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 00:36:29 -0000 Author: mav Date: Thu Jan 9 00:36:28 2020 New Revision: 356530 URL: https://svnweb.freebsd.org/changeset/base/356530 Log: MFC r351824, r356392: Report the Host Buffer Memory minimum and preferred sizes. The Host Buffer feature (NVMe 1.4 section 89) allows for the NVMe card request the host provide it buffer for lookaside tables and maybe other things. Report the card's minimum and preferred sizes with nvmecontrol/camcontrol identify. Modified: stable/12/sbin/nvmecontrol/identify_ext.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/nvmecontrol/identify_ext.c ============================================================================== --- stable/12/sbin/nvmecontrol/identify_ext.c Wed Jan 8 23:39:23 2020 (r356529) +++ stable/12/sbin/nvmecontrol/identify_ext.c Thu Jan 9 00:36:28 2020 (r356530) @@ -192,6 +192,10 @@ nvme_print_controller(struct nvme_controller_data *cda uint128_to_str(to128(cdata->untncap.unvmcap), cbuf, sizeof(cbuf))); } + printf("Host Buffer Preferred Size: %llu bytes\n", + (long long unsigned)cdata->hmpre * 4096); + printf("Host Buffer Minimum Size: %llu bytes\n", + (long long unsigned)cdata->hmmin * 4096); printf("\n"); printf("NVM Command Set Attributes\n"); From owner-svn-src-stable@freebsd.org Thu Jan 9 00:39:36 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 328F3221A86; Thu, 9 Jan 2020 00:39:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tS1N0b2Jz4Myy; Thu, 9 Jan 2020 00:39:36 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0F8AC20805; Thu, 9 Jan 2020 00:39:36 +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 0090dZSS032998; Thu, 9 Jan 2020 00:39:35 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0090dZ0o032997; Thu, 9 Jan 2020 00:39:35 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001090039.0090dZ0o032997@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Thu, 9 Jan 2020 00:39:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356531 - stable/12/sys/geom/eli X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/eli X-SVN-Commit-Revision: 356531 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 00:39:36 -0000 Author: mav Date: Thu Jan 9 00:39:35 2020 New Revision: 356531 URL: https://svnweb.freebsd.org/changeset/base/356531 Log: MFC r356284: Remove extra check for provider being closed. We already checked for that earlier, and since we hold topology lock it could not change. Modified: stable/12/sys/geom/eli/g_eli.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/eli/g_eli.c ============================================================================== --- stable/12/sys/geom/eli/g_eli.c Thu Jan 9 00:36:28 2020 (r356530) +++ stable/12/sys/geom/eli/g_eli.c Thu Jan 9 00:39:35 2020 (r356531) @@ -962,8 +962,7 @@ g_eli_destroy(struct g_eli_softc *sc, boolean_t force) bzero(sc, sizeof(*sc)); free(sc, M_ELI); - if (pp == NULL || (pp->acr == 0 && pp->acw == 0 && pp->ace == 0)) - G_ELI_DEBUG(0, "Device %s destroyed.", gp->name); + G_ELI_DEBUG(0, "Device %s destroyed.", gp->name); g_wither_geom_close(gp, ENXIO); return (0); From owner-svn-src-stable@freebsd.org Thu Jan 9 01:14:28 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 088A2222B9C; Thu, 9 Jan 2020 01:14:28 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tSnb6Tv4z4Q4p; Thu, 9 Jan 2020 01:14:27 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D9D6420F46; Thu, 9 Jan 2020 01:14:27 +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 0091ER6B056924; Thu, 9 Jan 2020 01:14:27 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0091EQ8f056920; Thu, 9 Jan 2020 01:14:26 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202001090114.0091EQ8f056920@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 9 Jan 2020 01:14:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356532 - in stable/12: contrib/mtree contrib/netbsd-tests/usr.sbin/mtree usr.sbin/fmtree X-SVN-Group: stable-12 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: in stable/12: contrib/mtree contrib/netbsd-tests/usr.sbin/mtree usr.sbin/fmtree X-SVN-Commit-Revision: 356532 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 01:14:28 -0000 Author: bdrewery Date: Thu Jan 9 01:14:26 2020 New Revision: 356532 URL: https://svnweb.freebsd.org/changeset/base/356532 Log: MFC r352261,r352262,r352265: r352261: mtree: Fix -f -f not considering type changes. r352262: mtree -c: Fix username logic when getlogin(3) fails. r352265: mtree -O: Fix not descending on hash collisions Relnotes: yes Modified: stable/12/contrib/mtree/create.c stable/12/contrib/mtree/only.c stable/12/contrib/mtree/specspec.c stable/12/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh stable/12/usr.sbin/fmtree/specspec.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/mtree/create.c ============================================================================== --- stable/12/contrib/mtree/create.c Thu Jan 9 00:39:35 2020 (r356531) +++ stable/12/contrib/mtree/create.c Thu Jan 9 01:14:26 2020 (r356532) @@ -117,7 +117,7 @@ cwalk(FILE *fp) host[sizeof(host) - 1] = '\0'; if ((user = getlogin()) == NULL) { struct passwd *pw; - user = (pw = getpwuid(getuid())) == NULL ? pw->pw_name : + user = (pw = getpwuid(getuid())) != NULL ? pw->pw_name : ""; } Modified: stable/12/contrib/mtree/only.c ============================================================================== --- stable/12/contrib/mtree/only.c Thu Jan 9 00:39:35 2020 (r356531) +++ stable/12/contrib/mtree/only.c Thu Jan 9 01:14:26 2020 (r356532) @@ -1,4 +1,4 @@ -/* $NetBSD: only.c,v 1.2 2013/02/05 00:59:03 christos Exp $ */ +/* $NetBSD: only.c,v 1.3 2017/09/07 04:04:13 nakayama Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ #include #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: only.c,v 1.2 2013/02/05 00:59:03 christos Exp $"); +__RCSID("$NetBSD: only.c,v 1.3 2017/09/07 04:04:13 nakayama Exp $"); #endif #include @@ -89,11 +89,14 @@ static void hash_insert(char *str, uint32_t h) { struct hentry *e; + char *x; if ((e = malloc(sizeof(*e))) == NULL) mtree_err("memory allocation error"); + if ((x = strdup(str)) == NULL) + mtree_err("memory allocation error"); - e->str = str; + e->str = x; e->hash = h; e->next = table[h]; table[h] = e; @@ -110,10 +113,7 @@ fill(char *str) *ptr = '\0'; if (!hash_find(str, &h)) { - char *x = strdup(str); - if (x == NULL) - mtree_err("memory allocation error"); - hash_insert(x, h); + hash_insert(str, h); fill(str); } *ptr = '/'; @@ -135,6 +135,7 @@ load_only(const char *fname) err(1, "Duplicate entry %s", line); hash_insert(line, h); fill(line); + free(line); } fclose(fp); Modified: stable/12/contrib/mtree/specspec.c ============================================================================== --- stable/12/contrib/mtree/specspec.c Thu Jan 9 00:39:35 2020 (r356531) +++ stable/12/contrib/mtree/specspec.c Thu Jan 9 01:14:26 2020 (r356532) @@ -145,7 +145,7 @@ compare_nodes(NODE *n1, NODE *n2, char const *path) return (1); } if (n1->type != n2->type) { - differs = 0; + differs = F_TYPE; mismatch(n1, n2, differs, path); return (1); } Modified: stable/12/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh ============================================================================== --- stable/12/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh Thu Jan 9 00:39:35 2020 (r356531) +++ stable/12/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh Thu Jan 9 01:14:26 2020 (r356532) @@ -411,7 +411,42 @@ netbsd6_nonemptydir_body() FLAVOR=netbsd6 nonemptydir_body } +atf_test_case mtree_specspec_type +mtree_specspec_type_head() +{ + atf_set "descr" "Test that spec comparisons detect type changes" +} +mtree_specspec_type_body() +{ + mkdir testdir + + touch testdir/bar + mtree -c -p testdir > mtree1.spec + + if [ ! -f mtree1.spec ]; then + atf_fail "mtree failed" + fi + + rm -f testdir/bar + ln -s foo testdir/bar + # uid change is expected to be ignored as done in -C + chown -h operator testdir/bar + mtree -c -p testdir > mtree2.spec + + if [ ! -f mtree2.spec ]; then + atf_fail "mtree failed" + fi + + atf_check -s ignore -o save:output \ + -x "mtree -f mtree1.spec -f mtree2.spec" + + if ! cut -f 3 output | egrep -q "bar file" || \ + ! cut -f 3 output | egrep -q "bar link"; then + atf_fail "mtree did not detect type change" + fi +} + atf_init_test_cases() { atf_add_test_case mtree_create @@ -423,6 +458,7 @@ atf_init_test_cases() atf_add_test_case mtree_ignore atf_add_test_case mtree_merge atf_add_test_case mtree_nonemptydir + atf_add_test_case mtree_specspec_type atf_add_test_case netbsd6_create atf_add_test_case netbsd6_check Modified: stable/12/usr.sbin/fmtree/specspec.c ============================================================================== --- stable/12/usr.sbin/fmtree/specspec.c Thu Jan 9 00:39:35 2020 (r356531) +++ stable/12/usr.sbin/fmtree/specspec.c Thu Jan 9 01:14:26 2020 (r356532) @@ -132,7 +132,7 @@ compare_nodes(NODE *n1, NODE *n2, char const *path) return (1); } if (n1->type != n2->type) { - differs = 0; + differs = F_TYPE; mismatch(n1, n2, differs, path); return (1); } From owner-svn-src-stable@freebsd.org Thu Jan 9 01:17:03 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 08243222C79; Thu, 9 Jan 2020 01:17:03 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tSrZ6RvFz4QCl; Thu, 9 Jan 2020 01:17:02 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D858720F49; Thu, 9 Jan 2020 01:17:02 +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 0091H2qa057099; Thu, 9 Jan 2020 01:17:02 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0091H1Wk057094; Thu, 9 Jan 2020 01:17:01 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202001090117.0091H1Wk057094@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 9 Jan 2020 01:17:01 +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: r356533 - in stable/11: contrib/mtree contrib/netbsd-tests/usr.sbin/mtree usr.sbin/fmtree X-SVN-Group: stable-11 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: in stable/11: contrib/mtree contrib/netbsd-tests/usr.sbin/mtree usr.sbin/fmtree X-SVN-Commit-Revision: 356533 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 01:17:03 -0000 Author: bdrewery Date: Thu Jan 9 01:17:01 2020 New Revision: 356533 URL: https://svnweb.freebsd.org/changeset/base/356533 Log: MFC r352261,r352262,r352265: r352261: mtree: Fix -f -f not considering type changes. r352262: mtree -c: Fix username logic when getlogin(3) fails. r352265: mtree -O: Fix not descending on hash collisions Relnotes: yes Modified: stable/11/contrib/mtree/create.c stable/11/contrib/mtree/only.c stable/11/contrib/mtree/specspec.c stable/11/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh stable/11/usr.sbin/fmtree/specspec.c Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/mtree/create.c ============================================================================== --- stable/11/contrib/mtree/create.c Thu Jan 9 01:14:26 2020 (r356532) +++ stable/11/contrib/mtree/create.c Thu Jan 9 01:17:01 2020 (r356533) @@ -117,7 +117,7 @@ cwalk(FILE *fp) host[sizeof(host) - 1] = '\0'; if ((user = getlogin()) == NULL) { struct passwd *pw; - user = (pw = getpwuid(getuid())) == NULL ? pw->pw_name : + user = (pw = getpwuid(getuid())) != NULL ? pw->pw_name : ""; } Modified: stable/11/contrib/mtree/only.c ============================================================================== --- stable/11/contrib/mtree/only.c Thu Jan 9 01:14:26 2020 (r356532) +++ stable/11/contrib/mtree/only.c Thu Jan 9 01:17:01 2020 (r356533) @@ -1,4 +1,4 @@ -/* $NetBSD: only.c,v 1.2 2013/02/05 00:59:03 christos Exp $ */ +/* $NetBSD: only.c,v 1.3 2017/09/07 04:04:13 nakayama Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ #include #if defined(__RCSID) && !defined(lint) -__RCSID("$NetBSD: only.c,v 1.2 2013/02/05 00:59:03 christos Exp $"); +__RCSID("$NetBSD: only.c,v 1.3 2017/09/07 04:04:13 nakayama Exp $"); #endif #include @@ -89,11 +89,14 @@ static void hash_insert(char *str, uint32_t h) { struct hentry *e; + char *x; if ((e = malloc(sizeof(*e))) == NULL) mtree_err("memory allocation error"); + if ((x = strdup(str)) == NULL) + mtree_err("memory allocation error"); - e->str = str; + e->str = x; e->hash = h; e->next = table[h]; table[h] = e; @@ -110,10 +113,7 @@ fill(char *str) *ptr = '\0'; if (!hash_find(str, &h)) { - char *x = strdup(str); - if (x == NULL) - mtree_err("memory allocation error"); - hash_insert(x, h); + hash_insert(str, h); fill(str); } *ptr = '/'; @@ -135,6 +135,7 @@ load_only(const char *fname) err(1, "Duplicate entry %s", line); hash_insert(line, h); fill(line); + free(line); } fclose(fp); Modified: stable/11/contrib/mtree/specspec.c ============================================================================== --- stable/11/contrib/mtree/specspec.c Thu Jan 9 01:14:26 2020 (r356532) +++ stable/11/contrib/mtree/specspec.c Thu Jan 9 01:17:01 2020 (r356533) @@ -145,7 +145,7 @@ compare_nodes(NODE *n1, NODE *n2, char const *path) return (1); } if (n1->type != n2->type) { - differs = 0; + differs = F_TYPE; mismatch(n1, n2, differs, path); return (1); } Modified: stable/11/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh ============================================================================== --- stable/11/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh Thu Jan 9 01:14:26 2020 (r356532) +++ stable/11/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh Thu Jan 9 01:17:01 2020 (r356533) @@ -411,7 +411,42 @@ netbsd6_nonemptydir_body() FLAVOR=netbsd6 nonemptydir_body } +atf_test_case mtree_specspec_type +mtree_specspec_type_head() +{ + atf_set "descr" "Test that spec comparisons detect type changes" +} +mtree_specspec_type_body() +{ + mkdir testdir + + touch testdir/bar + mtree -c -p testdir > mtree1.spec + + if [ ! -f mtree1.spec ]; then + atf_fail "mtree failed" + fi + + rm -f testdir/bar + ln -s foo testdir/bar + # uid change is expected to be ignored as done in -C + chown -h operator testdir/bar + mtree -c -p testdir > mtree2.spec + + if [ ! -f mtree2.spec ]; then + atf_fail "mtree failed" + fi + + atf_check -s ignore -o save:output \ + -x "mtree -f mtree1.spec -f mtree2.spec" + + if ! cut -f 3 output | egrep -q "bar file" || \ + ! cut -f 3 output | egrep -q "bar link"; then + atf_fail "mtree did not detect type change" + fi +} + atf_init_test_cases() { atf_add_test_case mtree_create @@ -423,6 +458,7 @@ atf_init_test_cases() atf_add_test_case mtree_ignore atf_add_test_case mtree_merge atf_add_test_case mtree_nonemptydir + atf_add_test_case mtree_specspec_type atf_add_test_case netbsd6_create atf_add_test_case netbsd6_check Modified: stable/11/usr.sbin/fmtree/specspec.c ============================================================================== --- stable/11/usr.sbin/fmtree/specspec.c Thu Jan 9 01:14:26 2020 (r356532) +++ stable/11/usr.sbin/fmtree/specspec.c Thu Jan 9 01:17:01 2020 (r356533) @@ -132,7 +132,7 @@ compare_nodes(NODE *n1, NODE *n2, char const *path) return (1); } if (n1->type != n2->type) { - differs = 0; + differs = F_TYPE; mismatch(n1, n2, differs, path); return (1); } From owner-svn-src-stable@freebsd.org Thu Jan 9 08:20:32 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 651F622D384; Thu, 9 Jan 2020 08:20:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tfFD24Kdz3HLW; Thu, 9 Jan 2020 08:20:32 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3DF7825D13; Thu, 9 Jan 2020 08:20:32 +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 0098KWOH008204; Thu, 9 Jan 2020 08:20:32 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0098KWRP008203; Thu, 9 Jan 2020 08:20:32 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090820.0098KWRP008203@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 08:20:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356541 - stable/12/sys/kern X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/sys/kern X-SVN-Commit-Revision: 356541 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 08:20:32 -0000 Author: kib Date: Thu Jan 9 08:20:31 2020 New Revision: 356541 URL: https://svnweb.freebsd.org/changeset/base/356541 Log: MFC r356292: Style: remove trailing spaces/tabs. Modified: stable/12/sys/kern/kern_umtx.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/kern_umtx.c ============================================================================== --- stable/12/sys/kern/kern_umtx.c Thu Jan 9 06:10:25 2020 (r356540) +++ stable/12/sys/kern/kern_umtx.c Thu Jan 9 08:20:31 2020 (r356541) @@ -95,7 +95,7 @@ struct umtx_pi { /* Reference count */ int pi_refcount; - /* List entry to link umtx holding by thread */ + /* List entry to link umtx holding by thread */ TAILQ_ENTRY(umtx_pi) pi_link; /* List entry in hash */ @@ -138,7 +138,7 @@ struct umtx_q { /* Inherited priority from PP mutex */ u_char uq_inherited_pri; - + /* Spare queue ready to be reused */ struct umtxq_queue *uq_spare_queue; @@ -180,7 +180,7 @@ struct umtxq_chain { TAILQ_HEAD(,umtx_pi) uc_pi_list; #ifdef UMTX_PROFILING - u_int length; + u_int length; u_int max_length; #endif }; @@ -292,7 +292,7 @@ static struct mtx umtx_lock; #ifdef UMTX_PROFILING static void -umtx_init_profiling(void) +umtx_init_profiling(void) { struct sysctl_oid *chain_oid; char chain_name[10]; @@ -300,8 +300,8 @@ umtx_init_profiling(void) for (i = 0; i < UMTX_CHAINS; ++i) { snprintf(chain_name, sizeof(chain_name), "%d", i); - chain_oid = SYSCTL_ADD_NODE(NULL, - SYSCTL_STATIC_CHILDREN(_debug_umtx_chains), OID_AUTO, + chain_oid = SYSCTL_ADD_NODE(NULL, + SYSCTL_STATIC_CHILDREN(_debug_umtx_chains), OID_AUTO, chain_name, CTLFLAG_RD, NULL, "umtx hash stats"); SYSCTL_ADD_INT(NULL, SYSCTL_CHILDREN(chain_oid), OID_AUTO, "max_length0", CTLFLAG_RD, &umtxq_chains[0][i].max_length, 0, NULL); @@ -406,7 +406,7 @@ sysctl_debug_umtx_chains_clear(SYSCTL_HANDLER_ARGS) uc = &umtxq_chains[i][j]; mtx_lock(&uc->uc_lock); uc->length = 0; - uc->max_length = 0; + uc->max_length = 0; mtx_unlock(&uc->uc_lock); } } @@ -441,7 +441,7 @@ umtxq_sysinit(void *arg __unused) umtxq_chains[i][j].uc_waiters = 0; #ifdef UMTX_PROFILING umtxq_chains[i][j].length = 0; - umtxq_chains[i][j].max_length = 0; + umtxq_chains[i][j].max_length = 0; #endif } } @@ -613,7 +613,7 @@ umtxq_insert_queue(struct umtx_q *uq, int q) if (uc->length > uc->max_length) { uc->max_length = uc->length; if (uc->max_length > max_length) - max_length = uc->max_length; + max_length = uc->max_length; } #endif } @@ -770,7 +770,7 @@ umtxq_signal_thread(struct umtx_q *uq) wakeup(uq); } -static inline int +static inline int tstohz(const struct timespec *tsp) { struct timeval tv; @@ -825,7 +825,7 @@ abs_timeout_gethz(struct abs_timeout *timo) struct timespec tts; if (timespeccmp(&timo->end, &timo->cur, <=)) - return (-1); + return (-1); timespecsub(&timo->end, &timo->cur, &tts); return (tstohz(&tts)); } @@ -1009,7 +1009,7 @@ kern_umtx_wake(struct thread *td, void *uaddr, int n_w { struct umtx_key key; int ret; - + if ((ret = umtx_key_get(uaddr, TYPE_SIMPLE_WAIT, is_private ? THREAD_SHARE : AUTO_SHARE, &key)) != 0) return (ret); @@ -1522,7 +1522,7 @@ umtx_pi_check_loop(struct umtx_pi *pi) /* * Propagate priority when a thread is blocked on POSIX * PI mutex. - */ + */ static void umtx_propagate_priority(struct thread *td) { @@ -1773,7 +1773,7 @@ umtx_pi_ref(struct umtx_pi *pi) /* * Decrease reference count for a PI mutex, if the counter * is decreased to zero, its memory space is freed. - */ + */ static void umtx_pi_unref(struct umtx_pi *pi) { @@ -1972,7 +1972,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 */ if (error != 0) break; - + umtxq_lock(&uq->uq_key); umtxq_busy(&uq->uq_key); umtxq_unlock(&uq->uq_key); @@ -2099,7 +2099,7 @@ usrloop: umtx_pi_disown(pi); /* get highest priority thread which is still sleeping. */ uq_first = TAILQ_FIRST(&pi->pi_blocked); - while (uq_first != NULL && + while (uq_first != NULL && (uq_first->uq_flags & UQF_UMTXQ) == 0) { uq_first = TAILQ_NEXT(uq_first, uq_lockq); } @@ -2624,7 +2624,7 @@ do_cv_wait(struct thread *td, struct ucond *cv, struct if (timeout != NULL) abs_timeout_init(&timo, clockid, (wflags & CVWAIT_ABSTIME) != 0, timeout); - + umtxq_lock(&uq->uq_key); if (error == 0) { error = umtxq_sleep(uq, "ucond", timeout == NULL ? @@ -2673,7 +2673,7 @@ do_cv_signal(struct thread *td, struct ucond *cv) if (error == -1) return (EFAULT); if ((error = umtx_key_get(cv, TYPE_CV, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -2702,7 +2702,7 @@ do_cv_broadcast(struct thread *td, struct ucond *cv) if (error == -1) return (EFAULT); if ((error = umtx_key_get(cv, TYPE_CV, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); @@ -3124,7 +3124,7 @@ do_rw_unlock(struct thread *td, struct urwlock *rwlock } if (state & URWLOCK_WRITE_OWNER) { for (;;) { - rv = casueword32(&rwlock->rw_state, state, + rv = casueword32(&rwlock->rw_state, state, &oldstate, state & ~URWLOCK_WRITE_OWNER); if (rv == -1) { error = EFAULT; @@ -3279,7 +3279,7 @@ do_sem_wake(struct thread *td, struct _usem *sem) if (error == -1) return (EFAULT); if ((error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -3400,7 +3400,7 @@ do_sem2_wake(struct thread *td, struct _usem2 *sem) if (rv == -1) return (EFAULT); if ((error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -3456,12 +3456,12 @@ static inline int umtx_copyin_umtx_time(const void *addr, size_t size, struct _umtx_time *tp) { int error; - + if (size <= sizeof(struct timespec)) { tp->_clockid = CLOCK_REALTIME; tp->_flags = 0; error = copyin(addr, &tp->_timeout, sizeof(struct timespec)); - } else + } else error = copyin(addr, tp, sizeof(struct _umtx_time)); if (error != 0) return (error); @@ -3695,7 +3695,7 @@ __umtx_op_rw_wrlock(struct thread *td, struct _umtx_op if (uap->uaddr2 == NULL) { error = do_rw_wrlock(td, uap->obj, 0); } else { - error = umtx_copyin_umtx_time(uap->uaddr2, + error = umtx_copyin_umtx_time(uap->uaddr2, (size_t)uap->uaddr1, &timeout); if (error != 0) return (error); @@ -4200,12 +4200,12 @@ umtx_copyin_umtx_time32(const void *addr, size_t size, { struct umtx_time32 t32; int error; - + t32.clockid = CLOCK_REALTIME; t32.flags = 0; if (size <= sizeof(struct timespec32)) error = copyin(addr, &t32.timeout, sizeof(struct timespec32)); - else + else error = copyin(addr, &t32, sizeof(struct umtx_time32)); if (error != 0) return (error); @@ -4266,7 +4266,7 @@ __umtx_op_wait_umutex_compat32(struct thread *td, stru if (uap->uaddr2 == NULL) tm_p = NULL; else { - error = umtx_copyin_umtx_time32(uap->uaddr2, + error = umtx_copyin_umtx_time32(uap->uaddr2, (size_t)uap->uaddr1, &timeout); if (error != 0) return (error); From owner-svn-src-stable@freebsd.org Thu Jan 9 08:24:10 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A87822D594; Thu, 9 Jan 2020 08:24:10 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tfKQ3bXMz3Hht; Thu, 9 Jan 2020 08:24:10 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 76A0A25ED1; Thu, 9 Jan 2020 08:24:10 +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 0098OAPd013950; Thu, 9 Jan 2020 08:24:10 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0098O96g013948; Thu, 9 Jan 2020 08:24:09 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090824.0098O96g013948@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 08:24:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356542 - in stable/12/sys: kern sys X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/12/sys: kern sys X-SVN-Commit-Revision: 356542 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 08:24:10 -0000 Author: kib Date: Thu Jan 9 08:24:09 2020 New Revision: 356542 URL: https://svnweb.freebsd.org/changeset/base/356542 Log: MFC r356293: Rename umtxq_check_susp() to thread_check_susp(). Modified: stable/12/sys/kern/kern_thread.c stable/12/sys/kern/kern_umtx.c stable/12/sys/sys/proc.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/kern_thread.c ============================================================================== --- stable/12/sys/kern/kern_thread.c Thu Jan 9 08:20:31 2020 (r356541) +++ stable/12/sys/kern/kern_thread.c Thu Jan 9 08:24:09 2020 (r356542) @@ -1044,6 +1044,49 @@ thread_suspend_check(int return_instead) return (0); } +/* + * Check for possible stops and suspensions while executing a + * casueword or similar transiently failing operation. + * + * The sleep argument controls whether the function can handle a stop + * request itself or it should return ERESTART and the request is + * proceed at the kernel/user boundary in ast. + * + * Typically, when retrying due to casueword(9) failure (rv == 1), we + * should handle the stop requests there, with exception of cases when + * the thread owns a kernel resource, for instance busied the umtx + * key, or when functions return immediately if casueword_check_susp() + * returned non-zero. On the other hand, retrying the whole lock + * operation, we better not stop there but delegate the handling to + * ast. + * + * If the request is for thread termination P_SINGLE_EXIT, we cannot + * handle it at all, and simply return EINTR. + */ +int +thread_check_susp(struct thread *td, bool sleep) +{ + struct proc *p; + int error; + + /* + * The check for TDF_NEEDSUSPCHK is racy, but it is enough to + * eventually break the lockstep loop. + */ + if ((td->td_flags & TDF_NEEDSUSPCHK) == 0) + return (0); + error = 0; + p = td->td_proc; + PROC_LOCK(p); + if (p->p_flag & P_SINGLE_EXIT) + error = EINTR; + else if (P_SHOULDSTOP(p) || + ((p->p_flag & P_TRACED) && (td->td_dbgflags & TDB_SUSPEND))) + error = sleep ? thread_suspend_check(0) : ERESTART; + PROC_UNLOCK(p); + return (error); +} + void thread_suspend_switch(struct thread *td, struct proc *p) { Modified: stable/12/sys/kern/kern_umtx.c ============================================================================== --- stable/12/sys/kern/kern_umtx.c Thu Jan 9 08:20:31 2020 (r356541) +++ stable/12/sys/kern/kern_umtx.c Thu Jan 9 08:24:09 2020 (r356542) @@ -691,48 +691,6 @@ umtxq_count_pi(struct umtx_key *key, struct umtx_q **f } /* - * Check for possible stops and suspensions while executing a umtx - * locking operation. - * - * The sleep argument controls whether the function can handle a stop - * request itself or it should return ERESTART and the request is - * proceed at the kernel/user boundary in ast. - * - * Typically, when retrying due to casueword(9) failure (rv == 1), we - * should handle the stop requests there, with exception of cases when - * the thread busied the umtx key, or when functions return - * immediately if umtxq_check_susp() returned non-zero. On the other - * hand, retrying the whole lock operation, we better not stop there - * but delegate the handling to ast. - * - * If the request is for thread termination P_SINGLE_EXIT, we cannot - * handle it at all, and simply return EINTR. - */ -static int -umtxq_check_susp(struct thread *td, bool sleep) -{ - struct proc *p; - int error; - - /* - * The check for TDF_NEEDSUSPCHK is racy, but it is enough to - * eventually break the lockstep loop. - */ - if ((td->td_flags & TDF_NEEDSUSPCHK) == 0) - return (0); - error = 0; - p = td->td_proc; - PROC_LOCK(p); - if (p->p_flag & P_SINGLE_EXIT) - error = EINTR; - else if (P_SHOULDSTOP(p) || - ((p->p_flag & P_TRACED) && (td->td_dbgflags & TDB_SUSPEND))) - error = sleep ? thread_suspend_check(0) : ERESTART; - PROC_UNLOCK(p); - return (error); -} - -/* * Wake up threads waiting on an userland object. */ @@ -1070,7 +1028,7 @@ do_lock_normal(struct thread *td, struct umutex *m, ui return (EOWNERDEAD); /* success */ } MPASS(rv == 1); - rv = umtxq_check_susp(td, false); + rv = thread_check_susp(td, false); if (rv != 0) return (rv); continue; @@ -1111,7 +1069,7 @@ do_lock_normal(struct thread *td, struct umutex *m, ui return (0); } if (rv == 1) { - rv = umtxq_check_susp(td, false); + rv = thread_check_susp(td, false); if (rv != 0) return (rv); } @@ -1124,7 +1082,7 @@ do_lock_normal(struct thread *td, struct umutex *m, ui } /* rv == 1 but not contested, likely store failure */ - rv = umtxq_check_susp(td, false); + rv = thread_check_susp(td, false); if (rv != 0) return (rv); } @@ -1167,7 +1125,7 @@ do_lock_normal(struct thread *td, struct umutex *m, ui if (rv == -1) return (EFAULT); if (rv == 1) { - rv = umtxq_check_susp(td, false); + rv = thread_check_susp(td, false); if (rv != 0) return (rv); } @@ -1189,7 +1147,7 @@ do_lock_normal(struct thread *td, struct umutex *m, ui umtx_key_release(&uq->uq_key); if (error == 0) - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); } return (0); @@ -1224,7 +1182,7 @@ again: if (error == -1) return (EFAULT); if (error == 1) { - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) return (error); goto again; @@ -1261,7 +1219,7 @@ again: if (error == 1) { if (old != owner) return (EINVAL); - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) return (error); goto again; @@ -1316,7 +1274,7 @@ again: umtxq_unbusy(&key); umtxq_unlock(&key); umtx_key_release(&key); - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) return (error); goto again; @@ -1400,7 +1358,7 @@ do_wake2_umutex(struct thread *td, struct umutex *m, u break; } owner = old; - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); } umtxq_lock(&key); @@ -1905,7 +1863,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 * to the pending signal with suspension check result. */ if (error == 0) { - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; } @@ -1922,7 +1880,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 } if (rv == 1) { if (error == 0) { - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; } @@ -1994,7 +1952,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 } if (rv == 1) { umtxq_unbusy_unlocked(&uq->uq_key); - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; @@ -2017,7 +1975,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 if (error != 0) continue; - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) break; } @@ -2063,7 +2021,7 @@ usrloop: if (error == -1) return (EFAULT); if (error == 1) { - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) return (error); goto usrloop; @@ -2150,7 +2108,7 @@ usrloop: again: error = casueword32(&m->m_owner, owner, &old, new_owner); if (error == 1) { - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error == 0) goto again; } @@ -2255,7 +2213,7 @@ do_lock_pp(struct thread *td, struct umutex *m, uint32 * error to not skip the last loop iteration. */ if (error == 0) { - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error == 0) { if (try != 0) error = EBUSY; @@ -2770,7 +2728,7 @@ do_rw_rdlock(struct thread *td, struct urwlock *rwlock umtx_key_release(&uq->uq_key); return (0); } - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; state = oldstate; @@ -2806,7 +2764,7 @@ do_rw_rdlock(struct thread *td, struct urwlock *rwlock goto sleep; } state = oldstate; - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) break; } @@ -2818,7 +2776,7 @@ do_rw_rdlock(struct thread *td, struct urwlock *rwlock /* state is changed while setting flags, restart */ if (!(state & wrflags)) { umtxq_unbusy_unlocked(&uq->uq_key); - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; continue; @@ -2886,7 +2844,7 @@ sleep: break; } state = oldstate; - error1 = umtxq_check_susp(td, false); + error1 = thread_check_susp(td, false); if (error1 != 0) { if (error == 0) error = error1; @@ -2948,7 +2906,7 @@ do_rw_wrlock(struct thread *td, struct urwlock *rwlock return (0); } state = oldstate; - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) break; } @@ -2995,7 +2953,7 @@ do_rw_wrlock(struct thread *td, struct urwlock *rwlock goto sleep; } state = oldstate; - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) break; } @@ -3007,7 +2965,7 @@ do_rw_wrlock(struct thread *td, struct urwlock *rwlock if ((state & URWLOCK_WRITE_OWNER) == 0 && URWLOCK_READER_COUNT(state) == 0) { umtxq_unbusy_unlocked(&uq->uq_key); - error = umtxq_check_susp(td, false); + error = thread_check_susp(td, false); if (error != 0) break; continue; @@ -3070,7 +3028,7 @@ sleep: break; } state = oldstate; - error1 = umtxq_check_susp(td, false); + error1 = thread_check_susp(td, false); /* * We are leaving the URWLOCK_WRITE_WAITERS * behind, but this should not harm the @@ -3136,7 +3094,7 @@ do_rw_unlock(struct thread *td, struct urwlock *rwlock error = EPERM; goto out; } - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) goto out; } else @@ -3156,7 +3114,7 @@ do_rw_unlock(struct thread *td, struct urwlock *rwlock error = EPERM; goto out; } - error = umtxq_check_susp(td, true); + error = thread_check_susp(td, true); if (error != 0) goto out; } else @@ -3234,7 +3192,7 @@ again: umtxq_remove(uq); umtxq_unlock(&uq->uq_key); if (rv == 1) { - rv = umtxq_check_susp(td, true); + rv = thread_check_susp(td, true); if (rv == 0) goto again; error = rv; @@ -3356,7 +3314,7 @@ again: umtx_key_release(&uq->uq_key); if (rv == -1) return (EFAULT); - rv = umtxq_check_susp(td, true); + rv = thread_check_susp(td, true); if (rv != 0) return (rv); goto again; @@ -3416,7 +3374,7 @@ do_sem2_wake(struct thread *td, struct _usem2 *sem) rv = casueword32(&sem->_count, count, &count, count & ~USEM_HAS_WAITERS); if (rv == 1) { - rv = umtxq_check_susp(td, true); + rv = thread_check_susp(td, true); if (rv != 0) break; } Modified: stable/12/sys/sys/proc.h ============================================================================== --- stable/12/sys/sys/proc.h Thu Jan 9 08:20:31 2020 (r356541) +++ stable/12/sys/sys/proc.h Thu Jan 9 08:24:09 2020 (r356542) @@ -1115,6 +1115,7 @@ void cpu_thread_swapin(struct thread *); void cpu_thread_swapout(struct thread *); struct thread *thread_alloc(int pages); int thread_alloc_stack(struct thread *, int pages); +int thread_check_susp(struct thread *td, bool sleep); void thread_cow_get_proc(struct thread *newtd, struct proc *p); void thread_cow_get(struct thread *newtd, struct thread *td); void thread_cow_free(struct thread *td); From owner-svn-src-stable@freebsd.org Thu Jan 9 08:29:32 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A26C722D724; Thu, 9 Jan 2020 08:29:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tfRc33ztz3Hsy; Thu, 9 Jan 2020 08:29:32 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6468025EE0; Thu, 9 Jan 2020 08:29:32 +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 0098TWP3014250; Thu, 9 Jan 2020 08:29:32 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0098TV4a014246; Thu, 9 Jan 2020 08:29:31 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090829.0098TV4a014246@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 08:29:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356543 - in stable/12/sys/amd64: include vmm vmm/io X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/12/sys/amd64: include vmm vmm/io X-SVN-Commit-Revision: 356543 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 08:29:32 -0000 Author: kib Date: Thu Jan 9 08:29:31 2020 New Revision: 356543 URL: https://svnweb.freebsd.org/changeset/base/356543 Log: MFC r356296: bhyve: terminate waiting loops if thread suspension is requested. PR: 242724 Modified: stable/12/sys/amd64/include/vmm.h stable/12/sys/amd64/vmm/io/vioapic.c stable/12/sys/amd64/vmm/vmm.c stable/12/sys/amd64/vmm/vmm_dev.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/amd64/include/vmm.h ============================================================================== --- stable/12/sys/amd64/include/vmm.h Thu Jan 9 08:24:09 2020 (r356542) +++ stable/12/sys/amd64/include/vmm.h Thu Jan 9 08:29:31 2020 (r356543) @@ -267,7 +267,7 @@ void vm_exit_reqidle(struct vm *vm, int vcpuid, uint64 * forward progress when the rendezvous is in progress. */ typedef void (*vm_rendezvous_func_t)(struct vm *vm, int vcpuid, void *arg); -void vm_smp_rendezvous(struct vm *vm, int vcpuid, cpuset_t dest, +int vm_smp_rendezvous(struct vm *vm, int vcpuid, cpuset_t dest, vm_rendezvous_func_t func, void *arg); cpuset_t vm_active_cpus(struct vm *vm); cpuset_t vm_debug_cpus(struct vm *vm); Modified: stable/12/sys/amd64/vmm/io/vioapic.c ============================================================================== --- stable/12/sys/amd64/vmm/io/vioapic.c Thu Jan 9 08:24:09 2020 (r356542) +++ stable/12/sys/amd64/vmm/io/vioapic.c Thu Jan 9 08:29:31 2020 (r356543) @@ -353,7 +353,7 @@ vioapic_write(struct vioapic *vioapic, int vcpuid, uin "vlapic trigger-mode register", pin); VIOAPIC_UNLOCK(vioapic); allvcpus = vm_active_cpus(vioapic->vm); - vm_smp_rendezvous(vioapic->vm, vcpuid, allvcpus, + (void)vm_smp_rendezvous(vioapic->vm, vcpuid, allvcpus, vioapic_update_tmr, NULL); VIOAPIC_LOCK(vioapic); } Modified: stable/12/sys/amd64/vmm/vmm.c ============================================================================== --- stable/12/sys/amd64/vmm/vmm.c Thu Jan 9 08:24:09 2020 (r356542) +++ stable/12/sys/amd64/vmm/vmm.c Thu Jan 9 08:29:31 2020 (r356543) @@ -1244,13 +1244,17 @@ vcpu_require_state_locked(struct vm *vm, int vcpuid, e VM_CTR0(vm, fmt); \ } while (0) -static void +static int vm_handle_rendezvous(struct vm *vm, int vcpuid) { + struct thread *td; + int error; KASSERT(vcpuid == -1 || (vcpuid >= 0 && vcpuid < vm->maxcpus), ("vm_handle_rendezvous: invalid vcpuid %d", vcpuid)); + error = 0; + td = curthread; mtx_lock(&vm->rendezvous_mtx); while (vm->rendezvous_func != NULL) { /* 'rendezvous_req_cpus' must be a subset of 'active_cpus' */ @@ -1272,9 +1276,17 @@ vm_handle_rendezvous(struct vm *vm, int vcpuid) } RENDEZVOUS_CTR0(vm, vcpuid, "Wait for rendezvous completion"); mtx_sleep(&vm->rendezvous_func, &vm->rendezvous_mtx, 0, - "vmrndv", 0); + "vmrndv", hz); + if ((td->td_flags & TDF_NEEDSUSPCHK) != 0) { + mtx_unlock(&vm->rendezvous_mtx); + error = thread_check_susp(td, true); + if (error != 0) + return (error); + mtx_lock(&vm->rendezvous_mtx); + } } mtx_unlock(&vm->rendezvous_mtx); + return (0); } /* @@ -1285,13 +1297,16 @@ vm_handle_hlt(struct vm *vm, int vcpuid, bool intr_dis { struct vcpu *vcpu; const char *wmesg; - int t, vcpu_halted, vm_halted; + struct thread *td; + int error, t, vcpu_halted, vm_halted; KASSERT(!CPU_ISSET(vcpuid, &vm->halted_cpus), ("vcpu already halted")); vcpu = &vm->vcpu[vcpuid]; vcpu_halted = 0; vm_halted = 0; + error = 0; + td = curthread; vcpu_lock(vcpu); while (1) { @@ -1352,6 +1367,13 @@ vm_handle_hlt(struct vm *vm, int vcpuid, bool intr_dis msleep_spin(vcpu, &vcpu->mtx, wmesg, hz); vcpu_require_state_locked(vm, vcpuid, VCPU_FROZEN); vmm_stat_incr(vm, vcpuid, VCPU_IDLE_TICKS, ticks - t); + if ((td->td_flags & TDF_NEEDSUSPCHK) != 0) { + vcpu_unlock(vcpu); + error = thread_check_susp(td, false); + if (error != 0) + return (error); + vcpu_lock(vcpu); + } } if (vcpu_halted) @@ -1488,11 +1510,13 @@ vm_handle_inst_emul(struct vm *vm, int vcpuid, bool *r static int vm_handle_suspend(struct vm *vm, int vcpuid, bool *retu) { - int i, done; + int error, i; struct vcpu *vcpu; + struct thread *td; - done = 0; + error = 0; vcpu = &vm->vcpu[vcpuid]; + td = curthread; CPU_SET_ATOMIC(vcpuid, &vm->suspended_cpus); @@ -1504,7 +1528,7 @@ vm_handle_suspend(struct vm *vm, int vcpuid, bool *ret * handler while we are waiting to prevent a deadlock. */ vcpu_lock(vcpu); - while (1) { + while (error == 0) { if (CPU_CMP(&vm->suspended_cpus, &vm->active_cpus) == 0) { VCPU_CTR0(vm, vcpuid, "All vcpus suspended"); break; @@ -1515,10 +1539,15 @@ vm_handle_suspend(struct vm *vm, int vcpuid, bool *ret vcpu_require_state_locked(vm, vcpuid, VCPU_SLEEPING); msleep_spin(vcpu, &vcpu->mtx, "vmsusp", hz); vcpu_require_state_locked(vm, vcpuid, VCPU_FROZEN); + if ((td->td_flags & TDF_NEEDSUSPCHK) != 0) { + vcpu_unlock(vcpu); + error = thread_check_susp(td, false); + vcpu_lock(vcpu); + } } else { VCPU_CTR0(vm, vcpuid, "Rendezvous during suspend"); vcpu_unlock(vcpu); - vm_handle_rendezvous(vm, vcpuid); + error = vm_handle_rendezvous(vm, vcpuid); vcpu_lock(vcpu); } } @@ -1534,7 +1563,7 @@ vm_handle_suspend(struct vm *vm, int vcpuid, bool *ret } *retu = true; - return (0); + return (error); } static int @@ -1708,8 +1737,7 @@ restart: vme->u.ioapic_eoi.vector); break; case VM_EXITCODE_RENDEZVOUS: - vm_handle_rendezvous(vm, vcpuid); - error = 0; + error = vm_handle_rendezvous(vm, vcpuid); break; case VM_EXITCODE_HLT: intr_disabled = ((vme->u.hlt.rflags & PSL_I) == 0); @@ -2487,11 +2515,11 @@ vm_apicid2vcpuid(struct vm *vm, int apicid) return (apicid); } -void +int vm_smp_rendezvous(struct vm *vm, int vcpuid, cpuset_t dest, vm_rendezvous_func_t func, void *arg) { - int i; + int error, i; /* * Enforce that this function is called without any locks @@ -2510,7 +2538,9 @@ restart: */ RENDEZVOUS_CTR0(vm, vcpuid, "Rendezvous already in progress"); mtx_unlock(&vm->rendezvous_mtx); - vm_handle_rendezvous(vm, vcpuid); + error = vm_handle_rendezvous(vm, vcpuid); + if (error != 0) + return (error); goto restart; } KASSERT(vm->rendezvous_func == NULL, ("vm_smp_rendezvous: previous " @@ -2532,7 +2562,7 @@ restart: vcpu_notify_event(vm, i, false); } - vm_handle_rendezvous(vm, vcpuid); + return (vm_handle_rendezvous(vm, vcpuid)); } struct vatpic * Modified: stable/12/sys/amd64/vmm/vmm_dev.c ============================================================================== --- stable/12/sys/amd64/vmm/vmm_dev.c Thu Jan 9 08:24:09 2020 (r356542) +++ stable/12/sys/amd64/vmm/vmm_dev.c Thu Jan 9 08:29:31 2020 (r356543) @@ -790,8 +790,12 @@ vmmdev_ioctl(struct cdev *cdev, u_long cmd, caddr_t da vcpu_unlock_all(sc); done: - /* Make sure that no handler returns a bogus value like ERESTART */ - KASSERT(error >= 0, ("vmmdev_ioctl: invalid error return %d", error)); + /* + * Make sure that no handler returns a kernel-internal + * error value to userspace. + */ + KASSERT(error == ERESTART || error >= 0, + ("vmmdev_ioctl: invalid error return %d", error)); return (error); } From owner-svn-src-stable@freebsd.org Thu Jan 9 09:14:54 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C722622E99B; Thu, 9 Jan 2020 09:14:54 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tgRy4M9Cz3LSq; Thu, 9 Jan 2020 09:14: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 90B8E26828; Thu, 9 Jan 2020 09:14: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 0099Es8c043757; Thu, 9 Jan 2020 09:14:54 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0099EsSn043756; Thu, 9 Jan 2020 09:14:54 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090914.0099EsSn043756@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 09:14:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356544 - stable/12/libexec/rtld-elf X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/libexec/rtld-elf X-SVN-Commit-Revision: 356544 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 09:14:54 -0000 Author: kib Date: Thu Jan 9 09:14:54 2020 New Revision: 356544 URL: https://svnweb.freebsd.org/changeset/base/356544 Log: MFC r356300, r356503: Fix AT_EXECPATH for direct exec mode. Modified: stable/12/libexec/rtld-elf/rtld.c Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/rtld-elf/rtld.c ============================================================================== --- stable/12/libexec/rtld-elf/rtld.c Thu Jan 9 08:29:31 2020 (r356543) +++ stable/12/libexec/rtld-elf/rtld.c Thu Jan 9 09:14:54 2020 (r356544) @@ -134,7 +134,8 @@ static void objlist_push_head(Objlist *, Obj_Entry *); static void objlist_push_tail(Objlist *, Obj_Entry *); static void objlist_put_after(Objlist *, Obj_Entry *, Obj_Entry *); static void objlist_remove(Objlist *, Obj_Entry *); -static int open_binary_fd(const char *argv0, bool search_in_path); +static int open_binary_fd(const char *argv0, bool search_in_path, + const char **binpath_res); static int parse_args(char* argv[], int argc, bool *use_pathp, int *fdp); static int parse_integer(const char *); static void *path_enumerate(const char *, path_enum_proc, const char *, void *); @@ -379,7 +380,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr struct stat st; Elf_Addr *argcp; char **argv, **env, **envp, *kexecpath, *library_path_rpath; - const char *argv0; + const char *argv0, *binpath; caddr_t imgentry; char buf[MAXPATHLEN]; int argc, fd, i, phnum, rtld_argc; @@ -441,8 +442,9 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr rtld_argc = parse_args(argv, argc, &search_in_path, &fd); argv0 = argv[rtld_argc]; explicit_fd = (fd != -1); + binpath = NULL; if (!explicit_fd) - fd = open_binary_fd(argv0, search_in_path); + fd = open_binary_fd(argv0, search_in_path, &binpath); if (fstat(fd, &st) == -1) { _rtld_error("Failed to fstat FD %d (%s): %s", fd, explicit_fd ? "user-provided descriptor" : argv0, @@ -495,11 +497,24 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr } while (*envp != NULL); aux = auxp = (Elf_Auxinfo *)envp; auxpf = (Elf_Auxinfo *)(envp + rtld_argc); + /* XXXKIB insert place for AT_EXECPATH if not present */ for (;; auxp++, auxpf++) { *auxp = *auxpf; if (auxp->a_type == AT_NULL) break; } + + /* Point AT_EXECPATH auxv and aux_info to the binary path. */ + if (binpath == NULL) { + aux_info[AT_EXECPATH] = NULL; + } else { + if (aux_info[AT_EXECPATH] == NULL) { + aux_info[AT_EXECPATH] = xmalloc(sizeof(Elf_Auxinfo)); + aux_info[AT_EXECPATH]->a_type = AT_EXECPATH; + } + aux_info[AT_EXECPATH]->a_un.a_ptr = __DECONST(void *, + binpath); + } } else { _rtld_error("No binary"); rtld_die(); @@ -5453,12 +5468,14 @@ symlook_init_from_req(SymLook *dst, const SymLook *src } static int -open_binary_fd(const char *argv0, bool search_in_path) +open_binary_fd(const char *argv0, bool search_in_path, + const char **binpath_res) { - char *pathenv, *pe, binpath[PATH_MAX]; + char *pathenv, *pe, *binpath; int fd; if (search_in_path && strchr(argv0, '/') == NULL) { + binpath = xmalloc(PATH_MAX); pathenv = getenv("PATH"); if (pathenv == NULL) { _rtld_error("-p and no PATH environment variable"); @@ -5472,24 +5489,25 @@ open_binary_fd(const char *argv0, bool search_in_path) fd = -1; errno = ENOENT; while ((pe = strsep(&pathenv, ":")) != NULL) { - if (strlcpy(binpath, pe, sizeof(binpath)) >= - sizeof(binpath)) + if (strlcpy(binpath, pe, PATH_MAX) >= PATH_MAX) continue; if (binpath[0] != '\0' && - strlcat(binpath, "/", sizeof(binpath)) >= - sizeof(binpath)) + strlcat(binpath, "/", PATH_MAX) >= PATH_MAX) continue; - if (strlcat(binpath, argv0, sizeof(binpath)) >= - sizeof(binpath)) + if (strlcat(binpath, argv0, PATH_MAX) >= PATH_MAX) continue; fd = open(binpath, O_RDONLY | O_CLOEXEC | O_VERIFY); - if (fd != -1 || errno != ENOENT) + if (fd != -1 || errno != ENOENT) { + *binpath_res = binpath; break; + } } free(pathenv); } else { fd = open(argv0, O_RDONLY | O_CLOEXEC | O_VERIFY); + *binpath_res = argv0; } + /* XXXKIB Use getcwd() to resolve relative binpath to absolute. */ if (fd == -1) { _rtld_error("Cannot open %s: %s", argv0, rtld_strerror(errno)); From owner-svn-src-stable@freebsd.org Thu Jan 9 09:30:14 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C77B522EFCD; Thu, 9 Jan 2020 09:30:14 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tgnf4zD4z3MKH; Thu, 9 Jan 2020 09:30:14 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A435526A18; Thu, 9 Jan 2020 09:30:14 +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 0099UEal050401; Thu, 9 Jan 2020 09:30:14 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0099UEug050400; Thu, 9 Jan 2020 09:30:14 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090930.0099UEug050400@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 09:30:14 +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: r356546 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 356546 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 09:30:14 -0000 Author: kib Date: Thu Jan 9 09:30:14 2020 New Revision: 356546 URL: https://svnweb.freebsd.org/changeset/base/356546 Log: MFC r356292: Style: remove trailing spaces/tabs. Modified: stable/11/sys/kern/kern_umtx.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/kern/kern_umtx.c ============================================================================== --- stable/11/sys/kern/kern_umtx.c Thu Jan 9 09:29:24 2020 (r356545) +++ stable/11/sys/kern/kern_umtx.c Thu Jan 9 09:30:14 2020 (r356546) @@ -94,7 +94,7 @@ struct umtx_pi { /* Reference count */ int pi_refcount; - /* List entry to link umtx holding by thread */ + /* List entry to link umtx holding by thread */ TAILQ_ENTRY(umtx_pi) pi_link; /* List entry in hash */ @@ -137,7 +137,7 @@ struct umtx_q { /* Inherited priority from PP mutex */ u_char uq_inherited_pri; - + /* Spare queue ready to be reused */ struct umtxq_queue *uq_spare_queue; @@ -179,7 +179,7 @@ struct umtxq_chain { TAILQ_HEAD(,umtx_pi) uc_pi_list; #ifdef UMTX_PROFILING - u_int length; + u_int length; u_int max_length; #endif }; @@ -289,7 +289,7 @@ static struct mtx umtx_lock; #ifdef UMTX_PROFILING static void -umtx_init_profiling(void) +umtx_init_profiling(void) { struct sysctl_oid *chain_oid; char chain_name[10]; @@ -297,8 +297,8 @@ umtx_init_profiling(void) for (i = 0; i < UMTX_CHAINS; ++i) { snprintf(chain_name, sizeof(chain_name), "%d", i); - chain_oid = SYSCTL_ADD_NODE(NULL, - SYSCTL_STATIC_CHILDREN(_debug_umtx_chains), OID_AUTO, + chain_oid = SYSCTL_ADD_NODE(NULL, + SYSCTL_STATIC_CHILDREN(_debug_umtx_chains), OID_AUTO, chain_name, CTLFLAG_RD, NULL, "umtx hash stats"); SYSCTL_ADD_INT(NULL, SYSCTL_CHILDREN(chain_oid), OID_AUTO, "max_length0", CTLFLAG_RD, &umtxq_chains[0][i].max_length, 0, NULL); @@ -403,7 +403,7 @@ sysctl_debug_umtx_chains_clear(SYSCTL_HANDLER_ARGS) uc = &umtxq_chains[i][j]; mtx_lock(&uc->uc_lock); uc->length = 0; - uc->max_length = 0; + uc->max_length = 0; mtx_unlock(&uc->uc_lock); } } @@ -438,7 +438,7 @@ umtxq_sysinit(void *arg __unused) umtxq_chains[i][j].uc_waiters = 0; #ifdef UMTX_PROFILING umtxq_chains[i][j].length = 0; - umtxq_chains[i][j].max_length = 0; + umtxq_chains[i][j].max_length = 0; #endif } } @@ -610,7 +610,7 @@ umtxq_insert_queue(struct umtx_q *uq, int q) if (uc->length > uc->max_length) { uc->max_length = uc->length; if (uc->max_length > max_length) - max_length = uc->max_length; + max_length = uc->max_length; } #endif } @@ -759,7 +759,7 @@ umtxq_signal_thread(struct umtx_q *uq) wakeup(uq); } -static inline int +static inline int tstohz(const struct timespec *tsp) { struct timeval tv; @@ -815,7 +815,7 @@ abs_timeout_gethz(struct abs_timeout *timo) struct timespec tts; if (timespeccmp(&timo->end, &timo->cur, <=)) - return (-1); + return (-1); tts = timo->end; timespecsub(&tts, &timo->cur); return (tstohz(&tts)); @@ -1000,7 +1000,7 @@ kern_umtx_wake(struct thread *td, void *uaddr, int n_w { struct umtx_key key; int ret; - + if ((ret = umtx_key_get(uaddr, TYPE_SIMPLE_WAIT, is_private ? THREAD_SHARE : AUTO_SHARE, &key)) != 0) return (ret); @@ -1483,7 +1483,7 @@ umtx_pi_check_loop(struct umtx_pi *pi) /* * Propagate priority when a thread is blocked on POSIX * PI mutex. - */ + */ static void umtx_propagate_priority(struct thread *td) { @@ -1734,7 +1734,7 @@ umtx_pi_ref(struct umtx_pi *pi) /* * Decrease reference count for a PI mutex, if the counter * is decreased to zero, its memory space is freed. - */ + */ static void umtx_pi_unref(struct umtx_pi *pi) { @@ -1919,7 +1919,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32 */ if (error != 0) break; - + umtxq_lock(&uq->uq_key); umtxq_busy(&uq->uq_key); umtxq_unlock(&uq->uq_key); @@ -2033,7 +2033,7 @@ do_unlock_pi(struct thread *td, struct umutex *m, uint umtx_pi_disown(pi); /* get highest priority thread which is still sleeping. */ uq_first = TAILQ_FIRST(&pi->pi_blocked); - while (uq_first != NULL && + while (uq_first != NULL && (uq_first->uq_flags & UQF_UMTXQ) == 0) { uq_first = TAILQ_NEXT(uq_first, uq_lockq); } @@ -2534,7 +2534,7 @@ do_cv_wait(struct thread *td, struct ucond *cv, struct if (timeout != NULL) abs_timeout_init(&timo, clockid, (wflags & CVWAIT_ABSTIME) != 0, timeout); - + umtxq_lock(&uq->uq_key); if (error == 0) { error = umtxq_sleep(uq, "ucond", timeout == NULL ? @@ -2583,7 +2583,7 @@ do_cv_signal(struct thread *td, struct ucond *cv) if (error == -1) return (EFAULT); if ((error = umtx_key_get(cv, TYPE_CV, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -2612,7 +2612,7 @@ do_cv_broadcast(struct thread *td, struct ucond *cv) if (error == -1) return (EFAULT); if ((error = umtx_key_get(cv, TYPE_CV, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); @@ -3022,7 +3022,7 @@ do_rw_unlock(struct thread *td, struct urwlock *rwlock } if (state & URWLOCK_WRITE_OWNER) { for (;;) { - rv = casueword32(&rwlock->rw_state, state, + rv = casueword32(&rwlock->rw_state, state, &oldstate, state & ~URWLOCK_WRITE_OWNER); if (rv == -1) { error = EFAULT; @@ -3165,7 +3165,7 @@ do_sem_wake(struct thread *td, struct _usem *sem) if (error == -1) return (EFAULT); if ((error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -3283,7 +3283,7 @@ do_sem2_wake(struct thread *td, struct _usem2 *sem) if (rv == -1) return (EFAULT); if ((error = umtx_key_get(sem, TYPE_SEM, GET_SHARE(flags), &key)) != 0) - return (error); + return (error); umtxq_lock(&key); umtxq_busy(&key); cnt = umtxq_count(&key); @@ -3330,12 +3330,12 @@ static inline int umtx_copyin_umtx_time(const void *addr, size_t size, struct _umtx_time *tp) { int error; - + if (size <= sizeof(struct timespec)) { tp->_clockid = CLOCK_REALTIME; tp->_flags = 0; error = copyin(addr, &tp->_timeout, sizeof(struct timespec)); - } else + } else error = copyin(addr, tp, sizeof(struct _umtx_time)); if (error != 0) return (error); @@ -3569,7 +3569,7 @@ __umtx_op_rw_wrlock(struct thread *td, struct _umtx_op if (uap->uaddr2 == NULL) { error = do_rw_wrlock(td, uap->obj, 0); } else { - error = umtx_copyin_umtx_time(uap->uaddr2, + error = umtx_copyin_umtx_time(uap->uaddr2, (size_t)uap->uaddr1, &timeout); if (error != 0) return (error); @@ -4074,12 +4074,12 @@ umtx_copyin_umtx_time32(const void *addr, size_t size, { struct umtx_time32 t32; int error; - + t32.clockid = CLOCK_REALTIME; t32.flags = 0; if (size <= sizeof(struct timespec32)) error = copyin(addr, &t32.timeout, sizeof(struct timespec32)); - else + else error = copyin(addr, &t32, sizeof(struct umtx_time32)); if (error != 0) return (error); @@ -4140,7 +4140,7 @@ __umtx_op_wait_umutex_compat32(struct thread *td, stru if (uap->uaddr2 == NULL) tm_p = NULL; else { - error = umtx_copyin_umtx_time32(uap->uaddr2, + error = umtx_copyin_umtx_time32(uap->uaddr2, (size_t)uap->uaddr1, &timeout); if (error != 0) return (error); From owner-svn-src-stable@freebsd.org Thu Jan 9 09:47:24 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8905E22F5D7; Thu, 9 Jan 2020 09:47:24 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47th9S2d7vz3NCM; Thu, 9 Jan 2020 09:47: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 555FF26DBF; Thu, 9 Jan 2020 09:47: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 0099lOH1062337; Thu, 9 Jan 2020 09:47:24 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 0099lOPa062336; Thu, 9 Jan 2020 09:47:24 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001090947.0099lOPa062336@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 9 Jan 2020 09:47:24 +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: r356547 - stable/11/libexec/rtld-elf X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/libexec/rtld-elf X-SVN-Commit-Revision: 356547 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 09:47:24 -0000 Author: kib Date: Thu Jan 9 09:47:23 2020 New Revision: 356547 URL: https://svnweb.freebsd.org/changeset/base/356547 Log: MFC r356300, r356503: Fix AT_EXECPATH for direct exec mode. 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 Thu Jan 9 09:30:14 2020 (r356546) +++ stable/11/libexec/rtld-elf/rtld.c Thu Jan 9 09:47:23 2020 (r356547) @@ -123,7 +123,8 @@ static void objlist_push_head(Objlist *, Obj_Entry *); static void objlist_push_tail(Objlist *, Obj_Entry *); static void objlist_put_after(Objlist *, Obj_Entry *, Obj_Entry *); static void objlist_remove(Objlist *, Obj_Entry *); -static int open_binary_fd(const char *argv0, bool search_in_path); +static int open_binary_fd(const char *argv0, bool search_in_path, + const char **binpath_res); static int parse_args(char* argv[], int argc, bool *use_pathp, int *fdp); static int parse_integer(const char *); static void *path_enumerate(const char *, path_enum_proc, const char *, void *); @@ -362,6 +363,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr struct stat st; Elf_Addr *argcp; char **argv, *argv0, **env, **envp, *kexecpath, *library_path_rpath; + const char *binpath; caddr_t imgentry; char buf[MAXPATHLEN]; int argc, fd, i, mib[2], phnum, rtld_argc; @@ -445,8 +447,9 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr rtld_argc = parse_args(argv, argc, &search_in_path, &fd); argv0 = argv[rtld_argc]; explicit_fd = (fd != -1); + binpath = NULL; if (!explicit_fd) - fd = open_binary_fd(argv0, search_in_path); + fd = open_binary_fd(argv0, search_in_path, &binpath); if (fstat(fd, &st) == -1) { _rtld_error("failed to fstat FD %d (%s): %s", fd, explicit_fd ? "user-provided descriptor" : argv0, @@ -499,11 +502,24 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr } while (*envp != NULL); aux = auxp = (Elf_Auxinfo *)envp; auxpf = (Elf_Auxinfo *)(envp + rtld_argc); + /* XXXKIB insert place for AT_EXECPATH if not present */ for (;; auxp++, auxpf++) { *auxp = *auxpf; if (auxp->a_type == AT_NULL) break; } + + /* Point AT_EXECPATH auxv and aux_info to the binary path. */ + if (binpath == NULL) { + aux_info[AT_EXECPATH] = NULL; + } else { + if (aux_info[AT_EXECPATH] == NULL) { + aux_info[AT_EXECPATH] = xmalloc(sizeof(Elf_Auxinfo)); + aux_info[AT_EXECPATH]->a_type = AT_EXECPATH; + } + aux_info[AT_EXECPATH]->a_un.a_ptr = __DECONST(void *, + binpath); + } } else { rtld_printf("no binary\n"); rtld_die(); @@ -5392,12 +5408,14 @@ symlook_init_from_req(SymLook *dst, const SymLook *src } static int -open_binary_fd(const char *argv0, bool search_in_path) +open_binary_fd(const char *argv0, bool search_in_path, + const char **binpath_res) { - char *pathenv, *pe, binpath[PATH_MAX]; + char *pathenv, *pe, *binpath; int fd; if (search_in_path && strchr(argv0, '/') == NULL) { + binpath = xmalloc(PATH_MAX); pathenv = getenv("PATH"); if (pathenv == NULL) { rtld_printf("-p and no PATH environment variable\n"); @@ -5411,24 +5429,25 @@ open_binary_fd(const char *argv0, bool search_in_path) fd = -1; errno = ENOENT; while ((pe = strsep(&pathenv, ":")) != NULL) { - if (strlcpy(binpath, pe, sizeof(binpath)) >= - sizeof(binpath)) + if (strlcpy(binpath, pe, PATH_MAX) >= PATH_MAX) continue; if (binpath[0] != '\0' && - strlcat(binpath, "/", sizeof(binpath)) >= - sizeof(binpath)) + strlcat(binpath, "/", PATH_MAX) >= PATH_MAX) continue; - if (strlcat(binpath, argv0, sizeof(binpath)) >= - sizeof(binpath)) + if (strlcat(binpath, argv0, PATH_MAX) >= PATH_MAX) continue; fd = open(binpath, O_RDONLY | O_CLOEXEC | O_VERIFY); - if (fd != -1 || errno != ENOENT) + if (fd != -1 || errno != ENOENT) { + *binpath_res = binpath; break; + } } free(pathenv); } else { fd = open(argv0, O_RDONLY | O_CLOEXEC | O_VERIFY); + *binpath_res = argv0; } + /* XXXKIB Use getcwd() to resolve relative binpath to absolute. */ if (fd == -1) { rtld_printf("Opening %s: %s\n", argv0, From owner-svn-src-stable@freebsd.org Thu Jan 9 16:48:00 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 740EF1F3323; Thu, 9 Jan 2020 16:48:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tsVm29rPz4N9c; Thu, 9 Jan 2020 16:48:00 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 45E994011; Thu, 9 Jan 2020 16:48:00 +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 009Gm054015915; Thu, 9 Jan 2020 16:48:00 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009Glxnj015907; Thu, 9 Jan 2020 16:47:59 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001091647.009Glxnj015907@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 9 Jan 2020 16:47:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356558 - in stable/12: sbin/ifconfig share/man/man4 sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in stable/12: sbin/ifconfig share/man/man4 sys/net X-SVN-Commit-Revision: 356558 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 16:48:00 -0000 Author: markj Date: Thu Jan 9 16:47:59 2020 New Revision: 356558 URL: https://svnweb.freebsd.org/changeset/base/356558 Log: MFC r356029: lagg: Clean up handling of the rr_limit option. Modified: stable/12/sbin/ifconfig/ifconfig.8 stable/12/share/man/man4/lagg.4 stable/12/sys/net/if_lagg.c stable/12/sys/net/if_lagg.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/ifconfig/ifconfig.8 ============================================================================== --- stable/12/sbin/ifconfig/ifconfig.8 Thu Jan 9 16:34:54 2020 (r356557) +++ stable/12/sbin/ifconfig/ifconfig.8 Thu Jan 9 16:47:59 2020 (r356558) @@ -28,7 +28,7 @@ .\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94 .\" $FreeBSD$ .\" -.Dd May 3, 2019 +.Dd December 17, 2019 .Dt IFCONFIG 8 .Os .Sh NAME @@ -2516,6 +2516,9 @@ means .Dq enabled . .It Cm -lacp_strict Disable lacp strict compliance on the interface. +.It Cm rr_limit Ar number +Configure a stride for an interface in round-robin mode. +The default stride is 1. .El .Pp The following parameters apply to IP tunnel interfaces, Modified: stable/12/share/man/man4/lagg.4 ============================================================================== --- stable/12/share/man/man4/lagg.4 Thu Jan 9 16:34:54 2020 (r356557) +++ stable/12/share/man/man4/lagg.4 Thu Jan 9 16:47:59 2020 (r356558) @@ -166,7 +166,7 @@ Gigabit Ethernet interfaces: .Pp Create a link aggregation using ROUNDROBIN with two .Xr bge 4 -Gigabit Ethernet interfaces and set the limit of 500 packets +Gigabit Ethernet interfaces and set a stride of 500 packets per interface: .Bd -literal -offset indent # ifconfig bge0 up Modified: stable/12/sys/net/if_lagg.c ============================================================================== --- stable/12/sys/net/if_lagg.c Thu Jan 9 16:34:54 2020 (r356557) +++ stable/12/sys/net/if_lagg.c Thu Jan 9 16:47:59 2020 (r356558) @@ -1219,23 +1219,38 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data CK_SLIST_FOREACH(lp, &sc->sc_ports, lp_entries) ro->ro_active += LAGG_PORTACTIVE(lp); } - ro->ro_bkt = sc->sc_bkt; + ro->ro_bkt = sc->sc_stride; ro->ro_flapping = sc->sc_flapping; ro->ro_flowid_shift = sc->flowid_shift; LAGG_XUNLOCK(sc); break; case SIOCSLAGGOPTS: - if (sc->sc_proto == LAGG_PROTO_ROUNDROBIN) { - if (ro->ro_bkt == 0) - sc->sc_bkt = 1; // Minimum 1 packet per iface. - else - sc->sc_bkt = ro->ro_bkt; - } error = priv_check(td, PRIV_NET_LAGG); if (error) break; - if (ro->ro_opts == 0) + + /* + * The stride option was added without defining a corresponding + * LAGG_OPT flag, so we must handle it before processing any + * remaining options. + */ + LAGG_XLOCK(sc); + if (ro->ro_bkt != 0) { + if (sc->sc_proto != LAGG_PROTO_ROUNDROBIN) { + LAGG_XUNLOCK(sc); + error = EINVAL; + break; + } + sc->sc_stride = ro->ro_bkt; + } else { + sc->sc_stride = 0; + } + + if (ro->ro_opts == 0) { + LAGG_XUNLOCK(sc); break; + } + /* * Set options. LACP options are stored in sc->sc_psc, * not in sc_opts. @@ -1264,8 +1279,6 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data break; } - LAGG_XLOCK(sc); - if (valid == 0 || (lacp == 1 && sc->sc_proto != LAGG_PROTO_LACP)) { /* Invalid combination of options specified. */ @@ -1902,7 +1915,6 @@ static void lagg_rr_attach(struct lagg_softc *sc) { sc->sc_seq = 0; - sc->sc_bkt_count = sc->sc_bkt; } static int @@ -1911,17 +1923,9 @@ lagg_rr_start(struct lagg_softc *sc, struct mbuf *m) struct lagg_port *lp; uint32_t p; - if (sc->sc_bkt_count == 0 && sc->sc_bkt > 0) - sc->sc_bkt_count = sc->sc_bkt; - - if (sc->sc_bkt > 0) { - atomic_subtract_int(&sc->sc_bkt_count, 1); - if (atomic_cmpset_int(&sc->sc_bkt_count, 0, sc->sc_bkt)) - p = atomic_fetchadd_32(&sc->sc_seq, 1); - else - p = sc->sc_seq; - } else - p = atomic_fetchadd_32(&sc->sc_seq, 1); + p = atomic_fetchadd_32(&sc->sc_seq, 1); + if (sc->sc_stride > 0) + p /= sc->sc_stride; p %= sc->sc_count; lp = CK_SLIST_FIRST(&sc->sc_ports); Modified: stable/12/sys/net/if_lagg.h ============================================================================== --- stable/12/sys/net/if_lagg.h Thu Jan 9 16:34:54 2020 (r356557) +++ stable/12/sys/net/if_lagg.h Thu Jan 9 16:47:59 2020 (r356558) @@ -152,7 +152,7 @@ struct lagg_reqopts { u_int ro_active; /* active port count */ u_int ro_flapping; /* number of flapping */ int ro_flowid_shift; /* shift the flowid */ - uint32_t ro_bkt; /* packet bucket for roundrobin */ + uint32_t ro_bkt; /* stride for RR */ }; #define SIOCGLAGGOPTS _IOWR('i', 152, struct lagg_reqopts) @@ -214,6 +214,7 @@ struct lagg_softc { struct ifmedia sc_media; /* media config */ void *sc_psc; /* protocol data */ uint32_t sc_seq; /* sequence counter */ + uint32_t sc_stride; /* stride for RR */ uint32_t sc_flags; int sc_destroying; /* destroying lagg */ @@ -225,8 +226,6 @@ struct lagg_softc { struct callout sc_callout; u_int sc_opts; int flowid_shift; /* shift the flowid */ - uint32_t sc_bkt; /* packates bucket for roundrobin */ - uint32_t sc_bkt_count; /* packates bucket count for roundrobin */ struct lagg_counters detached_counters; /* detached ports sum */ }; From owner-svn-src-stable@freebsd.org Thu Jan 9 19:56:25 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EB9C41F77C2; Thu, 9 Jan 2020 19:56:25 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47txh9624kz4cWF; Thu, 9 Jan 2020 19:56:25 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C591864C7; Thu, 9 Jan 2020 19:56:25 +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 009JuPe3037318; Thu, 9 Jan 2020 19:56:25 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009JuPEO037317; Thu, 9 Jan 2020 19:56:25 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202001091956.009JuPEO037317@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 9 Jan 2020 19:56:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356565 - stable/12/contrib/smbfs/lib/smb X-SVN-Group: stable-12 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: stable/12/contrib/smbfs/lib/smb X-SVN-Commit-Revision: 356565 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 19:56:26 -0000 Author: bapt Date: Thu Jan 9 19:56:25 2020 New Revision: 356565 URL: https://svnweb.freebsd.org/changeset/base/356565 Log: MFC r356317 (by arrowd): mount_smbfs: Issue a warning when .nsmbrc section name contains lowercase characters. PR: 231656 Approved by: bapt Differential Revision: https://reviews.freebsd.org/D22289 Modified: stable/12/contrib/smbfs/lib/smb/rcfile.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/smbfs/lib/smb/rcfile.c ============================================================================== --- stable/12/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:22:11 2020 (r356564) +++ stable/12/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:56:25 2020 (r356565) @@ -156,11 +156,19 @@ static struct rcsection * rc_addsect(struct rcfile *rcp, const char *sectname) { struct rcsection *p; + const char* sectletter = sectname; p = rc_findsect(rcp, sectname); if (p) return p; p = malloc(sizeof(*p)); if (!p) return NULL; + for(sectletter = sectname; *sectletter; sectletter++) { + if (islower(*sectletter)) { + if (strcmp(sectname, "default")) + dprintf(STDERR_FILENO, "warning: section name [%s] contains lower-case letters\n", sectname); + break; + } + } p->rs_name = strdup(sectname); SLIST_INIT(&p->rs_keys); SLIST_INSERT_HEAD(&rcp->rf_sect, p, rs_next); From owner-svn-src-stable@freebsd.org Thu Jan 9 19:58:05 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ABEF41F78BD; Thu, 9 Jan 2020 19:58:05 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47txk542Wfz4ch0; Thu, 9 Jan 2020 19:58: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 85C8964CD; Thu, 9 Jan 2020 19:58: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 009Jw5Kt037445; Thu, 9 Jan 2020 19:58:05 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009Jw56r037444; Thu, 9 Jan 2020 19:58:05 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202001091958.009Jw56r037444@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Thu, 9 Jan 2020 19:58: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: r356566 - stable/11/contrib/smbfs/lib/smb X-SVN-Group: stable-11 X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: stable/11/contrib/smbfs/lib/smb X-SVN-Commit-Revision: 356566 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 19:58:05 -0000 Author: bapt Date: Thu Jan 9 19:58:05 2020 New Revision: 356566 URL: https://svnweb.freebsd.org/changeset/base/356566 Log: MFC r356317 (by arrowd): mount_smbfs: Issue a warning when .nsmbrc section name contains lowercase characters. PR: 231656 Approved by: bapt Differential Revision: https://reviews.freebsd.org/D22289 Modified: stable/11/contrib/smbfs/lib/smb/rcfile.c Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/smbfs/lib/smb/rcfile.c ============================================================================== --- stable/11/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:56:25 2020 (r356565) +++ stable/11/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:58:05 2020 (r356566) @@ -156,11 +156,19 @@ static struct rcsection * rc_addsect(struct rcfile *rcp, const char *sectname) { struct rcsection *p; + const char* sectletter = sectname; p = rc_findsect(rcp, sectname); if (p) return p; p = malloc(sizeof(*p)); if (!p) return NULL; + for(sectletter = sectname; *sectletter; sectletter++) { + if (islower(*sectletter)) { + if (strcmp(sectname, "default")) + dprintf(STDERR_FILENO, "warning: section name [%s] contains lower-case letters\n", sectname); + break; + } + } p->rs_name = strdup(sectname); SLIST_INIT(&p->rs_keys); SLIST_INSERT_HEAD(&rcp->rf_sect, p, rs_next); From owner-svn-src-stable@freebsd.org Thu Jan 9 20:45:02 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4A88C1F884D; Thu, 9 Jan 2020 20:45:02 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tymG0dk5z4g0C; Thu, 9 Jan 2020 20:45:02 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0CE716E56; Thu, 9 Jan 2020 20:45:02 +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 009Kj14R068790; Thu, 9 Jan 2020 20:45:01 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009Kj1RV068789; Thu, 9 Jan 2020 20:45:01 GMT (envelope-from np@FreeBSD.org) Message-Id: <202001092045.009Kj1RV068789@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Thu, 9 Jan 2020 20:45:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356568 - stable/12/sys/dev/cxgbe/iw_cxgbe X-SVN-Group: stable-12 X-SVN-Commit-Author: np X-SVN-Commit-Paths: stable/12/sys/dev/cxgbe/iw_cxgbe X-SVN-Commit-Revision: 356568 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 20:45:02 -0000 Author: np Date: Thu Jan 9 20:45:01 2020 New Revision: 356568 URL: https://svnweb.freebsd.org/changeset/base/356568 Log: MFC r355566: cxgbe/iw_cxgbe: Support 64b length in the memory registration routines. Submitted by: bharat @ chelsio Sponsored by: Chelsio Communications Modified: stable/12/sys/dev/cxgbe/iw_cxgbe/qp.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/cxgbe/iw_cxgbe/qp.c ============================================================================== --- stable/12/sys/dev/cxgbe/iw_cxgbe/qp.c Thu Jan 9 20:07:38 2020 (r356567) +++ stable/12/sys/dev/cxgbe/iw_cxgbe/qp.c Thu Jan 9 20:45:01 2020 (r356568) @@ -689,8 +689,8 @@ static void build_tpte_memreg(struct fw_ri_fr_nsmr_tpt fr->tpte.nosnoop_pbladdr = cpu_to_be32(V_FW_RI_TPTE_PBLADDR( PBL_OFF(&mhp->rhp->rdev, mhp->attr.pbl_addr)>>3)); fr->tpte.dca_mwbcnt_pstag = cpu_to_be32(0); - fr->tpte.len_hi = cpu_to_be32(0); - fr->tpte.len_lo = cpu_to_be32(mhp->ibmr.length); + fr->tpte.len_hi = cpu_to_be32(mhp->ibmr.length >> 32); + fr->tpte.len_lo = cpu_to_be32(mhp->ibmr.length & 0xffffffff); fr->tpte.va_hi = cpu_to_be32(mhp->ibmr.iova >> 32); fr->tpte.va_lo_fbo = cpu_to_be32(mhp->ibmr.iova & 0xffffffff); @@ -717,12 +717,11 @@ static int build_memreg(struct t4_sq *sq, union t4_wr wqe->fr.pgsz_shift = ilog2(wr->mr->page_size) - 12; wqe->fr.addr_type = FW_RI_VA_BASED_TO; wqe->fr.mem_perms = c4iw_ib_to_tpt_access(wr->access); - wqe->fr.len_hi = 0; - wqe->fr.len_lo = cpu_to_be32(mhp->ibmr.length); + wqe->fr.len_hi = cpu_to_be32(mhp->ibmr.length >> 32); + wqe->fr.len_lo = cpu_to_be32(mhp->ibmr.length & 0xffffffff); wqe->fr.stag = cpu_to_be32(wr->key); wqe->fr.va_hi = cpu_to_be32(mhp->ibmr.iova >> 32); - wqe->fr.va_lo_fbo = cpu_to_be32(mhp->ibmr.iova & - 0xffffffff); + wqe->fr.va_lo_fbo = cpu_to_be32(mhp->ibmr.iova & 0xffffffff); if (dsgl_supported && use_dsgl && (pbllen > max_fr_immd)) { struct fw_ri_dsgl *sglp; From owner-svn-src-stable@freebsd.org Thu Jan 9 21:37:51 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 762EF1FA357; Thu, 9 Jan 2020 21:37:51 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47tzxC2bjlz3GVF; Thu, 9 Jan 2020 21:37:51 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4E8FD7855; Thu, 9 Jan 2020 21:37:51 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009LbpcK098851; Thu, 9 Jan 2020 21:37:51 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009LbptK098850; Thu, 9 Jan 2020 21:37:51 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202001092137.009LbptK098850@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 9 Jan 2020 21:37:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356571 - stable/12/stand/i386/libi386 X-SVN-Group: stable-12 X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: stable/12/stand/i386/libi386 X-SVN-Commit-Revision: 356571 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 21:37:51 -0000 Author: tsoome Date: Thu Jan 9 21:37:50 2020 New Revision: 356571 URL: https://svnweb.freebsd.org/changeset/base/356571 Log: MFC r356570: loader: bioscd probe can get sector size 0 With buggy BIOS, it may happen we get sector size reported 0 for cd, and then the default 512 is used, which is quite wrong. PR: 238749 Modified: stable/12/stand/i386/libi386/biosdisk.c Directory Properties: stable/12/ (props changed) Modified: stable/12/stand/i386/libi386/biosdisk.c ============================================================================== --- stable/12/stand/i386/libi386/biosdisk.c Thu Jan 9 21:21:08 2020 (r356570) +++ stable/12/stand/i386/libi386/biosdisk.c Thu Jan 9 21:37:50 2020 (r356571) @@ -380,7 +380,8 @@ bc_add(int biosdev) return (-1); bd->bd_flags = BD_CDROM; - bd->bd_unit = biosdev; + bd->bd_unit = biosdev; + bd->bd_sectorsize = 2048; /* * Ignore result from bd_int13probe(), we will use local @@ -548,7 +549,8 @@ bd_int13probe(bdinfo_t *bd) bd->bd_flags |= BD_MODEEDD3; /* Default sector size */ - bd->bd_sectorsize = BIOSDISK_SECSIZE; + if (bd->bd_sectorsize == 0) + bd->bd_sectorsize = BIOSDISK_SECSIZE; /* * Test if the floppy device is present, so we can avoid receiving From owner-svn-src-stable@freebsd.org Thu Jan 9 21:40:59 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E70601FA5EE; Thu, 9 Jan 2020 21:40:59 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v00q5wBMz3GlV; Thu, 9 Jan 2020 21:40:59 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C33A378C9; Thu, 9 Jan 2020 21:40:59 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 009LexXI099092; Thu, 9 Jan 2020 21:40:59 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009Lexqh099091; Thu, 9 Jan 2020 21:40:59 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202001092140.009Lexqh099091@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Thu, 9 Jan 2020 21:40: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: r356572 - stable/11/stand/i386/libi386 X-SVN-Group: stable-11 X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: stable/11/stand/i386/libi386 X-SVN-Commit-Revision: 356572 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 21:41:00 -0000 Author: tsoome Date: Thu Jan 9 21:40:59 2020 New Revision: 356572 URL: https://svnweb.freebsd.org/changeset/base/356572 Log: MFC r356570: loader: bioscd probe can get sector size 0 With buggy BIOS, it may happen we get sector size reported 0 for cd, and then the default 512 is used, which is quite wrong. PR: 238749 Modified: stable/11/stand/i386/libi386/biosdisk.c Directory Properties: stable/11/ (props changed) Modified: stable/11/stand/i386/libi386/biosdisk.c ============================================================================== --- stable/11/stand/i386/libi386/biosdisk.c Thu Jan 9 21:37:50 2020 (r356571) +++ stable/11/stand/i386/libi386/biosdisk.c Thu Jan 9 21:40:59 2020 (r356572) @@ -380,7 +380,8 @@ bc_add(int biosdev) return (-1); bd->bd_flags = BD_CDROM; - bd->bd_unit = biosdev; + bd->bd_unit = biosdev; + bd->bd_sectorsize = 2048; /* * Ignore result from bd_int13probe(), we will use local @@ -548,7 +549,8 @@ bd_int13probe(bdinfo_t *bd) bd->bd_flags |= BD_MODEEDD3; /* Default sector size */ - bd->bd_sectorsize = BIOSDISK_SECSIZE; + if (bd->bd_sectorsize == 0) + bd->bd_sectorsize = BIOSDISK_SECSIZE; /* * Test if the floppy device is present, so we can avoid receiving From owner-svn-src-stable@freebsd.org Thu Jan 9 21:50:16 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 092191FAA4E; Thu, 9 Jan 2020 21:50:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v0CW6MzQz3HNx; Thu, 9 Jan 2020 21:50:15 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D13227AA4; Thu, 9 Jan 2020 21:50:15 +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 009LoF3S005434; Thu, 9 Jan 2020 21:50:15 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009LoFoC005433; Thu, 9 Jan 2020 21:50:15 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <202001092150.009LoFoC005433@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 9 Jan 2020 21:50:15 +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: r356573 - in stable: 11/release 12/release X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 11/release 12/release X-SVN-Commit-Revision: 356573 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 21:50:16 -0000 Author: gjb Date: Thu Jan 9 21:50:15 2020 New Revision: 356573 URL: https://svnweb.freebsd.org/changeset/base/356573 Log: MFC r353440: Increase the default VMSIZE for raw, qcow2, vhd, and vmdk virtual machine images due to 'filesystem full' failures. Sponsored by: Rubicon Communications, LLC (netgate.com) Modified: stable/11/release/Makefile.vm Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/release/Makefile.vm Directory Properties: stable/12/ (props changed) Modified: stable/11/release/Makefile.vm ============================================================================== --- stable/11/release/Makefile.vm Thu Jan 9 21:40:59 2020 (r356572) +++ stable/11/release/Makefile.vm Thu Jan 9 21:50:15 2020 (r356573) @@ -7,7 +7,7 @@ VMTARGETS= vm-image VMFORMATS?= vhd vmdk qcow2 raw -VMSIZE?= 3072M +VMSIZE?= 4096M SWAPSIZE?= 1G VMBASE?= vm From owner-svn-src-stable@freebsd.org Thu Jan 9 21:50:16 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 474221FAA52; Thu, 9 Jan 2020 21:50:16 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v0CX1C0Fz3HNy; Thu, 9 Jan 2020 21:50:16 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 248B67AA5; Thu, 9 Jan 2020 21:50:16 +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 009LoGZW005440; Thu, 9 Jan 2020 21:50:16 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 009LoGpj005439; Thu, 9 Jan 2020 21:50:16 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <202001092150.009LoGpj005439@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 9 Jan 2020 21:50:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356573 - in stable: 11/release 12/release X-SVN-Group: stable-12 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 11/release 12/release X-SVN-Commit-Revision: 356573 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2020 21:50:16 -0000 Author: gjb Date: Thu Jan 9 21:50:15 2020 New Revision: 356573 URL: https://svnweb.freebsd.org/changeset/base/356573 Log: MFC r353440: Increase the default VMSIZE for raw, qcow2, vhd, and vmdk virtual machine images due to 'filesystem full' failures. Sponsored by: Rubicon Communications, LLC (netgate.com) Modified: stable/12/release/Makefile.vm Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/release/Makefile.vm Directory Properties: stable/11/ (props changed) Modified: stable/12/release/Makefile.vm ============================================================================== --- stable/12/release/Makefile.vm Thu Jan 9 21:40:59 2020 (r356572) +++ stable/12/release/Makefile.vm Thu Jan 9 21:50:15 2020 (r356573) @@ -7,7 +7,7 @@ VMTARGETS= vm-image VMFORMATS?= vhd vmdk qcow2 raw -VMSIZE?= 3072M +VMSIZE?= 4096M SWAPSIZE?= 1G VMBASE?= vm From owner-svn-src-stable@freebsd.org Fri Jan 10 00:39:45 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 007841FDB69; Fri, 10 Jan 2020 00:39:45 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v3z468Wtz3R2t; Fri, 10 Jan 2020 00:39:44 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CE76A9AEE; Fri, 10 Jan 2020 00:39:44 +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 00A0di7l010920; Fri, 10 Jan 2020 00:39:44 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0dijt010919; Fri, 10 Jan 2020 00:39:44 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001100039.00A0dijt010919@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Fri, 10 Jan 2020 00:39:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356575 - stable/12/sys/i386/i386 X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/i386/i386 X-SVN-Commit-Revision: 356575 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:39:45 -0000 Author: markj Date: Fri Jan 10 00:39:44 2020 New Revision: 356575 URL: https://svnweb.freebsd.org/changeset/base/356575 Log: MFC r356442: Consistently use pmap_t instead of struct pmap *. Modified: stable/12/sys/i386/i386/pmap.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/i386/i386/pmap.c ============================================================================== --- stable/12/sys/i386/i386/pmap.c Thu Jan 9 22:51:37 2020 (r356574) +++ stable/12/sys/i386/i386/pmap.c Fri Jan 10 00:39:44 2020 (r356575) @@ -343,12 +343,10 @@ static void pmap_remove_pde(pmap_t pmap, pd_entry_t *p static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva, struct spglist *free); static vm_page_t pmap_remove_pt_page(pmap_t pmap, vm_offset_t va); -static void pmap_remove_page(struct pmap *pmap, vm_offset_t va, - struct spglist *free); +static void pmap_remove_page(pmap_t pmap, vm_offset_t va, struct spglist *free); static bool pmap_remove_ptes(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, struct spglist *free); -static void pmap_remove_entry(struct pmap *pmap, vm_page_t m, - vm_offset_t va); +static void pmap_remove_entry(pmap_t pmap, vm_page_t m, vm_offset_t va); static void pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t m); static boolean_t pmap_try_insert_pv_entry(pmap_t pmap, vm_offset_t va, vm_page_t m); From owner-svn-src-stable@freebsd.org Fri Jan 10 00:41:17 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 31EB41FDDED; Fri, 10 Jan 2020 00:41:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v40s0ZkXz3RD8; Fri, 10 Jan 2020 00:41:17 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D8319C57; Fri, 10 Jan 2020 00:41:17 +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 00A0fGon016447; Fri, 10 Jan 2020 00:41:16 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0fFF0015622; Fri, 10 Jan 2020 00:41:15 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100041.00A0fFF0015622@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:41:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356576 - stable/12/sys/geom/vinum X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/vinum X-SVN-Commit-Revision: 356576 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:41:17 -0000 Author: mav Date: Fri Jan 10 00:41:15 2020 New Revision: 356576 URL: https://svnweb.freebsd.org/changeset/base/356576 Log: MFC r356108: Modified: stable/12/sys/geom/vinum/geom_vinum.h stable/12/sys/geom/vinum/geom_vinum_events.c stable/12/sys/geom/vinum/geom_vinum_plex.c stable/12/sys/geom/vinum/geom_vinum_raid5.c stable/12/sys/geom/vinum/geom_vinum_var.h stable/12/sys/geom/vinum/geom_vinum_volume.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/vinum/geom_vinum.h ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum.h Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum.h Fri Jan 10 00:41:15 2020 (r356576) @@ -127,6 +127,7 @@ void gv_post_event(struct gv_softc *, int, void *, voi void gv_worker_exit(struct gv_softc *); struct gv_event *gv_get_event(struct gv_softc *); void gv_remove_event(struct gv_softc *, struct gv_event *); +void gv_drive_done(struct gv_drive *); void gv_drive_tasted(struct gv_softc *, struct g_provider *); void gv_drive_lost(struct gv_softc *, struct gv_drive *); void gv_setup_objects(struct gv_softc *); Modified: stable/12/sys/geom/vinum/geom_vinum_events.c ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum_events.c Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum_events.c Fri Jan 10 00:41:15 2020 (r356576) @@ -194,6 +194,20 @@ failed: } /* + * Count completed BIOs and handle orphanization when all are done. + */ +void +gv_drive_done(struct gv_drive *d) +{ + + KASSERT(d->active >= 0, ("Negative number of BIOs (%d)", d->active)); + if (--d->active == 0 && (d->flags & GV_DRIVE_ORPHANED)) { + d->flags &= ~GV_DRIVE_ORPHANED; + gv_post_event(d->vinumconf, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); + } +} + +/* * When losing a drive (e.g. hardware failure), we cut down the consumer * attached to the underlying device and bring the drive itself to a * "referenced" state so that normal tasting could bring it up cleanly if it @@ -213,10 +227,10 @@ gv_drive_lost(struct gv_softc *sc, struct gv_drive *d) cp = d->consumer; if (cp != NULL) { - if (cp->nstart != cp->nend) { - G_VINUM_DEBUG(0, "dead drive '%s' has still active " + if (d->active > 0) { + G_VINUM_DEBUG(2, "dead drive '%s' has still active " "requests, unable to detach consumer", d->name); - gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); + d->flags |= GV_DRIVE_ORPHANED; return; } g_topology_lock(); Modified: stable/12/sys/geom/vinum/geom_vinum_plex.c ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum_plex.c Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum_plex.c Fri Jan 10 00:41:15 2020 (r356576) @@ -277,6 +277,7 @@ gv_plex_normal_request(struct gv_plex *p, struct bio * cbp->bio_data = addr; cbp->bio_done = gv_done; cbp->bio_caller1 = s; + s->drive_sc->active++; /* Store the sub-requests now and let others issue them. */ bioq_insert_tail(p->bqueue, cbp); @@ -579,10 +580,10 @@ gv_sync_request(struct gv_plex *from, struct gv_plex * return (ENOMEM); } bp->bio_length = length; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_pflags |= GV_BIO_SYNCREQ; bp->bio_offset = offset; - bp->bio_caller1 = from; + bp->bio_caller1 = from; bp->bio_caller2 = to; bp->bio_cmd = type; if (data == NULL) @@ -693,7 +694,7 @@ gv_grow_request(struct gv_plex *p, off_t offset, off_t } bp->bio_cmd = type; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_caller1 = p; bp->bio_offset = offset; @@ -801,7 +802,7 @@ gv_init_request(struct gv_sd *s, off_t start, caddr_t } bp->bio_cmd = BIO_WRITE; bp->bio_data = data; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_length = length; bp->bio_pflags |= GV_BIO_INIT; @@ -818,6 +819,7 @@ gv_init_request(struct gv_sd *s, off_t start, caddr_t } cbp->bio_done = gv_done; cbp->bio_caller1 = s; + d->active++; /* Send it off to the consumer. */ g_io_request(cbp, cp); } @@ -904,7 +906,7 @@ gv_parity_request(struct gv_plex *p, int flags, off_t } bp->bio_cmd = BIO_WRITE; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_length = p->stripesize; bp->bio_caller1 = p; Modified: stable/12/sys/geom/vinum/geom_vinum_raid5.c ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum_raid5.c Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum_raid5.c Fri Jan 10 00:41:15 2020 (r356576) @@ -92,11 +92,13 @@ gv_raid5_start(struct gv_plex *p, struct bio *bp, cadd if (wp->waiting != NULL) { if (wp->waiting->bio_cflags & GV_BIO_MALLOC) g_free(wp->waiting->bio_data); + gv_drive_done(wp->waiting->bio_caller1); g_destroy_bio(wp->waiting); } if (wp->parity != NULL) { if (wp->parity->bio_cflags & GV_BIO_MALLOC) g_free(wp->parity->bio_data); + gv_drive_done(wp->parity->bio_caller1); g_destroy_bio(wp->parity); } g_free(wp); @@ -117,6 +119,7 @@ gv_raid5_start(struct gv_plex *p, struct bio *bp, cadd while (cbp != NULL) { if (cbp->bio_cflags & GV_BIO_MALLOC) g_free(cbp->bio_data); + gv_drive_done(cbp->bio_caller1); g_destroy_bio(cbp); cbp = bioq_takefirst(p->bqueue); } @@ -656,6 +659,7 @@ gv_raid5_clone_bio(struct bio *bp, struct gv_sd *s, st cbp->bio_length = wp->length; cbp->bio_done = gv_done; cbp->bio_caller1 = s; + s->drive_sc->active++; if (use_wp) cbp->bio_caller2 = wp; Modified: stable/12/sys/geom/vinum/geom_vinum_var.h ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum_var.h Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum_var.h Fri Jan 10 00:41:15 2020 (r356576) @@ -260,10 +260,12 @@ struct gv_drive { #define GV_DRIVE_REFERENCED 0x01 /* The drive isn't really existing, but was referenced by a subdisk during taste. */ +#define GV_DRIVE_ORPHANED 0x02 /* The drive was orphaned. */ struct gv_hdr *hdr; /* The drive header. */ struct g_consumer *consumer; /* Consumer attached to this drive. */ + int active; /* Number of active requests. */ int freelist_entries; /* Count of freelist entries. */ LIST_HEAD(,gv_freelist) freelist; /* List of freelist entries. */ Modified: stable/12/sys/geom/vinum/geom_vinum_volume.c ============================================================================== --- stable/12/sys/geom/vinum/geom_vinum_volume.c Fri Jan 10 00:39:44 2020 (r356575) +++ stable/12/sys/geom/vinum/geom_vinum_volume.c Fri Jan 10 00:41:15 2020 (r356576) @@ -163,4 +163,6 @@ gv_bio_done(struct gv_softc *sc, struct bio *bp) gv_plex_raid5_done(p, bp); break; } + + gv_drive_done(s->drive_sc); } From owner-svn-src-stable@freebsd.org Fri Jan 10 00:42:07 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 850561FDE9C; Fri, 10 Jan 2020 00:42:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v41q2ZGDz3whZ; Fri, 10 Jan 2020 00:42:07 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 533E09CA2; Fri, 10 Jan 2020 00:42:07 +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 00A0g7v7016546; Fri, 10 Jan 2020 00:42:07 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0g6qj016540; Fri, 10 Jan 2020 00:42:06 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100042.00A0g6qj016540@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:42: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: r356577 - stable/11/sys/geom/vinum X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/vinum X-SVN-Commit-Revision: 356577 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:42:07 -0000 Author: mav Date: Fri Jan 10 00:42:05 2020 New Revision: 356577 URL: https://svnweb.freebsd.org/changeset/base/356577 Log: MFC r356138: Reimplement gvinum orphanization. gvinum was the only GEOM class, using consumer nstart/nend fields. Making it do its own accounting for orphanization purposes allows in perspective to remove burden of that expensive for SMP accounting from GEOM. Also the previous implementation spinned in a tight event loop, waiting for all active BIOs to complete, while the new one knows exactly when it is possible to close the consumer. Modified: stable/11/sys/geom/vinum/geom_vinum.h stable/11/sys/geom/vinum/geom_vinum_events.c stable/11/sys/geom/vinum/geom_vinum_plex.c stable/11/sys/geom/vinum/geom_vinum_raid5.c stable/11/sys/geom/vinum/geom_vinum_var.h stable/11/sys/geom/vinum/geom_vinum_volume.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/vinum/geom_vinum.h ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum.h Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum.h Fri Jan 10 00:42:05 2020 (r356577) @@ -125,6 +125,7 @@ void gv_post_event(struct gv_softc *, int, void *, voi void gv_worker_exit(struct gv_softc *); struct gv_event *gv_get_event(struct gv_softc *); void gv_remove_event(struct gv_softc *, struct gv_event *); +void gv_drive_done(struct gv_drive *); void gv_drive_tasted(struct gv_softc *, struct g_provider *); void gv_drive_lost(struct gv_softc *, struct gv_drive *); void gv_setup_objects(struct gv_softc *); Modified: stable/11/sys/geom/vinum/geom_vinum_events.c ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum_events.c Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum_events.c Fri Jan 10 00:42:05 2020 (r356577) @@ -192,6 +192,20 @@ failed: } /* + * Count completed BIOs and handle orphanization when all are done. + */ +void +gv_drive_done(struct gv_drive *d) +{ + + KASSERT(d->active >= 0, ("Negative number of BIOs (%d)", d->active)); + if (--d->active == 0 && (d->flags & GV_DRIVE_ORPHANED)) { + d->flags &= ~GV_DRIVE_ORPHANED; + gv_post_event(d->vinumconf, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); + } +} + +/* * When losing a drive (e.g. hardware failure), we cut down the consumer * attached to the underlying device and bring the drive itself to a * "referenced" state so that normal tasting could bring it up cleanly if it @@ -211,10 +225,10 @@ gv_drive_lost(struct gv_softc *sc, struct gv_drive *d) cp = d->consumer; if (cp != NULL) { - if (cp->nstart != cp->nend) { - G_VINUM_DEBUG(0, "dead drive '%s' has still active " + if (d->active > 0) { + G_VINUM_DEBUG(2, "dead drive '%s' has still active " "requests, unable to detach consumer", d->name); - gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, 0, 0); + d->flags |= GV_DRIVE_ORPHANED; return; } g_topology_lock(); Modified: stable/11/sys/geom/vinum/geom_vinum_plex.c ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum_plex.c Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum_plex.c Fri Jan 10 00:42:05 2020 (r356577) @@ -275,6 +275,7 @@ gv_plex_normal_request(struct gv_plex *p, struct bio * cbp->bio_data = addr; cbp->bio_done = gv_done; cbp->bio_caller1 = s; + s->drive_sc->active++; /* Store the sub-requests now and let others issue them. */ bioq_insert_tail(p->bqueue, cbp); @@ -577,10 +578,10 @@ gv_sync_request(struct gv_plex *from, struct gv_plex * return (ENOMEM); } bp->bio_length = length; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_pflags |= GV_BIO_SYNCREQ; bp->bio_offset = offset; - bp->bio_caller1 = from; + bp->bio_caller1 = from; bp->bio_caller2 = to; bp->bio_cmd = type; if (data == NULL) @@ -691,7 +692,7 @@ gv_grow_request(struct gv_plex *p, off_t offset, off_t } bp->bio_cmd = type; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_caller1 = p; bp->bio_offset = offset; @@ -799,7 +800,7 @@ gv_init_request(struct gv_sd *s, off_t start, caddr_t } bp->bio_cmd = BIO_WRITE; bp->bio_data = data; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_length = length; bp->bio_pflags |= GV_BIO_INIT; @@ -816,6 +817,7 @@ gv_init_request(struct gv_sd *s, off_t start, caddr_t } cbp->bio_done = gv_done; cbp->bio_caller1 = s; + d->active++; /* Send it off to the consumer. */ g_io_request(cbp, cp); } @@ -902,7 +904,7 @@ gv_parity_request(struct gv_plex *p, int flags, off_t } bp->bio_cmd = BIO_WRITE; - bp->bio_done = gv_done; + bp->bio_done = NULL; bp->bio_error = 0; bp->bio_length = p->stripesize; bp->bio_caller1 = p; Modified: stable/11/sys/geom/vinum/geom_vinum_raid5.c ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum_raid5.c Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum_raid5.c Fri Jan 10 00:42:05 2020 (r356577) @@ -90,11 +90,13 @@ gv_raid5_start(struct gv_plex *p, struct bio *bp, cadd if (wp->waiting != NULL) { if (wp->waiting->bio_cflags & GV_BIO_MALLOC) g_free(wp->waiting->bio_data); + gv_drive_done(wp->waiting->bio_caller1); g_destroy_bio(wp->waiting); } if (wp->parity != NULL) { if (wp->parity->bio_cflags & GV_BIO_MALLOC) g_free(wp->parity->bio_data); + gv_drive_done(wp->parity->bio_caller1); g_destroy_bio(wp->parity); } g_free(wp); @@ -115,6 +117,7 @@ gv_raid5_start(struct gv_plex *p, struct bio *bp, cadd while (cbp != NULL) { if (cbp->bio_cflags & GV_BIO_MALLOC) g_free(cbp->bio_data); + gv_drive_done(cbp->bio_caller1); g_destroy_bio(cbp); cbp = bioq_takefirst(p->bqueue); } @@ -654,6 +657,7 @@ gv_raid5_clone_bio(struct bio *bp, struct gv_sd *s, st cbp->bio_length = wp->length; cbp->bio_done = gv_done; cbp->bio_caller1 = s; + s->drive_sc->active++; if (use_wp) cbp->bio_caller2 = wp; Modified: stable/11/sys/geom/vinum/geom_vinum_var.h ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum_var.h Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum_var.h Fri Jan 10 00:42:05 2020 (r356577) @@ -258,10 +258,12 @@ struct gv_drive { #define GV_DRIVE_REFERENCED 0x01 /* The drive isn't really existing, but was referenced by a subdisk during taste. */ +#define GV_DRIVE_ORPHANED 0x02 /* The drive was orphaned. */ struct gv_hdr *hdr; /* The drive header. */ struct g_consumer *consumer; /* Consumer attached to this drive. */ + int active; /* Number of active requests. */ int freelist_entries; /* Count of freelist entries. */ LIST_HEAD(,gv_freelist) freelist; /* List of freelist entries. */ Modified: stable/11/sys/geom/vinum/geom_vinum_volume.c ============================================================================== --- stable/11/sys/geom/vinum/geom_vinum_volume.c Fri Jan 10 00:41:15 2020 (r356576) +++ stable/11/sys/geom/vinum/geom_vinum_volume.c Fri Jan 10 00:42:05 2020 (r356577) @@ -161,4 +161,6 @@ gv_bio_done(struct gv_softc *sc, struct bio *bp) gv_plex_raid5_done(p, bp); break; } + + gv_drive_done(s->drive_sc); } From owner-svn-src-stable@freebsd.org Fri Jan 10 00:42:40 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 536E11FDEFF; Fri, 10 Jan 2020 00:42:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v42S0Scfz3wqZ; Fri, 10 Jan 2020 00:42:40 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0B2279CC8; Fri, 10 Jan 2020 00:42:40 +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 00A0gdY4016628; Fri, 10 Jan 2020 00:42:39 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0gd7K016627; Fri, 10 Jan 2020 00:42:39 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100042.00A0gd7K016627@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:42:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356578 - stable/12/sys/geom/uzip X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/uzip X-SVN-Commit-Revision: 356578 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:42:40 -0000 Author: mav Date: Fri Jan 10 00:42:39 2020 New Revision: 356578 URL: https://svnweb.freebsd.org/changeset/base/356578 Log: MFC r356138: Fix GEOM_UZIP orphanization. Previous code destroyed softc even with provider still open, that resulted in panic under load. This change postpones the free till the final close, when we know for sure there will be no more I/O requests. Modified: stable/12/sys/geom/uzip/g_uzip.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/uzip/g_uzip.c ============================================================================== --- stable/12/sys/geom/uzip/g_uzip.c Fri Jan 10 00:42:05 2020 (r356577) +++ stable/12/sys/geom/uzip/g_uzip.c Fri Jan 10 00:42:39 2020 (r356578) @@ -139,13 +139,12 @@ 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) +g_uzip_softc_free(struct g_geom *gp) { + struct g_uzip_softc *sc = gp->softc; - if (gp != NULL) { - DPRINTF(GUZ_DBG_INFO, ("%s: %d requests, %d cached\n", - gp->name, sc->req_total, sc->req_cached)); - } + DPRINTF(GUZ_DBG_INFO, ("%s: %d requests, %d cached\n", + gp->name, sc->req_total, sc->req_cached)); mtx_lock(&sc->queue_mtx); sc->wrkthr_flags |= GUZ_SHUTDOWN; @@ -162,6 +161,7 @@ g_uzip_softc_free(struct g_uzip_softc *sc, struct g_ge mtx_destroy(&sc->last_mtx); free(sc->last_buf, M_GEOM_UZIP); free(sc, M_GEOM_UZIP); + gp->softc = NULL; } static int @@ -503,20 +503,35 @@ g_uzip_orphan(struct g_consumer *cp) { struct g_geom *gp; - g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, cp->provider->name); g_topology_assert(); - + G_VALID_CONSUMER(cp); gp = cp->geom; - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; + g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, gp->name); g_wither_geom(gp, ENXIO); + + /* + * We can safely free the softc now if there are no accesses, + * otherwise g_uzip_access() will do that after the last close. + */ + if ((cp->acr + cp->acw + cp->ace) == 0) + g_uzip_softc_free(gp); } +static void +g_uzip_spoiled(struct g_consumer *cp) +{ + + g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, cp->geom->name); + cp->flags |= G_CF_ORPHAN; + g_uzip_orphan(cp); +} + static int g_uzip_access(struct g_provider *pp, int dr, int dw, int de) { struct g_geom *gp; struct g_consumer *cp; + int error; gp = pp->geom; cp = LIST_FIRST(&gp->consumer); @@ -525,22 +540,17 @@ g_uzip_access(struct g_provider *pp, int dr, int dw, i if (cp->acw + dw > 0) return (EROFS); - return (g_access(cp, dr, dw, de)); -} + error = g_access(cp, dr, dw, de); -static void -g_uzip_spoiled(struct g_consumer *cp) -{ - struct g_geom *gp; + /* + * Free the softc if all providers have been closed and this geom + * is being removed. + */ + if (error == 0 && (gp->flags & G_GEOM_WITHER) != 0 && + (cp->acr + cp->acw + cp->ace) == 0) + g_uzip_softc_free(gp); - G_VALID_CONSUMER(cp); - gp = cp->geom; - g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, gp->name); - g_topology_assert(); - - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; - g_wither_geom(gp, ENXIO); + return (error); } static int @@ -901,10 +911,8 @@ g_uzip_destroy_geom(struct gctl_req *req, struct g_cla if (pp->acr > 0 || pp->acw > 0 || pp->ace > 0) return (EBUSY); - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; g_wither_geom(gp, ENXIO); - + g_uzip_softc_free(gp); return (0); } From owner-svn-src-stable@freebsd.org Fri Jan 10 00:43:08 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F36E11FDF75; Fri, 10 Jan 2020 00:43:08 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v4306FC2z3wxR; Fri, 10 Jan 2020 00:43:08 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D186E9CCA; Fri, 10 Jan 2020 00:43:08 +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 00A0h8TG016712; Fri, 10 Jan 2020 00:43:08 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0h8mm016711; Fri, 10 Jan 2020 00:43:08 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100043.00A0h8mm016711@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:43:08 +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: r356579 - stable/11/sys/geom/uzip X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/uzip X-SVN-Commit-Revision: 356579 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:43:09 -0000 Author: mav Date: Fri Jan 10 00:43:08 2020 New Revision: 356579 URL: https://svnweb.freebsd.org/changeset/base/356579 Log: MFC r356138: Fix GEOM_UZIP orphanization. Previous code destroyed softc even with provider still open, that resulted in panic under load. This change postpones the free till the final close, when we know for sure there will be no more I/O requests. Modified: stable/11/sys/geom/uzip/g_uzip.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/uzip/g_uzip.c ============================================================================== --- stable/11/sys/geom/uzip/g_uzip.c Fri Jan 10 00:42:39 2020 (r356578) +++ stable/11/sys/geom/uzip/g_uzip.c Fri Jan 10 00:43:08 2020 (r356579) @@ -137,13 +137,12 @@ 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) +g_uzip_softc_free(struct g_geom *gp) { + struct g_uzip_softc *sc = gp->softc; - if (gp != NULL) { - DPRINTF(GUZ_DBG_INFO, ("%s: %d requests, %d cached\n", - gp->name, sc->req_total, sc->req_cached)); - } + DPRINTF(GUZ_DBG_INFO, ("%s: %d requests, %d cached\n", + gp->name, sc->req_total, sc->req_cached)); mtx_lock(&sc->queue_mtx); sc->wrkthr_flags |= GUZ_SHUTDOWN; @@ -160,6 +159,7 @@ g_uzip_softc_free(struct g_uzip_softc *sc, struct g_ge mtx_destroy(&sc->last_mtx); free(sc->last_buf, M_GEOM_UZIP); free(sc, M_GEOM_UZIP); + gp->softc = NULL; } static int @@ -480,20 +480,35 @@ g_uzip_orphan(struct g_consumer *cp) { struct g_geom *gp; - g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, cp->provider->name); g_topology_assert(); - + G_VALID_CONSUMER(cp); gp = cp->geom; - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; + g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, gp->name); g_wither_geom(gp, ENXIO); + + /* + * We can safely free the softc now if there are no accesses, + * otherwise g_uzip_access() will do that after the last close. + */ + if ((cp->acr + cp->acw + cp->ace) == 0) + g_uzip_softc_free(gp); } +static void +g_uzip_spoiled(struct g_consumer *cp) +{ + + g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, cp->geom->name); + cp->flags |= G_CF_ORPHAN; + g_uzip_orphan(cp); +} + static int g_uzip_access(struct g_provider *pp, int dr, int dw, int de) { struct g_geom *gp; struct g_consumer *cp; + int error; gp = pp->geom; cp = LIST_FIRST(&gp->consumer); @@ -502,22 +517,17 @@ g_uzip_access(struct g_provider *pp, int dr, int dw, i if (cp->acw + dw > 0) return (EROFS); - return (g_access(cp, dr, dw, de)); -} + error = g_access(cp, dr, dw, de); -static void -g_uzip_spoiled(struct g_consumer *cp) -{ - struct g_geom *gp; + /* + * Free the softc if all providers have been closed and this geom + * is being removed. + */ + if (error == 0 && (gp->flags & G_GEOM_WITHER) != 0 && + (cp->acr + cp->acw + cp->ace) == 0) + g_uzip_softc_free(gp); - G_VALID_CONSUMER(cp); - gp = cp->geom; - g_trace(G_T_TOPOLOGY, "%s(%p/%s)", __func__, cp, gp->name); - g_topology_assert(); - - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; - g_wither_geom(gp, ENXIO); + return (error); } static int @@ -878,10 +888,8 @@ g_uzip_destroy_geom(struct gctl_req *req, struct g_cla if (pp->acr > 0 || pp->acw > 0 || pp->ace > 0) return (EBUSY); - g_uzip_softc_free(gp->softc, gp); - gp->softc = NULL; g_wither_geom(gp, ENXIO); - + g_uzip_softc_free(gp); return (0); } From owner-svn-src-stable@freebsd.org Fri Jan 10 00:43:40 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E51F11FDFE4; Fri, 10 Jan 2020 00:43:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v43c5n3fz3x4T; Fri, 10 Jan 2020 00:43:40 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C1ABB9CCB; Fri, 10 Jan 2020 00:43:40 +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 00A0he6Y016792; Fri, 10 Jan 2020 00:43:40 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0heGw016791; Fri, 10 Jan 2020 00:43:40 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100043.00A0heGw016791@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:43:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356580 - stable/12/sys/geom/gate X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/gate X-SVN-Commit-Revision: 356580 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:43:41 -0000 Author: mav Date: Fri Jan 10 00:43:40 2020 New Revision: 356580 URL: https://svnweb.freebsd.org/changeset/base/356580 Log: MFC r356151: Fix GEOM_GATE orphanization. Previous code closed and destroyed direct read consumer even with I/O still in progress. This patch adds locking and request counting to postpone the close till the last of running requests completes. Modified: stable/12/sys/geom/gate/g_gate.c stable/12/sys/geom/gate/g_gate.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/gate/g_gate.c ============================================================================== --- stable/12/sys/geom/gate/g_gate.c Fri Jan 10 00:43:08 2020 (r356579) +++ stable/12/sys/geom/gate/g_gate.c Fri Jan 10 00:43:40 2020 (r356580) @@ -88,6 +88,19 @@ static struct g_gate_softc **g_gate_units; static u_int g_gate_nunits; static struct mtx g_gate_units_lock; +static void +g_gate_detach(void *arg, int flags __unused) +{ + struct g_consumer *cp = arg; + + g_topology_assert(); + G_GATE_DEBUG(1, "Destroying read consumer on provider %s orphan.", + cp->provider->name); + (void)g_access(cp, -1, 0, 0); + g_detach(cp); + g_destroy_consumer(cp); +} + static int g_gate_destroy(struct g_gate_softc *sc, boolean_t force) { @@ -139,6 +152,7 @@ g_gate_destroy(struct g_gate_softc *sc, boolean_t forc g_gate_nunits--; mtx_unlock(&g_gate_units_lock); mtx_destroy(&sc->sc_queue_mtx); + mtx_destroy(&sc->sc_read_mtx); g_topology_lock(); if ((cp = sc->sc_readcons) != NULL) { sc->sc_readcons = NULL; @@ -207,8 +221,11 @@ g_gate_queue_io(struct bio *bp) static void g_gate_done(struct bio *cbp) { + struct g_gate_softc *sc; struct bio *pbp; + struct g_consumer *cp; + cp = cbp->bio_from; pbp = cbp->bio_parent; if (cbp->bio_error == 0) { pbp->bio_completed = cbp->bio_completed; @@ -221,12 +238,20 @@ g_gate_done(struct bio *cbp) pbp->bio_children--; g_gate_queue_io(pbp); } + + sc = cp->geom->softc; + mtx_lock(&sc->sc_read_mtx); + if (--cp->index == 0 && sc->sc_readcons != cp) + g_post_event(g_gate_detach, cp, M_NOWAIT, NULL); + mtx_unlock(&sc->sc_read_mtx); } static void g_gate_start(struct bio *pbp) { struct g_gate_softc *sc; + struct g_consumer *cp; + struct bio *cbp; sc = pbp->bio_to->geom->softc; if (sc == NULL || (sc->sc_flags & G_GATE_FLAG_DESTROY) != 0) { @@ -236,21 +261,26 @@ g_gate_start(struct bio *pbp) G_GATE_LOGREQ(2, pbp, "Request received."); switch (pbp->bio_cmd) { case BIO_READ: - if (sc->sc_readcons != NULL) { - struct bio *cbp; - - cbp = g_clone_bio(pbp); - if (cbp == NULL) { - g_io_deliver(pbp, ENOMEM); - return; - } - cbp->bio_done = g_gate_done; - cbp->bio_offset = pbp->bio_offset + sc->sc_readoffset; - cbp->bio_to = sc->sc_readcons->provider; - g_io_request(cbp, sc->sc_readcons); + if (sc->sc_readcons == NULL) + break; + cbp = g_clone_bio(pbp); + if (cbp == NULL) { + g_io_deliver(pbp, ENOMEM); return; } - break; + mtx_lock(&sc->sc_read_mtx); + if ((cp = sc->sc_readcons) == NULL) { + mtx_unlock(&sc->sc_read_mtx); + g_destroy_bio(cbp); + pbp->bio_children--; + break; + } + cp->index++; + cbp->bio_offset = pbp->bio_offset + sc->sc_readoffset; + mtx_unlock(&sc->sc_read_mtx); + cbp->bio_done = g_gate_done; + g_io_request(cbp, cp); + return; case BIO_DELETE: case BIO_WRITE: case BIO_FLUSH: @@ -376,20 +406,18 @@ g_gate_orphan(struct g_consumer *cp) { struct g_gate_softc *sc; struct g_geom *gp; + int done; g_topology_assert(); gp = cp->geom; sc = gp->softc; - if (sc == NULL) - return; - KASSERT(cp == sc->sc_readcons, ("cp=%p sc_readcons=%p", cp, - sc->sc_readcons)); - sc->sc_readcons = NULL; - G_GATE_DEBUG(1, "Destroying read consumer on provider %s orphan.", - cp->provider->name); - (void)g_access(cp, -1, 0, 0); - g_detach(cp); - g_destroy_consumer(cp); + mtx_lock(&sc->sc_read_mtx); + if (sc->sc_readcons == cp) + sc->sc_readcons = NULL; + done = (cp->index == 0); + mtx_unlock(&sc->sc_read_mtx); + if (done) + g_gate_detach(cp, 0); } static void @@ -482,6 +510,7 @@ g_gate_create(struct g_gate_ctl_create *ggio) bioq_init(&sc->sc_inqueue); bioq_init(&sc->sc_outqueue); mtx_init(&sc->sc_queue_mtx, "gg:queue", NULL, MTX_DEF); + mtx_init(&sc->sc_read_mtx, "gg:read", NULL, MTX_DEF); sc->sc_queue_count = 0; sc->sc_queue_size = ggio->gctl_maxcount; if (sc->sc_queue_size > G_GATE_MAX_QUEUE_SIZE) @@ -595,6 +624,7 @@ fail2: fail1: mtx_unlock(&g_gate_units_lock); mtx_destroy(&sc->sc_queue_mtx); + mtx_destroy(&sc->sc_read_mtx); free(sc, M_GATE); return (error); } @@ -604,7 +634,7 @@ g_gate_modify(struct g_gate_softc *sc, struct g_gate_c { struct g_provider *pp; struct g_consumer *cp; - int error; + int done, error; if ((ggio->gctl_modify & GG_MODIFY_MEDIASIZE) != 0) { if (ggio->gctl_mediasize <= 0) { @@ -627,13 +657,15 @@ g_gate_modify(struct g_gate_softc *sc, struct g_gate_c if ((ggio->gctl_modify & GG_MODIFY_READPROV) != 0) { g_topology_lock(); - if (sc->sc_readcons != NULL) { - cp = sc->sc_readcons; + mtx_lock(&sc->sc_read_mtx); + if ((cp = sc->sc_readcons) != NULL) { sc->sc_readcons = NULL; - (void)g_access(cp, -1, 0, 0); - g_detach(cp); - g_destroy_consumer(cp); - } + done = (cp->index == 0); + mtx_unlock(&sc->sc_read_mtx); + if (done) + g_gate_detach(cp, 0); + } else + mtx_unlock(&sc->sc_read_mtx); if (ggio->gctl_readprov[0] != '\0') { pp = g_provider_by_name(ggio->gctl_readprov); if (pp == NULL) { Modified: stable/12/sys/geom/gate/g_gate.h ============================================================================== --- stable/12/sys/geom/gate/g_gate.h Fri Jan 10 00:43:08 2020 (r356579) +++ stable/12/sys/geom/gate/g_gate.h Fri Jan 10 00:43:40 2020 (r356580) @@ -91,16 +91,15 @@ struct g_gate_softc { uint32_t sc_queue_count; /* P: sc_queue_mtx */ uint32_t sc_queue_size; /* P: (read-only) */ u_int sc_timeout; /* P: (read-only) */ - struct g_consumer *sc_readcons; /* P: XXX */ - off_t sc_readoffset; /* P: XXX */ + struct g_consumer *sc_readcons; /* P: sc_read_mtx */ + off_t sc_readoffset; /* P: sc_read_mtx */ struct callout sc_callout; /* P: (modified only from callout thread) */ - uintptr_t sc_seq; /* P: (modified only - from g_down - thread) */ + uintptr_t sc_seq; /* P: sc_queue_mtx */ LIST_ENTRY(g_gate_softc) sc_next; /* P: g_gate_list_mtx */ char sc_info[G_GATE_INFOSIZE]; /* P: (read-only) */ + struct mtx sc_read_mtx; }; #define G_GATE_DEBUG(lvl, ...) do { \ From owner-svn-src-stable@freebsd.org Fri Jan 10 00:44:07 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E98831FE056; Fri, 10 Jan 2020 00:44:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v4475v7Xz3xBQ; Fri, 10 Jan 2020 00:44:07 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C57829CCC; Fri, 10 Jan 2020 00:44:07 +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 00A0i7ZW016902; Fri, 10 Jan 2020 00:44:07 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0i7XN016900; Fri, 10 Jan 2020 00:44:07 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100044.00A0i7XN016900@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:44:07 +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: r356581 - stable/11/sys/geom/gate X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/gate X-SVN-Commit-Revision: 356581 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:44:08 -0000 Author: mav Date: Fri Jan 10 00:44:07 2020 New Revision: 356581 URL: https://svnweb.freebsd.org/changeset/base/356581 Log: MFC r356151: Fix GEOM_GATE orphanization. Previous code closed and destroyed direct read consumer even with I/O still in progress. This patch adds locking and request counting to postpone the close till the last of running requests completes. Modified: stable/11/sys/geom/gate/g_gate.c stable/11/sys/geom/gate/g_gate.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/gate/g_gate.c ============================================================================== --- stable/11/sys/geom/gate/g_gate.c Fri Jan 10 00:43:40 2020 (r356580) +++ stable/11/sys/geom/gate/g_gate.c Fri Jan 10 00:44:07 2020 (r356581) @@ -86,6 +86,19 @@ static struct g_gate_softc **g_gate_units; static u_int g_gate_nunits; static struct mtx g_gate_units_lock; +static void +g_gate_detach(void *arg, int flags __unused) +{ + struct g_consumer *cp = arg; + + g_topology_assert(); + G_GATE_DEBUG(1, "Destroying read consumer on provider %s orphan.", + cp->provider->name); + (void)g_access(cp, -1, 0, 0); + g_detach(cp); + g_destroy_consumer(cp); +} + static int g_gate_destroy(struct g_gate_softc *sc, boolean_t force) { @@ -137,6 +150,7 @@ g_gate_destroy(struct g_gate_softc *sc, boolean_t forc g_gate_nunits--; mtx_unlock(&g_gate_units_lock); mtx_destroy(&sc->sc_queue_mtx); + mtx_destroy(&sc->sc_read_mtx); g_topology_lock(); if ((cp = sc->sc_readcons) != NULL) { sc->sc_readcons = NULL; @@ -205,8 +219,11 @@ g_gate_queue_io(struct bio *bp) static void g_gate_done(struct bio *cbp) { + struct g_gate_softc *sc; struct bio *pbp; + struct g_consumer *cp; + cp = cbp->bio_from; pbp = cbp->bio_parent; if (cbp->bio_error == 0) { pbp->bio_completed = cbp->bio_completed; @@ -219,12 +236,20 @@ g_gate_done(struct bio *cbp) pbp->bio_children--; g_gate_queue_io(pbp); } + + sc = cp->geom->softc; + mtx_lock(&sc->sc_read_mtx); + if (--cp->index == 0 && sc->sc_readcons != cp) + g_post_event(g_gate_detach, cp, M_NOWAIT, NULL); + mtx_unlock(&sc->sc_read_mtx); } static void g_gate_start(struct bio *pbp) { struct g_gate_softc *sc; + struct g_consumer *cp; + struct bio *cbp; sc = pbp->bio_to->geom->softc; if (sc == NULL || (sc->sc_flags & G_GATE_FLAG_DESTROY) != 0) { @@ -234,21 +259,26 @@ g_gate_start(struct bio *pbp) G_GATE_LOGREQ(2, pbp, "Request received."); switch (pbp->bio_cmd) { case BIO_READ: - if (sc->sc_readcons != NULL) { - struct bio *cbp; - - cbp = g_clone_bio(pbp); - if (cbp == NULL) { - g_io_deliver(pbp, ENOMEM); - return; - } - cbp->bio_done = g_gate_done; - cbp->bio_offset = pbp->bio_offset + sc->sc_readoffset; - cbp->bio_to = sc->sc_readcons->provider; - g_io_request(cbp, sc->sc_readcons); + if (sc->sc_readcons == NULL) + break; + cbp = g_clone_bio(pbp); + if (cbp == NULL) { + g_io_deliver(pbp, ENOMEM); return; } - break; + mtx_lock(&sc->sc_read_mtx); + if ((cp = sc->sc_readcons) == NULL) { + mtx_unlock(&sc->sc_read_mtx); + g_destroy_bio(cbp); + pbp->bio_children--; + break; + } + cp->index++; + cbp->bio_offset = pbp->bio_offset + sc->sc_readoffset; + mtx_unlock(&sc->sc_read_mtx); + cbp->bio_done = g_gate_done; + g_io_request(cbp, cp); + return; case BIO_DELETE: case BIO_WRITE: case BIO_FLUSH: @@ -374,20 +404,18 @@ g_gate_orphan(struct g_consumer *cp) { struct g_gate_softc *sc; struct g_geom *gp; + int done; g_topology_assert(); gp = cp->geom; sc = gp->softc; - if (sc == NULL) - return; - KASSERT(cp == sc->sc_readcons, ("cp=%p sc_readcons=%p", cp, - sc->sc_readcons)); - sc->sc_readcons = NULL; - G_GATE_DEBUG(1, "Destroying read consumer on provider %s orphan.", - cp->provider->name); - (void)g_access(cp, -1, 0, 0); - g_detach(cp); - g_destroy_consumer(cp); + mtx_lock(&sc->sc_read_mtx); + if (sc->sc_readcons == cp) + sc->sc_readcons = NULL; + done = (cp->index == 0); + mtx_unlock(&sc->sc_read_mtx); + if (done) + g_gate_detach(cp, 0); } static void @@ -480,6 +508,7 @@ g_gate_create(struct g_gate_ctl_create *ggio) bioq_init(&sc->sc_inqueue); bioq_init(&sc->sc_outqueue); mtx_init(&sc->sc_queue_mtx, "gg:queue", NULL, MTX_DEF); + mtx_init(&sc->sc_read_mtx, "gg:read", NULL, MTX_DEF); sc->sc_queue_count = 0; sc->sc_queue_size = ggio->gctl_maxcount; if (sc->sc_queue_size > G_GATE_MAX_QUEUE_SIZE) @@ -593,6 +622,7 @@ fail2: fail1: mtx_unlock(&g_gate_units_lock); mtx_destroy(&sc->sc_queue_mtx); + mtx_destroy(&sc->sc_read_mtx); free(sc, M_GATE); return (error); } @@ -602,7 +632,7 @@ g_gate_modify(struct g_gate_softc *sc, struct g_gate_c { struct g_provider *pp; struct g_consumer *cp; - int error; + int done, error; if ((ggio->gctl_modify & GG_MODIFY_MEDIASIZE) != 0) { if (ggio->gctl_mediasize <= 0) { @@ -625,13 +655,15 @@ g_gate_modify(struct g_gate_softc *sc, struct g_gate_c if ((ggio->gctl_modify & GG_MODIFY_READPROV) != 0) { g_topology_lock(); - if (sc->sc_readcons != NULL) { - cp = sc->sc_readcons; + mtx_lock(&sc->sc_read_mtx); + if ((cp = sc->sc_readcons) != NULL) { sc->sc_readcons = NULL; - (void)g_access(cp, -1, 0, 0); - g_detach(cp); - g_destroy_consumer(cp); - } + done = (cp->index == 0); + mtx_unlock(&sc->sc_read_mtx); + if (done) + g_gate_detach(cp, 0); + } else + mtx_unlock(&sc->sc_read_mtx); if (ggio->gctl_readprov[0] != '\0') { pp = g_provider_by_name(ggio->gctl_readprov); if (pp == NULL) { Modified: stable/11/sys/geom/gate/g_gate.h ============================================================================== --- stable/11/sys/geom/gate/g_gate.h Fri Jan 10 00:43:40 2020 (r356580) +++ stable/11/sys/geom/gate/g_gate.h Fri Jan 10 00:44:07 2020 (r356581) @@ -89,16 +89,15 @@ struct g_gate_softc { uint32_t sc_queue_count; /* P: sc_queue_mtx */ uint32_t sc_queue_size; /* P: (read-only) */ u_int sc_timeout; /* P: (read-only) */ - struct g_consumer *sc_readcons; /* P: XXX */ - off_t sc_readoffset; /* P: XXX */ + struct g_consumer *sc_readcons; /* P: sc_read_mtx */ + off_t sc_readoffset; /* P: sc_read_mtx */ struct callout sc_callout; /* P: (modified only from callout thread) */ - uintptr_t sc_seq; /* P: (modified only - from g_down - thread) */ + uintptr_t sc_seq; /* P: sc_queue_mtx */ LIST_ENTRY(g_gate_softc) sc_next; /* P: g_gate_list_mtx */ char sc_info[G_GATE_INFOSIZE]; /* P: (read-only) */ + struct mtx sc_read_mtx; }; #define G_GATE_DEBUG(lvl, ...) do { \ From owner-svn-src-stable@freebsd.org Fri Jan 10 00:45:28 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 796A51FE0EF; Fri, 10 Jan 2020 00:45:28 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v45h2fywz3xJp; Fri, 10 Jan 2020 00:45: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 567559CCE; Fri, 10 Jan 2020 00:45: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 00A0jS1a017026; Fri, 10 Jan 2020 00:45:28 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0jS3g017025; Fri, 10 Jan 2020 00:45:28 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100045.00A0jS3g017025@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:45:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356582 - stable/12/sys/geom/shsec X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/shsec X-SVN-Commit-Revision: 356582 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:45:28 -0000 Author: mav Date: Fri Jan 10 00:45:27 2020 New Revision: 356582 URL: https://svnweb.freebsd.org/changeset/base/356582 Log: MFC r356162, r356182: Fix GEOM_SHSEC orphanization. Previous code closed and destroyed consumer even with I/O in progress. This patch postpones the destruction till the last close, identical to GEOM_STRIPE, since they seem to have common origin. Modified: stable/12/sys/geom/shsec/g_shsec.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/shsec/g_shsec.c ============================================================================== --- stable/12/sys/geom/shsec/g_shsec.c Fri Jan 10 00:44:07 2020 (r356581) +++ stable/12/sys/geom/shsec/g_shsec.c Fri Jan 10 00:45:27 2020 (r356582) @@ -164,7 +164,7 @@ g_shsec_remove_disk(struct g_consumer *cp) } if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) - g_access(cp, -cp->acr, -cp->acw, -cp->ace); + return; g_detach(cp); g_destroy_consumer(cp); } @@ -183,14 +183,14 @@ g_shsec_orphan(struct g_consumer *cp) g_shsec_remove_disk(cp); /* If there are no valid disks anymore, remove device. */ - if (g_shsec_nvalid(sc) == 0) + if (LIST_EMPTY(&gp->consumer)) g_shsec_destroy(sc, 1); } static int g_shsec_access(struct g_provider *pp, int dr, int dw, int de) { - struct g_consumer *cp1, *cp2; + struct g_consumer *cp1, *cp2, *tmp; struct g_shsec_softc *sc; struct g_geom *gp; int error; @@ -198,21 +198,6 @@ g_shsec_access(struct g_provider *pp, int dr, int dw, gp = pp->geom; sc = gp->softc; - if (sc == NULL) { - /* - * It looks like geom is being withered. - * In that case we allow only negative requests. - */ - KASSERT(dr <= 0 && dw <= 0 && de <= 0, - ("Positive access request (device=%s).", pp->name)); - if ((pp->acr + dr) == 0 && (pp->acw + dw) == 0 && - (pp->ace + de) == 0) { - G_SHSEC_DEBUG(0, "Device %s definitely destroyed.", - gp->name); - } - return (0); - } - /* On first open, grab an extra "exclusive" bit */ if (pp->acr == 0 && pp->acw == 0 && pp->ace == 0) de++; @@ -221,21 +206,30 @@ g_shsec_access(struct g_provider *pp, int dr, int dw, de--; error = ENXIO; - LIST_FOREACH(cp1, &gp->consumer, consumer) { + LIST_FOREACH_SAFE(cp1, &gp->consumer, consumer, tmp) { error = g_access(cp1, dr, dw, de); - if (error == 0) - continue; - /* - * If we fail here, backout all previous changes. - */ - LIST_FOREACH(cp2, &gp->consumer, consumer) { - if (cp1 == cp2) - return (error); - g_access(cp2, -dr, -dw, -de); + if (error != 0) + goto fail; + if (cp1->acr == 0 && cp1->acw == 0 && cp1->ace == 0 && + cp1->flags & G_CF_ORPHAN) { + g_detach(cp1); + g_destroy_consumer(cp1); } - /* NOTREACHED */ } + /* If there are no valid disks anymore, remove device. */ + if (LIST_EMPTY(&gp->consumer)) + g_shsec_destroy(sc, 1); + + return (error); + +fail: + /* If we fail here, backout all previous changes. */ + LIST_FOREACH(cp2, &gp->consumer, consumer) { + if (cp1 == cp2) + break; + g_access(cp2, -dr, -dw, -de); + } return (error); } From owner-svn-src-stable@freebsd.org Fri Jan 10 00:45:53 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2079C1FE164; Fri, 10 Jan 2020 00:45:53 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v46900t6z3xQg; Fri, 10 Jan 2020 00:45:53 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EEDEE9CCF; Fri, 10 Jan 2020 00:45:52 +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 00A0jqMm017099; Fri, 10 Jan 2020 00:45:52 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0jqbN017098; Fri, 10 Jan 2020 00:45:52 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100045.00A0jqbN017098@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:45: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: r356583 - stable/11/sys/geom/shsec X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/shsec X-SVN-Commit-Revision: 356583 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:45:53 -0000 Author: mav Date: Fri Jan 10 00:45:52 2020 New Revision: 356583 URL: https://svnweb.freebsd.org/changeset/base/356583 Log: MFC r356162, r356182: Fix GEOM_SHSEC orphanization. Previous code closed and destroyed consumer even with I/O in progress. This patch postpones the destruction till the last close, identical to GEOM_STRIPE, since they seem to have common origin. Modified: stable/11/sys/geom/shsec/g_shsec.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/shsec/g_shsec.c ============================================================================== --- stable/11/sys/geom/shsec/g_shsec.c Fri Jan 10 00:45:27 2020 (r356582) +++ stable/11/sys/geom/shsec/g_shsec.c Fri Jan 10 00:45:52 2020 (r356583) @@ -162,7 +162,7 @@ g_shsec_remove_disk(struct g_consumer *cp) } if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) - g_access(cp, -cp->acr, -cp->acw, -cp->ace); + return; g_detach(cp); g_destroy_consumer(cp); } @@ -181,14 +181,14 @@ g_shsec_orphan(struct g_consumer *cp) g_shsec_remove_disk(cp); /* If there are no valid disks anymore, remove device. */ - if (g_shsec_nvalid(sc) == 0) + if (LIST_EMPTY(&gp->consumer)) g_shsec_destroy(sc, 1); } static int g_shsec_access(struct g_provider *pp, int dr, int dw, int de) { - struct g_consumer *cp1, *cp2; + struct g_consumer *cp1, *cp2, *tmp; struct g_shsec_softc *sc; struct g_geom *gp; int error; @@ -196,21 +196,6 @@ g_shsec_access(struct g_provider *pp, int dr, int dw, gp = pp->geom; sc = gp->softc; - if (sc == NULL) { - /* - * It looks like geom is being withered. - * In that case we allow only negative requests. - */ - KASSERT(dr <= 0 && dw <= 0 && de <= 0, - ("Positive access request (device=%s).", pp->name)); - if ((pp->acr + dr) == 0 && (pp->acw + dw) == 0 && - (pp->ace + de) == 0) { - G_SHSEC_DEBUG(0, "Device %s definitely destroyed.", - gp->name); - } - return (0); - } - /* On first open, grab an extra "exclusive" bit */ if (pp->acr == 0 && pp->acw == 0 && pp->ace == 0) de++; @@ -219,21 +204,30 @@ g_shsec_access(struct g_provider *pp, int dr, int dw, de--; error = ENXIO; - LIST_FOREACH(cp1, &gp->consumer, consumer) { + LIST_FOREACH_SAFE(cp1, &gp->consumer, consumer, tmp) { error = g_access(cp1, dr, dw, de); - if (error == 0) - continue; - /* - * If we fail here, backout all previous changes. - */ - LIST_FOREACH(cp2, &gp->consumer, consumer) { - if (cp1 == cp2) - return (error); - g_access(cp2, -dr, -dw, -de); + if (error != 0) + goto fail; + if (cp1->acr == 0 && cp1->acw == 0 && cp1->ace == 0 && + cp1->flags & G_CF_ORPHAN) { + g_detach(cp1); + g_destroy_consumer(cp1); } - /* NOTREACHED */ } + /* If there are no valid disks anymore, remove device. */ + if (LIST_EMPTY(&gp->consumer)) + g_shsec_destroy(sc, 1); + + return (error); + +fail: + /* If we fail here, backout all previous changes. */ + LIST_FOREACH(cp2, &gp->consumer, consumer) { + if (cp1 == cp2) + break; + g_access(cp2, -dr, -dw, -de); + } return (error); } From owner-svn-src-stable@freebsd.org Fri Jan 10 00:46:34 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 691D31FE1E3; Fri, 10 Jan 2020 00:46:34 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v46y27mTz3xXp; Fri, 10 Jan 2020 00:46:34 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 44AA79CD0; Fri, 10 Jan 2020 00:46:34 +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 00A0kYuL017195; Fri, 10 Jan 2020 00:46:34 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0kYi6017194; Fri, 10 Jan 2020 00:46:34 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100046.00A0kYi6017194@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:46:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356584 - stable/12/sys/geom/mountver X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/mountver X-SVN-Commit-Revision: 356584 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:46:34 -0000 Author: mav Date: Fri Jan 10 00:46:33 2020 New Revision: 356584 URL: https://svnweb.freebsd.org/changeset/base/356584 Log: MFC r356178: Fix GEOM_MOUNTVER orphanization. Previous code closed and detached consumer even with I/O still in progress. This patch adds locking and request counting to postpone the close till the last of running requests completes. Modified: stable/12/sys/geom/mountver/g_mountver.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/mountver/g_mountver.c ============================================================================== --- stable/12/sys/geom/mountver/g_mountver.c Fri Jan 10 00:45:52 2020 (r356583) +++ stable/12/sys/geom/mountver/g_mountver.c Fri Jan 10 00:46:33 2020 (r356584) @@ -84,14 +84,29 @@ struct g_class g_mountver_class = { }; static void +g_mountver_detach(void *arg, int flags __unused) +{ + struct g_consumer *cp = arg; + + g_topology_assert(); + if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) + g_access(cp, -cp->acr, -cp->acw, -cp->ace); + g_detach(cp); +} + +static void g_mountver_done(struct bio *bp) { + struct g_mountver_softc *sc; struct g_geom *gp; + struct g_consumer *cp; struct bio *pbp; + cp = bp->bio_from; + gp = cp->geom; if (bp->bio_error != ENXIO) { g_std_done(bp); - return; + goto done; } /* @@ -100,32 +115,45 @@ g_mountver_done(struct bio *bp) * gets called. To work around that, we have to queue requests * that failed with ENXIO, in order to send them later. */ - gp = bp->bio_from->geom; - pbp = bp->bio_parent; KASSERT(pbp->bio_to == LIST_FIRST(&gp->provider), ("parent request was for someone else")); g_destroy_bio(bp); pbp->bio_inbed++; g_mountver_queue(pbp); + +done: + sc = gp->softc; + mtx_lock(&sc->sc_mtx); + if (--cp->index == 0 && sc->sc_orphaned) + g_post_event(g_mountver_detach, cp, M_NOWAIT, NULL); + mtx_unlock(&sc->sc_mtx); } +/* + * Send the BIO down. The function is called with sc_mtx held to cover + * the race with orphan, but drops it before external calls. + */ static void -g_mountver_send(struct bio *bp) +g_mountver_send(struct g_geom *gp, struct bio *bp) { - struct g_geom *gp; + struct g_mountver_softc *sc = gp->softc; + struct g_consumer *cp; struct bio *cbp; - gp = bp->bio_to->geom; - + mtx_assert(&sc->sc_mtx, MA_OWNED); cbp = g_clone_bio(bp); if (cbp == NULL) { + mtx_unlock(&sc->sc_mtx); g_io_deliver(bp, ENOMEM); return; } + cp = LIST_FIRST(&gp->consumer); + cp->index++; + mtx_unlock(&sc->sc_mtx); cbp->bio_done = g_mountver_done; - g_io_request(cbp, LIST_FIRST(&gp->consumer)); + g_io_request(cbp, cp); } static void @@ -151,10 +179,12 @@ g_mountver_send_queued(struct g_geom *gp) sc = gp->softc; mtx_lock(&sc->sc_mtx); - while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL) { + while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL && !sc->sc_orphaned) { TAILQ_REMOVE(&sc->sc_queue, bp, bio_queue); G_MOUNTVER_LOGREQ(bp, "Sending queued request."); - g_mountver_send(bp); + /* sc_mtx is dropped inside */ + g_mountver_send(gp, bp); + mtx_lock(&sc->sc_mtx); } mtx_unlock(&sc->sc_mtx); } @@ -170,8 +200,10 @@ g_mountver_discard_queued(struct g_geom *gp) mtx_lock(&sc->sc_mtx); while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL) { TAILQ_REMOVE(&sc->sc_queue, bp, bio_queue); + mtx_unlock(&sc->sc_mtx); G_MOUNTVER_LOGREQ(bp, "Discarding queued request."); g_io_deliver(bp, ENXIO); + mtx_lock(&sc->sc_mtx); } mtx_unlock(&sc->sc_mtx); } @@ -191,7 +223,9 @@ g_mountver_start(struct bio *bp) * orphaning didn't happen yet. In that case, queue all subsequent * requests in order to maintain ordering. */ + mtx_lock(&sc->sc_mtx); if (sc->sc_orphaned || !TAILQ_EMPTY(&sc->sc_queue)) { + mtx_unlock(&sc->sc_mtx); if (sc->sc_shutting_down) { G_MOUNTVER_LOGREQ(bp, "Discarding request due to shutdown."); g_io_deliver(bp, ENXIO); @@ -203,7 +237,8 @@ g_mountver_start(struct bio *bp) g_mountver_send_queued(gp); } else { G_MOUNTVER_LOGREQ(bp, "Sending request."); - g_mountver_send(bp); + /* sc_mtx is dropped inside */ + g_mountver_send(gp, bp); } } @@ -465,14 +500,17 @@ static void g_mountver_orphan(struct g_consumer *cp) { struct g_mountver_softc *sc; + int done; g_topology_assert(); sc = cp->geom->softc; + mtx_lock(&sc->sc_mtx); sc->sc_orphaned = 1; - if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) - g_access(cp, -cp->acr, -cp->acw, -cp->ace); - g_detach(cp); + done = (cp->index == 0); + mtx_unlock(&sc->sc_mtx); + if (done) + g_mountver_detach(cp, 0); G_MOUNTVER_DEBUG(0, "%s is offline. Mount verification in progress.", sc->sc_provider_name); } @@ -570,8 +608,8 @@ g_mountver_taste(struct g_class *mp, struct g_provider return (NULL); } } - g_mountver_send_queued(gp); sc->sc_orphaned = 0; + g_mountver_send_queued(gp); G_MOUNTVER_DEBUG(0, "%s has completed mount verification.", sc->sc_provider_name); return (gp); From owner-svn-src-stable@freebsd.org Fri Jan 10 00:46:59 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A0F721FE260; Fri, 10 Jan 2020 00:46:59 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v47R3sPZz3xfs; Fri, 10 Jan 2020 00:46: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7FBC59CD2; Fri, 10 Jan 2020 00:46: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 00A0kxcn017267; Fri, 10 Jan 2020 00:46:59 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0kx33017266; Fri, 10 Jan 2020 00:46:59 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100046.00A0kx33017266@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:46: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: r356585 - stable/11/sys/geom/mountver X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/mountver X-SVN-Commit-Revision: 356585 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:46:59 -0000 Author: mav Date: Fri Jan 10 00:46:59 2020 New Revision: 356585 URL: https://svnweb.freebsd.org/changeset/base/356585 Log: MFC r356178: Fix GEOM_MOUNTVER orphanization. Previous code closed and detached consumer even with I/O still in progress. This patch adds locking and request counting to postpone the close till the last of running requests completes. Modified: stable/11/sys/geom/mountver/g_mountver.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/mountver/g_mountver.c ============================================================================== --- stable/11/sys/geom/mountver/g_mountver.c Fri Jan 10 00:46:33 2020 (r356584) +++ stable/11/sys/geom/mountver/g_mountver.c Fri Jan 10 00:46:59 2020 (r356585) @@ -82,14 +82,29 @@ struct g_class g_mountver_class = { }; static void +g_mountver_detach(void *arg, int flags __unused) +{ + struct g_consumer *cp = arg; + + g_topology_assert(); + if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) + g_access(cp, -cp->acr, -cp->acw, -cp->ace); + g_detach(cp); +} + +static void g_mountver_done(struct bio *bp) { + struct g_mountver_softc *sc; struct g_geom *gp; + struct g_consumer *cp; struct bio *pbp; + cp = bp->bio_from; + gp = cp->geom; if (bp->bio_error != ENXIO) { g_std_done(bp); - return; + goto done; } /* @@ -98,32 +113,45 @@ g_mountver_done(struct bio *bp) * gets called. To work around that, we have to queue requests * that failed with ENXIO, in order to send them later. */ - gp = bp->bio_from->geom; - pbp = bp->bio_parent; KASSERT(pbp->bio_to == LIST_FIRST(&gp->provider), ("parent request was for someone else")); g_destroy_bio(bp); pbp->bio_inbed++; g_mountver_queue(pbp); + +done: + sc = gp->softc; + mtx_lock(&sc->sc_mtx); + if (--cp->index == 0 && sc->sc_orphaned) + g_post_event(g_mountver_detach, cp, M_NOWAIT, NULL); + mtx_unlock(&sc->sc_mtx); } +/* + * Send the BIO down. The function is called with sc_mtx held to cover + * the race with orphan, but drops it before external calls. + */ static void -g_mountver_send(struct bio *bp) +g_mountver_send(struct g_geom *gp, struct bio *bp) { - struct g_geom *gp; + struct g_mountver_softc *sc = gp->softc; + struct g_consumer *cp; struct bio *cbp; - gp = bp->bio_to->geom; - + mtx_assert(&sc->sc_mtx, MA_OWNED); cbp = g_clone_bio(bp); if (cbp == NULL) { + mtx_unlock(&sc->sc_mtx); g_io_deliver(bp, ENOMEM); return; } + cp = LIST_FIRST(&gp->consumer); + cp->index++; + mtx_unlock(&sc->sc_mtx); cbp->bio_done = g_mountver_done; - g_io_request(cbp, LIST_FIRST(&gp->consumer)); + g_io_request(cbp, cp); } static void @@ -149,10 +177,12 @@ g_mountver_send_queued(struct g_geom *gp) sc = gp->softc; mtx_lock(&sc->sc_mtx); - while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL) { + while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL && !sc->sc_orphaned) { TAILQ_REMOVE(&sc->sc_queue, bp, bio_queue); G_MOUNTVER_LOGREQ(bp, "Sending queued request."); - g_mountver_send(bp); + /* sc_mtx is dropped inside */ + g_mountver_send(gp, bp); + mtx_lock(&sc->sc_mtx); } mtx_unlock(&sc->sc_mtx); } @@ -168,8 +198,10 @@ g_mountver_discard_queued(struct g_geom *gp) mtx_lock(&sc->sc_mtx); while ((bp = TAILQ_FIRST(&sc->sc_queue)) != NULL) { TAILQ_REMOVE(&sc->sc_queue, bp, bio_queue); + mtx_unlock(&sc->sc_mtx); G_MOUNTVER_LOGREQ(bp, "Discarding queued request."); g_io_deliver(bp, ENXIO); + mtx_lock(&sc->sc_mtx); } mtx_unlock(&sc->sc_mtx); } @@ -189,7 +221,9 @@ g_mountver_start(struct bio *bp) * orphaning didn't happen yet. In that case, queue all subsequent * requests in order to maintain ordering. */ + mtx_lock(&sc->sc_mtx); if (sc->sc_orphaned || !TAILQ_EMPTY(&sc->sc_queue)) { + mtx_unlock(&sc->sc_mtx); if (sc->sc_shutting_down) { G_MOUNTVER_LOGREQ(bp, "Discarding request due to shutdown."); g_io_deliver(bp, ENXIO); @@ -201,7 +235,8 @@ g_mountver_start(struct bio *bp) g_mountver_send_queued(gp); } else { G_MOUNTVER_LOGREQ(bp, "Sending request."); - g_mountver_send(bp); + /* sc_mtx is dropped inside */ + g_mountver_send(gp, bp); } } @@ -463,14 +498,17 @@ static void g_mountver_orphan(struct g_consumer *cp) { struct g_mountver_softc *sc; + int done; g_topology_assert(); sc = cp->geom->softc; + mtx_lock(&sc->sc_mtx); sc->sc_orphaned = 1; - if (cp->acr > 0 || cp->acw > 0 || cp->ace > 0) - g_access(cp, -cp->acr, -cp->acw, -cp->ace); - g_detach(cp); + done = (cp->index == 0); + mtx_unlock(&sc->sc_mtx); + if (done) + g_mountver_detach(cp, 0); G_MOUNTVER_DEBUG(0, "%s is offline. Mount verification in progress.", sc->sc_provider_name); } @@ -568,8 +606,8 @@ g_mountver_taste(struct g_class *mp, struct g_provider return (NULL); } } - g_mountver_send_queued(gp); sc->sc_orphaned = 0; + g_mountver_send_queued(gp); G_MOUNTVER_DEBUG(0, "%s has completed mount verification.", sc->sc_provider_name); return (gp); From owner-svn-src-stable@freebsd.org Fri Jan 10 00:47:38 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 421A41FE30C; Fri, 10 Jan 2020 00:47:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v48B14Vdz3xnJ; Fri, 10 Jan 2020 00:47: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2044E9CD5; Fri, 10 Jan 2020 00:47:38 +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 00A0lcoO017357; Fri, 10 Jan 2020 00:47:38 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0lbe9017356; Fri, 10 Jan 2020 00:47:37 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100047.00A0lbe9017356@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:47:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356586 - stable/12/sys/geom/virstor X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom/virstor X-SVN-Commit-Revision: 356586 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:47:38 -0000 Author: mav Date: Fri Jan 10 00:47:37 2020 New Revision: 356586 URL: https://svnweb.freebsd.org/changeset/base/356586 Log: MFC r356181: Fix GEOM_VIRSTOR orphanization. Previous code closed and destroyed consumer even with I/O in progress. This patch postpones the destruction till the last close. Modified: stable/12/sys/geom/virstor/g_virstor.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/virstor/g_virstor.c ============================================================================== --- stable/12/sys/geom/virstor/g_virstor.c Fri Jan 10 00:46:59 2020 (r356585) +++ stable/12/sys/geom/virstor/g_virstor.c Fri Jan 10 00:47:37 2020 (r356586) @@ -908,7 +908,7 @@ remove_component(struct g_virstor_softc *sc, struct g_ } if (c->acr > 0 || c->acw > 0 || c->ace > 0) - g_access(c, -c->acr, -c->acw, -c->ace); + return; if (delay) { /* Destroy consumer after it's tasted */ g_post_event(delay_destroy_consumer, c, M_WAITOK, NULL); @@ -1399,7 +1399,7 @@ g_virstor_orphan(struct g_consumer *cp) KASSERT(comp != NULL, ("%s: No component in private part of consumer", __func__)); remove_component(sc, comp, FALSE); - if (virstor_valid_components(sc) == 0) + if (LIST_EMPTY(&gp->consumer)) virstor_geom_destroy(sc, TRUE, FALSE); } @@ -1409,7 +1409,7 @@ g_virstor_orphan(struct g_consumer *cp) static int g_virstor_access(struct g_provider *pp, int dr, int dw, int de) { - struct g_consumer *c; + struct g_consumer *c, *c2, *tmp; struct g_virstor_softc *sc; struct g_geom *gp; int error; @@ -1419,46 +1419,40 @@ g_virstor_access(struct g_provider *pp, int dr, int dw KASSERT(gp != NULL, ("%s: NULL geom", __func__)); sc = gp->softc; - if (sc == NULL) { - /* It seems that .access can be called with negative dr,dw,dx - * in this case but I want to check for myself */ - LOG_MSG(LVL_WARNING, "access(%d, %d, %d) for %s", - dr, dw, de, pp->name); - /* This should only happen when geom is withered so - * allow only negative requests */ - KASSERT(dr <= 0 && dw <= 0 && de <= 0, - ("%s: Positive access for %s", __func__, pp->name)); - if (pp->acr + dr == 0 && pp->acw + dw == 0 && pp->ace + de == 0) - LOG_MSG(LVL_DEBUG, "Device %s definitely destroyed", - pp->name); - return (0); - } - /* Grab an exclusive bit to propagate on our consumers on first open */ if (pp->acr == 0 && pp->acw == 0 && pp->ace == 0) de++; /* ... drop it on close */ if (pp->acr + dr == 0 && pp->acw + dw == 0 && pp->ace + de == 0) { de--; - update_metadata(sc); /* Writes statistical information */ + if (sc != NULL) + update_metadata(sc); } error = ENXIO; - LIST_FOREACH(c, &gp->consumer, consumer) { - KASSERT(c != NULL, ("%s: consumer is NULL", __func__)); + LIST_FOREACH_SAFE(c, &gp->consumer, consumer, tmp) { error = g_access(c, dr, dw, de); - if (error != 0) { - struct g_consumer *c2; - - /* Backout earlier changes */ - LIST_FOREACH(c2, &gp->consumer, consumer) { - if (c2 == c) /* all eariler components fixed */ - return (error); - g_access(c2, -dr, -dw, -de); - } + if (error != 0) + goto fail; + if (c->acr == 0 && c->acw == 0 && c->ace == 0 && + c->flags & G_CF_ORPHAN) { + g_detach(c); + g_destroy_consumer(c); } } + if (sc != NULL && LIST_EMPTY(&gp->consumer)) + virstor_geom_destroy(sc, TRUE, FALSE); + + return (error); + +fail: + /* Backout earlier changes */ + LIST_FOREACH(c2, &gp->consumer, consumer) { + if (c2 == c) + break; + g_access(c2, -dr, -dw, -de); + } return (error); } From owner-svn-src-stable@freebsd.org Fri Jan 10 00:48:01 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 947631FE37F; Fri, 10 Jan 2020 00:48:01 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v48d2xCnz3xvL; Fri, 10 Jan 2020 00:48:01 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5FB089CD6; Fri, 10 Jan 2020 00:48:01 +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 00A0m1Eu017433; Fri, 10 Jan 2020 00:48:01 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0m1rF017432; Fri, 10 Jan 2020 00:48:01 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100048.00A0m1rF017432@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:48:01 +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: r356587 - stable/11/sys/geom/virstor X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom/virstor X-SVN-Commit-Revision: 356587 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:48:01 -0000 Author: mav Date: Fri Jan 10 00:48:00 2020 New Revision: 356587 URL: https://svnweb.freebsd.org/changeset/base/356587 Log: MFC r356181: Fix GEOM_VIRSTOR orphanization. Previous code closed and destroyed consumer even with I/O in progress. This patch postpones the destruction till the last close. Modified: stable/11/sys/geom/virstor/g_virstor.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/virstor/g_virstor.c ============================================================================== --- stable/11/sys/geom/virstor/g_virstor.c Fri Jan 10 00:47:37 2020 (r356586) +++ stable/11/sys/geom/virstor/g_virstor.c Fri Jan 10 00:48:00 2020 (r356587) @@ -906,7 +906,7 @@ remove_component(struct g_virstor_softc *sc, struct g_ } if (c->acr > 0 || c->acw > 0 || c->ace > 0) - g_access(c, -c->acr, -c->acw, -c->ace); + return; if (delay) { /* Destroy consumer after it's tasted */ g_post_event(delay_destroy_consumer, c, M_WAITOK, NULL); @@ -1397,7 +1397,7 @@ g_virstor_orphan(struct g_consumer *cp) KASSERT(comp != NULL, ("%s: No component in private part of consumer", __func__)); remove_component(sc, comp, FALSE); - if (virstor_valid_components(sc) == 0) + if (LIST_EMPTY(&gp->consumer)) virstor_geom_destroy(sc, TRUE, FALSE); } @@ -1407,7 +1407,7 @@ g_virstor_orphan(struct g_consumer *cp) static int g_virstor_access(struct g_provider *pp, int dr, int dw, int de) { - struct g_consumer *c; + struct g_consumer *c, *c2, *tmp; struct g_virstor_softc *sc; struct g_geom *gp; int error; @@ -1417,46 +1417,40 @@ g_virstor_access(struct g_provider *pp, int dr, int dw KASSERT(gp != NULL, ("%s: NULL geom", __func__)); sc = gp->softc; - if (sc == NULL) { - /* It seems that .access can be called with negative dr,dw,dx - * in this case but I want to check for myself */ - LOG_MSG(LVL_WARNING, "access(%d, %d, %d) for %s", - dr, dw, de, pp->name); - /* This should only happen when geom is withered so - * allow only negative requests */ - KASSERT(dr <= 0 && dw <= 0 && de <= 0, - ("%s: Positive access for %s", __func__, pp->name)); - if (pp->acr + dr == 0 && pp->acw + dw == 0 && pp->ace + de == 0) - LOG_MSG(LVL_DEBUG, "Device %s definitely destroyed", - pp->name); - return (0); - } - /* Grab an exclusive bit to propagate on our consumers on first open */ if (pp->acr == 0 && pp->acw == 0 && pp->ace == 0) de++; /* ... drop it on close */ if (pp->acr + dr == 0 && pp->acw + dw == 0 && pp->ace + de == 0) { de--; - update_metadata(sc); /* Writes statistical information */ + if (sc != NULL) + update_metadata(sc); } error = ENXIO; - LIST_FOREACH(c, &gp->consumer, consumer) { - KASSERT(c != NULL, ("%s: consumer is NULL", __func__)); + LIST_FOREACH_SAFE(c, &gp->consumer, consumer, tmp) { error = g_access(c, dr, dw, de); - if (error != 0) { - struct g_consumer *c2; - - /* Backout earlier changes */ - LIST_FOREACH(c2, &gp->consumer, consumer) { - if (c2 == c) /* all eariler components fixed */ - return (error); - g_access(c2, -dr, -dw, -de); - } + if (error != 0) + goto fail; + if (c->acr == 0 && c->acw == 0 && c->ace == 0 && + c->flags & G_CF_ORPHAN) { + g_detach(c); + g_destroy_consumer(c); } } + if (sc != NULL && LIST_EMPTY(&gp->consumer)) + virstor_geom_destroy(sc, TRUE, FALSE); + + return (error); + +fail: + /* Backout earlier changes */ + LIST_FOREACH(c2, &gp->consumer, consumer) { + if (c2 == c) + break; + g_access(c2, -dr, -dw, -de); + } return (error); } From owner-svn-src-stable@freebsd.org Fri Jan 10 00:53:21 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 871F41FE68F; Fri, 10 Jan 2020 00:53:21 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v4Gn34wWz3yLp; Fri, 10 Jan 2020 00:53:21 +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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6520E9EA0; Fri, 10 Jan 2020 00:53:21 +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 00A0rLoR023441; Fri, 10 Jan 2020 00:53:21 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0rLsb023440; Fri, 10 Jan 2020 00:53:21 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100053.00A0rLsb023440@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:53:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356588 - stable/12/sys/geom X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/geom X-SVN-Commit-Revision: 356588 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:53:21 -0000 Author: mav Date: Fri Jan 10 00:53:20 2020 New Revision: 356588 URL: https://svnweb.freebsd.org/changeset/base/356588 Log: MFC r356214: Avoid few memory accesses in g_disk_done(). Modified: stable/12/sys/geom/geom_disk.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/geom/geom_disk.c ============================================================================== --- stable/12/sys/geom/geom_disk.c Fri Jan 10 00:48:00 2020 (r356587) +++ stable/12/sys/geom/geom_disk.c Fri Jan 10 00:53:20 2020 (r356588) @@ -66,6 +66,7 @@ __FBSDID("$FreeBSD$"); struct g_disk_softc { struct mtx done_mtx; struct disk *dp; + struct devstat *d_devstat; struct sysctl_ctx_list sysctl_ctx; struct sysctl_oid *sysctl_tree; char led[64]; @@ -232,15 +233,13 @@ g_disk_done(struct bio *bp) struct g_disk_softc *sc; /* See "notes" for why we need a mutex here */ - /* XXX: will witness accept a mix of Giant/unGiant drivers here ? */ + sc = bp->bio_caller1; bp2 = bp->bio_parent; - sc = bp2->bio_to->private; - bp->bio_completed = bp->bio_length - bp->bio_resid; binuptime(&now); mtx_lock(&sc->done_mtx); if (bp2->bio_error == 0) bp2->bio_error = bp->bio_error; - bp2->bio_completed += bp->bio_completed; + bp2->bio_completed += bp->bio_length - bp->bio_resid; switch (bp->bio_cmd) { case BIO_ZONE: @@ -250,7 +249,7 @@ g_disk_done(struct bio *bp) case BIO_WRITE: case BIO_DELETE: case BIO_FLUSH: - devstat_end_transaction_bio_bt(sc->dp->d_devstat, bp, &now); + devstat_end_transaction_bio_bt(sc->d_devstat, bp, &now); break; default: break; @@ -470,6 +469,7 @@ g_disk_start(struct bio *bp) bp->bio_error = ENOMEM; } bp2->bio_done = g_disk_done; + bp2->bio_caller1 = sc; bp2->bio_pblkno = bp2->bio_offset / dp->d_sectorsize; bp2->bio_bcount = bp2->bio_length; bp2->bio_disk = dp; @@ -555,6 +555,7 @@ g_disk_start(struct bio *bp) return; } bp2->bio_done = g_disk_done; + bp2->bio_caller1 = sc; bp2->bio_disk = dp; mtx_lock(&sc->start_mtx); devstat_start_transaction_bio(dp->d_devstat, bp2); @@ -709,6 +710,7 @@ g_disk_create(void *arg, int flag) mtx_init(&sc->start_mtx, "g_disk_start", NULL, MTX_DEF); mtx_init(&sc->done_mtx, "g_disk_done", NULL, MTX_DEF); sc->dp = dp; + sc->d_devstat = dp->d_devstat; gp = g_new_geomf(&g_disk_class, "%s%d", dp->d_name, dp->d_unit); gp->softc = sc; LIST_FOREACH(dap, &dp->d_aliases, da_next) { From owner-svn-src-stable@freebsd.org Fri Jan 10 00:55:38 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1EA661FE71F; Fri, 10 Jan 2020 00:55:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v4KQ04Nyz3yTv; Fri, 10 Jan 2020 00:55: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 mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F1F0A9EA5; Fri, 10 Jan 2020 00:55: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 00A0tbl1023632; Fri, 10 Jan 2020 00:55:37 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A0tbxv023631; Fri, 10 Jan 2020 00:55:37 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001100055.00A0tbxv023631@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 10 Jan 2020 00:55: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: r356589 - stable/11/sys/geom X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/geom X-SVN-Commit-Revision: 356589 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 00:55:38 -0000 Author: mav Date: Fri Jan 10 00:55:37 2020 New Revision: 356589 URL: https://svnweb.freebsd.org/changeset/base/356589 Log: MFC r356214: Avoid few memory accesses in g_disk_done(). Modified: stable/11/sys/geom/geom_disk.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/geom/geom_disk.c ============================================================================== --- stable/11/sys/geom/geom_disk.c Fri Jan 10 00:53:20 2020 (r356588) +++ stable/11/sys/geom/geom_disk.c Fri Jan 10 00:55:37 2020 (r356589) @@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$"); struct g_disk_softc { struct mtx done_mtx; struct disk *dp; + struct devstat *d_devstat; struct sysctl_ctx_list sysctl_ctx; struct sysctl_oid *sysctl_tree; char led[64]; @@ -228,15 +229,13 @@ g_disk_done(struct bio *bp) struct g_disk_softc *sc; /* See "notes" for why we need a mutex here */ - /* XXX: will witness accept a mix of Giant/unGiant drivers here ? */ + sc = bp->bio_caller1; bp2 = bp->bio_parent; - sc = bp2->bio_to->private; - bp->bio_completed = bp->bio_length - bp->bio_resid; binuptime(&now); mtx_lock(&sc->done_mtx); if (bp2->bio_error == 0) bp2->bio_error = bp->bio_error; - bp2->bio_completed += bp->bio_completed; + bp2->bio_completed += bp->bio_length - bp->bio_resid; switch (bp->bio_cmd) { case BIO_ZONE: @@ -246,7 +245,7 @@ g_disk_done(struct bio *bp) case BIO_WRITE: case BIO_DELETE: case BIO_FLUSH: - devstat_end_transaction_bio_bt(sc->dp->d_devstat, bp, &now); + devstat_end_transaction_bio_bt(sc->d_devstat, bp, &now); break; default: break; @@ -463,6 +462,7 @@ g_disk_start(struct bio *bp) bp->bio_error = ENOMEM; } bp2->bio_done = g_disk_done; + bp2->bio_caller1 = sc; bp2->bio_pblkno = bp2->bio_offset / dp->d_sectorsize; bp2->bio_bcount = bp2->bio_length; bp2->bio_disk = dp; @@ -548,6 +548,7 @@ g_disk_start(struct bio *bp) return; } bp2->bio_done = g_disk_done; + bp2->bio_caller1 = sc; bp2->bio_disk = dp; mtx_lock(&sc->start_mtx); devstat_start_transaction_bio(dp->d_devstat, bp2); @@ -702,6 +703,7 @@ g_disk_create(void *arg, int flag) mtx_init(&sc->start_mtx, "g_disk_start", NULL, MTX_DEF); mtx_init(&sc->done_mtx, "g_disk_done", NULL, MTX_DEF); sc->dp = dp; + sc->d_devstat = dp->d_devstat; gp = g_new_geomf(&g_disk_class, "%s%d", dp->d_name, dp->d_unit); gp->softc = sc; pp = g_new_providerf(gp, "%s", gp->name); From owner-svn-src-stable@freebsd.org Fri Jan 10 03:37:53 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6993822267D; Fri, 10 Jan 2020 03:37:53 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v7wd2bm2z46fL; Fri, 10 Jan 2020 03:37:53 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5457EBDBF; Fri, 10 Jan 2020 03:37:53 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A3braF020400; Fri, 10 Jan 2020 03:37:53 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A3bq5u020396; Fri, 10 Jan 2020 03:37:52 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001100337.00A3bq5u020396@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 03:37: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: r356593 - in stable: 11/lib/libbe 11/sbin/bectl/tests 12/lib/libbe 12/sbin/bectl/tests X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libbe 11/sbin/bectl/tests 12/lib/libbe 12/sbin/bectl/tests X-SVN-Commit-Revision: 356593 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 03:37:53 -0000 Author: kevans Date: Fri Jan 10 03:37:52 2020 New Revision: 356593 URL: https://svnweb.freebsd.org/changeset/base/356593 Log: MFC r356279: libbe(3): promote dependent clones when destroying a BE When removing a boot environment iterate over the dependents and process the snapshots by grabbing any clones. Promote the clones we found and then remove the target environment. This fixes the ability to destroy a boot environment when it has been used to spawn one or more other boot environments. PR: 242592 Modified: stable/11/lib/libbe/be.c stable/11/lib/libbe/be.h stable/11/lib/libbe/be_error.c stable/11/sbin/bectl/tests/bectl_test.sh Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/lib/libbe/be.c stable/12/lib/libbe/be.h stable/12/lib/libbe/be_error.c stable/12/sbin/bectl/tests/bectl_test.sh Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/libbe/be.c ============================================================================== --- stable/11/lib/libbe/be.c Fri Jan 10 03:17:28 2020 (r356592) +++ stable/11/lib/libbe/be.c Fri Jan 10 03:37:52 2020 (r356593) @@ -33,7 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include #include - +#include #include #include @@ -48,9 +48,16 @@ __FBSDID("$FreeBSD$"); #include "be.h" #include "be_impl.h" +struct promote_entry { + char name[BE_MAXPATHLEN]; + SLIST_ENTRY(promote_entry) link; +}; + struct be_destroy_data { - libbe_handle_t *lbh; - char *snapname; + libbe_handle_t *lbh; + char target_name[BE_MAXPATHLEN]; + char *snapname; + SLIST_HEAD(, promote_entry) promotelist; }; #if SOON @@ -194,7 +201,153 @@ be_nicenum(uint64_t num, char *buf, size_t buflen) zfs_nicenum(num, buf, buflen); } +static bool +be_should_promote_clones(zfs_handle_t *zfs_hdl, struct be_destroy_data *bdd) +{ + char *atpos; + + if (zfs_get_type(zfs_hdl) != ZFS_TYPE_SNAPSHOT) + return (false); + + /* + * If we're deleting a snapshot, we need to make sure we only promote + * clones that are derived from one of the snapshots we're deleting, + * rather than that of a snapshot we're not touching. This keeps stuff + * in a consistent state, making sure that we don't error out unless + * we really need to. + */ + if (bdd->snapname == NULL) + return (true); + + atpos = strchr(zfs_get_name(zfs_hdl), '@'); + return (strcmp(atpos + 1, bdd->snapname) == 0); +} + +/* + * This is executed from be_promote_dependent_clones via zfs_iter_dependents, + * It checks if the dependent type is a snapshot then attempts to find any + * clones associated with it. Any clones not related to the destroy target are + * added to the promote list. + */ static int +be_dependent_clone_cb(zfs_handle_t *zfs_hdl, void *data) +{ + int err; + bool found; + char *name; + struct nvlist *nvl; + struct nvpair *nvp; + struct be_destroy_data *bdd; + struct promote_entry *entry, *newentry; + + nvp = NULL; + err = 0; + bdd = (struct be_destroy_data *)data; + + if (be_should_promote_clones(zfs_hdl, bdd) && + (nvl = zfs_get_clones_nvl(zfs_hdl)) != NULL) { + while ((nvp = nvlist_next_nvpair(nvl, nvp)) != NULL) { + name = nvpair_name(nvp); + + /* + * Skip if the clone is equal to, or a child of, the + * destroy target. + */ + if (strncmp(name, bdd->target_name, + strlen(bdd->target_name)) == 0 || + strstr(name, bdd->target_name) == name) { + continue; + } + + found = false; + SLIST_FOREACH(entry, &bdd->promotelist, link) { + if (strcmp(entry->name, name) == 0) { + found = true; + break; + } + } + + if (found) + continue; + + newentry = malloc(sizeof(struct promote_entry)); + if (newentry == NULL) { + err = ENOMEM; + break; + } + +#define BE_COPY_NAME(entry, src) \ + strlcpy((entry)->name, (src), sizeof((entry)->name)) + if (BE_COPY_NAME(newentry, name) >= + sizeof(newentry->name)) { + /* Shouldn't happen. */ + free(newentry); + err = ENAMETOOLONG; + break; + } +#undef BE_COPY_NAME + + /* + * We're building up a SLIST here to make sure both that + * we get the order right and so that we don't + * inadvertently observe the wrong state by promoting + * datasets while we're still walking the tree. The + * latter can lead to situations where we promote a BE + * then effectively demote it again. + */ + SLIST_INSERT_HEAD(&bdd->promotelist, newentry, link); + } + nvlist_free(nvl); + } + zfs_close(zfs_hdl); + return (err); +} + +/* + * This is called before a destroy, so that any datasets(environments) that are + * dependent on this one get promoted before destroying the target. + */ +static int +be_promote_dependent_clones(zfs_handle_t *zfs_hdl, struct be_destroy_data *bdd) +{ + int err; + zfs_handle_t *clone; + struct promote_entry *entry; + + snprintf(bdd->target_name, BE_MAXPATHLEN, "%s/", zfs_get_name(zfs_hdl)); + err = zfs_iter_dependents(zfs_hdl, true, be_dependent_clone_cb, bdd); + + /* + * Drain the list and walk away from it if we're only deleting a + * snapshot. + */ + if (bdd->snapname != NULL && !SLIST_EMPTY(&bdd->promotelist)) + err = BE_ERR_HASCLONES; + while (!SLIST_EMPTY(&bdd->promotelist)) { + entry = SLIST_FIRST(&bdd->promotelist); + SLIST_REMOVE_HEAD(&bdd->promotelist, link); + +#define ZFS_GRAB_CLONE() \ + zfs_open(bdd->lbh->lzh, entry->name, ZFS_TYPE_FILESYSTEM) + /* + * Just skip this part on error, we still want to clean up the + * promotion list after the first error. We'll then preserve it + * all the way back. + */ + if (err == 0 && (clone = ZFS_GRAB_CLONE()) != NULL) { + err = zfs_promote(clone); + if (err != 0) + err = BE_ERR_DESTROYMNT; + zfs_close(clone); + } +#undef ZFS_GRAB_CLONE + free(entry); + } + + return (err); +} + +static int be_destroy_cb(zfs_handle_t *zfs_hdl, void *data) { char path[BE_MAXPATHLEN]; @@ -239,8 +392,9 @@ be_destroy_cb(zfs_handle_t *zfs_hdl, void *data) * BE_DESTROY_FORCE : forces operation on mounted datasets * BE_DESTROY_ORIGIN: destroy the origin snapshot as well */ -int -be_destroy(libbe_handle_t *lbh, const char *name, int options) +static int +be_destroy_internal(libbe_handle_t *lbh, const char *name, int options, + bool odestroyer) { struct be_destroy_data bdd; char origin[BE_MAXPATHLEN], path[BE_MAXPATHLEN]; @@ -251,6 +405,7 @@ be_destroy(libbe_handle_t *lbh, const char *name, int bdd.lbh = lbh; bdd.snapname = NULL; + SLIST_INIT(&bdd.promotelist); force = options & BE_DESTROY_FORCE; *origin = '\0'; @@ -268,25 +423,6 @@ be_destroy(libbe_handle_t *lbh, const char *name, int if (fs == NULL) return (set_error(lbh, BE_ERR_ZFSOPEN)); - if ((options & BE_DESTROY_WANTORIGIN) != 0 && - zfs_prop_get(fs, ZFS_PROP_ORIGIN, origin, sizeof(origin), - NULL, NULL, 0, 1) != 0 && - (options & BE_DESTROY_ORIGIN) != 0) - return (set_error(lbh, BE_ERR_NOORIGIN)); - - /* - * If the caller wants auto-origin destruction and the origin - * name matches one of our automatically created snapshot names - * (i.e. strftime("%F-%T") with a serial at the end), then - * we'll set the DESTROY_ORIGIN flag and nuke it - * be_is_auto_snapshot_name is exported from libbe(3) so that - * the caller can determine if it needs to warn about the origin - * not being destroyed or not. - */ - if ((options & BE_DESTROY_AUTOORIGIN) != 0 && *origin != '\0' && - be_is_auto_snapshot_name(lbh, origin)) - options |= BE_DESTROY_ORIGIN; - /* Don't destroy a mounted dataset unless force is specified */ if ((mounted = zfs_is_mounted(fs, NULL)) != 0) { if (force) { @@ -297,6 +433,14 @@ be_destroy(libbe_handle_t *lbh, const char *name, int } } } else { + /* + * If we're initially destroying a snapshot, origin options do + * not make sense. If we're destroying the origin snapshot of + * a BE, we want to maintain the options in case we need to + * fake success after failing to promote. + */ + if (!odestroyer) + options &= ~BE_DESTROY_WANTORIGIN; if (!zfs_dataset_exists(lbh->lzh, path, ZFS_TYPE_SNAPSHOT)) return (set_error(lbh, BE_ERR_NOENT)); @@ -311,6 +455,49 @@ be_destroy(libbe_handle_t *lbh, const char *name, int } } + /* + * Whether we're destroying a BE or a single snapshot, we need to walk + * the tree of what we're going to destroy and promote everything in our + * path so that we can make it happen. + */ + if ((err = be_promote_dependent_clones(fs, &bdd)) != 0) { + free(bdd.snapname); + + /* + * If we're just destroying the origin of some other dataset + * we were invoked to destroy, then we just ignore + * BE_ERR_HASCLONES and return success unless the caller wanted + * to force the issue. + */ + if (odestroyer && err == BE_ERR_HASCLONES && + (options & BE_DESTROY_AUTOORIGIN) != 0) + return (0); + return (set_error(lbh, err)); + } + + /* + * This was deferred until after we promote all of the derivatives so + * that we grab the new origin after everything's settled down. + */ + if ((options & BE_DESTROY_WANTORIGIN) != 0 && + zfs_prop_get(fs, ZFS_PROP_ORIGIN, origin, sizeof(origin), + NULL, NULL, 0, 1) != 0 && + (options & BE_DESTROY_ORIGIN) != 0) + return (set_error(lbh, BE_ERR_NOORIGIN)); + + /* + * If the caller wants auto-origin destruction and the origin + * name matches one of our automatically created snapshot names + * (i.e. strftime("%F-%T") with a serial at the end), then + * we'll set the DESTROY_ORIGIN flag and nuke it + * be_is_auto_snapshot_name is exported from libbe(3) so that + * the caller can determine if it needs to warn about the origin + * not being destroyed or not. + */ + if ((options & BE_DESTROY_AUTOORIGIN) != 0 && *origin != '\0' && + be_is_auto_snapshot_name(lbh, origin)) + options |= BE_DESTROY_ORIGIN; + err = be_destroy_cb(fs, &bdd); zfs_close(fs); free(bdd.snapname); @@ -337,8 +524,23 @@ be_destroy(libbe_handle_t *lbh, const char *name, int if (strncmp(origin, lbh->root, rootlen) != 0 || origin[rootlen] != '/') return (0); - return (be_destroy(lbh, origin + rootlen + 1, - options & ~BE_DESTROY_ORIGIN)); + return (be_destroy_internal(lbh, origin + rootlen + 1, + options & ~BE_DESTROY_ORIGIN, true)); +} + +int +be_destroy(libbe_handle_t *lbh, const char *name, int options) +{ + + /* + * The consumer must not set both BE_DESTROY_AUTOORIGIN and + * BE_DESTROY_ORIGIN. Internally, we'll set the latter from the former. + * The latter should imply that we must succeed at destroying the + * origin, or complain otherwise. + */ + if ((options & BE_DESTROY_WANTORIGIN) == BE_DESTROY_WANTORIGIN) + return (set_error(lbh, BE_ERR_UNKNOWN)); + return (be_destroy_internal(lbh, name, options, false)); } static void Modified: stable/11/lib/libbe/be.h ============================================================================== --- stable/11/lib/libbe/be.h Fri Jan 10 03:17:28 2020 (r356592) +++ stable/11/lib/libbe/be.h Fri Jan 10 03:37:52 2020 (r356593) @@ -60,6 +60,7 @@ typedef enum be_error { BE_ERR_NOMEM, /* insufficient memory */ BE_ERR_UNKNOWN, /* unknown error */ BE_ERR_INVORIGIN, /* invalid origin */ + BE_ERR_HASCLONES, /* snapshot has clones */ } be_error_t; Modified: stable/11/lib/libbe/be_error.c ============================================================================== --- stable/11/lib/libbe/be_error.c Fri Jan 10 03:17:28 2020 (r356592) +++ stable/11/lib/libbe/be_error.c Fri Jan 10 03:37:52 2020 (r356593) @@ -108,6 +108,9 @@ libbe_error_description(libbe_handle_t *lbh) case BE_ERR_INVORIGIN: return ("invalid origin"); + case BE_ERR_HASCLONES: + return ("snapshot has clones"); + default: assert(lbh->error == BE_ERR_SUCCESS); return ("no error"); Modified: stable/11/sbin/bectl/tests/bectl_test.sh ============================================================================== --- stable/11/sbin/bectl/tests/bectl_test.sh Fri Jan 10 03:17:28 2020 (r356592) +++ stable/11/sbin/bectl/tests/bectl_test.sh Fri Jan 10 03:37:52 2020 (r356593) @@ -162,6 +162,51 @@ bectl_destroy_body() atf_check bectl -r ${zpool}/ROOT create -e default default3 atf_check bectl -r ${zpool}/ROOT destroy -o default3 atf_check bectl -r ${zpool}/ROOT unmount default + + # create two be from the same parent and destroy the parent + atf_check bectl -r ${zpool}/ROOT create -e default default2 + atf_check bectl -r ${zpool}/ROOT create -e default default3 + atf_check bectl -r ${zpool}/ROOT destroy default + atf_check bectl -r ${zpool}/ROOT destroy default2 + atf_check bectl -r ${zpool}/ROOT rename default3 default + + # Create a BE, have it be the parent for another and repeat, then start + # deleting environments. Arbitrarily chose default3 as the first. + # Sleeps are required to prevent conflicting snapshots- libbe will + # use the time with a serial at the end as needed to prevent collisions, + # but as BEs get promoted the snapshot names will convert and conflict + # anyways. libbe should perhaps consider adding something extra to the + # default name to prevent collisions like this, but the default name + # includes down to the second and creating BEs this rapidly is perhaps + # uncommon enough. + atf_check bectl -r ${zpool}/ROOT create -e default default2 + sleep 1 + atf_check bectl -r ${zpool}/ROOT create -e default2 default3 + sleep 1 + atf_check bectl -r ${zpool}/ROOT create -e default3 default4 + atf_check bectl -r ${zpool}/ROOT destroy default3 + atf_check bectl -r ${zpool}/ROOT destroy default2 + atf_check bectl -r ${zpool}/ROOT destroy default4 + + # Create two BEs, then create an unrelated snapshot on the originating + # BE and destroy it. We shouldn't have promoted the second BE, and it's + # only possible to tell if we promoted it by making sure we didn't + # demote the first BE at some point -- if we did, it's origin will no + # longer be empty. + atf_check bectl -r ${zpool}/ROOT create -e default default2 + atf_check bectl -r ${zpool}/ROOT create default@test + + atf_check bectl -r ${zpool}/ROOT destroy default@test + atf_check -o inline:"-\n" zfs get -Ho value origin ${zpool}/ROOT/default + atf_check bectl -r ${zpool}/ROOT destroy default2 + + # As observed by beadm, if we explicitly try to destroy a snapshot that + # leads to clones, we shouldn't have allowed it. + atf_check bectl -r ${zpool}/ROOT create default@test + atf_check bectl -r ${zpool}/ROOT create -e default@test default2 + + atf_check -e not-empty -s not-exit:0 bectl -r ${zpool}/ROOT destroy \ + default@test } bectl_destroy_cleanup() { From owner-svn-src-stable@freebsd.org Fri Jan 10 03:37:54 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 51431222685; Fri, 10 Jan 2020 03:37:54 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v7wf2D59z46fP; Fri, 10 Jan 2020 03:37:54 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 47416BDC0; Fri, 10 Jan 2020 03:37:54 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A3bsKT020410; Fri, 10 Jan 2020 03:37:54 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A3brcY020405; Fri, 10 Jan 2020 03:37:53 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001100337.00A3brcY020405@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 03:37:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356593 - in stable: 11/lib/libbe 11/sbin/bectl/tests 12/lib/libbe 12/sbin/bectl/tests X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libbe 11/sbin/bectl/tests 12/lib/libbe 12/sbin/bectl/tests X-SVN-Commit-Revision: 356593 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 03:37:54 -0000 Author: kevans Date: Fri Jan 10 03:37:52 2020 New Revision: 356593 URL: https://svnweb.freebsd.org/changeset/base/356593 Log: MFC r356279: libbe(3): promote dependent clones when destroying a BE When removing a boot environment iterate over the dependents and process the snapshots by grabbing any clones. Promote the clones we found and then remove the target environment. This fixes the ability to destroy a boot environment when it has been used to spawn one or more other boot environments. PR: 242592 Modified: stable/12/lib/libbe/be.c stable/12/lib/libbe/be.h stable/12/lib/libbe/be_error.c stable/12/sbin/bectl/tests/bectl_test.sh Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libbe/be.c stable/11/lib/libbe/be.h stable/11/lib/libbe/be_error.c stable/11/sbin/bectl/tests/bectl_test.sh Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libbe/be.c ============================================================================== --- stable/12/lib/libbe/be.c Fri Jan 10 03:17:28 2020 (r356592) +++ stable/12/lib/libbe/be.c Fri Jan 10 03:37:52 2020 (r356593) @@ -33,7 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include #include - +#include #include #include @@ -48,9 +48,16 @@ __FBSDID("$FreeBSD$"); #include "be.h" #include "be_impl.h" +struct promote_entry { + char name[BE_MAXPATHLEN]; + SLIST_ENTRY(promote_entry) link; +}; + struct be_destroy_data { - libbe_handle_t *lbh; - char *snapname; + libbe_handle_t *lbh; + char target_name[BE_MAXPATHLEN]; + char *snapname; + SLIST_HEAD(, promote_entry) promotelist; }; #if SOON @@ -194,7 +201,153 @@ be_nicenum(uint64_t num, char *buf, size_t buflen) zfs_nicenum(num, buf, buflen); } +static bool +be_should_promote_clones(zfs_handle_t *zfs_hdl, struct be_destroy_data *bdd) +{ + char *atpos; + + if (zfs_get_type(zfs_hdl) != ZFS_TYPE_SNAPSHOT) + return (false); + + /* + * If we're deleting a snapshot, we need to make sure we only promote + * clones that are derived from one of the snapshots we're deleting, + * rather than that of a snapshot we're not touching. This keeps stuff + * in a consistent state, making sure that we don't error out unless + * we really need to. + */ + if (bdd->snapname == NULL) + return (true); + + atpos = strchr(zfs_get_name(zfs_hdl), '@'); + return (strcmp(atpos + 1, bdd->snapname) == 0); +} + +/* + * This is executed from be_promote_dependent_clones via zfs_iter_dependents, + * It checks if the dependent type is a snapshot then attempts to find any + * clones associated with it. Any clones not related to the destroy target are + * added to the promote list. + */ static int +be_dependent_clone_cb(zfs_handle_t *zfs_hdl, void *data) +{ + int err; + bool found; + char *name; + struct nvlist *nvl; + struct nvpair *nvp; + struct be_destroy_data *bdd; + struct promote_entry *entry, *newentry; + + nvp = NULL; + err = 0; + bdd = (struct be_destroy_data *)data; + + if (be_should_promote_clones(zfs_hdl, bdd) && + (nvl = zfs_get_clones_nvl(zfs_hdl)) != NULL) { + while ((nvp = nvlist_next_nvpair(nvl, nvp)) != NULL) { + name = nvpair_name(nvp); + + /* + * Skip if the clone is equal to, or a child of, the + * destroy target. + */ + if (strncmp(name, bdd->target_name, + strlen(bdd->target_name)) == 0 || + strstr(name, bdd->target_name) == name) { + continue; + } + + found = false; + SLIST_FOREACH(entry, &bdd->promotelist, link) { + if (strcmp(entry->name, name) == 0) { + found = true; + break; + } + } + + if (found) + continue; + + newentry = malloc(sizeof(struct promote_entry)); + if (newentry == NULL) { + err = ENOMEM; + break; + } + +#define BE_COPY_NAME(entry, src) \ + strlcpy((entry)->name, (src), sizeof((entry)->name)) + if (BE_COPY_NAME(newentry, name) >= + sizeof(newentry->name)) { + /* Shouldn't happen. */ + free(newentry); + err = ENAMETOOLONG; + break; + } +#undef BE_COPY_NAME + + /* + * We're building up a SLIST here to make sure both that + * we get the order right and so that we don't + * inadvertently observe the wrong state by promoting + * datasets while we're still walking the tree. The + * latter can lead to situations where we promote a BE + * then effectively demote it again. + */ + SLIST_INSERT_HEAD(&bdd->promotelist, newentry, link); + } + nvlist_free(nvl); + } + zfs_close(zfs_hdl); + return (err); +} + +/* + * This is called before a destroy, so that any datasets(environments) that are + * dependent on this one get promoted before destroying the target. + */ +static int +be_promote_dependent_clones(zfs_handle_t *zfs_hdl, struct be_destroy_data *bdd) +{ + int err; + zfs_handle_t *clone; + struct promote_entry *entry; + + snprintf(bdd->target_name, BE_MAXPATHLEN, "%s/", zfs_get_name(zfs_hdl)); + err = zfs_iter_dependents(zfs_hdl, true, be_dependent_clone_cb, bdd); + + /* + * Drain the list and walk away from it if we're only deleting a + * snapshot. + */ + if (bdd->snapname != NULL && !SLIST_EMPTY(&bdd->promotelist)) + err = BE_ERR_HASCLONES; + while (!SLIST_EMPTY(&bdd->promotelist)) { + entry = SLIST_FIRST(&bdd->promotelist); + SLIST_REMOVE_HEAD(&bdd->promotelist, link); + +#define ZFS_GRAB_CLONE() \ + zfs_open(bdd->lbh->lzh, entry->name, ZFS_TYPE_FILESYSTEM) + /* + * Just skip this part on error, we still want to clean up the + * promotion list after the first error. We'll then preserve it + * all the way back. + */ + if (err == 0 && (clone = ZFS_GRAB_CLONE()) != NULL) { + err = zfs_promote(clone); + if (err != 0) + err = BE_ERR_DESTROYMNT; + zfs_close(clone); + } +#undef ZFS_GRAB_CLONE + free(entry); + } + + return (err); +} + +static int be_destroy_cb(zfs_handle_t *zfs_hdl, void *data) { char path[BE_MAXPATHLEN]; @@ -239,8 +392,9 @@ be_destroy_cb(zfs_handle_t *zfs_hdl, void *data) * BE_DESTROY_FORCE : forces operation on mounted datasets * BE_DESTROY_ORIGIN: destroy the origin snapshot as well */ -int -be_destroy(libbe_handle_t *lbh, const char *name, int options) +static int +be_destroy_internal(libbe_handle_t *lbh, const char *name, int options, + bool odestroyer) { struct be_destroy_data bdd; char origin[BE_MAXPATHLEN], path[BE_MAXPATHLEN]; @@ -251,6 +405,7 @@ be_destroy(libbe_handle_t *lbh, const char *name, int bdd.lbh = lbh; bdd.snapname = NULL; + SLIST_INIT(&bdd.promotelist); force = options & BE_DESTROY_FORCE; *origin = '\0'; @@ -268,25 +423,6 @@ be_destroy(libbe_handle_t *lbh, const char *name, int if (fs == NULL) return (set_error(lbh, BE_ERR_ZFSOPEN)); - if ((options & BE_DESTROY_WANTORIGIN) != 0 && - zfs_prop_get(fs, ZFS_PROP_ORIGIN, origin, sizeof(origin), - NULL, NULL, 0, 1) != 0 && - (options & BE_DESTROY_ORIGIN) != 0) - return (set_error(lbh, BE_ERR_NOORIGIN)); - - /* - * If the caller wants auto-origin destruction and the origin - * name matches one of our automatically created snapshot names - * (i.e. strftime("%F-%T") with a serial at the end), then - * we'll set the DESTROY_ORIGIN flag and nuke it - * be_is_auto_snapshot_name is exported from libbe(3) so that - * the caller can determine if it needs to warn about the origin - * not being destroyed or not. - */ - if ((options & BE_DESTROY_AUTOORIGIN) != 0 && *origin != '\0' && - be_is_auto_snapshot_name(lbh, origin)) - options |= BE_DESTROY_ORIGIN; - /* Don't destroy a mounted dataset unless force is specified */ if ((mounted = zfs_is_mounted(fs, NULL)) != 0) { if (force) { @@ -297,6 +433,14 @@ be_destroy(libbe_handle_t *lbh, const char *name, int } } } else { + /* + * If we're initially destroying a snapshot, origin options do + * not make sense. If we're destroying the origin snapshot of + * a BE, we want to maintain the options in case we need to + * fake success after failing to promote. + */ + if (!odestroyer) + options &= ~BE_DESTROY_WANTORIGIN; if (!zfs_dataset_exists(lbh->lzh, path, ZFS_TYPE_SNAPSHOT)) return (set_error(lbh, BE_ERR_NOENT)); @@ -311,6 +455,49 @@ be_destroy(libbe_handle_t *lbh, const char *name, int } } + /* + * Whether we're destroying a BE or a single snapshot, we need to walk + * the tree of what we're going to destroy and promote everything in our + * path so that we can make it happen. + */ + if ((err = be_promote_dependent_clones(fs, &bdd)) != 0) { + free(bdd.snapname); + + /* + * If we're just destroying the origin of some other dataset + * we were invoked to destroy, then we just ignore + * BE_ERR_HASCLONES and return success unless the caller wanted + * to force the issue. + */ + if (odestroyer && err == BE_ERR_HASCLONES && + (options & BE_DESTROY_AUTOORIGIN) != 0) + return (0); + return (set_error(lbh, err)); + } + + /* + * This was deferred until after we promote all of the derivatives so + * that we grab the new origin after everything's settled down. + */ + if ((options & BE_DESTROY_WANTORIGIN) != 0 && + zfs_prop_get(fs, ZFS_PROP_ORIGIN, origin, sizeof(origin), + NULL, NULL, 0, 1) != 0 && + (options & BE_DESTROY_ORIGIN) != 0) + return (set_error(lbh, BE_ERR_NOORIGIN)); + + /* + * If the caller wants auto-origin destruction and the origin + * name matches one of our automatically created snapshot names + * (i.e. strftime("%F-%T") with a serial at the end), then + * we'll set the DESTROY_ORIGIN flag and nuke it + * be_is_auto_snapshot_name is exported from libbe(3) so that + * the caller can determine if it needs to warn about the origin + * not being destroyed or not. + */ + if ((options & BE_DESTROY_AUTOORIGIN) != 0 && *origin != '\0' && + be_is_auto_snapshot_name(lbh, origin)) + options |= BE_DESTROY_ORIGIN; + err = be_destroy_cb(fs, &bdd); zfs_close(fs); free(bdd.snapname); @@ -337,8 +524,23 @@ be_destroy(libbe_handle_t *lbh, const char *name, int if (strncmp(origin, lbh->root, rootlen) != 0 || origin[rootlen] != '/') return (0); - return (be_destroy(lbh, origin + rootlen + 1, - options & ~BE_DESTROY_ORIGIN)); + return (be_destroy_internal(lbh, origin + rootlen + 1, + options & ~BE_DESTROY_ORIGIN, true)); +} + +int +be_destroy(libbe_handle_t *lbh, const char *name, int options) +{ + + /* + * The consumer must not set both BE_DESTROY_AUTOORIGIN and + * BE_DESTROY_ORIGIN. Internally, we'll set the latter from the former. + * The latter should imply that we must succeed at destroying the + * origin, or complain otherwise. + */ + if ((options & BE_DESTROY_WANTORIGIN) == BE_DESTROY_WANTORIGIN) + return (set_error(lbh, BE_ERR_UNKNOWN)); + return (be_destroy_internal(lbh, name, options, false)); } static void Modified: stable/12/lib/libbe/be.h ============================================================================== --- stable/12/lib/libbe/be.h Fri Jan 10 03:17:28 2020 (r356592) +++ stable/12/lib/libbe/be.h Fri Jan 10 03:37:52 2020 (r356593) @@ -60,6 +60,7 @@ typedef enum be_error { BE_ERR_NOMEM, /* insufficient memory */ BE_ERR_UNKNOWN, /* unknown error */ BE_ERR_INVORIGIN, /* invalid origin */ + BE_ERR_HASCLONES, /* snapshot has clones */ } be_error_t; Modified: stable/12/lib/libbe/be_error.c ============================================================================== --- stable/12/lib/libbe/be_error.c Fri Jan 10 03:17:28 2020 (r356592) +++ stable/12/lib/libbe/be_error.c Fri Jan 10 03:37:52 2020 (r356593) @@ -108,6 +108,9 @@ libbe_error_description(libbe_handle_t *lbh) case BE_ERR_INVORIGIN: return ("invalid origin"); + case BE_ERR_HASCLONES: + return ("snapshot has clones"); + default: assert(lbh->error == BE_ERR_SUCCESS); return ("no error"); Modified: stable/12/sbin/bectl/tests/bectl_test.sh ============================================================================== --- stable/12/sbin/bectl/tests/bectl_test.sh Fri Jan 10 03:17:28 2020 (r356592) +++ stable/12/sbin/bectl/tests/bectl_test.sh Fri Jan 10 03:37:52 2020 (r356593) @@ -162,6 +162,51 @@ bectl_destroy_body() atf_check bectl -r ${zpool}/ROOT create -e default default3 atf_check bectl -r ${zpool}/ROOT destroy -o default3 atf_check bectl -r ${zpool}/ROOT unmount default + + # create two be from the same parent and destroy the parent + atf_check bectl -r ${zpool}/ROOT create -e default default2 + atf_check bectl -r ${zpool}/ROOT create -e default default3 + atf_check bectl -r ${zpool}/ROOT destroy default + atf_check bectl -r ${zpool}/ROOT destroy default2 + atf_check bectl -r ${zpool}/ROOT rename default3 default + + # Create a BE, have it be the parent for another and repeat, then start + # deleting environments. Arbitrarily chose default3 as the first. + # Sleeps are required to prevent conflicting snapshots- libbe will + # use the time with a serial at the end as needed to prevent collisions, + # but as BEs get promoted the snapshot names will convert and conflict + # anyways. libbe should perhaps consider adding something extra to the + # default name to prevent collisions like this, but the default name + # includes down to the second and creating BEs this rapidly is perhaps + # uncommon enough. + atf_check bectl -r ${zpool}/ROOT create -e default default2 + sleep 1 + atf_check bectl -r ${zpool}/ROOT create -e default2 default3 + sleep 1 + atf_check bectl -r ${zpool}/ROOT create -e default3 default4 + atf_check bectl -r ${zpool}/ROOT destroy default3 + atf_check bectl -r ${zpool}/ROOT destroy default2 + atf_check bectl -r ${zpool}/ROOT destroy default4 + + # Create two BEs, then create an unrelated snapshot on the originating + # BE and destroy it. We shouldn't have promoted the second BE, and it's + # only possible to tell if we promoted it by making sure we didn't + # demote the first BE at some point -- if we did, it's origin will no + # longer be empty. + atf_check bectl -r ${zpool}/ROOT create -e default default2 + atf_check bectl -r ${zpool}/ROOT create default@test + + atf_check bectl -r ${zpool}/ROOT destroy default@test + atf_check -o inline:"-\n" zfs get -Ho value origin ${zpool}/ROOT/default + atf_check bectl -r ${zpool}/ROOT destroy default2 + + # As observed by beadm, if we explicitly try to destroy a snapshot that + # leads to clones, we shouldn't have allowed it. + atf_check bectl -r ${zpool}/ROOT create default@test + atf_check bectl -r ${zpool}/ROOT create -e default@test default2 + + atf_check -e not-empty -s not-exit:0 bectl -r ${zpool}/ROOT destroy \ + default@test } bectl_destroy_cleanup() { From owner-svn-src-stable@freebsd.org Fri Jan 10 03:46:59 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7DF22222AA4; Fri, 10 Jan 2020 03:46:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47v8772mVkz47M7; Fri, 10 Jan 2020 03:46:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5A478BFBD; Fri, 10 Jan 2020 03:46:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00A3kx4n026200; Fri, 10 Jan 2020 03:46:59 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00A3kx3o026199; Fri, 10 Jan 2020 03:46:59 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001100346.00A3kx3o026199@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 10 Jan 2020 03:46:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356594 - stable/12/lib/csu/mips X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/lib/csu/mips X-SVN-Commit-Revision: 356594 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 03:46:59 -0000 Author: kevans Date: Fri Jan 10 03:46:58 2020 New Revision: 356594 URL: https://svnweb.freebsd.org/changeset/base/356594 Log: MFC r356327-r356328: mips: csu: fix compilation w/ LLVM r356327: mips: csu: fix compilation w/ LLVM GCC issues the warning, but with LLVM it is fatal- no matching .cprestore with .cpload. Reserve some place on the stack and and add the proper .cprestore to pair it with. nop added in the !o32 branch to fill out delay slot instruction, just in case. r356328: mips !o32: fix csu build Modified: stable/12/lib/csu/mips/crt.h Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/csu/mips/crt.h ============================================================================== --- stable/12/lib/csu/mips/crt.h Fri Jan 10 03:37:52 2020 (r356593) +++ stable/12/lib/csu/mips/crt.h Fri Jan 10 03:46:58 2020 (r356594) @@ -34,10 +34,14 @@ "bal 1f \n" \ "nop \n" \ "1: \n" \ - ".cpload $ra \n" \ + ".cpload $ra \n" \ + "addu $sp, $sp, -8 \n" \ ".set reorder \n" \ + ".cprestore 4 \n" \ ".local " __STRING(func) "\n" \ - "jal " __STRING(func) + "jal " __STRING(func) "\n" \ + "nop \n" \ + "addu $sp, $sp, 8 \n" #else #define INIT_CALL_SEQ(func) \ ".set noreorder \n" \ @@ -47,7 +51,8 @@ ".set reorder \n" \ ".cpsetup $ra, $v0, 1b \n" \ ".local " __STRING(func) "\n" \ - "jal " __STRING(func) + "jal " __STRING(func) "\n" \ + "nop \n" #endif #endif From owner-svn-src-stable@freebsd.org Fri Jan 10 09:50:45 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 09BD51E2264; Fri, 10 Jan 2020 09:50:45 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vJBq5XXmz4Q7F; Fri, 10 Jan 2020 09:50:43 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id 00A9oVXv019251 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 10 Jan 2020 09:50:35 GMT (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: bapt@FreeBSD.org Received: from [10.58.0.4] (dadv@[10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id 00A9oOGq005792 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 10 Jan 2020 16:50:24 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: svn commit: r356566 - stable/11/contrib/smbfs/lib/smb To: Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org References: <202001091958.009Jw56r037444@repo.freebsd.org> From: Eugene Grosbein Message-ID: <02858bb2-f5aa-bca3-bfea-60f91465e733@grosbein.net> Date: Fri, 10 Jan 2020 16:50:24 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <202001091958.009Jw56r037444@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM, SPF_HELO_NONE,SPF_PASS,T_DATE_IN_FUTURE_Q_PLUS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * 0.0 T_DATE_IN_FUTURE_Q_PLUS Date: is over 4 months after Received: * date * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 47vJBq5XXmz4Q7F X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=permerror (mx1.freebsd.org: domain of eugen@grosbein.net uses mechanism not recognized by this client) smtp.mailfrom=eugen@grosbein.net X-Spamd-Result: default: False [-3.85 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[grosbein.net]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(-1.75)[ip: (-4.78), ipnet: 2a01:4f8::/29(-2.45), asn: 24940(-1.50), country: DE(-0.02)]; R_SPF_PERMFAIL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 09:50:45 -0000 10.01.2020 2:58, Baptiste Daroussin wrote: > Author: bapt > Date: Thu Jan 9 19:58:05 2020 > New Revision: 356566 > URL: https://svnweb.freebsd.org/changeset/base/356566 > > Log: > MFC r356317 (by arrowd): > > mount_smbfs: Issue a warning when .nsmbrc section name contains lowercase characters. > > PR: 231656 > Approved by: bapt > Differential Revision: https://reviews.freebsd.org/D22289 > > Modified: > stable/11/contrib/smbfs/lib/smb/rcfile.c > Directory Properties: > stable/11/ (props changed) > > Modified: stable/11/contrib/smbfs/lib/smb/rcfile.c > ============================================================================== > --- stable/11/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:56:25 2020 (r356565) > +++ stable/11/contrib/smbfs/lib/smb/rcfile.c Thu Jan 9 19:58:05 2020 (r356566) > @@ -156,11 +156,19 @@ static struct rcsection * > rc_addsect(struct rcfile *rcp, const char *sectname) > { > struct rcsection *p; > + const char* sectletter = sectname; > > p = rc_findsect(rcp, sectname); > if (p) return p; > p = malloc(sizeof(*p)); > if (!p) return NULL; > + for(sectletter = sectname; *sectletter; sectletter++) { > + if (islower(*sectletter)) { > + if (strcmp(sectname, "default")) > + dprintf(STDERR_FILENO, "warning: section name [%s] contains lower-case letters\n", sectname); > + break; > + } > + } > p->rs_name = strdup(sectname); > SLIST_INIT(&p->rs_keys); > SLIST_INSERT_HEAD(&rcp->rf_sect, p, rs_next); This commit broke source upgrade path from 10.4-STABLE to stable/11: rcfile.c:168:5: error: implicit declaration of function 'dprintf' is invalid in C99 [-Werror,-Wimplicit-function-declaration] dprintf(STDERR_FILENO, "warning: section name [%s] contains lower-case letters\n", sectname); ^ 1 error generated. From owner-svn-src-stable@freebsd.org Fri Jan 10 11:43:12 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 35ECA1E4693; Fri, 10 Jan 2020 11:43:12 +0000 (UTC) (envelope-from david@catwhisker.org) Received: from mx.catwhisker.org (107-204-234-170.lightspeed.sntcca.sbcglobal.net [107.204.234.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47vLhb0HCCz4VnV; Fri, 10 Jan 2020 11:43:10 +0000 (UTC) (envelope-from david@catwhisker.org) Received: from albert.catwhisker.org (localhost [127.0.0.1]) by albert.catwhisker.org (8.15.2/8.15.2) with ESMTP id 00ABh9kP075477; Fri, 10 Jan 2020 11:43:09 GMT (envelope-from david@albert.catwhisker.org) Received: (from david@localhost) by albert.catwhisker.org (8.15.2/8.15.2/Submit) id 00ABh9Sf075476; Fri, 10 Jan 2020 03:43:09 -0800 (PST) (envelope-from david) Date: Fri, 10 Jan 2020 03:43:09 -0800 From: David Wolfskill To: Baptiste Daroussin 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: r356566 - stable/11/contrib/smbfs/lib/smb Message-ID: <20200110114309.GA75442@albert.catwhisker.org> Mail-Followup-To: David Wolfskill , Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org References: <202001091958.009Jw56r037444@repo.freebsd.org> <02858bb2-f5aa-bca3-bfea-60f91465e733@grosbein.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="BXVAT5kNtrzKuDFl" Content-Disposition: inline In-Reply-To: <02858bb2-f5aa-bca3-bfea-60f91465e733@grosbein.net> X-Rspamd-Queue-Id: 47vLhb0HCCz4VnV X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of david@catwhisker.org designates 107.204.234.170 as permitted sender) smtp.mailfrom=david@catwhisker.org X-Spamd-Result: default: False [-6.81 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:107.204.234.170]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[catwhisker.org]; RCPT_COUNT_FIVE(0.00)[5]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE(-2.41)[ip: (-9.39), ipnet: 107.192.0.0/12(-4.70), asn: 7018(2.10), country: US(-0.05)]; SIGNED_PGP(-2.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:7018, ipnet:107.192.0.0/12, country:US]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 11:43:12 -0000 --BXVAT5kNtrzKuDFl Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Jan 10, 2020 at 04:50:24PM +0700, Eugene Grosbein wrote: > 10.01.2020 2:58, Baptiste Daroussin wrote: >=20 > > Author: bapt > > Date: Thu Jan 9 19:58:05 2020 > > New Revision: 356566 > > URL: https://svnweb.freebsd.org/changeset/base/356566 > > ...=20 > This commit broke source upgrade path from 10.4-STABLE to stable/11: >=20 > rcfile.c:168:5: error: implicit declaration of function 'dprintf' is inva= lid in C99 [-Werror,-Wimplicit-function-declaration] > dprintf(STDERR_FILENO, "warning: section = name [%s] contains lower-case letters\n", sectname); > ^ > 1 error generated. > .... I got the same error (on two separate machines) attempting an in-place src update from stable/11 @r356547 to r356593. Peace, david --=20 David H. Wolfskill david@catwhisker.org At least Trump can count on McConnell and Putin to "have his back." And the rest of us can consider what that means about each of them. See http://www.catwhisker.org/~david/publickey.gpg for my public key. --BXVAT5kNtrzKuDFl Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGTBAEBCgB9FiEE4owz2QxMJyaxAefyQLJg+bY2PckFAl4YY01fFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUy OEMzM0Q5MEM0QzI3MjZCMTAxRTdGMjQwQjI2MEY5QjYzNjNEQzkACgkQQLJg+bY2 PclEKgf9EKs2AdjaEkIRfkqFjbKW1jXXX7IZo54zFFV2LiDmFXx3aShPVvB1gWxz OA+eCEPrPuwX7QQkPXebV9YP/xZuwsxphXzxcc44DLSlhSRdVJJD1VYOz6EKZgSl ppDfNl0wv6nHKKPnOgj9EGd6goboOD8fixKnVmgxy1FIrzDquTRDQaRcXTerX3Tf 7VKszMJUz5gNUHSNS47xOrcGI59UVoc4iuerStktcWv35qNNl7bSjbvLX1lRRGbn zvSg7nZTDrP7pb4HCWu47Wmb7zZWKZ8lhgQY4Fji0vrv/vxb46iT5HyyYTduF/AK X2JvEFO89RcqZHeZi96PAaJ3MroFAA== =AuaK -----END PGP SIGNATURE----- --BXVAT5kNtrzKuDFl-- From owner-svn-src-stable@freebsd.org Fri Jan 10 11:57:28 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 317501E49D8; Fri, 10 Jan 2020 11:57:28 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: from mail-ua1-x92e.google.com (mail-ua1-x92e.google.com [IPv6:2607:f8b0:4864:20::92e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vM130jN8z4WGb; Fri, 10 Jan 2020 11:57:26 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: by mail-ua1-x92e.google.com with SMTP id 1so623855uao.1; Fri, 10 Jan 2020 03:57:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=H82LhaWb/w+1acWIgSJGPzDwXhN7UKkvJq274jti26U=; b=UKv4102vxJ+hUKtYnFQfq4yOlTL63xbHRz//XIzWvOsjDBlX/l/QC58txJm2bkkcEK DyXHCqrYmInYSPCHS55ij9g4c7Xp6TzxdsdYLUsPmTE1zS3MnJLYyEvVimoh5QImrD1J 4NnDuPFMJDlKl98NBaunzUEIt3JTXNrKVbGb29J1Xq1qTMswmuXD2WP61FHJVLbSOUYE GiSWlIlkChoHp1EZqL9O1Krt457DU2hZjo58HjyA2VsUDSCY0nKQWafZJF8nuHxzLDjP Dl4hDwPnhPzi748IiNVNK0sCySbjwYK1pRiaXFpXonBd3YLmqHpiWgGlBJyVGNkTe3iQ bSkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=H82LhaWb/w+1acWIgSJGPzDwXhN7UKkvJq274jti26U=; b=JkBzZ4MyIUlPKJlRJg5xeLkE2sbe1VBVofz1OnxcjQonfFOS2SCDZLuHc1uFUFddix EpmP0tWJBo16X2dAozclpC1mw60cpKQ+JgsXuo68pHclKFepU+h8ELXN0fv2U6j1cxMq XtE5L0VWOEdghluIBX2gvlWaGamIu+ZPhSG9hJ/bbnwtQ6wTbzqIg0qJIkAC4GgaTkxZ CWiknUtlkWwq9lPVaQ62c4R5GWp5tOlR9uTYXra6aYAKImS3ylAOTV72sX/4cjOehNdL 0Emgef/LyAzXzW6eL001/pq1Yn0ZFYRpbjlh8VukUMsytwUhyHUo90s9fo9RyZeMwVm/ s+0w== X-Gm-Message-State: APjAAAWdqE+1nCqvGZMMkBrQvnjwJH594JY6gzZeG+4r9M4UcZzfvDHN 5VliGT5D5W/0GON7j0bz2ylXP7GnYZA1mTG0liWvtmNz X-Google-Smtp-Source: APXvYqyDmxyfRWoGQU05BLWO1Fbctov+1sMKmH9PZ0TG2sfe2CXq8PRhA11z+XZ19aztpsAC3AOzEcXBkZ5VKq5scSs= X-Received: by 2002:ab0:2b85:: with SMTP id q5mr1651846uar.24.1578657445545; Fri, 10 Jan 2020 03:57:25 -0800 (PST) MIME-Version: 1.0 References: <202001091958.009Jw56r037444@repo.freebsd.org> <02858bb2-f5aa-bca3-bfea-60f91465e733@grosbein.net> <20200110114309.GA75442@albert.catwhisker.org> In-Reply-To: <20200110114309.GA75442@albert.catwhisker.org> From: Sergey Kandaurov Date: Fri, 10 Jan 2020 14:57:14 +0300 Message-ID: Subject: Re: svn commit: r356566 - stable/11/contrib/smbfs/lib/smb To: David Wolfskill , Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org X-Rspamd-Queue-Id: 47vM130jN8z4WGb X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=UKv4102v; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of pluknet@gmail.com designates 2607:f8b0:4864:20::92e as permitted sender) smtp.mailfrom=pluknet@gmail.com X-Spamd-Result: default: False [-2.00 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; IP_SCORE(0.00)[ip: (-9.38), ipnet: 2607:f8b0::/32(-2.11), asn: 15169(-1.84), country: US(-0.05)]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE_FREEMAIL(0.00)[]; URI_COUNT_ODD(1.00)[3]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[e.2.9.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 11:57:28 -0000 On Fri, 10 Jan 2020 at 14:43, David Wolfskill wrote: > On Fri, Jan 10, 2020 at 04:50:24PM +0700, Eugene Grosbein wrote: > > 10.01.2020 2:58, Baptiste Daroussin wrote: > > > > > Author: bapt > > > Date: Thu Jan 9 19:58:05 2020 > > > New Revision: 356566 > > > URL: https://svnweb.freebsd.org/changeset/base/356566 > > > ... > > This commit broke source upgrade path from 10.4-STABLE to stable/11: > > > > rcfile.c:168:5: error: implicit declaration of function 'dprintf' is > invalid in C99 [-Werror,-Wimplicit-function-declaration] > > dprintf(STDERR_FILENO, "warning: section > name [%s] contains lower-case letters\n", sectname); > > ^ > > 1 error generated. > > .... > > I got the same error (on two separate machines) attempting an in-place > src update from stable/11 @r356547 to r356593. > In FreeBSD 11, dprintf() needs #define _WITH_DPRINTF "prior to the inclusion of <*stdio.h*>" From owner-svn-src-stable@freebsd.org Fri Jan 10 12:20:25 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CE3D31E5D02; Fri, 10 Jan 2020 12:20:25 +0000 (UTC) (envelope-from pluknet@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vMWY55Gdz4XQR; Fri, 10 Jan 2020 12:20:25 +0000 (UTC) (envelope-from pluknet@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A15A719DDC; Fri, 10 Jan 2020 12:20:25 +0000 (UTC) (envelope-from pluknet@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00ACKPYn029556; Fri, 10 Jan 2020 12:20:25 GMT (envelope-from pluknet@FreeBSD.org) Received: (from pluknet@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00ACKP5G029555; Fri, 10 Jan 2020 12:20:25 GMT (envelope-from pluknet@FreeBSD.org) Message-Id: <202001101220.00ACKP5G029555@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pluknet set sender to pluknet@FreeBSD.org using -f From: Sergey Kandaurov Date: Fri, 10 Jan 2020 12:20:25 +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: r356599 - stable/11/contrib/smbfs/lib/smb X-SVN-Group: stable-11 X-SVN-Commit-Author: pluknet X-SVN-Commit-Paths: stable/11/contrib/smbfs/lib/smb X-SVN-Commit-Revision: 356599 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 12:20:25 -0000 Author: pluknet Date: Fri Jan 10 12:20:25 2020 New Revision: 356599 URL: https://svnweb.freebsd.org/changeset/base/356599 Log: Fixed build after r356566 (MFC of r356317). This is a direct change. Modified: stable/11/contrib/smbfs/lib/smb/rcfile.c Modified: stable/11/contrib/smbfs/lib/smb/rcfile.c ============================================================================== --- stable/11/contrib/smbfs/lib/smb/rcfile.c Fri Jan 10 09:32:44 2020 (r356598) +++ stable/11/contrib/smbfs/lib/smb/rcfile.c Fri Jan 10 12:20:25 2020 (r356599) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#define _WITH_DPRINTF #include #include #include From owner-svn-src-stable@freebsd.org Fri Jan 10 14:46:30 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 042541E9853; Fri, 10 Jan 2020 14:46:30 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vQm56JrMz3Byd; Fri, 10 Jan 2020 14:46:29 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from ivaldir.etoilebsd.net (etoilebsd.net [178.32.217.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: bapt) by smtp.freebsd.org (Postfix) with ESMTPSA id BB3F51075; Fri, 10 Jan 2020 14:46:29 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: by ivaldir.etoilebsd.net (Postfix, from userid 1001) id 06D06E83A6; Fri, 10 Jan 2020 15:46:28 +0100 (CET) Date: Fri, 10 Jan 2020 15:46:28 +0100 From: Baptiste Daroussin To: Sergey Kandaurov 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: r356599 - stable/11/contrib/smbfs/lib/smb Message-ID: <20200110144628.tkd7yp7bt54eyrog@ivaldir.net> References: <202001101220.00ACKP5G029555@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="5qs7ivxvap4vsrxa" Content-Disposition: inline In-Reply-To: <202001101220.00ACKP5G029555@repo.freebsd.org> X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 14:46:30 -0000 --5qs7ivxvap4vsrxa Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Jan 10, 2020 at 12:20:25PM +0000, Sergey Kandaurov wrote: > Author: pluknet > Date: Fri Jan 10 12:20:25 2020 > New Revision: 356599 > URL: https://svnweb.freebsd.org/changeset/base/356599 >=20 > Log: > Fixed build after r356566 (MFC of r356317). > =20 > This is a direct change. >=20 Thanks a lot, you have been faster than me to do it. And sorry about the breakage. Best regards, Bapt --5qs7ivxvap4vsrxa Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAl4YjkEACgkQY4mL3PG3 Plq7fg//UP4uxINa7bakYM9rsmnKkeEjdi8v1v/2pHHp/MY0LfhnktaQaiEIbSFZ TCVGi5C17x1rlaFtskuLzyai4gPQo0ALAgkK9K+7nhWieThAjDcCcAphsgs3FVHL iJoKb1M5ipWTtHa3dcrZp8zX36gb078ETcQP1HG4B+NAml0uSAxgBgDZorPn51rZ RkmY/shT91ebpyUPyZI8+/Z0VfYK1ION1u+41ejimyTgfA5cPjuNN559qeb7o4uY 63nXFw5Jb20wWQhtNkY3Hanrev7SASYnYin45nXncDpmWSmkwvp+QugZpdnCG8al gumZ8SglNGDXkncxf/GLud1b1cHIQbkaoCJriG7J0b8hGfDKusLHT8r3achldr7v r0++e1EPlVqbcASC3Ypl0idHr9zqrj4rM5OhaCuqxN+DlcihSP6TFj1/8mlKK+QC F73AMl3zS4wn3/dnsFBKMh1Du9wDQs4MIu57+0Kg90j9IF2QGiZbxxTagTFsUPT6 yXQmibvUlzoAKlGa1+yMRvUIlruMhAQQSQq+cidw/CnLl4YZE8KC9dDQNKFjYaue 1ZgNf3lsqoNSImWDrZ8lo4LUXOQ6efMiTmaveJTx0ELcfp2IVcJNITk20Z9Wfqoy CDpgsIFIiuz3BeDpyl46/hdFPusFlLKBkQgDOcLB3PmPYp9qmpY= =8hek -----END PGP SIGNATURE----- --5qs7ivxvap4vsrxa-- From owner-svn-src-stable@freebsd.org Fri Jan 10 18:29:06 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0969B1EEEA5; Fri, 10 Jan 2020 18:29:06 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vWhx6W59z3Q6w; Fri, 10 Jan 2020 18:29:05 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DAC401E26B; Fri, 10 Jan 2020 18:29:05 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AIT59j052526; Fri, 10 Jan 2020 18:29:05 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AIT5ac052525; Fri, 10 Jan 2020 18:29:05 GMT (envelope-from erj@FreeBSD.org) Message-Id: <202001101829.00AIT5ac052525@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Fri, 10 Jan 2020 18:29:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356605 - stable/12/sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: erj X-SVN-Commit-Paths: stable/12/sys/net X-SVN-Commit-Revision: 356605 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 18:29:06 -0000 Author: erj Date: Fri Jan 10 18:29:05 2020 New Revision: 356605 URL: https://svnweb.freebsd.org/changeset/base/356605 Log: MFC r356310: iflib: Prevent watchdog from resetting idle queues Sponsored by: Intel Corporation Modified: stable/12/sys/net/iflib.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/net/iflib.c ============================================================================== --- stable/12/sys/net/iflib.c Fri Jan 10 18:24:17 2020 (r356604) +++ stable/12/sys/net/iflib.c Fri Jan 10 18:29:05 2020 (r356605) @@ -2301,8 +2301,11 @@ iflib_timer(void *arg) (sctx->isc_pause_frames == 0))) goto hung; - if (ifmp_ring_is_stalled(txq->ift_br)) + if (txq->ift_qstatus != IFLIB_QUEUE_IDLE && + ifmp_ring_is_stalled(txq->ift_br)) { + KASSERT(ctx->ifc_link_state == LINK_STATE_UP, ("queue can't be marked as hung if interface is down")); txq->ift_qstatus = IFLIB_QUEUE_HUNG; + } txq->ift_cleaned_prev = txq->ift_cleaned; } #ifdef DEV_NETMAP From owner-svn-src-stable@freebsd.org Fri Jan 10 18:32:01 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0DFB81EF2A0; Fri, 10 Jan 2020 18:32:01 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vWmJ4rlHz3Qfx; Fri, 10 Jan 2020 18:32:00 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9CD761E3FD; Fri, 10 Jan 2020 18:32:00 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AIW0jA057434; Fri, 10 Jan 2020 18:32:00 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AIW0b0057432; Fri, 10 Jan 2020 18:32:00 GMT (envelope-from erj@FreeBSD.org) Message-Id: <202001101832.00AIW0b0057432@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Fri, 10 Jan 2020 18:32:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356606 - stable/12/sys/dev/ixl X-SVN-Group: stable-12 X-SVN-Commit-Author: erj X-SVN-Commit-Paths: stable/12/sys/dev/ixl X-SVN-Commit-Revision: 356606 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 18:32:01 -0000 Author: erj Date: Fri Jan 10 18:31:59 2020 New Revision: 356606 URL: https://svnweb.freebsd.org/changeset/base/356606 Log: MFC r356309: ixl: prevent non-privileged access to NVM update interface Sponsored by: Intel Corporation Modified: stable/12/sys/dev/ixl/if_ixl.c stable/12/sys/dev/ixl/ixl.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/ixl/if_ixl.c ============================================================================== --- stable/12/sys/dev/ixl/if_ixl.c Fri Jan 10 18:29:05 2020 (r356605) +++ stable/12/sys/dev/ixl/if_ixl.c Fri Jan 10 18:31:59 2020 (r356606) @@ -1625,11 +1625,29 @@ ixl_if_priv_ioctl(if_ctx_t ctx, u_long command, caddr_ struct ifdrv *ifd = (struct ifdrv *)data; int error = 0; - /* NVM update command */ - if (ifd->ifd_cmd == I40E_NVM_ACCESS) - error = ixl_handle_nvmupd_cmd(pf, ifd); - else - error = EINVAL; + /* + * The iflib_if_ioctl forwards SIOCxDRVSPEC and SIOGPRIVATE_0 without + * performing privilege checks. It is important that this function + * perform the necessary checks for commands which should only be + * executed by privileged threads. + */ + + switch(command) { + case SIOCGDRVSPEC: + case SIOCSDRVSPEC: + /* NVM update command */ + if (ifd->ifd_cmd == I40E_NVM_ACCESS) { + error = priv_check(curthread, PRIV_DRIVER); + if (error) + break; + error = ixl_handle_nvmupd_cmd(pf, ifd); + } else { + error = EINVAL; + } + break; + default: + error = EOPNOTSUPP; + } return (error); } Modified: stable/12/sys/dev/ixl/ixl.h ============================================================================== --- stable/12/sys/dev/ixl/ixl.h Fri Jan 10 18:29:05 2020 (r356605) +++ stable/12/sys/dev/ixl/ixl.h Fri Jan 10 18:31:59 2020 (r356606) @@ -52,6 +52,7 @@ #include #include #include +#include #include #include From owner-svn-src-stable@freebsd.org Fri Jan 10 22:10:02 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AA98C1F5204; Fri, 10 Jan 2020 22:10:02 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vcbt4631z4CkK; Fri, 10 Jan 2020 22:10:02 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 880D520AF3; Fri, 10 Jan 2020 22:10:02 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00AMA2ZL088793; Fri, 10 Jan 2020 22:10:02 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00AMA2GY088791; Fri, 10 Jan 2020 22:10:02 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001102210.00AMA2GY088791@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Fri, 10 Jan 2020 22:10:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356616 - in stable/12: sys/netinet6 tests/sys/netinet6/frag6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12: sys/netinet6 tests/sys/netinet6/frag6 X-SVN-Commit-Revision: 356616 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 22:10:02 -0000 Author: bz Date: Fri Jan 10 22:10:01 2020 New Revision: 356616 URL: https://svnweb.freebsd.org/changeset/base/356616 Log: MFC r354542: frag6: properly handle atomic fragments according to RFCs. RFC 8200 says: "If the fragment is a whole datagram (that is, both the Fragment Offset field and the M flag are zero), then it does not need any further reassembly and should be processed as a fully reassembled packet (i.e., updating Next Header, adjust Payload Length, removing the Fragment header, etc.). .." That means we should remove the fragment header and make all the adjustments rather than just skipping over the fragment header. The difference should be noticeable in that a properly handled atomic fragment triggering an ICMPv6 message at an upper layer (e.g. dest unreach, unreachable port) will not include the fragment header. Update the test cases to also test for an unfragmentable part. That is needed so that the next header is properly updated (not just lengths). Modified: stable/12/sys/netinet6/frag6.c stable/12/tests/sys/netinet6/frag6/frag6_03.py stable/12/tests/sys/netinet6/frag6/frag6_03.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Fri Jan 10 22:00:39 2020 (r356615) +++ stable/12/sys/netinet6/frag6.c Fri Jan 10 22:10:01 2020 (r356616) @@ -395,6 +395,8 @@ frag6_input(struct mbuf **mp, int *offp, int proto) m = *mp; offset = *offp; + M_ASSERTPKTHDR(m); + ip6 = mtod(m, struct ip6_hdr *); #ifndef PULLDOWN_TEST IP6_EXTHDR_CHECK(m, offset, sizeof(struct ip6_frag), IPPROTO_DONE); @@ -437,23 +439,36 @@ frag6_input(struct mbuf **mp, int *offp, int proto) IP6STAT_INC(ip6s_fragments); in6_ifstat_inc(dstifp, ifs6_reass_reqd); - /* Offset now points to data portion. */ - offset += sizeof(struct ip6_frag); - /* * Handle "atomic" fragments (offset and m bit set to 0) upfront, - * unrelated to any reassembly. Still need to remove the frag hdr. + * unrelated to any reassembly. We need to remove the frag hdr + * which is ugly. * See RFC 6946 and section 4.5 of RFC 8200. */ if ((ip6f->ip6f_offlg & ~IP6F_RESERVED_MASK) == 0) { /* XXX-BZ we want dedicated counters for this. */ IP6STAT_INC(ip6s_reassembled); - /* XXX-BZ handle correctly. */ + nxt = ip6f->ip6f_nxt; + /* + * Set nxt(-hdr field value) to the original value. + * We cannot just set ip6->ip6_nxt as there might be + * an unfragmentable part with extension headers and + * we must update the last one. + */ + m_copyback(m, ip6_get_prevhdr(m, offset), sizeof(uint8_t), + (caddr_t)&nxt); + ip6->ip6_plen = htons(ntohs(ip6->ip6_plen) - + sizeof(struct ip6_frag)); + if (ip6_deletefraghdr(m, offset, M_NOWAIT) != 0) + goto dropfrag2; + m->m_pkthdr.len -= sizeof(struct ip6_frag); in6_ifstat_inc(dstifp, ifs6_reass_ok); - *offp = offset; - m->m_flags |= M_FRAGMENTED; - return (ip6f->ip6f_nxt); + *mp = m; + return (nxt); } + + /* Offset now points to data portion. */ + offset += sizeof(struct ip6_frag); /* Get fragment length and discard 0-byte fragments. */ frgpartlen = sizeof(struct ip6_hdr) + ntohs(ip6->ip6_plen) - offset; Modified: stable/12/tests/sys/netinet6/frag6/frag6_03.py ============================================================================== --- stable/12/tests/sys/netinet6/frag6/frag6_03.py Fri Jan 10 22:00:39 2020 (r356615) +++ stable/12/tests/sys/netinet6/frag6/frag6_03.py Fri Jan 10 22:10:01 2020 (r356616) @@ -101,6 +101,33 @@ def main(): if not sniffer.foundCorrectPacket: sys.exit(1) + + # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ## + # + # Atomic fragment with extension header. + # + # A: Nothing listening on UDP port. + # R: ICMPv6 dst unreach, unreach port. + # + # Start sniffing on recvif + sniffer = Sniffer(args, check_icmp6_error) + + ip6f01 = sp.Ether() / \ + sp.IPv6(src=args.src[0], dst=args.to[0]) / \ + sp.IPv6ExtHdrDestOpt(options = \ + sp.PadN(optdata="\x00\x00\x00\x00\x00\x00")) / \ + sp.IPv6ExtHdrFragment(offset=0, m=0, id=0x3001) / \ + sp.UDP(dport=3456, sport=6543) + if args.debug : + ip6f01.display() + sp.sendp(ip6f01, iface=args.sendif[0], verbose=False) + + sleep(0.10) + sniffer.setEnd() + sniffer.join() + if not sniffer.foundCorrectPacket: + sys.exit(1) + sys.exit(0) if __name__ == '__main__': Modified: stable/12/tests/sys/netinet6/frag6/frag6_03.sh ============================================================================== --- stable/12/tests/sys/netinet6/frag6/frag6_03.sh Fri Jan 10 22:00:39 2020 (r356615) +++ stable/12/tests/sys/netinet6/frag6/frag6_03.sh Fri Jan 10 22:10:01 2020 (r356616) @@ -67,12 +67,12 @@ frag6_03_check_stats() { # Check selection of global UDP stats. # cat < ${HOME}/filter-${jname}.txt - 1 + 2 0 0 0 0 - 1 + 2 0 0 0 @@ -94,11 +94,11 @@ EOF 0 0 0 - 1 + 2 0 0 0 - 1 + 2 0 0 0 @@ -124,12 +124,12 @@ EOF # XXX-TODO check output histogram (just too hard to parse [no multi-line-grep]) # cat < ${HOME}/filter-${jname}.txt - 1 + 2 0 0 0 0 - 1 + 2 0 0 0 @@ -170,8 +170,8 @@ EOF 0 0 0 - 1 - 1 + 2 + 2 0 EOF count=`jexec ${jname} netstat -s -p ip6 -I ${ifname} --libxo xml,pretty | grep -E -x -c -f ${HOME}/filter-${jname}.txt` @@ -196,8 +196,8 @@ EOF 0 0 0 - 1 - 1 + 2 + 2 0 0 0 From owner-svn-src-stable@freebsd.org Fri Jan 10 23:46:14 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 13E421F6D73; Fri, 10 Jan 2020 23:46:14 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vfkt0QKxz4J9W; Fri, 10 Jan 2020 23:46:14 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 043D821D0E; Fri, 10 Jan 2020 23:46:14 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00ANkD8Y047762; Fri, 10 Jan 2020 23:46:13 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00ANkCuU047753; Fri, 10 Jan 2020 23:46:12 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001102346.00ANkCuU047753@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Fri, 10 Jan 2020 23:46:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356619 - in stable/12: sys/netinet sys/netinet6 sys/netipsec tests/sys/netinet6 X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12: sys/netinet sys/netinet6 sys/netipsec tests/sys/netinet6 X-SVN-Commit-Revision: 356619 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 23:46:14 -0000 Author: bz Date: Fri Jan 10 23:46:12 2020 New Revision: 356619 URL: https://svnweb.freebsd.org/changeset/base/356619 Log: MFC r354462,354643,354680,354731,354748-354750,354757,354831-354832, 354861-354863,354865,355254,355450,355452 netinet*: variable cleanup netinet*: update *mp to pass the proper value back nd6 defrouter: consolidate nd_defrouter manipulations in nd6_rtr.c (excluding some changes to keep public KPI) nd6: simplify code netinet6: Remove PULLDOWN_TESTs. netinet*: replace IP6_EXTHDR_GET() IP6_EXTHDR_CHECK(): remove the last instances nd6_rtr: consollidation and more consistent naming ipv6 tests: Add a simple ping6 test as well. icmpv6: Fix mbuf change in mld nd6_rtr: re-sort functions nd6: make nd6_timer_ch static nd6: sysctl in6: move include Fix m_pullup() problem after removing PULLDOWN_TESTs and KAME EXT* macros. (IP6_EXTHDR* macros are preserved in stable). ip6_input: remove redundant v4mapped check Update comment. PR: 240135 Added: stable/12/tests/sys/netinet6/mld.py - copied unchanged from r354832, head/tests/sys/netinet6/mld.py stable/12/tests/sys/netinet6/mld.sh - copied unchanged from r354832, head/tests/sys/netinet6/mld.sh Modified: stable/12/sys/netinet/ip_carp.c stable/12/sys/netinet/tcp_input.c stable/12/sys/netinet/udp_usrreq.c stable/12/sys/netinet6/dest6.c stable/12/sys/netinet6/frag6.c stable/12/sys/netinet6/icmp6.c stable/12/sys/netinet6/in6.c stable/12/sys/netinet6/ip6_input.c stable/12/sys/netinet6/ip6_mroute.c stable/12/sys/netinet6/mld6.c stable/12/sys/netinet6/mld6_var.h stable/12/sys/netinet6/nd6.c stable/12/sys/netinet6/nd6.h stable/12/sys/netinet6/nd6_nbr.c stable/12/sys/netinet6/nd6_rtr.c stable/12/sys/netinet6/route6.c stable/12/sys/netinet6/sctp6_usrreq.c stable/12/sys/netinet6/udp6_usrreq.c stable/12/sys/netipsec/xform_ah.c stable/12/sys/netipsec/xform_esp.c stable/12/tests/sys/netinet6/Makefile stable/12/tests/sys/netinet6/exthdr.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_carp.c ============================================================================== --- stable/12/sys/netinet/ip_carp.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet/ip_carp.c Fri Jan 10 23:46:12 2020 (r356619) @@ -566,13 +566,16 @@ carp6_input(struct mbuf **mp, int *offp, int proto) } /* verify that we have a complete carp packet */ - len = m->m_len; - IP6_EXTHDR_GET(ch, struct carp_header *, m, *offp, sizeof(*ch)); - if (ch == NULL) { - CARPSTATS_INC(carps_badlen); - CARP_DEBUG("%s: packet size %u too small\n", __func__, len); - return (IPPROTO_DONE); + if (m->m_len < *offp + sizeof(*ch)) { + len = m->m_len; + m = m_pullup(m, *offp + sizeof(*ch)); + if (m == NULL) { + CARPSTATS_INC(carps_badlen); + CARP_DEBUG("%s: packet size %u too small\n", __func__, len); + return (IPPROTO_DONE); + } } + ch = (struct carp_header *)(mtod(m, caddr_t) + *offp); /* verify the CARP checksum */ Modified: stable/12/sys/netinet/tcp_input.c ============================================================================== --- stable/12/sys/netinet/tcp_input.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet/tcp_input.c Fri Jan 10 23:46:12 2020 (r356619) @@ -534,11 +534,19 @@ cc_ecnpkt_handler(struct tcpcb *tp, struct tcphdr *th, int tcp6_input(struct mbuf **mp, int *offp, int proto) { - struct mbuf *m = *mp; + struct mbuf *m; struct in6_ifaddr *ia6; struct ip6_hdr *ip6; - IP6_EXTHDR_CHECK(m, *offp, sizeof(struct tcphdr), IPPROTO_DONE); + m = *mp; + if (m->m_len < *offp + sizeof(struct tcphdr)) { + m = m_pullup(m, *offp + sizeof(struct tcphdr)); + if (m == NULL) { + *mp = m; + TCPSTAT_INC(tcps_rcvshort); + return (IPPROTO_DONE); + } + } /* * draft-itojun-ipv6-tcp-to-anycast @@ -547,17 +555,17 @@ tcp6_input(struct mbuf **mp, int *offp, int proto) ip6 = mtod(m, struct ip6_hdr *); ia6 = in6ifa_ifwithaddr(&ip6->ip6_dst, 0 /* XXX */); if (ia6 && (ia6->ia6_flags & IN6_IFF_ANYCAST)) { - struct ip6_hdr *ip6; ifa_free(&ia6->ia_ifa); - ip6 = mtod(m, struct ip6_hdr *); icmp6_error(m, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_ADDR, (caddr_t)&ip6->ip6_dst - (caddr_t)ip6); + *mp = NULL; return (IPPROTO_DONE); } if (ia6) ifa_free(&ia6->ia_ifa); + *mp = m; return (tcp_input(mp, offp, proto)); } #endif /* INET6 */ @@ -616,16 +624,7 @@ tcp_input(struct mbuf **mp, int *offp, int proto) #ifdef INET6 if (isipv6) { - /* IP6_EXTHDR_CHECK() is already done at tcp6_input(). */ - if (m->m_len < (sizeof(*ip6) + sizeof(*th))) { - m = m_pullup(m, sizeof(*ip6) + sizeof(*th)); - if (m == NULL) { - TCPSTAT_INC(tcps_rcvshort); - return (IPPROTO_DONE); - } - } - ip6 = mtod(m, struct ip6_hdr *); th = (struct tcphdr *)((caddr_t)ip6 + off0); tlen = sizeof(*ip6) + ntohs(ip6->ip6_plen) - off0; @@ -733,7 +732,13 @@ tcp_input(struct mbuf **mp, int *offp, int proto) if (off > sizeof (struct tcphdr)) { #ifdef INET6 if (isipv6) { - IP6_EXTHDR_CHECK(m, off0, off, IPPROTO_DONE); + if (m->m_len < off0 + off) { + m = m_pullup(m, off0 + off); + if (m == NULL) { + TCPSTAT_INC(tcps_rcvshort); + return (IPPROTO_DONE); + } + } ip6 = mtod(m, struct ip6_hdr *); th = (struct tcphdr *)((caddr_t)ip6 + off0); } Modified: stable/12/sys/netinet/udp_usrreq.c ============================================================================== --- stable/12/sys/netinet/udp_usrreq.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet/udp_usrreq.c Fri Jan 10 23:46:12 2020 (r356619) @@ -421,14 +421,13 @@ udp_input(struct mbuf **mp, int *offp, int proto) /* * Get IP and UDP header together in first mbuf. */ - ip = mtod(m, struct ip *); if (m->m_len < iphlen + sizeof(struct udphdr)) { if ((m = m_pullup(m, iphlen + sizeof(struct udphdr))) == NULL) { UDPSTAT_INC(udps_hdrops); return (IPPROTO_DONE); } - ip = mtod(m, struct ip *); } + ip = mtod(m, struct ip *); uh = (struct udphdr *)((caddr_t)ip + iphlen); cscov_partial = (proto == IPPROTO_UDPLITE) ? 1 : 0; Modified: stable/12/sys/netinet6/dest6.c ============================================================================== --- stable/12/sys/netinet6/dest6.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet6/dest6.c Fri Jan 10 23:46:12 2020 (r356619) @@ -64,30 +64,35 @@ __FBSDID("$FreeBSD$"); int dest6_input(struct mbuf **mp, int *offp, int proto) { - struct mbuf *m = *mp; - int off = *offp, dstoptlen, optlen; + struct mbuf *m; + int off, dstoptlen, optlen; struct ip6_dest *dstopts; u_int8_t *opt; - /* validation of the length of the header */ -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, sizeof(*dstopts), IPPROTO_DONE); + m = *mp; + off = *offp; + + /* Validation of the length of the header. */ + if (m->m_len < off + sizeof(*dstopts)) { + m = m_pullup(m, off + sizeof(*dstopts)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (IPPROTO_DONE); + } + } dstopts = (struct ip6_dest *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(dstopts, struct ip6_dest *, m, off, sizeof(*dstopts)); - if (dstopts == NULL) - return IPPROTO_DONE; -#endif dstoptlen = (dstopts->ip6d_len + 1) << 3; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, dstoptlen, IPPROTO_DONE); + if (m->m_len < off + dstoptlen) { + m = m_pullup(m, off + dstoptlen); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (IPPROTO_DONE); + } + } dstopts = (struct ip6_dest *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(dstopts, struct ip6_dest *, m, off, dstoptlen); - if (dstopts == NULL) - return IPPROTO_DONE; -#endif off += dstoptlen; dstoptlen -= sizeof(struct ip6_dest); opt = (u_int8_t *)dstopts + sizeof(struct ip6_dest); @@ -110,17 +115,21 @@ dest6_input(struct mbuf **mp, int *offp, int proto) default: /* unknown option */ optlen = ip6_unknown_opt(opt, m, opt - mtod(m, u_int8_t *)); - if (optlen == -1) + if (optlen == -1) { + *mp = NULL; return (IPPROTO_DONE); + } optlen += 2; break; } } *offp = off; + *mp = m; return (dstopts->ip6d_nxt); bad: m_freem(m); + *mp = NULL; return (IPPROTO_DONE); } Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet6/frag6.c Fri Jan 10 23:46:12 2020 (r356619) @@ -218,30 +218,22 @@ SYSCTL_INT(_net_inet6_ip6, IPV6CTL_MAXFRAGBUCKETSIZE, * Remove the IPv6 fragmentation header from the mbuf. */ int -ip6_deletefraghdr(struct mbuf *m, int offset, int wait) +ip6_deletefraghdr(struct mbuf *m, int offset, int wait __unused) { struct ip6_hdr *ip6; - struct mbuf *t; - /* Delete frag6 header. */ - if (m->m_len >= offset + sizeof(struct ip6_frag)) { + KASSERT(m->m_len >= offset + sizeof(struct ip6_frag), + ("%s: ext headers not contigous in mbuf %p m_len %d >= " + "offset %d + %zu\n", __func__, m, m->m_len, offset, + sizeof(struct ip6_frag))); - /* This is the only possible case with !PULLDOWN_TEST. */ - ip6 = mtod(m, struct ip6_hdr *); - bcopy(ip6, (char *)ip6 + sizeof(struct ip6_frag), - offset); - m->m_data += sizeof(struct ip6_frag); - m->m_len -= sizeof(struct ip6_frag); - } else { - - /* This comes with no copy if the boundary is on cluster. */ - if ((t = m_split(m, offset, wait)) == NULL) - return (ENOMEM); - m_adj(t, sizeof(struct ip6_frag)); - m_cat(m, t); - } - + /* Delete frag6 header. */ + ip6 = mtod(m, struct ip6_hdr *); + bcopy(ip6, (char *)ip6 + sizeof(struct ip6_frag), offset); + m->m_data += sizeof(struct ip6_frag); + m->m_len -= sizeof(struct ip6_frag); m->m_flags |= M_FRAGMENTED; + return (0); } @@ -397,15 +389,15 @@ frag6_input(struct mbuf **mp, int *offp, int proto) M_ASSERTPKTHDR(m); + if (m->m_len < offset + sizeof(struct ip6_frag)) { + m = m_pullup(m, offset + sizeof(struct ip6_frag)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = NULL; + return (IPPROTO_DONE); + } + } ip6 = mtod(m, struct ip6_hdr *); -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, offset, sizeof(struct ip6_frag), IPPROTO_DONE); - ip6f = (struct ip6_frag *)((caddr_t)ip6 + offset); -#else - IP6_EXTHDR_GET(ip6f, struct ip6_frag *, m, offset, sizeof(*ip6f)); - if (ip6f == NULL) - return (IPPROTO_DONE); -#endif dstifp = NULL; /* Find the destination interface of the packet. */ @@ -419,6 +411,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) if (ip6->ip6_plen == 0) { icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset); in6_ifstat_inc(dstifp, ifs6_reass_fail); + *mp = NULL; return (IPPROTO_DONE); } @@ -428,11 +421,13 @@ frag6_input(struct mbuf **mp, int *offp, int proto) * sizeof(struct ip6_frag) == 8 * sizeof(struct ip6_hdr) = 40 */ + ip6f = (struct ip6_frag *)((caddr_t)ip6 + offset); if ((ip6f->ip6f_offlg & IP6F_MORE_FRAG) && (((ntohs(ip6->ip6_plen) - offset) & 0x7) != 0)) { icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offsetof(struct ip6_hdr, ip6_plen)); in6_ifstat_inc(dstifp, ifs6_reass_fail); + *mp = NULL; return (IPPROTO_DONE); } @@ -477,6 +472,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) offsetof(struct ip6_hdr, ip6_plen)); in6_ifstat_inc(dstifp, ifs6_reass_fail); IP6STAT_INC(ip6s_fragdropped); + *mp = NULL; return (IPPROTO_DONE); } @@ -612,6 +608,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset - sizeof(struct ip6_frag) + offsetof(struct ip6_frag, ip6f_offlg)); + *mp = NULL; return (IPPROTO_DONE); } } else if (fragoff + frgpartlen > IPV6_MAXPACKET) { @@ -628,6 +625,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset - sizeof(struct ip6_frag) + offsetof(struct ip6_frag, ip6f_offlg)); + *mp = NULL; return (IPPROTO_DONE); } @@ -778,6 +776,7 @@ postinsert: frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); + *mp = NULL; return (IPPROTO_DONE); } plen += af6->ip6af_frglen; @@ -789,6 +788,7 @@ postinsert: frag6_freef(q6, bucket); } IP6QB_UNLOCK(bucket); + *mp = NULL; return (IPPROTO_DONE); } @@ -827,16 +827,8 @@ postinsert: V_ip6qb[bucket].count--; atomic_subtract_int(&frag6_nfrags, q6->ip6q_nfrag); - if (ip6_deletefraghdr(m, offset, M_NOWAIT) != 0) { -#ifdef MAC - mac_ip6q_destroy(q6); -#endif - free(q6, M_FRAG6); - atomic_subtract_int(&V_frag6_nfragpackets, 1); + ip6_deletefraghdr(m, offset, M_NOWAIT); - goto dropfrag; - } - /* Set nxt(-hdr field value) to the original value. */ m_copyback(m, ip6_get_prevhdr(m, offset), sizeof(uint8_t), (caddr_t)&nxt); @@ -878,6 +870,7 @@ postinsert: #ifdef RSS /* Queue/dispatch for reprocessing. */ netisr_dispatch(NETISR_IPV6_DIRECT, m); + *mp = NULL; return (IPPROTO_DONE); #endif @@ -893,6 +886,7 @@ dropfrag2: in6_ifstat_inc(dstifp, ifs6_reass_fail); IP6STAT_INC(ip6s_fragdropped); m_freem(m); + *mp = NULL; return (IPPROTO_DONE); } Modified: stable/12/sys/netinet6/icmp6.c ============================================================================== --- stable/12/sys/netinet6/icmp6.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet6/icmp6.c Fri Jan 10 23:46:12 2020 (r356619) @@ -232,16 +232,13 @@ icmp6_error2(struct mbuf *m, int type, int code, int p if (ifp == NULL) return; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, sizeof(struct ip6_hdr), ); -#else if (m->m_len < sizeof(struct ip6_hdr)) { m = m_pullup(m, sizeof(struct ip6_hdr)); - if (m == NULL) + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); return; + } } -#endif - ip6 = mtod(m, struct ip6_hdr *); if (in6_setscope(&ip6->ip6_src, ifp, NULL) != 0) @@ -276,15 +273,13 @@ icmp6_error(struct mbuf *m, int type, int code, int pa } #endif -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, sizeof(struct ip6_hdr), ); -#else if (m->m_len < sizeof(struct ip6_hdr)) { m = m_pullup(m, sizeof(struct ip6_hdr)); - if (m == NULL) + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); return; + } } -#endif oip6 = mtod(m, struct ip6_hdr *); /* @@ -322,17 +317,16 @@ icmp6_error(struct mbuf *m, int type, int code, int pa if (off >= 0 && nxt == IPPROTO_ICMPV6) { struct icmp6_hdr *icp; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, off + sizeof(struct icmp6_hdr), ); - icp = (struct icmp6_hdr *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(icp, struct icmp6_hdr *, m, off, - sizeof(*icp)); - if (icp == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return; + if (m->m_len < off + sizeof(struct icmp6_hdr)) { + m = m_pullup(m, off + sizeof(struct icmp6_hdr)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + return; + } } -#endif + oip6 = mtod(m, struct ip6_hdr *); + icp = (struct icmp6_hdr *)(mtod(m, caddr_t) + off); + if (icp->icmp6_type < ICMP6_ECHO_REQUEST || icp->icmp6_type == ND_REDIRECT) { /* @@ -349,8 +343,6 @@ icmp6_error(struct mbuf *m, int type, int code, int pa /* non-ICMPv6 - send the error */ } - oip6 = mtod(m, struct ip6_hdr *); /* adjust pointer */ - /* Finally, do rate limitation check. */ if (icmp6_ratelimit(&oip6->ip6_src, type, code)) { ICMP6STAT_INC(icp6s_toofreq); @@ -401,35 +393,38 @@ icmp6_error(struct mbuf *m, int type, int code, int pa int icmp6_input(struct mbuf **mp, int *offp, int proto) { - struct mbuf *m = *mp, *n; + struct mbuf *m, *n; struct ifnet *ifp; struct ip6_hdr *ip6, *nip6; struct icmp6_hdr *icmp6, *nicmp6; - int off = *offp; - int icmp6len = m->m_pkthdr.len - *offp; - int code, sum, noff; char ip6bufs[INET6_ADDRSTRLEN], ip6bufd[INET6_ADDRSTRLEN]; - int ip6len, error; + int code, error, icmp6len, ip6len, noff, off, sum; - ifp = m->m_pkthdr.rcvif; + m = *mp; + off = *offp; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, sizeof(struct icmp6_hdr), IPPROTO_DONE); - /* m might change if M_LOOP. So, call mtod after this */ -#endif + if (m->m_len < off + sizeof(struct icmp6_hdr)) { + m = m_pullup(m, off + sizeof(struct icmp6_hdr)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (IPPROTO_DONE); + } + } /* * Locate icmp6 structure in mbuf, and check * that not corrupted and of at least minimum length */ - ip6 = mtod(m, struct ip6_hdr *); - ip6len = sizeof(struct ip6_hdr) + ntohs(ip6->ip6_plen); + icmp6len = m->m_pkthdr.len - off; if (icmp6len < sizeof(struct icmp6_hdr)) { ICMP6STAT_INC(icp6s_tooshort); goto freeit; } + ip6 = mtod(m, struct ip6_hdr *); + ifp = m->m_pkthdr.rcvif; /* * Check multicast group membership. * Note: SSM filters are not applied for ICMPv6 traffic. @@ -445,20 +440,9 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) } } - /* - * calculate the checksum - */ -#ifndef PULLDOWN_TEST + /* Calculate the checksum. */ icmp6 = (struct icmp6_hdr *)((caddr_t)ip6 + off); -#else - IP6_EXTHDR_GET(icmp6, struct icmp6_hdr *, m, off, sizeof(*icmp6)); - if (icmp6 == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return IPPROTO_DONE; - } -#endif code = icmp6->icmp6_code; - if ((sum = in6_cksum(m, IPPROTO_ICMPV6, off, icmp6len)) != 0) { nd6log((LOG_ERR, "ICMP6 checksum error(%d|%x) %s\n", @@ -473,6 +457,7 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) if (icmp6->icmp6_type < ICMP6_INFOMSG_MASK) icmp6_ifstat_inc(ifp, ifs6_in_error); + ip6len = sizeof(struct ip6_hdr) + ntohs(ip6->ip6_plen); switch (icmp6->icmp6_type) { case ICMP6_DST_UNREACH: icmp6_ifstat_inc(ifp, ifs6_in_dstunreach); @@ -585,8 +570,14 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) n->m_pkthdr.len = n0len + (noff - off); n->m_next = n0; } else { - IP6_EXTHDR_GET(nicmp6, struct icmp6_hdr *, n, off, - sizeof(*nicmp6)); + if (n->m_len < off + sizeof(*nicmp6)) { + n = m_pullup(n, off + sizeof(*nicmp6)); + if (n == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + break; + } + } + nicmp6 = (struct icmp6_hdr *)(mtod(n, caddr_t) + off); noff = off; } if (n) { @@ -619,8 +610,10 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) */ if ((ip6->ip6_hlim != 1) || (m->m_flags & M_RTALERT_MLD) == 0) goto freeit; - if (mld_input(m, off, icmp6len) != 0) + if (mld_input(&m, off, icmp6len) != 0) { + *mp = NULL; return (IPPROTO_DONE); + } /* m stays. */ break; @@ -639,10 +632,15 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) goto badlen; if (mode == FQDN) { -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, sizeof(struct icmp6_nodeinfo), - IPPROTO_DONE); -#endif + if (m->m_len < off + sizeof(struct icmp6_nodeinfo)) { + m = m_pullup(m, off + + sizeof(struct icmp6_nodeinfo)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (IPPROTO_DONE); + } + } n = m_copym(m, 0, M_COPYALL, M_NOWAIT); if (n) n = ni6_input(n, off); @@ -728,7 +726,14 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) if (icmp6len < sizeof(struct nd_router_solicit)) goto badlen; if (send_sendso_input_hook != NULL) { - IP6_EXTHDR_CHECK(m, off, icmp6len, IPPROTO_DONE); + if (m->m_len < off + icmp6len) { + m = m_pullup(m, off + icmp6len); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = NULL; + return (IPPROTO_DONE); + } + } error = send_sendso_input_hook(m, ifp, SND_IN, ip6len); if (error == 0) { m = NULL; @@ -847,6 +852,7 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) deliver: if (icmp6_notify_error(&m, off, icmp6len, code) != 0) { /* In this case, m should've been freed. */ + *mp = NULL; return (IPPROTO_DONE); } break; @@ -863,38 +869,40 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) /* deliver the packet to appropriate sockets */ icmp6_rip6_input(&m, *offp); - return IPPROTO_DONE; + *mp = m; + return (IPPROTO_DONE); freeit: m_freem(m); - return IPPROTO_DONE; + *mp = NULL; + return (IPPROTO_DONE); } static int icmp6_notify_error(struct mbuf **mp, int off, int icmp6len, int code) { - struct mbuf *m = *mp; + struct mbuf *m; struct icmp6_hdr *icmp6; struct ip6_hdr *eip6; u_int32_t notifymtu; struct sockaddr_in6 icmp6src, icmp6dst; + m = *mp; + if (icmp6len < sizeof(struct icmp6_hdr) + sizeof(struct ip6_hdr)) { ICMP6STAT_INC(icp6s_tooshort); goto freeit; } -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, - sizeof(struct icmp6_hdr) + sizeof(struct ip6_hdr), -1); - icmp6 = (struct icmp6_hdr *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(icmp6, struct icmp6_hdr *, m, off, - sizeof(*icmp6) + sizeof(struct ip6_hdr)); - if (icmp6 == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); + + if (m->m_len < off + sizeof(*icmp6) + sizeof(struct ip6_hdr)) { + m = m_pullup(m, off + sizeof(*icmp6) + sizeof(struct ip6_hdr)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (-1); + } } -#endif + icmp6 = (struct icmp6_hdr *)(mtod(m, caddr_t) + off); eip6 = (struct ip6_hdr *)(icmp6 + 1); /* Detect the upper level protocol */ @@ -918,19 +926,17 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp case IPPROTO_HOPOPTS: case IPPROTO_DSTOPTS: case IPPROTO_AH: -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, - eoff + sizeof(struct ip6_ext), -1); - eh = (struct ip6_ext *)(mtod(m, caddr_t) + eoff); -#else - IP6_EXTHDR_GET(eh, struct ip6_ext *, m, - eoff, sizeof(*eh)); - if (eh == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); + if (m->m_len < eoff + sizeof(struct ip6_ext)) { + m = m_pullup(m, eoff + + sizeof(struct ip6_ext)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (-1); + } } -#endif - + eh = (struct ip6_ext *) + (mtod(m, caddr_t) + eoff); if (nxt == IPPROTO_AH) eoff += (eh->ip6e_len + 2) << 2; else @@ -946,18 +952,16 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp * information that depends on the final * destination (e.g. path MTU). */ -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, eoff + sizeof(*rth), -1); + if (m->m_len < eoff + sizeof(*rth)) { + m = m_pullup(m, eoff + sizeof(*rth)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (-1); + } + } rth = (struct ip6_rthdr *) (mtod(m, caddr_t) + eoff); -#else - IP6_EXTHDR_GET(rth, struct ip6_rthdr *, m, - eoff, sizeof(*rth)); - if (rth == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); - } -#endif rthlen = (rth->ip6r_len + 1) << 3; /* * XXX: currently there is no @@ -971,19 +975,17 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp rth->ip6r_type == IPV6_RTHDR_TYPE_0) { int hops; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, eoff + rthlen, -1); + if (m->m_len < eoff + rthlen) { + m = m_pullup(m, eoff + rthlen); + if (m == NULL) { + IP6STAT_INC( + ip6s_exthdrtoolong); + *mp = m; + return (-1); + } + } rth0 = (struct ip6_rthdr0 *) (mtod(m, caddr_t) + eoff); -#else - IP6_EXTHDR_GET(rth0, - struct ip6_rthdr0 *, m, - eoff, rthlen); - if (rth0 == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); - } -#endif /* just ignore a bogus header */ if ((rth0->ip6r0_len % 2) == 0 && (hops = rth0->ip6r0_len/2)) @@ -993,19 +995,17 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp nxt = rth->ip6r_nxt; break; case IPPROTO_FRAGMENT: -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, 0, eoff + - sizeof(struct ip6_frag), -1); + if (m->m_len < eoff + sizeof(struct ip6_frag)) { + m = m_pullup(m, eoff + + sizeof(struct ip6_frag)); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + *mp = m; + return (-1); + } + } fh = (struct ip6_frag *)(mtod(m, caddr_t) + eoff); -#else - IP6_EXTHDR_GET(fh, struct ip6_frag *, m, - eoff, sizeof(*fh)); - if (fh == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); - } -#endif /* * Data after a fragment header is meaningless * unless it is the first fragment, but @@ -1031,16 +1031,7 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp } } notify: -#ifndef PULLDOWN_TEST icmp6 = (struct icmp6_hdr *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(icmp6, struct icmp6_hdr *, m, off, - sizeof(*icmp6) + sizeof(struct ip6_hdr)); - if (icmp6 == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return (-1); - } -#endif /* * retrieve parameters from the inner IPv6 header, and convert @@ -1098,6 +1089,7 @@ icmp6_notify_error(struct mbuf **mp, int off, int icmp freeit: m_freem(m); + *mp = NULL; return (-1); } @@ -1185,15 +1177,7 @@ ni6_input(struct mbuf *m, int off) struct in6_ifaddr *ia6 = NULL; ip6 = mtod(m, struct ip6_hdr *); -#ifndef PULLDOWN_TEST ni6 = (struct icmp6_nodeinfo *)(mtod(m, caddr_t) + off); -#else - IP6_EXTHDR_GET(ni6, struct icmp6_nodeinfo *, m, off, sizeof(*ni6)); - if (ni6 == NULL) { - /* m is already reclaimed */ - return (NULL); - } -#endif /* * Validate IPv6 source address. @@ -1290,7 +1274,6 @@ ni6_input(struct mbuf *m, int off) * * We do not do proxy at this moment. */ - /* m_pulldown instead of copy? */ m_copydata(m, off + sizeof(struct icmp6_nodeinfo), subjlen, (caddr_t)&in6_subj); if (in6_setscope(&in6_subj, m->m_pkthdr.rcvif, NULL)) @@ -1330,10 +1313,19 @@ ni6_input(struct mbuf *m, int off) mtx_unlock(&pr->pr_mtx); if (!n || n->m_next || n->m_len == 0) goto bad; - IP6_EXTHDR_GET(subj, char *, m, - off + sizeof(struct icmp6_nodeinfo), subjlen); - if (subj == NULL) - goto bad; + if (m->m_len < off + sizeof(struct icmp6_nodeinfo) + + subjlen) { + m = m_pullup(m, off + + sizeof(struct icmp6_nodeinfo) + subjlen); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + goto bad; + } + } + /* ip6 possibly invalid but not used after. */ + ni6 = (struct icmp6_nodeinfo *)(mtod(m, caddr_t) + off); + subj = (char *)(mtod(m, caddr_t) + off + + sizeof(struct icmp6_nodeinfo)); if (!ni6_dnsmatch(subj, subjlen, mtod(n, const char *), n->m_len)) { goto bad; @@ -1899,16 +1891,8 @@ icmp6_rip6_input(struct mbuf **mp, int off) struct epoch_tracker et; struct mbuf *opts = NULL; -#ifndef PULLDOWN_TEST - /* this is assumed to be safe. */ + /* This is assumed to be safe; icmp6_input() does a pullup. */ icmp6 = (struct icmp6_hdr *)((caddr_t)ip6 + off); -#else - IP6_EXTHDR_GET(icmp6, struct icmp6_hdr *, m, off, sizeof(*icmp6)); - if (icmp6 == NULL) { - /* m is already reclaimed */ - return (IPPROTO_DONE); - } -#endif /* * XXX: the address may have embedded scope zone ID, which should be @@ -1920,6 +1904,7 @@ icmp6_rip6_input(struct mbuf **mp, int off) fromsa.sin6_addr = ip6->ip6_src; if (sa6_recoverscope(&fromsa)) { m_freem(m); + *mp = NULL; return (IPPROTO_DONE); } @@ -2045,7 +2030,8 @@ icmp6_rip6_input(struct mbuf **mp, int off) m_freem(m); IP6STAT_DEC(ip6s_delivered); } - return IPPROTO_DONE; + *mp = NULL; + return (IPPROTO_DONE); } /* @@ -2223,24 +2209,17 @@ void icmp6_redirect_input(struct mbuf *m, int off) { struct ifnet *ifp; - struct ip6_hdr *ip6 = mtod(m, struct ip6_hdr *); + struct ip6_hdr *ip6; struct nd_redirect *nd_rd; - int icmp6len = ntohs(ip6->ip6_plen); - char *lladdr = NULL; - int lladdrlen = 0; - int is_router; - int is_onlink; - struct in6_addr src6 = ip6->ip6_src; - struct in6_addr redtgt6; - struct in6_addr reddst6; + struct in6_addr src6, redtgt6, reddst6; union nd_opts ndopts; char ip6buf[INET6_ADDRSTRLEN]; + char *lladdr; + int icmp6len, is_onlink, is_router, lladdrlen; M_ASSERTPKTHDR(m); KASSERT(m->m_pkthdr.rcvif != NULL, ("%s: no rcvif", __func__)); - ifp = m->m_pkthdr.rcvif; - /* XXX if we are router, we don't update route by icmp6 redirect */ if (V_ip6_forwarding) goto freeit; @@ -2251,25 +2230,29 @@ icmp6_redirect_input(struct mbuf *m, int off) if(m->m_flags & M_FRAGMENTED) goto freeit; -#ifndef PULLDOWN_TEST - IP6_EXTHDR_CHECK(m, off, icmp6len,); - nd_rd = (struct nd_redirect *)((caddr_t)ip6 + off); -#else - IP6_EXTHDR_GET(nd_rd, struct nd_redirect *, m, off, icmp6len); - if (nd_rd == NULL) { - ICMP6STAT_INC(icp6s_tooshort); - return; + ip6 = mtod(m, struct ip6_hdr *); + icmp6len = ntohs(ip6->ip6_plen); + if (m->m_len < off + icmp6len) { + m = m_pullup(m, off + icmp6len); + if (m == NULL) { + IP6STAT_INC(ip6s_exthdrtoolong); + return; + } } -#endif + ip6 = mtod(m, struct ip6_hdr *); + nd_rd = (struct nd_redirect *)((caddr_t)ip6 + off); + + ifp = m->m_pkthdr.rcvif; redtgt6 = nd_rd->nd_rd_target; reddst6 = nd_rd->nd_rd_dst; - if (in6_setscope(&redtgt6, m->m_pkthdr.rcvif, NULL) || - in6_setscope(&reddst6, m->m_pkthdr.rcvif, NULL)) { + if (in6_setscope(&redtgt6, ifp, NULL) || + in6_setscope(&reddst6, ifp, NULL)) { goto freeit; } /* validation */ + src6 = ip6->ip6_src; if (!IN6_IS_ADDR_LINKLOCAL(&src6)) { nd6log((LOG_ERR, "ICMP6 redirect sent from %s rejected; " @@ -2355,6 +2338,8 @@ icmp6_redirect_input(struct mbuf *m, int off) goto freeit; } + lladdr = NULL; + lladdrlen = 0; if (ndopts.nd_opts_tgt_lladdr) { lladdr = (char *)(ndopts.nd_opts_tgt_lladdr + 1); lladdrlen = ndopts.nd_opts_tgt_lladdr->nd_opt_len << 3; Modified: stable/12/sys/netinet6/in6.c ============================================================================== --- stable/12/sys/netinet6/in6.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet6/in6.c Fri Jan 10 23:46:12 2020 (r356619) @@ -84,6 +84,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -2022,8 +2023,6 @@ in6_if2idlen(struct ifnet *ifp) return (64); } } - -#include struct in6_llentry { struct llentry base; Modified: stable/12/sys/netinet6/ip6_input.c ============================================================================== --- stable/12/sys/netinet6/ip6_input.c Fri Jan 10 22:49:14 2020 (r356618) +++ stable/12/sys/netinet6/ip6_input.c Fri Jan 10 23:46:12 2020 (r356619) @@ -203,9 +203,6 @@ struct rmlock in6_ifaddr_lock; RM_SYSINIT(in6_ifaddr_lock, &in6_ifaddr_lock, "in6_ifaddr_lock"); static int ip6_hopopts_input(u_int32_t *, u_int32_t *, struct mbuf **, int *); -#ifdef PULLDOWN_TEST -static struct mbuf *ip6_pullexthdr(struct mbuf *, size_t, int); -#endif /* * IP6 initialization: fill in IP6 protocol switch table. @@ -442,17 +439,8 @@ ip6_input_hbh(struct mbuf **mp, uint32_t *plen, uint32 (caddr_t)&ip6->ip6_plen - (caddr_t)ip6); goto out; } -#ifndef PULLDOWN_TEST /* ip6_hopopts_input() ensures that mbuf is contiguous */ hbh = (struct ip6_hbh *)(ip6 + 1); -#else - IP6_EXTHDR_GET(hbh, struct ip6_hbh *, m, sizeof(struct ip6_hdr), - sizeof(struct ip6_hbh)); - if (hbh == NULL) { - IP6STAT_INC(ip6s_tooshort); - goto out; - } -#endif *nxt = hbh->ip6h_nxt; /* @@ -603,7 +591,6 @@ ip6_input(struct mbuf *m) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable@freebsd.org Fri Jan 10 23:52:37 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 47FB31F6F62; Fri, 10 Jan 2020 23:52:37 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vftF1Jzwz4JZV; Fri, 10 Jan 2020 23:52:37 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 284A121EDA; Fri, 10 Jan 2020 23:52:37 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00ANqbjk054207; Fri, 10 Jan 2020 23:52:37 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00ANqb47054206; Fri, 10 Jan 2020 23:52:37 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001102352.00ANqb47054206@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Fri, 10 Jan 2020 23:52:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356620 - stable/12/sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/net X-SVN-Commit-Revision: 356620 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jan 2020 23:52:37 -0000 Author: bz Date: Fri Jan 10 23:52:36 2020 New Revision: 356620 URL: https://svnweb.freebsd.org/changeset/base/356620 Log: MFC r354726,354755: if_llatbl: cleanup if_llatbl: change htable_unlink_entry() to early exist if no work to do No functional change. Modified: stable/12/sys/net/if_llatbl.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/net/if_llatbl.c ============================================================================== --- stable/12/sys/net/if_llatbl.c Fri Jan 10 23:46:12 2020 (r356619) +++ stable/12/sys/net/if_llatbl.c Fri Jan 10 23:52:36 2020 (r356620) @@ -79,11 +79,6 @@ RW_SYSINIT(lltable_list_lock, &lltable_list_lock, "llt static void lltable_unlink(struct lltable *llt); static void llentries_unlink(struct lltable *llt, struct llentries *head); -static void htable_unlink_entry(struct llentry *lle); -static void htable_link_entry(struct lltable *llt, struct llentry *lle); -static int htable_foreach_lle(struct lltable *llt, llt_foreach_cb_t *f, - void *farg); - /* * Dump lle state for a specific address family. */ @@ -180,15 +175,16 @@ static void htable_unlink_entry(struct llentry *lle) { - if ((lle->la_flags & LLE_LINKED) != 0) { - IF_AFDATA_WLOCK_ASSERT(lle->lle_tbl->llt_ifp); - CK_LIST_REMOVE(lle, lle_next); - lle->la_flags &= ~(LLE_VALID | LLE_LINKED); + if ((lle->la_flags & LLE_LINKED) == 0) + return; + + IF_AFDATA_WLOCK_ASSERT(lle->lle_tbl->llt_ifp); + CK_LIST_REMOVE(lle, lle_next); + lle->la_flags &= ~(LLE_VALID | LLE_LINKED); #if 0 - lle->lle_tbl = NULL; - lle->lle_head = NULL; + lle->lle_tbl = NULL; + lle->lle_head = NULL; #endif - } } struct prefix_match_data { From owner-svn-src-stable@freebsd.org Sat Jan 11 00:08:16 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E8A6E1F732A; Sat, 11 Jan 2020 00:08:16 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vgDJ5b8Xz4K7q; Sat, 11 Jan 2020 00:08:16 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B657F220C0; Sat, 11 Jan 2020 00:08:16 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B08G5t060386; Sat, 11 Jan 2020 00:08:16 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B08GDJ060385; Sat, 11 Jan 2020 00:08:16 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001110008.00B08GDJ060385@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sat, 11 Jan 2020 00:08:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356621 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 356621 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 00:08:17 -0000 Author: bz Date: Sat Jan 11 00:08:16 2020 New Revision: 356621 URL: https://svnweb.freebsd.org/changeset/base/356621 Log: MFC r354857: Reduce the vnet_set module size of ip_mroute to allow loading as a module. With VIMAGE kernels modules get special treatment as they need to also keep the original values and make copies for each instance. For that a few pages of vnet modspace are provided and the kernel-linker and the VNET framework know how to deal with things. When the modspace is (almost) full, other modules which would overflow the modspace cannot be loaded and kldload will fail. ip_mroute uses a lot of variable space, mostly be four big arrays: set_vnet 0000000000000510 vnet_entry_multicast_register_if set_vnet 0000000000000700 vnet_entry_viftable set_vnet 0000000000002000 vnet_entry_bw_meter_timers set_vnet 0000000000002800 vnet_entry_bw_upcalls Dynamically malloc the three big ones for each instance we need and free them again on vnet teardown (the 4th is an ifnet). That way they only need module space for a single pointer and allow a lot more modules using virtualized variables to be loaded on a VNET kernel. PR: 206583 Modified: stable/12/sys/netinet/ip_mroute.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_mroute.c ============================================================================== --- stable/12/sys/netinet/ip_mroute.c Fri Jan 10 23:52:36 2020 (r356620) +++ stable/12/sys/netinet/ip_mroute.c Sat Jan 11 00:08:16 2020 (r356621) @@ -179,10 +179,14 @@ static struct mtx mfc_mtx; VNET_DEFINE_STATIC(vifi_t, numvifs); #define V_numvifs VNET(numvifs) -VNET_DEFINE_STATIC(struct vif, viftable[MAXVIFS]); +VNET_DEFINE_STATIC(struct vif *, viftable); #define V_viftable VNET(viftable) +/* + * No one should be able to "query" this before initialisation happened in + * vnet_mroute_init(), so we should still be fine. + */ SYSCTL_OPAQUE(_net_inet_ip, OID_AUTO, viftable, CTLFLAG_VNET | CTLFLAG_RD, - &VNET_NAME(viftable), sizeof(V_viftable), "S,vif[MAXVIFS]", + &VNET_NAME(viftable), sizeof(*V_viftable) * MAXVIFS, "S,vif[MAXVIFS]", "IPv4 Multicast Interfaces (struct vif[MAXVIFS], netinet/ip_mroute.h)"); static struct mtx vif_mtx; @@ -210,7 +214,7 @@ static MALLOC_DEFINE(M_BWMETER, "bwmeter", "multicast * expiration time. Periodically, the entries are analysed and processed. */ #define BW_METER_BUCKETS 1024 -VNET_DEFINE_STATIC(struct bw_meter*, bw_meter_timers[BW_METER_BUCKETS]); +VNET_DEFINE_STATIC(struct bw_meter **, bw_meter_timers); #define V_bw_meter_timers VNET(bw_meter_timers) VNET_DEFINE_STATIC(struct callout, bw_meter_ch); #define V_bw_meter_ch VNET(bw_meter_ch) @@ -220,7 +224,7 @@ VNET_DEFINE_STATIC(struct callout, bw_meter_ch); * Pending upcalls are stored in a vector which is flushed when * full, or periodically */ -VNET_DEFINE_STATIC(struct bw_upcall, bw_upcalls[BW_UPCALLS_MAX]); +VNET_DEFINE_STATIC(struct bw_upcall *, bw_upcalls); #define V_bw_upcalls VNET(bw_upcalls) VNET_DEFINE_STATIC(u_int, bw_upcalls_n); /* # of pending upcalls */ #define V_bw_upcalls_n VNET(bw_upcalls_n) @@ -764,7 +768,7 @@ X_ip_mrouter_done(void) bzero(V_nexpire, sizeof(V_nexpire[0]) * mfchashsize); V_bw_upcalls_n = 0; - bzero(V_bw_meter_timers, sizeof(V_bw_meter_timers)); + bzero(V_bw_meter_timers, BW_METER_BUCKETS * sizeof(*V_bw_meter_timers)); MFC_UNLOCK(); @@ -2805,7 +2809,14 @@ vnet_mroute_init(const void *unused __unused) { V_nexpire = malloc(mfchashsize, M_MRTABLE, M_WAITOK|M_ZERO); - bzero(V_bw_meter_timers, sizeof(V_bw_meter_timers)); + + V_viftable = mallocarray(MAXVIFS, sizeof(*V_viftable), + M_MRTABLE, M_WAITOK|M_ZERO); + V_bw_meter_timers = mallocarray(BW_METER_BUCKETS, + sizeof(*V_bw_meter_timers), M_MRTABLE, M_WAITOK|M_ZERO); + V_bw_upcalls = mallocarray(BW_UPCALLS_MAX, sizeof(*V_bw_upcalls), + M_MRTABLE, M_WAITOK|M_ZERO); + callout_init(&V_expire_upcalls_ch, 1); callout_init(&V_bw_upcalls_ch, 1); callout_init(&V_bw_meter_ch, 1); @@ -2818,6 +2829,9 @@ static void vnet_mroute_uninit(const void *unused __unused) { + free(V_bw_upcalls, M_MRTABLE); + free(V_bw_meter_timers, M_MRTABLE); + free(V_viftable, M_MRTABLE); free(V_nexpire, M_MRTABLE); V_nexpire = NULL; } From owner-svn-src-stable@freebsd.org Sat Jan 11 00:11:30 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BD3B51F73FE; Sat, 11 Jan 2020 00:11:30 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vgJ24gRmz4KVy; Sat, 11 Jan 2020 00:11:30 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 82EB222123; Sat, 11 Jan 2020 00:11:30 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B0BUcG061414; Sat, 11 Jan 2020 00:11:30 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B0BUFg061412; Sat, 11 Jan 2020 00:11:30 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001110011.00B0BUFg061412@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sat, 11 Jan 2020 00:11:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356622 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 356622 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 00:11:30 -0000 Author: bz Date: Sat Jan 11 00:11:29 2020 New Revision: 356622 URL: https://svnweb.freebsd.org/changeset/base/356622 Log: MFC r355449,355466: carp: replace caddr_t with char * Change the remaining caddr_t usages to char * following the removal of the KAME macros No functional change. Modified: stable/12/sys/netinet/ip_carp.c stable/12/sys/netinet/ip_carp.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_carp.c ============================================================================== --- stable/12/sys/netinet/ip_carp.c Sat Jan 11 00:08:16 2020 (r356621) +++ stable/12/sys/netinet/ip_carp.c Sat Jan 11 00:11:29 2020 (r356622) @@ -575,7 +575,7 @@ carp6_input(struct mbuf **mp, int *offp, int proto) return (IPPROTO_DONE); } } - ch = (struct carp_header *)(mtod(m, caddr_t) + *offp); + ch = (struct carp_header *)(mtod(m, char *) + *offp); /* verify the CARP checksum */ @@ -1190,7 +1190,7 @@ carp_iamatch6(struct ifnet *ifp, struct in6_addr *tadd return (ifa); } -caddr_t +char * carp_macmatch6(struct ifnet *ifp, struct mbuf *m, const struct in6_addr *taddr) { struct ifaddr *ifa; @@ -1849,7 +1849,7 @@ carp_ioctl(struct ifreq *ifr, u_long cmd, struct threa carp_carprcp(&carpr, sc, priveleged); carpr.carpr_count = count; error = copyout(&carpr, - (caddr_t)ifr_data_get_ptr(ifr) + + (char *)ifr_data_get_ptr(ifr) + (i * sizeof(carpr)), sizeof(carpr)); if (error) { CIF_UNLOCK(ifp->if_carp); Modified: stable/12/sys/netinet/ip_carp.h ============================================================================== --- stable/12/sys/netinet/ip_carp.h Sat Jan 11 00:08:16 2020 (r356621) +++ stable/12/sys/netinet/ip_carp.h Sat Jan 11 00:11:29 2020 (r356622) @@ -149,7 +149,7 @@ int carp_output (struct ifnet *, struct mbuf *, int carp_master(struct ifaddr *); int carp_iamatch(struct ifaddr *, uint8_t **); struct ifaddr *carp_iamatch6(struct ifnet *, struct in6_addr *); -caddr_t carp_macmatch6(struct ifnet *, struct mbuf *, const struct in6_addr *); +char * carp_macmatch6(struct ifnet *, struct mbuf *, const struct in6_addr *); int carp_forus(struct ifnet *, u_char *); /* These are external networking stack hooks for CARP */ @@ -174,7 +174,7 @@ extern int (*carp_iamatch_p)(struct ifaddr *, uint8_t #ifdef INET6 /* netinet6/nd6_nbr.c */ extern struct ifaddr *(*carp_iamatch6_p)(struct ifnet *, struct in6_addr *); -extern caddr_t (*carp_macmatch6_p)(struct ifnet *, struct mbuf *, +extern char * (*carp_macmatch6_p)(struct ifnet *, struct mbuf *, const struct in6_addr *); #endif #endif From owner-svn-src-stable@freebsd.org Sat Jan 11 01:15:40 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 22CED1F882B; Sat, 11 Jan 2020 01:15:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vhk40BFCz4NCL; Sat, 11 Jan 2020 01:15:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 016BB22D81; Sat, 11 Jan 2020 01:15:40 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B1FdC0002618; Sat, 11 Jan 2020 01:15:39 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B1FdjY002614; Sat, 11 Jan 2020 01:15:39 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001110115.00B1FdjY002614@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sat, 11 Jan 2020 01:15:39 +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: r356623 - in stable/11/sys: netinet netinet6 X-SVN-Group: stable-11 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/11/sys: netinet netinet6 X-SVN-Commit-Revision: 356623 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 01:15:40 -0000 Author: bz Date: Sat Jan 11 01:15:38 2020 New Revision: 356623 URL: https://svnweb.freebsd.org/changeset/base/356623 Log: MFC r354643: netinet*: update *mp to pass the proper value back In ip6_[direct_]input() we are looping over the extension headers to deal with the next header. We pass a pointer to an mbuf pointer to the handling functions. In certain cases the mbuf can be updated there and we need to pass the new one back. That missing in dest6_input() and route6_input(). In tcp6_input() we should also update it before we call tcp_input(). The merge is extracted of a larger change in head. PR: 240135 Reported by: prabhakar.lakhera gmail.com Modified: stable/11/sys/netinet/tcp_input.c stable/11/sys/netinet6/dest6.c stable/11/sys/netinet6/icmp6.c stable/11/sys/netinet6/route6.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netinet/tcp_input.c ============================================================================== --- stable/11/sys/netinet/tcp_input.c Sat Jan 11 00:11:29 2020 (r356622) +++ stable/11/sys/netinet/tcp_input.c Sat Jan 11 01:15:38 2020 (r356623) @@ -558,6 +558,7 @@ tcp6_input(struct mbuf **mp, int *offp, int proto) if (ia6) ifa_free(&ia6->ia_ifa); + *mp = m; return (tcp_input(mp, offp, proto)); } #endif /* INET6 */ Modified: stable/11/sys/netinet6/dest6.c ============================================================================== --- stable/11/sys/netinet6/dest6.c Sat Jan 11 00:11:29 2020 (r356622) +++ stable/11/sys/netinet6/dest6.c Sat Jan 11 01:15:38 2020 (r356623) @@ -116,6 +116,7 @@ dest6_input(struct mbuf **mp, int *offp, int proto) } *offp = off; + *mp = m; return (dstopts->ip6d_nxt); bad: Modified: stable/11/sys/netinet6/icmp6.c ============================================================================== --- stable/11/sys/netinet6/icmp6.c Sat Jan 11 00:11:29 2020 (r356622) +++ stable/11/sys/netinet6/icmp6.c Sat Jan 11 01:15:38 2020 (r356623) @@ -861,6 +861,7 @@ icmp6_input(struct mbuf **mp, int *offp, int proto) /* deliver the packet to appropriate sockets */ icmp6_rip6_input(&m, *offp); + *mp = m; return IPPROTO_DONE; freeit: Modified: stable/11/sys/netinet6/route6.c ============================================================================== --- stable/11/sys/netinet6/route6.c Sat Jan 11 00:11:29 2020 (r356622) +++ stable/11/sys/netinet6/route6.c Sat Jan 11 01:15:38 2020 (r356623) @@ -108,5 +108,6 @@ route6_input(struct mbuf **mp, int *offp, int proto) } *offp += rhlen; + *mp = m; return (rh->ip6r_nxt); } From owner-svn-src-stable@freebsd.org Sat Jan 11 01:56:58 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 422FC1FA45E; Sat, 11 Jan 2020 01:56:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vjdk11L9z4QQp; Sat, 11 Jan 2020 01:56:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1DED623579; Sat, 11 Jan 2020 01:56:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B1uvPh026557; Sat, 11 Jan 2020 01:56:57 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B1uvYq026554; Sat, 11 Jan 2020 01:56:57 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001110156.00B1uvYq026554@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sat, 11 Jan 2020 01:56:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356625 - in stable/12: sys/netinet6 usr.bin/netstat usr.bin/systat X-SVN-Group: stable-12 X-SVN-Commit-Author: bz X-SVN-Commit-Paths: in stable/12: sys/netinet6 usr.bin/netstat usr.bin/systat X-SVN-Commit-Revision: 356625 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 01:56:58 -0000 Author: bz Date: Sat Jan 11 01:56:57 2020 New Revision: 356625 URL: https://svnweb.freebsd.org/changeset/base/356625 Log: MFC 346398 (by thj): Add stat counter for ipv6 atomic fragments Add a stat counter to track ipv6 atomic fragments. Atomic fragments can be generated in response to invalid path MTU values, but are also a potential attack vector and considered harmful (see RFC6946 and RFC8021). While here add tracking of the atomic fragment counter to netstat and systat. This should fix failing CI tests merged from head as Resported by: lwhsu Modified: stable/12/sys/netinet6/frag6.c stable/12/sys/netinet6/ip6_var.h stable/12/usr.bin/netstat/inet6.c stable/12/usr.bin/systat/ip6.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet6/frag6.c ============================================================================== --- stable/12/sys/netinet6/frag6.c Sat Jan 11 01:44:55 2020 (r356624) +++ stable/12/sys/netinet6/frag6.c Sat Jan 11 01:56:57 2020 (r356625) @@ -441,8 +441,7 @@ frag6_input(struct mbuf **mp, int *offp, int proto) * See RFC 6946 and section 4.5 of RFC 8200. */ if ((ip6f->ip6f_offlg & ~IP6F_RESERVED_MASK) == 0) { - /* XXX-BZ we want dedicated counters for this. */ - IP6STAT_INC(ip6s_reassembled); + IP6STAT_INC(ip6s_atomicfrags); nxt = ip6f->ip6f_nxt; /* * Set nxt(-hdr field value) to the original value. Modified: stable/12/sys/netinet6/ip6_var.h ============================================================================== --- stable/12/sys/netinet6/ip6_var.h Sat Jan 11 01:44:55 2020 (r356624) +++ stable/12/sys/netinet6/ip6_var.h Sat Jan 11 01:56:57 2020 (r356625) @@ -195,6 +195,7 @@ struct ip6stat { uint64_t ip6s_localout; /* total ip packets generated here */ uint64_t ip6s_odropped; /* lost packets due to nobufs, etc. */ uint64_t ip6s_reassembled; /* total packets reassembled ok */ + uint64_t ip6s_atomicfrags; /* atomic fragments */ uint64_t ip6s_fragmented; /* datagrams successfully fragmented */ uint64_t ip6s_ofragments; /* output fragments created */ uint64_t ip6s_cantfrag; /* don't fragment flag was set, etc. */ Modified: stable/12/usr.bin/netstat/inet6.c ============================================================================== --- stable/12/usr.bin/netstat/inet6.c Sat Jan 11 01:44:55 2020 (r356624) +++ stable/12/usr.bin/netstat/inet6.c Sat Jan 11 01:56:57 2020 (r356625) @@ -391,6 +391,8 @@ ip6_stats(u_long off, const char *name, int af1 __unus "{N:/fragment%s dropped after timeout}\n"); p(ip6s_fragoverflow, "\t{:dropped-fragments-overflow/%ju} " "{N:/fragment%s that exceeded limit}\n"); + p(ip6s_atomicfrags, "\t{:atomic-fragments/%ju} " + "{N:/atomic fragment%s}\n"); p(ip6s_reassembled, "\t{:reassembled-packets/%ju} " "{N:/packet%s reassembled ok}\n"); p(ip6s_delivered, "\t{:received-local-packets/%ju} " Modified: stable/12/usr.bin/systat/ip6.c ============================================================================== --- stable/12/usr.bin/systat/ip6.c Sat Jan 11 01:44:55 2020 (r356624) +++ stable/12/usr.bin/systat/ip6.c Sat Jan 11 01:56:57 2020 (r356625) @@ -121,16 +121,16 @@ labelip6(void) L(6, "- fragments dropped"); R(6, "destinations unreachable"); L(7, "- fragments timed out"); R(7, "packets output via raw IP"); L(8, "- fragments overflown"); - L(9, "- packets reassembled ok"); R(9, "Input next-header histogram"); - L(10, "packets forwarded"); R(10, " - destination options"); - L(11, "- unreachable dests"); R(11, " - hop-by-hop options"); - L(12, "- redirects generated"); R(12, " - IPv4"); - L(13, "option errors"); R(13, " - TCP"); - L(14, "unwanted multicasts"); R(14, " - UDP"); - L(15, "delivered to upper layer"); R(15, " - IPv6"); - L(16, "bad scope packets"); R(16, " - routing header"); - L(17, "address selection failed"); R(17, " - fragmentation header"); - R(18, " - ICMP6"); + L(9, "- atomic fragments"); R(9, "Input next-header histogram"); + L(10, "- packets reassembled ok"); R(10, " - destination options"); + L(11, "packets forwarded"); R(11, " - hop-by-hop options"); + L(12, "- unreachable dests"); R(12, " - IPv4"); + L(13, "- redirects generated"); R(13, " - TCP"); + L(14, "option errors"); R(14, " - UDP"); + L(15, "unwanted multicasts"); R(15, " - IPv6"); + L(16, "delivered to upper layer"); R(16, " - routing header"); + L(17, "bad scope packets"); R(17, " - fragmentation header"); + L(18, "address selection failed");R(18, " - ICMP6"); R(19, " - none"); #undef L #undef R @@ -165,6 +165,7 @@ domode(struct ip6stat *ret) DO(ip6s_fragdropped); DO(ip6s_fragtimeout); DO(ip6s_fragoverflow); + DO(ip6s_atomicfrags); DO(ip6s_forward); DO(ip6s_cantforward); DO(ip6s_redirectsent); @@ -214,22 +215,23 @@ showip6(void) DO(ip6s_fragtimeout, 7, 0); DO(ip6s_rawout, 7, 35); DO(ip6s_fragoverflow, 8, 0); - DO(ip6s_reassembled, 9, 0); - DO(ip6s_forward, 10, 0); + DO(ip6s_atomicfrags, 9, 0); + DO(ip6s_reassembled, 10, 0); + DO(ip6s_forward, 11, 0); DO(ip6s_nxthist[IPPROTO_DSTOPTS], 10, 35); - DO(ip6s_cantforward, 11, 0); + DO(ip6s_cantforward, 12, 0); DO(ip6s_nxthist[IPPROTO_HOPOPTS], 11, 35); - DO(ip6s_redirectsent, 12, 0); + DO(ip6s_redirectsent, 13, 0); DO(ip6s_nxthist[IPPROTO_IPV4], 12, 35); - DO(ip6s_badoptions, 13, 0); + DO(ip6s_badoptions, 14, 0); DO(ip6s_nxthist[IPPROTO_TCP], 13, 35); - DO(ip6s_notmember, 14, 0); + DO(ip6s_notmember, 15, 0); DO(ip6s_nxthist[IPPROTO_UDP], 14, 35); - DO(ip6s_delivered, 15, 0); + DO(ip6s_delivered, 16, 0); DO(ip6s_nxthist[IPPROTO_IPV6], 15, 35); - DO(ip6s_badscope, 16, 0); + DO(ip6s_badscope, 17, 0); DO(ip6s_nxthist[IPPROTO_ROUTING], 16, 35); - DO(ip6s_sources_none, 17, 0); + DO(ip6s_sources_none, 18, 0); DO(ip6s_nxthist[IPPROTO_FRAGMENT], 17, 35); DO(ip6s_nxthist[IPPROTO_ICMPV6], 18, 35); DO(ip6s_nxthist[IPPROTO_NONE], 19, 35); From owner-svn-src-stable@freebsd.org Sat Jan 11 03:15:13 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 230791FBE78; Sat, 11 Jan 2020 03:15:13 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vlN071WYz4TVV; Sat, 11 Jan 2020 03:15:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EC3002444F; Sat, 11 Jan 2020 03:15:12 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B3FCad075101; Sat, 11 Jan 2020 03:15:12 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B3FCCP075100; Sat, 11 Jan 2020 03:15:12 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001110315.00B3FCCP075100@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 11 Jan 2020 03:15: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: r356626 - in stable: 11/lib/libc/secure 12/lib/libc/secure X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libc/secure 12/lib/libc/secure X-SVN-Commit-Revision: 356626 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 03:15:13 -0000 Author: kevans Date: Sat Jan 11 03:15:12 2020 New Revision: 356626 URL: https://svnweb.freebsd.org/changeset/base/356626 Log: MFC r356355: ssp: knock out some trivial warnings that come up with WARNS=6 A future commit will rebuild this as part of libssp. The exact warnings are fairly trivially fixed: - No previous declaration for __stack_chk_guard - idx is the wrong type, nitems yields a size_t - Casting away volatile on the tmp_stack_chk_guard directly is a no-no. Modified: stable/11/lib/libc/secure/stack_protector.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/lib/libc/secure/stack_protector.c Directory Properties: stable/12/ (props changed) Modified: stable/11/lib/libc/secure/stack_protector.c ============================================================================== --- stable/11/lib/libc/secure/stack_protector.c Sat Jan 11 01:56:57 2020 (r356625) +++ stable/11/lib/libc/secure/stack_protector.c Sat Jan 11 03:15:12 2020 (r356626) @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); __attribute__((__constructor__, __used__)); #endif +extern long __stack_chk_guard[8]; extern int __sysctl(const int *name, u_int namelen, void *oldp, size_t *oldlenp, void *newp, size_t newlen); @@ -73,8 +74,8 @@ __guard_setup(void) { static const int mib[2] = { CTL_KERN, KERN_ARND }; volatile long tmp_stack_chk_guard[nitems(__stack_chk_guard)]; - size_t len; - int error, idx; + size_t idx, len; + int error; if (__stack_chk_guard[0] != 0) return; @@ -84,7 +85,8 @@ __guard_setup(void) * data into a temporal array, then do manual volatile copy to * not allow optimizer to call memcpy() behind us. */ - error = _elf_aux_info(AT_CANARY, (void *)tmp_stack_chk_guard, + error = _elf_aux_info(AT_CANARY, + __DEQUALIFY(void *, tmp_stack_chk_guard), sizeof(tmp_stack_chk_guard)); if (error == 0 && tmp_stack_chk_guard[0] != 0) { for (idx = 0; idx < nitems(__stack_chk_guard); idx++) { From owner-svn-src-stable@freebsd.org Sat Jan 11 03:15:13 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6CBE01FBE7D; Sat, 11 Jan 2020 03:15:13 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47vlN12LkLz4TVW; Sat, 11 Jan 2020 03:15:13 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BBAF24450; Sat, 11 Jan 2020 03:15:13 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00B3FD3V075107; Sat, 11 Jan 2020 03:15:13 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00B3FDCu075106; Sat, 11 Jan 2020 03:15:13 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001110315.00B3FDCu075106@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 11 Jan 2020 03:15:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356626 - in stable: 11/lib/libc/secure 12/lib/libc/secure X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/lib/libc/secure 12/lib/libc/secure X-SVN-Commit-Revision: 356626 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 03:15:13 -0000 Author: kevans Date: Sat Jan 11 03:15:12 2020 New Revision: 356626 URL: https://svnweb.freebsd.org/changeset/base/356626 Log: MFC r356355: ssp: knock out some trivial warnings that come up with WARNS=6 A future commit will rebuild this as part of libssp. The exact warnings are fairly trivially fixed: - No previous declaration for __stack_chk_guard - idx is the wrong type, nitems yields a size_t - Casting away volatile on the tmp_stack_chk_guard directly is a no-no. Modified: stable/12/lib/libc/secure/stack_protector.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/lib/libc/secure/stack_protector.c Directory Properties: stable/11/ (props changed) Modified: stable/12/lib/libc/secure/stack_protector.c ============================================================================== --- stable/12/lib/libc/secure/stack_protector.c Sat Jan 11 01:56:57 2020 (r356625) +++ stable/12/lib/libc/secure/stack_protector.c Sat Jan 11 03:15:12 2020 (r356626) @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); __attribute__((__constructor__, __used__)); #endif +extern long __stack_chk_guard[8]; extern int __sysctl(const int *name, u_int namelen, void *oldp, size_t *oldlenp, void *newp, size_t newlen); @@ -73,8 +74,8 @@ __guard_setup(void) { static const int mib[2] = { CTL_KERN, KERN_ARND }; volatile long tmp_stack_chk_guard[nitems(__stack_chk_guard)]; - size_t len; - int error, idx; + size_t idx, len; + int error; if (__stack_chk_guard[0] != 0) return; @@ -84,7 +85,8 @@ __guard_setup(void) * data into a temporal array, then do manual volatile copy to * not allow optimizer to call memcpy() behind us. */ - error = _elf_aux_info(AT_CANARY, (void *)tmp_stack_chk_guard, + error = _elf_aux_info(AT_CANARY, + __DEQUALIFY(void *, tmp_stack_chk_guard), sizeof(tmp_stack_chk_guard)); if (error == 0 && tmp_stack_chk_guard[0] != 0) { for (idx = 0; idx < nitems(__stack_chk_guard); idx++) { From owner-svn-src-stable@freebsd.org Sat Jan 11 15:06:07 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B8AAA1ED1DF; Sat, 11 Jan 2020 15:06:07 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47w38H4Sf9z49X2; Sat, 11 Jan 2020 15:06:07 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 935DD4B72; Sat, 11 Jan 2020 15:06:07 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BF67EF004763; Sat, 11 Jan 2020 15:06:07 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BF67tN004761; Sat, 11 Jan 2020 15:06:07 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001111506.00BF67tN004761@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 11 Jan 2020 15:06:07 +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: r356634 - in stable: 11/sys/compat/linux 11/sys/sys 11/sys/vm 12/sys/compat/linux 12/sys/sys 12/sys/vm X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/compat/linux 11/sys/sys 11/sys/vm 12/sys/compat/linux 12/sys/sys 12/sys/vm X-SVN-Commit-Revision: 356634 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 15:06:07 -0000 Author: kevans Date: Sat Jan 11 15:06:06 2020 New Revision: 356634 URL: https://svnweb.freebsd.org/changeset/base/356634 Log: MFC r356359-r356360: kern_mmap: add fpcheck invariant for linux_mmap r356359: kern_mmap: add a variant that allows caller to inspect fp Linux mmap rejects mmap() on a write-only file with EACCES. linux_mmap_common currently does a fun dance to grab the fp associated with the passed in fd, validates it, then drops the reference and calls into kern_mmap(). Doing so is perhaps both fragile and premature; there's still plenty of chance for the request to get rejected with a more appropriate error, and it's prone to a race where the file we ultimately mmap has changed after it drops its referenced. This change alleviates the need to do this by providing a kern_mmap variant that allows the caller to inspect the fp just before calling into the fileop layer. The callback takes flags, prot, and maxprot as one could imagine scenarios where any of these, in conjunction with the file itself, may influence a caller's decision. The file type check in the linux compat layer has been removed; EINVAL is seemingly not an appropriate response to the file not being a vnode or device. The fileop layer will reject the operation with ENODEV if it's not supported, which more closely matches the common linux description of mmap(2) return values. If we discover that we're allowing an mmap() on a file type that Linux normally wouldn't, we should restrict those explicitly. r356360: kern_mmap: restore character deleted in transit Modified: stable/11/sys/compat/linux/linux_mmap.c stable/11/sys/sys/syscallsubr.h stable/11/sys/vm/vm_mmap.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/compat/linux/linux_mmap.c stable/12/sys/sys/syscallsubr.h stable/12/sys/vm/vm_mmap.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/compat/linux/linux_mmap.c ============================================================================== --- stable/11/sys/compat/linux/linux_mmap.c Sat Jan 11 12:02:16 2020 (r356633) +++ stable/11/sys/compat/linux/linux_mmap.c Sat Jan 11 15:06:06 2020 (r356634) @@ -62,7 +62,17 @@ __FBSDID("$FreeBSD$"); static void linux_fixup_prot(struct thread *td, int *prot); #endif +static int +linux_mmap_check_fp(struct file *fp, int flags, int prot, int maxprot) +{ + /* Linux mmap() just fails for O_WRONLY files */ + if ((fp->f_flag & FREAD) == 0) + return (EACCES); + + return (0); +} + int linux_mmap_common(struct thread *td, uintptr_t addr, size_t len, int prot, int flags, int fd, off_t pos) @@ -118,31 +128,6 @@ linux_mmap_common(struct thread *td, uintptr_t addr, s /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ fd = (bsd_flags & MAP_ANON) ? -1 : fd; - if (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, fd, cap_rights_init(&rights, CAP_MMAP), &fp); - if (error != 0) - return (error); - if (fp->f_type != DTYPE_VNODE && fp->f_type != DTYPE_DEV) { - 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 @@ -212,13 +197,15 @@ linux_mmap_common(struct thread *td, uintptr_t addr, s */ if (addr != 0 && (bsd_flags & MAP_FIXED) == 0 && (bsd_flags & MAP_EXCL) == 0) { - error = kern_mmap(td, addr, len, prot, - bsd_flags | MAP_FIXED | MAP_EXCL, fd, pos); + error = kern_mmap_fpcheck(td, addr, len, prot, + bsd_flags | MAP_FIXED | MAP_EXCL, fd, pos, + linux_mmap_check_fp); if (error == 0) goto out; } - error = kern_mmap(td, addr, len, prot, bsd_flags, fd, pos); + error = kern_mmap_fpcheck(td, addr, len, prot, bsd_flags, fd, pos, + linux_mmap_check_fp); out: LINUX_CTR2(mmap2, "return: %d (%p)", error, td->td_retval[0]); Modified: stable/11/sys/sys/syscallsubr.h ============================================================================== --- stable/11/sys/sys/syscallsubr.h Sat Jan 11 12:02:16 2020 (r356633) +++ stable/11/sys/sys/syscallsubr.h Sat Jan 11 15:06:06 2020 (r356634) @@ -60,6 +60,8 @@ struct thr_param; struct sched_param; struct __wrusage; +typedef int (*mmap_check_fp_fn)(struct file *, int, int, int); + int kern___getcwd(struct thread *td, char *buf, enum uio_seg bufseg, u_int buflen, u_int path_max); int kern_accept(struct thread *td, int s, struct sockaddr **name, @@ -165,6 +167,9 @@ int kern_mlock(struct proc *proc, struct ucred *cred, size_t len); int kern_mmap(struct thread *td, uintptr_t addr, size_t size, int prot, int flags, int fd, off_t pos); +int kern_mmap_fpcheck(struct thread *td, uintptr_t addr, size_t len, + int prot, int flags, int fd, off_t pos, + mmap_check_fp_fn check_fp_fn); int kern_mprotect(struct thread *td, uintptr_t addr, size_t size, int prot); int kern_msgctl(struct thread *, int, int, struct msqid_ds *); int kern_msgrcv(struct thread *, int, void *, size_t, long, int, long *); Modified: stable/11/sys/vm/vm_mmap.c ============================================================================== --- stable/11/sys/vm/vm_mmap.c Sat Jan 11 12:02:16 2020 (r356633) +++ stable/11/sys/vm/vm_mmap.c Sat Jan 11 15:06:06 2020 (r356634) @@ -184,6 +184,18 @@ int kern_mmap(struct thread *td, uintptr_t addr0, size_t size, int prot, int flags, int fd, off_t pos) { + + return (kern_mmap_fpcheck(td, addr0, size, prot, flags, fd, pos, NULL)); +} + +/* + * When mmap'ing a file, check_fp_fn may be used for the caller to do any + * last-minute validation based on the referenced file in a non-racy way. + */ +int +kern_mmap_fpcheck(struct thread *td, uintptr_t addr0, size_t size, int prot, + int flags, int fd, off_t pos, mmap_check_fp_fn check_fp_fn) +{ struct vmspace *vms; struct file *fp; vm_offset_t addr; @@ -356,7 +368,11 @@ kern_mmap(struct thread *td, uintptr_t addr0, size_t s error = EINVAL; goto done; } - + if (check_fp_fn != NULL) { + error = check_fp_fn(fp, prot, cap_maxprot, flags); + if (error != 0) + goto done; + } /* This relies on VM_PROT_* matching PROT_*. */ error = fo_mmap(fp, &vms->vm_map, &addr, size, prot, cap_maxprot, flags, pos, td); From owner-svn-src-stable@freebsd.org Sat Jan 11 15:06:08 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 79B201ED1EE; Sat, 11 Jan 2020 15:06:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47w38J2YL5z49X4; Sat, 11 Jan 2020 15:06:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 52F7D4B73; Sat, 11 Jan 2020 15:06:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BF687O004771; Sat, 11 Jan 2020 15:06:08 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BF67bG004769; Sat, 11 Jan 2020 15:06:07 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001111506.00BF67bG004769@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 11 Jan 2020 15:06:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356634 - in stable: 11/sys/compat/linux 11/sys/sys 11/sys/vm 12/sys/compat/linux 12/sys/sys 12/sys/vm X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/compat/linux 11/sys/sys 11/sys/vm 12/sys/compat/linux 12/sys/sys 12/sys/vm X-SVN-Commit-Revision: 356634 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 15:06:08 -0000 Author: kevans Date: Sat Jan 11 15:06:06 2020 New Revision: 356634 URL: https://svnweb.freebsd.org/changeset/base/356634 Log: MFC r356359-r356360: kern_mmap: add fpcheck invariant for linux_mmap r356359: kern_mmap: add a variant that allows caller to inspect fp Linux mmap rejects mmap() on a write-only file with EACCES. linux_mmap_common currently does a fun dance to grab the fp associated with the passed in fd, validates it, then drops the reference and calls into kern_mmap(). Doing so is perhaps both fragile and premature; there's still plenty of chance for the request to get rejected with a more appropriate error, and it's prone to a race where the file we ultimately mmap has changed after it drops its referenced. This change alleviates the need to do this by providing a kern_mmap variant that allows the caller to inspect the fp just before calling into the fileop layer. The callback takes flags, prot, and maxprot as one could imagine scenarios where any of these, in conjunction with the file itself, may influence a caller's decision. The file type check in the linux compat layer has been removed; EINVAL is seemingly not an appropriate response to the file not being a vnode or device. The fileop layer will reject the operation with ENODEV if it's not supported, which more closely matches the common linux description of mmap(2) return values. If we discover that we're allowing an mmap() on a file type that Linux normally wouldn't, we should restrict those explicitly. r356360: kern_mmap: restore character deleted in transit Modified: stable/12/sys/compat/linux/linux_mmap.c stable/12/sys/sys/syscallsubr.h stable/12/sys/vm/vm_mmap.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/compat/linux/linux_mmap.c stable/11/sys/sys/syscallsubr.h stable/11/sys/vm/vm_mmap.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/compat/linux/linux_mmap.c ============================================================================== --- stable/12/sys/compat/linux/linux_mmap.c Sat Jan 11 12:02:16 2020 (r356633) +++ stable/12/sys/compat/linux/linux_mmap.c Sat Jan 11 15:06:06 2020 (r356634) @@ -62,7 +62,17 @@ __FBSDID("$FreeBSD$"); static void linux_fixup_prot(struct thread *td, int *prot); #endif +static int +linux_mmap_check_fp(struct file *fp, int flags, int prot, int maxprot) +{ + /* Linux mmap() just fails for O_WRONLY files */ + if ((fp->f_flag & FREAD) == 0) + return (EACCES); + + return (0); +} + int linux_mmap_common(struct thread *td, uintptr_t addr, size_t len, int prot, int flags, int fd, off_t pos) @@ -117,31 +127,6 @@ linux_mmap_common(struct thread *td, uintptr_t addr, s /* Linux does not check file descriptor when MAP_ANONYMOUS is set. */ fd = (bsd_flags & MAP_ANON) ? -1 : fd; - if (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, fd, &cap_mmap_rights, &fp); - if (error != 0) - return (error); - if (fp->f_type != DTYPE_VNODE && fp->f_type != DTYPE_DEV) { - 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 @@ -211,13 +196,15 @@ linux_mmap_common(struct thread *td, uintptr_t addr, s */ if (addr != 0 && (bsd_flags & MAP_FIXED) == 0 && (bsd_flags & MAP_EXCL) == 0) { - error = kern_mmap(td, addr, len, prot, - bsd_flags | MAP_FIXED | MAP_EXCL, fd, pos); + error = kern_mmap_fpcheck(td, addr, len, prot, + bsd_flags | MAP_FIXED | MAP_EXCL, fd, pos, + linux_mmap_check_fp); if (error == 0) goto out; } - error = kern_mmap(td, addr, len, prot, bsd_flags, fd, pos); + error = kern_mmap_fpcheck(td, addr, len, prot, bsd_flags, fd, pos, + linux_mmap_check_fp); out: LINUX_CTR2(mmap2, "return: %d (%p)", error, td->td_retval[0]); Modified: stable/12/sys/sys/syscallsubr.h ============================================================================== --- stable/12/sys/sys/syscallsubr.h Sat Jan 11 12:02:16 2020 (r356633) +++ stable/12/sys/sys/syscallsubr.h Sat Jan 11 15:06:06 2020 (r356634) @@ -63,6 +63,8 @@ struct stat; struct thr_param; struct uio; +typedef int (*mmap_check_fp_fn)(struct file *, int, int, int); + int kern___getcwd(struct thread *td, char *buf, enum uio_seg bufseg, size_t buflen, size_t path_max); int kern_accept(struct thread *td, int s, struct sockaddr **name, @@ -175,6 +177,9 @@ int kern_mlock(struct proc *proc, struct ucred *cred, size_t len); int kern_mmap(struct thread *td, uintptr_t addr, size_t size, int prot, int flags, int fd, off_t pos); +int kern_mmap_fpcheck(struct thread *td, uintptr_t addr, size_t len, + int prot, int flags, int fd, off_t pos, + mmap_check_fp_fn check_fp_fn); int kern_mprotect(struct thread *td, uintptr_t addr, size_t size, int prot); int kern_msgctl(struct thread *, int, int, struct msqid_ds *); int kern_msgrcv(struct thread *, int, void *, size_t, long, int, long *); Modified: stable/12/sys/vm/vm_mmap.c ============================================================================== --- stable/12/sys/vm/vm_mmap.c Sat Jan 11 12:02:16 2020 (r356633) +++ stable/12/sys/vm/vm_mmap.c Sat Jan 11 15:06:06 2020 (r356634) @@ -185,6 +185,18 @@ int kern_mmap(struct thread *td, uintptr_t addr0, size_t size, int prot, int flags, int fd, off_t pos) { + + return (kern_mmap_fpcheck(td, addr0, size, prot, flags, fd, pos, NULL)); +} + +/* + * When mmap'ing a file, check_fp_fn may be used for the caller to do any + * last-minute validation based on the referenced file in a non-racy way. + */ +int +kern_mmap_fpcheck(struct thread *td, uintptr_t addr0, size_t size, int prot, + int flags, int fd, off_t pos, mmap_check_fp_fn check_fp_fn) +{ struct vmspace *vms; struct file *fp; struct proc *p; @@ -362,7 +374,11 @@ kern_mmap(struct thread *td, uintptr_t addr0, size_t s error = EINVAL; goto done; } - + if (check_fp_fn != NULL) { + error = check_fp_fn(fp, prot, cap_maxprot, flags); + if (error != 0) + goto done; + } /* This relies on VM_PROT_* matching PROT_*. */ error = fo_mmap(fp, &vms->vm_map, &addr, size, prot, cap_maxprot, flags, pos, td); From owner-svn-src-stable@freebsd.org Sat Jan 11 16:28:36 2020 Return-Path: Delivered-To: svn-src-stable@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0BFE51EEFC8; Sat, 11 Jan 2020 16:28:36 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47w4zR6DnSz4FTK; Sat, 11 Jan 2020 16:28:35 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D0AD65A55; Sat, 11 Jan 2020 16:28:35 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00BGSZIq053382; Sat, 11 Jan 2020 16:28:35 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00BGSZjQ053381; Sat, 11 Jan 2020 16:28:35 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001111628.00BGSZjQ053381@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 11 Jan 2020 16:28:35 +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: r356635 - stable/11/sys/compat/linux X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/11/sys/compat/linux X-SVN-Commit-Revision: 356635 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2020 16:28:36 -0000 Author: kevans Date: Sat Jan 11 16:28:35 2020 New Revision: 356635 URL: https://svnweb.freebsd.org/changeset/base/356635 Log: Fix warning after r356634 This is a direct commit to stable/11, because stable/12 and head no longer used this local 'rights' variable. It is no longer needed now that grabbing fp was moved into mmap. Modified: stable/11/sys/compat/linux/linux_mmap.c Modified: stable/11/sys/compat/linux/linux_mmap.c ============================================================================== --- stable/11/sys/compat/linux/linux_mmap.c Sat Jan 11 15:06:06 2020 (r356634) +++ stable/11/sys/compat/linux/linux_mmap.c Sat Jan 11 16:28:35 2020 (r356635) @@ -82,7 +82,6 @@ linux_mmap_common(struct thread *td, uintptr_t addr, s int bsd_flags, 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);